SAP主动推送到外部系统
SAP主动推送到外部系统
一、SE80创建代理类
二、选择service consumer
三、选择External WSDL/Schema
四、选择URL
五、输入外部系统创建的WSDL地址
六、选择开发包,请求号,这里以保存本地为例。
七、点击完成,并激活。
八、执行T-CODE:LPCONFIG
然后点击工具栏的新建按钮。
九、输入相关信息。
十、点击保存,这个会保存到定制请求中,请提前创建好定制请求。这里以保存本地为例
然后点击激活按钮。
注释:如果是保存到定制请求的话,还需要系统间不同客户端的传输。
执行T-code:SCC1
放入刚才保存的定制请求。点击立即执行。
十一、在程序中实例化代理类。
*$*$-Start: (2)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZVL_SEND_MESS_SRM. "active version
DATA:LV_ACTION1.
CLEAR:LV_ACTION1.
DATA: LT_ITEM_INP TYPE TABLE OF ZSMM031 WITH HEADER LINE,
LT_ITEM_OUT TYPE TABLE OF ZSMM030 WITH HEADER LINE.
SELECT SINGLE ACTION INTO LV_ACTION1
FROM ZTGD001
WHERE ZKFQD = 'ZMM007'
AND ZXH = '0'
AND ENH_CODE = 'ZVL_SEND_MESS_SRM'.
IF LV_ACTION1 IS INITIAL AND SY-UCOMM = 'SICH_T' AND T180-TRTYP = 'V'.
READ TABLE XLIKP INDEX 1.
IF XLIKP-VBTYP = '7'.
LOOP AT XLIPS.
LT_ITEM_INP-I_VBELN = XLIPS-VBELN.
LT_ITEM_INP-I_POSNR = XLIPS-POSNR.
LT_ITEM_INP-I_LFIMG = XLIPS-LFIMG.
APPEND LT_ITEM_INP.
CLEAR: LT_ITEM_INP,XLIPS.
ENDLOOP.
CALL FUNCTION 'ZMM_FM_SRM011'
TABLES
it_item = LT_ITEM_INP
et_item = LT_ITEM_OUT.
ENDIF.
DATA : LO_CLIENTPROXY TYPE REF TO ZMMCO_REJECT_RECEIVE_DETAIL, "类对象
LO_SYS_EXCEPTION TYPE REF TO CX_AI_SYSTEM_FAULT,
IS_ITEM TYPE ZMMREJECT_RECEIVE_REQUEST,
LT_ITEM TYPE TABLE OF ZMMREJECT_RECEIVE_DETAIL_REQUE,
LS_ITEM TYPE ZMMREJECT_RECEIVE_DETAIL_REQUE,
LS_PARAMETERS TYPE ZMMSYNC_REJECT,
LS_REQUEST TYPE ZMMSYNC_REJECT1 , "传入参数
LS_RESPONSE TYPE ZMMSYNC_REJECT_RESPONSE1. "传出参数
CREATE OBJECT LO_CLIENTPROXY.
LOOP AT LT_ITEM_OUT.
LS_ITEM-LIFEX = LT_ITEM_OUT-E_VERUR.
LS_ITEM-LIFEXPOS = LT_ITEM_OUT-E_LIFEXPOS.
LS_ITEM-POSNR = LT_ITEM_OUT-E_POSNR.
LS_ITEM-VBELN = LT_ITEM_OUT-E_VBELN.
LS_ITEM-STATUS = LT_ITEM_OUT-E_STATUS.
LS_ITEM-MESS_TEXT = LT_ITEM_OUT-E_MESS_TEXT.
APPEND LS_ITEM TO LT_ITEM.
CLEAR: LS_ITEM,LT_ITEM_OUT.
ENDLOOP.
IS_ITEM-ITEM = LT_ITEM.
LS_PARAMETERS-IT_ITEM = IS_ITEM.
LS_REQUEST-PARAMETERS = LS_PARAMETERS.
TRY.
CREATE OBJECT LO_CLIENTPROXY
EXPORTING
LOGICAL_PORT_NAME = 'ZMM_SRM011'.
CALL METHOD LO_CLIENTPROXY->SYNC_REJECT
EXPORTING
SYNC_REJECT = LS_REQUEST
IMPORTING
SYNC_REJECT_RESPONSE = LS_RESPONSE.
CATCH CX_AI_SYSTEM_FAULT INTO LO_SYS_EXCEPTION.
ENDTRY.
ENDIF.
ENDENHANCEMENT.