我正在使用并行处理。
CALL FUNCTION 'ZABC' STARTING NEW TASK taskname
DESTINATION IN GROUP srv_grp PERFORMING come_back ON END OF TASK
EXPORTING
...
EXCEPTIONS
...
.
我在循环中调用此FM。有时候,我的记录会被跳过。我没有得到理想的输出。有时会处理2000条记录,有时会处理1000条记录。数字会有所不同。可能是什么问题?你能否告诉我一些可以在并行处理中跳过记录的情况?
答案 0 :(得分:0)
请参阅SAP提供的示例代码:https://help.sap.com/viewer/753088fc00704d0a80e7fbd6803c8adb/7.4.16/en-US/4892082ffeb35ed2e10000000a42189d.html
了解它们如何处理资源异常。资源异常意味着您尝试启动新的aRFC,但没有更多可用的进程。您的程序必须处理这些情况。如果不处理这些情况,将跳过条目。正常处理是在示例程序中等待一些活动进程完成一段时间:
WAIT UNTIL rcv_jobs >= snd_jobs
UP TO 5 SECONDS.
答案 1 :(得分:0)
gv_semaphore = 0.
" your internal table size.
DESCRIBE TABLE lt_itab LINES lv_lines.
LOOP AT lt_itab INTO ls_itab.
" parallel proc. -->>
CALL FUNCTION 'ZABC' STARTING NEW TASK taskname
DESTINATION IN GROUP srv_grp PERFORMING come_back ON END OF TASK
EXPORTING
...
EXCEPTIONS
...
.
" <<--
ENDLOOP.
" wait until all parallel processes have terminated. **
WAIT UNTIL gv_semaphore = lv_lines.
注意:您应该检查总并行进程数。打开的线程应该有一些上限。
感谢。