我在功能模块
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.
尝试使用并行处理技术。
您的程序的示意结构将是:
在第 2 步中,您必须将 3000 名员工分成适当的切片,并调整切片的大小,以实现平稳、快速的执行。