FUNCTION ZBAPI_NETWORK_COMP_REMOVE.
*"----------------------------------------------------------------------
*"*"Local interface:
*" TABLES
*" INPUT STRUCTURE ZBAPI_NETWORK_COMP_REMOVE OPTIONAL
*" OUTPUT STRUCTURE ZBAPI_NETWORK_COMP_REMOVE_OUT OPTIONAL
*"----------------------------------------------------------------------
DATA: G_INFO TYPE STRING.
DATA:FLAG(1),
m_MESSAGE(100),
m_DATE TYPE D,
m_RSNUM TYPE RESB-RSNUM,
m_RSPOS TYPE RESB-RSPOS,
m_RSART TYPE RESB-RSART,
m_ENMNG TYPE RESB-ENMNG.
DATA:NUMBER TYPE BAPI_NETWORK_LIST-NETWORK,
I_COMPONENTS_REMOVE TYPE TABLE OF BAPI_NETWORK_COMP_ID WITH HEADER LINE,
E_MESSAGE_TABLE TYPE TABLE OF BAPI_METH_MESSAGE WITH HEADER LINE.
LOOP AT INPUT.
CLEAR m_RSNUM.
CLEAR m_RSPOS.
CLEAR m_RSART.
CLEAR m_ENMNG.
CLEAR NUMBER.
SELECT SINGLE
ENMNG
INTO m_ENMNG
FROM RESB
WHERE AUFNR = INPUT-AUFNR
AND VORNR = INPUT-ACTIVITY
AND POSNR = INPUT-POSNR
AND XLOEK <> ‘X‘.
MOVE-CORRESPONDING INPUT TO OUTPUT.
IF m_ENMNG <> 0.
OUTPUT-FLAG = ‘E‘.
CONCATENATE ‘删除失败:‘ ‘提货数必须为0才能删除!‘ INTO OUTPUT-MESSAGE.
APPEND OUTPUT.
CLEAR OUTPUT.
ELSE.
SELECT SINGLE
RSNUM
RSPOS
RSART
INTO (m_RSNUM,m_RSPOS,m_RSART )
FROM RESB
WHERE AUFNR = INPUT-AUFNR
AND VORNR = INPUT-ACTIVITY
AND POSNR = INPUT-POSNR
AND XLOEK <> ‘X‘.
NUMBER = INPUT-AUFNR.
* 明细记录
CONCATENATE m_RSNUM m_RSPOS m_RSART INTO I_COMPONENTS_REMOVE-COMPONENT.
* 在结尾的时候,保存记录
* AT END OF AUFNR.
CALL FUNCTION ‘BAPI_NETWORK_COMP_REMOVE‘
EXPORTING
NUMBER = NUMBER
TABLES
I_COMPONENTS_REMOVE = I_COMPONENTS_REMOVE
E_MESSAGE_TABLE = E_MESSAGE_TABLE.
CLEAR E_MESSAGE_TABLE.
LOOP AT E_MESSAGE_TABLE WHERE MESSAGE_TYPE = ‘E‘ OR MESSAGE_TYPE = ‘A‘.
FLAG = ‘X‘.
OUTPUT-FLAG = ‘E‘.
CONCATENATE OUTPUT-MESSAGE ‘&‘ E_MESSAGE_TABLE-MESSAGE_TEXT INTO OUTPUT-MESSAGE.
ENDLOOP.
IF FLAG = ‘X‘.
CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK‘.
ELSE.
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT‘.
WAIT UP TO 1 SECONDS.
OUTPUT-FLAG = ‘S‘.
LOOP AT E_MESSAGE_TABLE WHERE MESSAGE_TYPE = ‘I‘ OR MESSAGE_TYPE = ‘S‘.
m_MESSAGE = E_MESSAGE_TABLE-MESSAGE_TEXT.
ENDLOOP.
CONCATENATE ‘删除成功:‘ m_MESSAGE INTO OUTPUT-MESSAGE.
ENDIF.
APPEND OUTPUT.
CLEAR OUTPUT.
CLEAR I_COMPONENTS_REMOVE.
REFRESH I_COMPONENTS_REMOVE.