IDOC_INBOUND_ASYNCHRONOUS等待完成/异步

2020-09-28 10:48发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我们正在使用FM'IDO...

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

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


嗨,

我们正在使用FM'IDOC_INBOUND_ASYNCHRONOUS'通过程序创建IDOC。

之所以使用它,是因为我们希望程序继续运行,而不必等待IDOC的创建/处理。

但是,该程序实际上正在等待IDOC被处理。 当我们仔细观察时,程序正在等待语句"等待直到g_semaphore ='X'"。 在同一标准FM中。

为什么会这样? 由于FM是异步FM,因此不应该立即返回控制。 为什么要等待IDOC完成处理?

我们还检查了WE20中的配置。 我们使用的IDOC合作伙伴资料设置为"后台程序触发"。

我们在这里缺少什么? 任何输入将不胜感激。

谢谢。

3条回答
打个大熊猫
2020-09-28 11:24 .采纳回答

我确定的原因是,这是因为在合作伙伴资料(T CODE:WE20)->基本类型->"入站选项"中,这里有一个单选按钮选项,它被选为"立即触发" '因此,即使我在并行处理中调用FM(使用CALL FM-STARTING NEW TASK),也会在等待一个IDOC进行处理的情况下进行处理。

因此,以下是解决此问题的步骤:

1。 我已在合作伙伴资料(TCODE:WE20)中将单选按钮更改为" TRIGGER BY Background PROGRAM"。

2。 在开始新任务时调用FM(使用语法:CALL FM'Ztest_fm'STARTING NEW TASK)

3。 除了上述内容外,我们还需要安排生产系统中的标准程序以后台模式进行处理,

报告:RBDAPP01 i在生产系统中按小时计费。

请注意:完成上述步骤后,后续的IDOC将不等待先前的idocs处理完成,因此将很快执行。

所有IDOC将成功获得状态为64的进程。

请记住,报告:RBDAPP01实际上将以异步模式处理IDOC,并在IDOC处理后将状态更改为53。

一周热门 更多>