FM pt_arq_reqlist_get 运行时间长

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

我在功能模块

pt_arq_reqlist_get
和参数
IM_Command = 'show_reqlist'
上使用循环来获取所有员工的所有请求时遇到问题,大约有3000名员工,我正在循环,问题是如果我循环100名员工,响应会延迟大约需要5分钟,到1000时15分钟后超时没有响应。我的问题是如何处理这种糟糕的表现?或者还有什么办法吗?

代码:

REPORT YEH_TEST_LEAVE.

TYPE-POOLS: SLIS.
TABLES: PA0006,PERNR,
  YEH_TEMP_LEAVES.

DATA: MESSAGES      TYPE PTARQ_UIA_MESSAGES_TAB,
      IM_TEAM       TYPE HROBJECT,
      IM_DEBUG      TYPE BOOLEAN,
      EX_AS_OF_DATE TYPE SY-DATUM,
      EX_COMMANDS   TYPE PTARQ_UIA_COMMAND_TAB,
      REQ_LIST      TYPE PTARQ_UIA_REQLIST_TAB,
      REQ_WA        TYPE PTARQ_UIA_REQLIST_STRUC.
DATA: track type YEH_TEMP_LEAVES.

SELECT-OPTIONS:  XCode1 FOR  PERNR-PERNR.
START-OF-SELECTION.

loop at XCode1.
CALL FUNCTION 'PT_ARQ_REQLIST_GET'
  EXPORTING
    IM_PERNR        = XCode1-LOW
    IM_TEAM         = IM_TEAM
    IM_COMMAND      = 'SHOW_REQLIST'
    IM_MODUS        = 'A'
  IMPORTING
   EX_REQUEST_LIST = REQ_LIST
    EX_AS_OF_DATE   = EX_AS_OF_DATE
  TABLES
    EX_MESSAGES     = MESSAGES
    EX_COMMANDS     = EX_COMMANDS.

  WRITE: / XCode1-SIGN,
  XCode1-option,
  XCode1-low,
  XCode1-high.

endloop.
abap sap-hr
1个回答
0
投票

尝试使用并行处理技术

您的程序的示意结构将是:

  1. SPBT_初始化
  2. 调用函数“PT_ARQ_REQLIST_GET”...循环
  3. SY-SUBRC 的任务管理
  4. 处理RESOURCE_FAILURE异常
  5. 收到回复
  6. 等待作业完成

在第 2 步中,您必须将 3000 名员工分成适当的切片,并调整切片的大小,以实现平稳、快速的执行。

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