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

问题描述 投票:0回答:3

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

为了实现这一目标,我执行以下操作:

  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)我可以以某种方式计算我可以创建的最大任务数,以便我充分利用并行性吗?例如,获取可用工作进程的数量?

parallel-processing abap
3个回答
2
投票

在启动 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:您的服务器组当前可用的进程


0
投票

但是我们如何从 FM TH_SERVER_LIST 中看到有多少空闲进程具有服务器名称呢?也就是说,我们从列表中选择一个服务器名称,我们想查看该服务器名称有多少个空闲进程。
谢谢
埃利亚斯


-1
投票

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

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

有关 并行处理

的 SAP 帮助文档

SPBT_INITIALIZE 是您正在寻找的 FM。

© www.soinside.com 2019 - 2024. All rights reserved.