我可以将BAPI BAPI_GOODSMVT_CREATE与并行处理一起使用吗?

2020-08-31 10:47发布

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

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


当前,我想知道我是否可以通过并行处理来改善当前程序-

我必须使用BAPI制作70,000个GI/GR文档,这需要很多时间。.所以我想拆分成较小的程序包,并进行一些并行处理以拆分WP。

所以我制作了测试运行程序,该程序生成了50个文档,并分成了10个WP:

做50次。

等待g_progs LE pa_wpnum。

呼叫功能'Z_PARA_TEST'
在组'390'中开始新任务g_task目的地
在任务结束时执行return_z_para_test
异常
resource_failure = 3。

案例sy-subrc。
当3.
等待g_progs <3到'20'秒为止。
结束。

将1加至g_task。
将1加至g_progs。
将1加至g_sprog。

ENDDO。

FORM使用任务名称返回_z_pp_para_test。

从g_progs中减去1。

向g_eprog添加1。

gt_chk_message-message =10。
附加gt_chk_message。

ENDFORM。

* Z_PARA_TEST具有BAPI_GOODSMVT_CREATE-> BAPI_TRANSACTION COMMIT函数。

事实证明,我循环了50次(显示50行" 10"的文字)。 但是只能制作1个文档!

所以..我的问题是:

1。 BAPI_GOODSMVT_CREATE是否可以与并行处理一起使用? 还是我做错了?

2。 如果每个WP工作太快,我认为文档编号将相同。 可能有问题吗?


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

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


当前,我想知道我是否可以通过并行处理来改善当前程序-

我必须使用BAPI制作70,000个GI/GR文档,这需要很多时间。.所以我想拆分成较小的程序包,并进行一些并行处理以拆分WP。

所以我制作了测试运行程序,该程序生成了50个文档,并分成了10个WP:

做50次。

等待g_progs LE pa_wpnum。

呼叫功能'Z_PARA_TEST'
在组'390'中开始新任务g_task目的地
在任务结束时执行return_z_para_test
异常
resource_failure = 3。

案例sy-subrc。
当3.
等待g_progs <3到'20'秒为止。
结束。

将1加至g_task。
将1加至g_progs。
将1加至g_sprog。

ENDDO。

FORM使用任务名称返回_z_pp_para_test。

从g_progs中减去1。

向g_eprog添加1。

gt_chk_message-message =10。
附加gt_chk_message。

ENDFORM。

* Z_PARA_TEST具有BAPI_GOODSMVT_CREATE-> BAPI_TRANSACTION COMMIT函数。

事实证明,我循环了50次(显示50行" 10"的文字)。 但是只能制作1个文档!

所以..我的问题是:

1。 BAPI_GOODSMVT_CREATE是否可以与并行处理一起使用? 还是我做错了?

2。 如果每个WP工作太快,我认为文档编号将相同。 可能有问题吗?


付费偷看设置
发送
6条回答
nice_wp
1楼 · 2020-08-31 11:33.采纳回答

您可以在侦察时使用BAPI进行操作。 请将" X"传递给FM" BAPI_TRANSACTION_COMMIT"的导入参数。 下面的线程供SAP中并行处理参考。

https://blogs.sap.com/2019/03/19/parallel-processing-made-easy/

谢谢

Gourab

ZJXianG
2楼-- · 2020-08-31 11:37

任何BAPI都能与并行处理一起很好地工作。

您是否正确执行了BAPI,并检查了其返回消息吗?

数字范围应该不是问题(有时会出现一些性能,数字空白,数字顺序等问题,但这并不能阻止成功执行)。

callcenter油条
3楼-- · 2020-08-31 11:35

您无需进行并行处理, 可以将文件拆分为多个文件,并同时运行该程序多次。

谢谢

Gourab

野沐沐
4楼-- · 2020-08-31 11:46

发现了问题:

在Do〜Enddo之间,我不得不延迟一些时间(我使用Wait最多等待'0.5'秒)。

但这会带来不同的问题-在较小的口袋中,

它比没有并行处理的实际处理时间还要重!


因此,我目前正在寻找在DO-ENDDO之间最小化"等待时间"的方法。

任何想法将不胜感激。

奄奄一息的小鱼
5楼-- · 2020-08-31 11:36

此外,在上载" 70,000"条记录时,您还需要考虑的另一件事是如何处理错误记录。 一次性上传这么多记录会很麻烦。 您还必须考虑70000条记录的上载时间。 相反,您可以将每个文件中的记录拆分为5000条记录,然后上传一次。

否则,您只能从同一文件和进程中读取5000条记录(该文件将为1,但一次只能读取5000条记录),并且可以在6个会话中同时运行该程序。 这样就很容易生产。 您可以计划在休假的一周在PRD中进行一整天的过渡,然后继续进行,这样将轻松且无错误。

从技术上讲,可以并行执行BAPI。 尽管从技术上讲是可行的,但单步跟踪任何错误都将很困难。

谢谢

Gourab

Nir深蓝
6楼-- · 2020-08-31 11:26

是的。 那可能是答案-但是为什么我要使用并行处理是..避免"使用多个选项卡来运行问题"。

据我所知,它实际上是与手册并行处理的?

一周热门 更多>