在sap abap的并行处理过程中是否可以跳过某些记录?

时间:2017-06-25 12:58:58

标签: sap abap

我正在使用并行处理。

CALL FUNCTION 'ZABC' STARTING NEW TASK taskname
          DESTINATION IN GROUP srv_grp PERFORMING come_back ON END OF TASK
EXPORTING
 ...
EXCEPTIONS
...
.

我在循环中调用此FM。有时候,我的记录会被跳过。我没有得到理想的输出。有时会处理2000条记录,有时会处理1000条记录。数字会有所不同。可能是什么问题?你能否告诉我一些可以在并行处理中跳过记录的情况?

2 个答案:

答案 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.

注意:您应该检查总并行进程数。打开的线程应该有一些上限。

感谢。