我们可以在PI 7.4双协议栈中触发IDOC之前添加延迟吗?

2020-08-16 11:38发布

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

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


在这种情况下,PI会获得一种XML,而PI必须将其拆分为2个Idocs(MBGMCR&ORDERS05)。

要求是MBGMCR应该先到达ECC,然后再到达ORDERS。 基本上应该先过帐库存(MBGMCR),然后再为同一库存生成订单(ORDERS05)。

我们为此配置了ICO,并选中了运行时维护订单复选框。

因此,此MBGMCR首先被发布到ECC中,然后再发布ORDERS05,但是MBGMCR和ORDERS之间的时间差以毫秒为单位。 现在,由于MBGMCR使用了增强功能,因此要花一些时间才能处理MBGMCR,然后才能处理ORDERS05。

由于此ORDERS05的ECC失败,因为系统尚未针对该订单生成库存。

因此,我想在触发ORDERS05之前添加一些延迟,以便ECC获得一些时间来处理MBGMCR。 有什么办法可以解决这个问题?

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

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


在这种情况下,PI会获得一种XML,而PI必须将其拆分为2个Idocs(MBGMCR&ORDERS05)。

要求是MBGMCR应该先到达ECC,然后再到达ORDERS。 基本上应该先过帐库存(MBGMCR),然后再为同一库存生成订单(ORDERS05)。

我们为此配置了ICO,并选中了运行时维护订单复选框。

因此,此MBGMCR首先被发布到ECC中,然后再发布ORDERS05,但是MBGMCR和ORDERS之间的时间差以毫秒为单位。 现在,由于MBGMCR使用了增强功能,因此要花一些时间才能处理MBGMCR,然后才能处理ORDERS05。

由于此ORDERS05的ECC失败,因为系统尚未针对该订单生成库存。

因此,我想在触发ORDERS05之前添加一些延迟,以便ECC获得一些时间来处理MBGMCR。 有什么办法可以解决这个问题?

付费偷看设置
发送
3条回答
N-Moskvin
1楼 · 2020-08-16 12:23.采纳回答

您好Dhariya,

我相信您已经配置了2个OM,一个用于生成MBGMCR,另一个用于ORDERS05

因此,如果您希望ORDERS05的OM等待特定时间,则可以通过UDF在该映射中添加睡眠,只需将其添加到根节点即可。

公共字符串timeDelay(字符串var1,容器容器)抛出StreamTransformationException {
 {尝试
 {Thread.sleep(30000);//毫秒]
 抓(InterruptedException即)
 {}
 返回var1;
 }} 

Br,

Manoj

土豆飞人
2楼-- · 2020-08-16 12:23

唯一失败的情况是,如果由于某种原因(例如映射或连接)而不会发布" ORDERS" IDOC,而是文件的下一个触发器需要" MBGMCR",并且 将发布一个" ORDERS05"。 然后,如果您重新发送失败的一个ORDERS,则将其过帐,但是我不会在这里看到任何问题,因为MBGMCR和ORDERS05对将有助于库存生成。 因此,只要先发布MBGMCR,然后再由"在运行时维护订单"已处理的各个ORDERS05,就不会有任何问题。

浮生未央
3楼-- · 2020-08-16 12:33

大家好,

按照上面的说明,我们已经将其用于测试区域。

在尝试一条或两条消息时,我们会看到消息在出现时间延迟时显示在消息监视器的"计划"列中。

但是,我对此的担心是,如果我们同时有很多消息(可能同时有50条以上)通过,那么映射(?)线程的最大数目不会有问题。 可以随时使用吗? 并且,如果是这样,这是否会影响SAP PI的整体性能,是否会因此影响可能同时处理的其他接口消息?

因此,在没有ccBPM的情况下,也许有更好的方法来延迟IDoc传输? 我听说我们可以使用BPM,但这会使流程变得过于复杂吗?

非常感谢,
加思(Gareth)

一周热门 更多>