点击此处---> 群内免费提供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。 * 万一。 万一。
希望尽快获得想法。
谢谢。
杰夫
我尝试了两个都运行400个序列的程序,然后测试了700个序列。 客户端的声明似乎发生在特定的用户ID上。 我的两个测试都显示两个程序的执行时间相同。 序列号越高,执行时间越长。
对于700个序列,这两个程序花费了4-5秒,使用事务ST12进行了测试。
在此处进行了许多假设...
1)LPN-I 猜您是说"牌照号码",它等于SAP序列号吗?
2)您能详细说明一下发生LAG的意思是什么吗?
3)您说的是1st 工作正常,并且4个或更多有问题。 那第二和第三怎么办?那里发生了什么?
还... LM01是捕获RF设备菜单程序的所有t代码的工具。 您知道您正在调用哪个程序吗? 因为您说的是"类似于标准代码",所以我猜这是自定义程序的一部分,而不是本地SAP?
嗨Raghu,
美好的一天,
正在比较2个程序,每个程序分别代表2个仓库(A和B),一旦达到200个序列,第一个仓库就会出现性能问题。 起初我以为是因为当它更新时(每个发布10个),它用当前扫描的序列更新200个(已交付),因此发布后为210个。 但是,当我检查第二个程序(RLMOBSER的复制程序-更快)时,它具有类似的过程,即获取交付中已经有的序列号(例如:250),然后更新批处理(第二个程序更新20秒),使其在发布后变为270 。 类似的过程,但是第一个程序要花费更多的时间。 第一个程序使用上面发布的FM参数。
第二快的程序具有相同的过程,但执行速度更快(一旦交付有350条记录,则大约需要4秒)。 我要发布第二个程序中使用的FM参数。 我试图检查文档,但是我认为这些添加的参数不会影响FM的性能。 请参见下面的代码:
只需添加一点,虽然我不确定这是否有帮助,但是在调试时,我注意到该过程使用表OBJK,它使用字段OBKNR保留序列,我注意到了这一区别:
第一个慢速程序-FM的每次发布/执行都会使OBKNR加1。
第二个程序-更快,在我的所有串行扫描中都使用相同的OBKNR。
希望您可以帮助解决此问题。 预先谢谢你。
Geoff
对于Commit,没有对与错。 但是,如果您不完全了解其中的含义,我会继续进行下去。 On ='X'
您好,专家
我尝试上传两个交货(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
您能否在第一个程序中更改IMPORTING参数
我能想到的最明显的事情 是同步数据库提交需要花费额外的时间。 但是,这意味着提交发生在程序的其他位置。 如果用户在功能模块执行之后和实际数据库提交之前失去连接,则没有显式提交可能会带来数据风险。 用户会认为一切都成功了,但实际上并没有发生。 除非您真正了解提交的位置,隐式还是显式等等; 我会选择保持提交状态的途径。
要查看的另一件事是 SYNCRON ='X'。如果将其设置为关闭,则异步更新可能是
好,顺便说一句,第二个程序(更快)具有commit =''。 较慢的(第一个)具有commit ='X'。 我将首先看到最后两个测试发生了什么,因为两个程序都以相同的执行时间执行。 谢谢。
一周热门 更多>