RF Delivery序列号处理滞后TCODE LM01

2020-09-06 14:14发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我遇到了一个问题,即...

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

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


专家们,

我遇到了一个问题,即在交货中处理序列号会滞后。 当在单个交货单中使用了多个LPN时,就会出现问题,但是第一个LPN可以正常运行,但是当您使用4个或更多时,就会发生LAG。

我检查了该代码,它类似于用于调用FM的标准代码:

'L_SER_WS_DELIVERY_UPDATE'

以下是程序中使用的实际参数:

如果不是it_sernr []是初始的。

     通话功能'L_SER_WS_DELIVERY_UPDATE'
 *在更新任务中
         出口
           vbkok_wa = p_vbkok
           同步='X'
 * NO_MESSAGES_UPDATE =''
           commit ='X'
           传递= p_vbeln
 * UPDATE_PICKING =''
           nicht_sperren ='X'
 * IF_CONFIRM_CENTRAL =''
 * IF_WMPP =''
          if_get_delivery_buffered =''
 * IF_NO_GENERIC_SYSTEM_SERVICE =''
 * IF_DATABASE_UPDATE ='1'
 * IF_NO_INIT =''
 * IF_NO_READ =''
          if_error_messages_send_0 ='X'
 * IF_NO_BUFFER_REFRESH =''
 * IT_PARTNER_UPDATE =
           it_sernr_update = it_sernr
 * IF_NO_REMOTE_CHG =''
 * IF_NO_MES_UPD_PACK =''
 *桌子
 * VBPOK_TAB =
 * PROT =
 * VERKO_TAB =
 * VERPO_TAB =
 * VBSUPCON_TAB =
 * IT_VERPO_SERNR =
 * IT_PACKING =
 * IT_PACKING_SERNR =
 * IT_REPACK =
 * IT_HANDLING_UNITS =
 * IT_OBJECTS =
 * ET_CREATED_HUS =
 * TVPOD_TAB =
 *
        例外情况
           error_message = 0
           其他= 0。

 * lv_return = sy-subrc。
 *如果lv_return = 0。
     提交工作。
 *其他。
 * ..... Fehlerausgabe
 *使用con_zser'029'执行message_screen
 * sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
 *  万一。
   万一。
 

希望尽快获得想法。

谢谢。

杰夫

7条回答
南山jay
2020-09-06 14:50

嗨Raghu,

美好的一天,

正在比较2个程序,每个程序分别代表2个仓库(A和B),一旦达到200个序列,第一个仓库就会出现性能问题。 起初我以为是因为当它更新时(每个发布10个),它用当前扫描的序列更新200个(已交付),因此发布后为210个。 但是,当我检查第二个程序(RLMOBSER的复制程序-更快)时,它具有类似的过程,即获取交付中已经有的序列号(例如:250),然后更新批处理(第二个程序更新20秒),使其在发布后变为270 。 类似的过程,但是第一个程序要花费更多的时间。 第一个程序使用上面发布的FM参数。

第二快的程序具有相同的过程,但执行速度更快(一旦交付有350条记录,则大约需要4秒)。 我要发布第二个程序中使用的FM参数。 我试图检查文档,但是我认为这些添加的参数不会影响FM的性能。 请参见下面的代码:

不检查it_sernr []是否为INITIAL。

   通话功能'L_SER_WS_DELIVERY_UPDATE'
 *在更新任务中
     出口
       vbkok_wa = p_vbkok
       同步='X'
 * NO_MESSAGES_UPDATE =''
       提交=''
       传递= p_vbeln
 * UPDATE_PICKING =''
       nicht_sperren ='X'
 * IF_CONFIRM_CENTRAL =''
 * IF_WMPP =''
       if_get_delivery_buffered =''
 * IF_NO_GENERIC_SYSTEM_SERVICE =''
 * IF_DATABASE_UPDATE ='1'
 * IF_NO_INIT =''
 * IF_NO_READ =''
       if_error_messages_send_0 ='X'
 * IF_NO_BUFFER_REFRESH =''
 * IT_PARTNER_UPDATE =
       it_sernr_update = it_sernr
 * IF_NO_REMOTE_CHG =''
       if_no_mes_upd_pack ='X'" n_1732036
 *桌子
 * VBPOK_TAB =
 * PROT =
 * VERKO_TAB =
 * VERPO_TAB =
 * VBSUPCON_TAB =
 * IT_VERPO_SERNR =
 * IT_PACKING =
 * IT_PACKING_SERNR =
 * IT_REPACK =
 * IT_HANDLING_UNITS =
 * IT_OBJECTS =
 * ET_CREATED_HUS =
 * TVPOD_TAB =
 *
     例外情况
       error_message = 0
       其他= 0。

   提交工作并等待。  " n_1768215
   lv_return = sy-subrc。  " n_770199 

只需添加一点,虽然我不确定这是否有帮助,但是在调试时,我注意到该过程使用表OBJK,它使用字段OBKNR保留序列,我注意到了这一区别:

第一个慢速程序-FM的每次发布/执行都会使OBKNR加1。

第二个程序-更快,在我的所有串行扫描中都使用相同的OBKNR。

希望您可以帮助解决此问题。 预先谢谢你。

Geoff

一周热门 更多>