在 SAP 中批量刪除供應商銀行信息有以下幾種方法:
- 準備數(shù)據(jù)文件:按照 LSMW 要求的格式,創(chuàng)建一個包含要刪除銀行信息的供應商編號以及對應的銀行賬戶等相關標識信息的 Excel 或文本文件。
- 進入 LSMW 操作界面:輸入相應的事務代碼進入 LSMW,選擇與供應商銀行信息刪除相關的項目和對象。
- 映射字段:將數(shù)據(jù)文件中的字段與 SAP 系統(tǒng)中供應商銀行信息相關的字段進行對應映射,比如將文件中的供應商編號映射到 SAP 的供應商主數(shù)據(jù)編號字段等。
- 導入數(shù)據(jù):將準備好的數(shù)據(jù)文件導入到 LSMW 中。
- 執(zhí)行刪除操作:在 LSMW 中配置好刪除操作的相關設置,通??梢酝ㄟ^設置刪除標志或指定刪除操作類型等方式,然后執(zhí)行批量刪除操作。
- 檢查結果:操作完成后,在系統(tǒng)中檢查供應商銀行信息是否已被成功批量刪除。
- 使用相關 BAPI:可使用 “VMD_EI_API” 等 BAPI 進行操作1。
- 編寫 ABAP 代碼:以 “VMD_EI_API” 為例,使用該類的 “GET_DATA” 方法獲取供應商的完整數(shù)據(jù),再將需要刪除的銀行信息的相關記錄標記為刪除任務,最后調用 “MAINTAIN_BAPI” 方法來執(zhí)行更新操作以實現(xiàn)刪除1。以下是一個簡單示例代碼1:
REPORT Y_TEST_UPDATE_VENDOR_DEL.
PARAMETERS: P_LIFNR TYPE LIFNR OBLIGATORY.
START-OF-SELECTION.
PERFORM UPDATE_DATA.
FORM UPDATE_DATA.
DATA: LO_VMD_EI_API TYPE REF TO VMD_EI_API.
DATA: L_TI_IS_MASTER_DATA TYPE VMDS_EI_MAIN,
L_TI_IS_MASTER_DATA_IN TYPE VMDS_EI_MAIN.
DATA: LS_VMDS_EI_EXTERN TYPE VMDS_EI_EXTERN.
DATA: LC_LIFNR TYPE LIFNR.
CHECK P_LIFNR IS NOT INITIAL.
CREATE OBJECT LO_VMD_EI_API.
LS_VMDS_EI_EXTERN-HEADER-OBJECT_INSTANCE-LIFNR = P_LIFNR.
LS_VMDS_EI_EXTERN-HEADER-OBJECT_TASK = 'U'.
APPEND LS_VMDS_EI_EXTERN TO L_TI_IS_MASTER_DATA_IN-VENDORS.
* Capture all the vendor data
CALL METHOD VMD_EI_API_EXTRACT=>GET_DATA
EXPORTING
IS_MASTER_DATA = L_TI_IS_MASTER_DATA_IN
IMPORTING
ES_MASTER_DATA = DATA(L_TI_IS_MASTER_DATA_ES)
ES_ERROR = DATA(L_ERROR).
* Get the current vendor data into a structure
READ TABLE L_TI_IS_MASTER_DATA_ES-VENDORS INTO LS_VMDS_EI_EXTERN WITH KEY HEADER-OBJECT_INSTANCE-LIFNR = P_LIFNR.
IF SY-SUBRC EQ 0.
LS_VMDS_EI_EXTERN-HEADER-OBJECT_INSTANCE-LIFNR = P_LIFNR.
LS_VMDS_EI_EXTERN-HEADER-OBJECT_TASK = 'U'.
LOOP AT LS_VMDS_EI_EXTERN-CENTRAL_DATA-BANK_DETAIL-BANK_DETAILS ASSIGNING FIELD-SYMBOL(<LFS_BANK>).
* This is the delete order
<LFS_BANK>-TASK = 'D'.
END LOOP.
APPEND LS_VMDS_EI_EXTERN TO L_TI_IS_MASTER_DATA-VENDORS.
CALL METHOD LO_VMD_EI_API->MAINTAIN_BAPI
EXPORTING
IS_MASTER_DATA = L_TI_IS_MASTER_DATA
IV_COLLECT_MESSAGES = ABAP_TRUE
IMPORTING
ES_MASTER_DATA_CORRECT = DATA(LS_ES_MASTER_DATA_CORRECT)
ES_MESSAGE_CORRECT = DATA(LS_ES_MESSAGE_CORRECT)
ES_MASTER_DATA_DEFECTIVE = DATA(LS_ES_MASTER_DATA_DEFECTIVE)
ES_MESSAGE_DEFECTIVE = DATA(LS_ES_MESSAGE_DEFECTIVE).
IF LS_ES_MESSAGE_DEFECTIVE-IS_ERROR IS INITIAL AND
LS_ES_MESSAGE_DEFECTIVE-MESSAGES() IS INITIAL.
COMMIT WORK AND WAIT.
ELSE.
ROLLBACK WORK.
END IF.
END IF.
ENDFORM.
在使用上述代碼時,需要將P_LIFNR
參數(shù)設置為要刪除銀行信息的供應商編號。
- 進入供應商主數(shù)據(jù)批量維護界面:例如使用事務碼
XK99
7。 - 選擇篩選條件:在
XK99
界面中,選擇合適的篩選條件,以確定要批量刪除銀行信息的供應商范圍,可以根據(jù)供應商組、公司代碼等條件進行篩選。 - 進入銀行信息維護頁面:選中要操作的供應商后,進入供應商銀行信息維護頁面。
- 刪除銀行信息:在銀行信息維護頁面中,批量選擇要刪除的銀行信息記錄,然后點擊刪除按鈕或設置刪除標志,最后保存操作。