在SE37中创建如下函数模块,并设置为Remote-Enabled Module,源代码如下: FUNCTIONzrfc_parellel_mmsc.*"---*"*"Local Interface:*"IMPORTING*"VALUE(I_MATNR)TYPEMATNR*"VALUE(I_WERKS)TYPEWERKS_D*"VALUE(I_LGORT)TYPELGORT_DOPTIONAL*"VALUE(I_DELAY)TYPEFLAGDEFAULT'X'*"TABLES*"RETURNMESSAGESSTRUCTUREBAPI_...
"类方式异步调用functionCLASSzcl_parellelDEFINITION.PUBLICSECTION.CLASS-METHODS:main.CLASS-METHODS:m_callbackIMPORTINGp_taskTYPEclike.PRIVATESECTION.TYPES:BEGINOFs_task, nameTYPEchar10, linesTYPEi,ENDOFs_task.CLASS-DATA:lt_taskTYPETABLEOFs_task.CLASS-DATA:ls_taskLIKELINEOFlt_task.CLASS-DATA:lv_...
实际项目实施过程中,我们会遇到程序性能优化的问题,这里介绍一种方法:通过RFC接口进行远程函数的异步调用实现程序的并行处理。 同步/异步调用函数语法: 同步调用:CALL FUNCTION'函数名' ; 同步调用的实质:程序进行单线程执行。 异步调用:CALL FUNCTION'函数名'STARTING NEWTASK<taskname> "任务名称 DESTINATION IN GROUP...
*&调用函数‘ZMLTOTAL_CHECK’启用新任务'jx'执行'ZMLSCP1_FR0003'; IF zmlcbwlcgdd_ok[] is not INITIAL. CALL FUNCTION 'ZMLSCP1_FR0003' STARTING NEW TASK 'jx' PERFORMING get_data_01 ON END OF TASK EXPORTING ztime = ztime TABLES i_input = zmlcbwlcgdd_ok i_out = itab. ENDIF. *&...
同步调用:CALL FUNCTION 'AAA' ; 同步调用的实质:程序进行单线程执行。 异步调用:CALL FUNCTION 'AAA' STARTING NEWTASK <taskname>"任务名称 DESTINATION IN GROUP <RFC Serve Group> PERFORMING <subroutine>ON END OF TASK。"子程序 异步调用的实质:程序进行多线程执行。
RECEIVERESULTS FROM FUNCTIONrfm_name ... ENDFORM. 等待多个异步调用的返回结果:WAIT UNTILlog_exp [UP TOsecSECONDS]. 异步调用时不能有IMPORTING参数;函数一定要是RFC函数才能采用异步调用;只要有STARTING NEW TASK选项,即为异步调用;如果是异步调用同一目标端的RFC函数,则可以省略DESTINATION ...
在ABAP中,可以通过CALL FUNCTION语句的异步调用选项实现并行处理。具体语法如下: CALL FUNCTION '函数名' STARTING NEW TASK '任务名称' DESTINATION IN GROUP 'RFC服务器组' PERFORMING '子程序名' ON END OF TASK. 这种方式允许程序在执行远程函数调用时,不等待函数返回结果就继续执行后续代码,从而实现多线程执行。
异步(aRFC):CALL FUNCTION 'AAA' STARTING NEWTASK <taskname>"任务名称 DESTINATION IN GROUP <RFC Serve Group> PERFORMING <subroutine>ON END OF TASK。"子程序 异步调用的实质:程序进行多线程执行; 在使用并行处理的过程中通常会遇到如下的可能会发生的问题: ...
CALL FUNCTION 'Z_CREATE_SMTH' STARTING NEW TASK 'TSK' DESTINATION 'NONE' PERFORMING on_done ON END OF TASK. WAIT UNITL lv_done = abap_true. CALL FUNCTION 'BAPI_CHANGE_SOMETHING' ... . CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTNG WAIT = 'X'. ...
The SAP documentation gives the information that I should use Remote Function Modules with the addition STARTING NEW TASK to process the data. So my program first selects all the data, breaks the data into packages and calls a function module with a package of data for further pro...