Abap 在并行处理过程中是否可以跳过某些记录?
我正在使用并行处理Abap 在并行处理过程中是否可以跳过某些记录?,abap,saprfc,Abap,Saprfc,我正在使用并行处理 CALL FUNCTION 'ZABC' STARTING NEW TASK taskname DESTINATION IN GROUP srv_grp PERFORMING come_back ON END OF TASK EXPORTING ... EXCEPTIONS ... . 我在循环中调用这个FM。有时,我的记录会被跳过。我没有得到期望的输出。有时处理2000条记录,有时处理1000条记录。数字各不相同。有什么问题吗?您能提供一些在并行处理
CALL FUNCTION 'ZABC' STARTING NEW TASK taskname
DESTINATION IN GROUP srv_grp PERFORMING come_back ON END OF TASK
EXPORTING
...
EXCEPTIONS
...
.
我在循环中调用这个FM。有时,我的记录会被跳过。我没有得到期望的输出。有时处理2000条记录,有时处理1000条记录。数字各不相同。有什么问题吗?您能提供一些在并行处理中可以跳过记录的情况吗?请参阅SAP提供的示例代码: 看看他们是如何处理资源异常的。资源异常意味着您试图启动新的aRFC,但没有更多可用进程。您的程序必须处理这些情况。如果不处理这些情况,将跳过条目。在示例程序中,通常的处理方法是等待一段时间,等待一些活动进程完成:
WAIT UNTIL rcv_jobs >= snd_jobs
UP TO 5 SECONDS.
请参见SAP提供的示例代码: 看看他们是如何处理资源异常的。资源异常意味着您试图启动新的aRFC,但没有更多可用进程。您的程序必须处理这些情况。如果不处理这些情况,将跳过条目。在示例程序中,通常的处理方法是等待一段时间,等待一些活动进程完成:
WAIT UNTIL rcv_jobs >= snd_jobs
UP TO 5 SECONDS.
gv_信号量=0。
“您的内部表格大小。
描述表lt\U itab线路lv\U线路。
在lt_itab循环到ls_itab。
“并行进程。-->>
调用函数“ZABC”启动新任务taskname
组srv_grp中的目标正在执行任务结束时返回
出口
...
例外情况
...
.
“gv_信号量=0。
“您的内部表格大小。
描述表lt\U itab线路lv\U线路。
在lt_itab循环到ls_itab。
“并行进程。-->>
调用函数“ZABC”启动新任务taskname
组srv_grp中的目标正在执行任务结束时返回
出口
...
例外情况
...
.
“请提供更多信息。输入的大小是否始终相同,例如2000条记录?函数调用在做什么?选择数据?更新数据?如果并行调用的FM生成转储,它可能看起来像被跳过了,因为它永远不会调用任务结束时例程。检查ST22,看看你是否是这样。@Gert不,这是不正确的。它将发送一个异常,即使它转储。但是你当然要处理它。你怎么发现这些记录被跳过了呢?@Tapio,自从我上次使用它以来,功能似乎有所改进,或者我记错了东西(很有可能)。我现在写的一个小测试程序不会在被调用的FM中转储,而是在接收命令中转储,这样更好。请提供更多信息。输入的大小是否始终相同,例如2000条记录?函数调用在做什么?选择数据?更新数据?如果并行调用的FM生成转储,它可能看起来像被跳过了,因为它永远不会调用任务结束时例程。检查ST22,看看你是否是这样。@Gert不,这是不正确的。它将发送一个异常,即使它转储。但是你当然要处理它。你怎么发现这些记录被跳过了呢?@Tapio,自从我上次使用它以来,功能似乎有所改进,或者我记错了东西(很有可能)。我现在编写的一个小测试程序不会在被调用的FM中转储,而是在接收命令时转储,这样更好。