运行1000台设备的" IQ01"序列化IS-U设备的BDC-性能

2020-08-16 03:31发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好人

在运行诸如IQ01之类的事务以创建IS-U设备的BDC上是否有指针?

我们已经创建了这样的功能,但是在大规模场景(我们典型的"大规模场景"正在一步生成2000-3000个设备)中运行时,这确实是性能的消耗,它循环了许多预定的序列号和 以同步方式执行evey设备的BDC。 这很重要,因为以异步方式,由于SAP对象等上的锁定问题,存在仅生成预期数量的设备的一定百分比的风险。

因此,在这种Mass方案中,除了SerialNumber(材料,生产者等都相同)之外,输入数据始终是相同的...

考虑此(伪)代码:

在so_sernr ASSIGNING FIELD-SYMBOL()处循环。
     刷新:bdcdata,
              lt_bdcmsg。
     清除:lt_bdcmsg。
     使用'SAPMIEQ0''1000'执行bdc_dynpro。
     PERFORM bdc_field使用:'BDC_OKCODE''/00',
                               " RISA0-MATNR"材料,"始终相同
                               'RISA0-SERNR'-低,
                               'RM63E-EQTYP''I'。  " IS-U设备
     使用'SAPLE10R''1100'执行bdc_dynpro。
     PERFORM bdc_field使用:'BDC_OKCODE''= SAVE',
                               " EDEVICED-HERST"制作人,"总是一样
                               " EDEVICED-AB" sy-datum,"始终相同
 *'EDEVICED-BAUJJ'建造年,
                               'EDEVICED-BESITZ''03'。
     使用'SAPMIEQ0''0101'执行bdc_dynpro。
     执行bdc_field使用:'BDC_OKCODE''= BU'。
     执行bdc_transaction表lt_bdcmsg
                             使用" IQ01"
                                   'X'
                                   'N'
                                   'S'。  "同步处理,异步锁定问题

     在lt_bdcmsg分配字​​段符号()处循环
       msgtyp CA'EAX'在哪里。
       清除回报。
       return-type =  -msgtyp。
       return-id =  -msgid。
       return-number =  -msgnr。
       return-message_v1 =  -msgv1。
       return-message_v2 =  -msgv2。
       return-message_v3 =  -msgv3。
       return-message_v4 =  -msgv4。
       APPEND return TO returntab []。
       出口。
     结局。
     UNASSIGN 。
   结局。
 

是否有一般或专门针对" IQ01"或" IE01"来优化此效果或使用BatchInput的方法?

由于我们需要生成IS-U设备,所以我真的因为没有BAPI而陷入困境...除了BDC之外还有其他选择吗?


感谢您的建议

Nic T。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好人

在运行诸如IQ01之类的事务以创建IS-U设备的BDC上是否有指针?

我们已经创建了这样的功能,但是在大规模场景(我们典型的"大规模场景"正在一步生成2000-3000个设备)中运行时,这确实是性能的消耗,它循环了许多预定的序列号和 以同步方式执行evey设备的BDC。 这很重要,因为以异步方式,由于SAP对象等上的锁定问题,存在仅生成预期数量的设备的一定百分比的风险。

因此,在这种Mass方案中,除了SerialNumber(材料,生产者等都相同)之外,输入数据始终是相同的...

考虑此(伪)代码:

在so_sernr ASSIGNING FIELD-SYMBOL()处循环。
     刷新:bdcdata,
              lt_bdcmsg。
     清除:lt_bdcmsg。
     使用'SAPMIEQ0''1000'执行bdc_dynpro。
     PERFORM bdc_field使用:'BDC_OKCODE''/00',
                               " RISA0-MATNR"材料,"始终相同
                               'RISA0-SERNR'-低,
                               'RM63E-EQTYP''I'。  " IS-U设备
     使用'SAPLE10R''1100'执行bdc_dynpro。
     PERFORM bdc_field使用:'BDC_OKCODE''= SAVE',
                               " EDEVICED-HERST"制作人,"总是一样
                               " EDEVICED-AB" sy-datum,"始终相同
 *'EDEVICED-BAUJJ'建造年,
                               'EDEVICED-BESITZ''03'。
     使用'SAPMIEQ0''0101'执行bdc_dynpro。
     执行bdc_field使用:'BDC_OKCODE''= BU'。
     执行bdc_transaction表lt_bdcmsg
                             使用" IQ01"
                                   'X'
                                   'N'
                                   'S'。  "同步处理,异步锁定问题

     在lt_bdcmsg分配字​​段符号()处循环
       msgtyp CA'EAX'在哪里。
       清除回报。
       return-type =  -msgtyp。
       return-id =  -msgid。
       return-number =  -msgnr。
       return-message_v1 =  -msgv1。
       return-message_v2 =  -msgv2。
       return-message_v3 =  -msgv3。
       return-message_v4 =  -msgv4。
       APPEND return TO returntab []。
       出口。
     结局。
     UNASSIGN 。
   结局。
 

是否有一般或专门针对" IQ01"或" IE01"来优化此效果或使用BatchInput的方法?

由于我们需要生成IS-U设备,所以我真的因为没有BAPI而陷入困境...除了BDC之外还有其他选择吗?


感谢您的建议

Nic T。

付费偷看设置
发送
10条回答
暮风yp
1楼-- · 2020-08-16 04:17

TX:EMIGALL,用于迁移对象DEVICE。
从字面上看,此功能旨在创建/维护大量IS-U设备。

Climb_Ma
2楼-- · 2020-08-16 04:16

您好 Nic Teunckens

这并不是您的真正解决方案 问题,但是您是否检查了EQUIPMENT_INSERT,BAPI_EQMT_CREATE,EQUI_CREATE,IBIP_EQUI_CREATE BAPI? 和/或IBIP交易?

请问候
Mateusz
暮风yp
3楼-- · 2020-08-16 04:16

感谢 Mateusz Adamus 建议,我将查看提到的FM。
如果我记得的话," BAPI_EQMT_CREATE"不包含某些IS-U特定数据,因此这不是一个选择。 始终缺少与设备有关的完整IS-U BAPI/FM。

任何人都可以提出另一个建议,或者可以就BDC提供一些帮助(任何可以加快/清除速度的其他信息/代码)

预先感谢

Nic T。

xfwsx85
4楼-- · 2020-08-16 04:19

我在另一个答案中看到,您可以使用交易代码EPRODCUST来 使用子对象DEVICE_INFO创建您的主数据模板,并通过功能模块ISU_PRODUCT_IMPLEMENT运行它。

派大星 ヾ
5楼-- · 2020-08-16 04:14

感谢 Sandra Rossi 用于MDT(MasterDataTemplate)建议(以及其他建议)...我将对此进行研究。 我也在朝这个方向思考,但是我对使用MDT并不十分了解。 但是,这是一个很好的机会,可以从PoC开始...

路亽曱_Ryan
6楼-- · 2020-08-16 04:04

尽快使用它。

调用函数" ISU_M_EQUI_INSERT"
         出口
           x_direct = abap_true
           x_commit =空格
         改变
           x_auto = ls_x_auto
         例外情况
           err_insert = 1
           err_fuba = 2
           其他= 3。
       lv_subx = lv_subrc = sy-subrc。

根据业务流程的需要填写ls_x_auto。

其类型为isumi_device_auto

其中包含V_EQUI EGERS EGERH和分类结构(如果需要)。

一周热门 更多>