CALLL Function时,如果接口错误,可能rise error CX_SY_DYN_CALL_ILLEGAL_TYPE
function zwf_nextdynamicapproverget.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(OBJKEY) TYPE ZE_OBJKEY
*" VALUE(Z_OBJTYPE) TYPE ZE_OBJTYPE
*" VALUE(LAST_RESULT) TYPE ZE_WF_RESULT
*" VALUE(LAST_APPLEVEL) TYPE ZE_APPLEVEL
*" VALUE(UNAME) TYPE UNAME
*" EXPORTING
*" VALUE(RETURN) TYPE BAPIRETURN1
*" VALUE(NOFURTHERAPPROVALNEEDED) TYPE XFELD
*" VALUE(Z_APPLEVEL) TYPE ZE_APPLEVEL
*" VALUE(Z_WI_TEXT) TYPE ZE_WI_TEXT
*" VALUE(Z_TASKCOMMENT) TYPE BCSY_TEXT
*" TABLES
*" ACTOR_TAB STRUCTURE SWHACTOR
*"----------------------------------------------------------------------
data: l_fm_name like zwf_objtype-z_fm_nextapp.
data: wa_object like zwf_object.
refresh: actor_tab.
clear z_applevel.
*************EXCUTE FUNCTION'S TRANSACTION
select single z_fm_nextapp from zwf_objtype into l_fm_name
where z_objtype = z_objtype.
if sy-subrc = 0 and l_fm_name <> ' '.
************CHECK FUNCTION MODULE NAME EXIST
select single funcname from tftit into l_fm_name where funcname = l_fm_name .
if sy-subrc = 0.
****CALL FM DEFINED IN TABLE ZWF_OBJTYPE
call function l_fm_name
exporting
objkey = objkey
z_objtype = z_objtype
last_applevel = last_applevel
last_result = last_result
uname = uname
importing
return = return
z_wi_text = z_wi_text
nofurtherapprovalneeded = nofurtherapprovalneeded"
z_applevel = z_applevel"
z_taskcomment = z_taskcomment
tables
actor_tab = actor_tab
exceptions
others = 01.
case sy-subrc.
when 0. " OK
when others. " to be implemented
endcase.
endif.
endif.
endfunction.