我如何知道我可以创建多少个 RFC 任务?



我正在实现一个并行执行两次相同代码的报告。

为此,我执行以下操作:

call function 'my_func'
starting new task 'T1' destination 'NONE'
calling go_results->receive_results on end of task
exporting
it_pernr_tab            = lt_1st_half
is_selection_parameters = gs_parm.
call function 'my_func'
starting new task 'T2' destination 'NONE'
calling go_results->receive_results on end of task
exporting
it_pernr_tab            = lt_2nd_half
is_selection_parameters = gs_parm.
wait until go_results->mv_received_results = 2.

这将创建两个新任务,这些任务可以正常执行。

但我根本不做任何验证,我只是调用任务两次,因为我已经决定这样做。

我不知道是否有足够的"空间"来执行两个新任务,也不知道是否有空间容纳 10 个,我可以更好地使用它们。

这正是我的问题:

a( 我可以以某种方式计算我可以创建的最大任务数,以便充分利用视差吗?例如,获取可用工作流程的数量?

在启动 asnyc 函数模块之前,应调用函数模块SPBT_INITIALIZE。

相关的是参数group_name、max_pbt_wps和free_pbt_wps

CALL FUNCTION 'SPBT_INITIALIZE'
EXPORTING
group_name                     = 'YOUR_SERVER_GROUP'
IMPORTING
MAX_PBT_WPS                    = lv_max
free_pbt_wps                   = lv_free
EXCEPTIONS
invalid_group_name             = 1
internal_error                 = 2
pbt_env_already_initialized    = 3
currently_no_resources_avail   = 4
no_pbt_resources_found         = 5
cant_init_different_pbt_groups = 6
OTHERS                         = 7.

服务器组用于避免有人使用 SAP 系统上的所有可用进程。如果您不想配置 服务器组 您将使用默认服务器组。此外,您应该使用名称启动异步功能模块 您的服务器组

CALL FUNCTION 'YOUR_ASYNC_FUNCTION' STARTING NEW TASK 'YOUR_TASK_IDENTIFIER'
DESTINATION IN GROUP 'YOUR_SERVER_GROUP'

或者如果要使用默认组

CALL FUNCTION 'YOUR_ASYNC_FUNCTION' STARTING NEW TASK 'YOUR_TASK_IDENTIFIER'
DESTINATION IN GROUP DEFAULT

在这里,您将找到服务器组的 SAP 文档

https://help.sap.com/doc/saphelp_nw70/7.0.31/en-US/fa/096e92543b11d1898e0000e8322d00/content.htm?no_cache=true

但无论如何,在您致电SPBT_INITIALIZE后,您将收到您要求的信息。

lv_max:服务器组的最大可用进程数

lv_free:服务器组目前可用的进程

这个问题已经讨论过了,请找到该主题的链接。

启动新任务的并行处理 - 前端屏幕超时。

有关并行处理的 SAP 帮助文档

SPBT_INITIALIZE是您要查找的 FM。

相关内容

  • 没有找到相关文章

最新更新