RF Delivery序列号处理滞后TCODE LM01

2020-09-06 14:14发布

         点击此处--->   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。
 *  万一。
   万一。
 

希望尽快获得想法。

谢谢。

杰夫

         点击此处--->   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条回答
callcenter油条
1楼 · 2020-09-06 14:50.采纳回答

我尝试了两个都运行400个序列的程序,然后测试了700个序列。 客户端的声明似乎发生在特定的用户ID上。 我的两个测试都显示两个程序的执行时间相同。 序列号越高,执行时间越长。

对于700个序列,这两个程序花费了4-5秒,使用事务ST12进行了测试。

95年老男孩
2楼-- · 2020-09-06 14:55

在此处进行了许多假设...

1)LPN-I 猜您是说"牌照号码",它等于SAP序列号吗?

2)您能详细说明一下发生LAG的意思是什么吗?

3)您说的是1st 工作正常,并且4个或更多有问题。 那第二和第三怎么办?那里发生了什么?

还... LM01是捕获RF设备菜单程序的所有t代码的工具。 您知道您正在调用哪个程序吗? 因为您说的是"类似于标准代码",所以我猜这是自定义程序的一部分,而不是本地SAP?

南山jay
3楼-- · 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

槿木_熙
4楼-- · 2020-09-06 14:43

对于Commit,没有对与错。 但是,如果您不完全了解其中的含义,我会继续进行下去。 On ='X'

何必丶何苦呢
5楼-- · 2020-09-06 15:01

您好,专家

我尝试上传两个交货(A和B仓库)的380个序列,发现两者在处理中具有相同的热点(导致FM执行的相似代码例程)。

查看以下结果:

总体:

Program1(客户端标记为"慢")-3.5秒

Program2(客户端标记为正常-标准RLMOBSER的副本)= 2.7秒

HOTSPOT:(FM执行)

Program1(客户端标记为"慢")-2.519925总微秒

Program2(由客户端标记为正常-标准RLMOBSER的副本)= 2.05622总微秒

注意:两者在每个交付文件中都有370个序列,程序A添加了10个序列,程序B添加了20个(这就是它的设置方式)it_sernr表在执行之前总共包含380条记录,这两个程序都运行。

给出结果并通过调试查看过程,我认为它在FM执行方面的表现完全相同(相差0.5秒)。

您认为这是一个问题吗? 我检查了调试,发现主要问题是FM执行所需的时间(在FM调用后放置断点,并见证了两个程序的延迟)。

谢谢。

Geoff

歪着头看世界
6楼-- · 2020-09-06 14:59

您能否在第一个程序中更改IMPORTING参数

 commit =''

我能想到的最明显的事情 是同步数据库提交需要花费额外的时间。 但是,这意味着提交发生在程序的其他位置。 如果用户在功能模块执行之后和实际数据库提交之前失去连接,则没有显式提交可能会带来数据风险。 用户会认为一切都成功了,但实际上并没有发生。 除非您真正了解提交的位置,隐式还是显式等等; 我会选择保持提交状态的途径。

要查看的另一件事是 SYNCRON ='X'。如果将其设置为关闭,则异步更新可能是

Nir深蓝
7楼-- · 2020-09-06 14:47

好,顺便说一句,第二个程序(更快)具有commit =''。 较慢的(第一个)具有commit ='X'。 我将首先看到最后两个测试发生了什么,因为两个程序都以相同的执行时间执行。 谢谢。

一周热门 更多>