运行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条回答
Nir深蓝
1楼-- · 2020-08-16 04:05

Sandra,我们需要看看我们是否能够实现我们的目标。 不要使生活陷入不必要的限制,例如SAP :-)大声笑。

绿领巾童鞋
2楼-- · 2020-08-16 04:18

我完全同意, Sandra Rossi

我将同时尝试将您的建议作为Daniel在" IQ04"上的建议。 我将发布我的经验以完成/完成此问题。

谢谢您,

Nic T。

一只江湖小虾
3楼-- · 2020-08-16 04:06

嗨,Nic,

使用" BAPI_EQUI_CREATE"后,可以尝试使用FM:" ISU_DB_V_EGER_UPDATE"来更新缺少或不完整的数据。

闻人可可
4楼-- · 2020-08-16 04:07

很好的直接数据库更新建议! (调用未发布的功能模块,该模块在不检查数据库内容的情况下进行数据库更新)。

一周热门 更多>