如何批量删除供应商银行信息

三寿SAP技术 2025-02-26 09:24:00 128阅读 福建省福州市 电信
RT

提示:如果此问题没有解决您的需求,您可以点击 “我也要问” 在线咨询。 我也要问

若此问题存在违规行为,您可以点击 “举报”

1条回答

  • 百晓生
    2025-02-26 09:25:08 已采纳
    在 SAP 中批量删除供应商银行信息有以下几种方法:

    使用 LSMW(后勤系统数据迁移工作台)


    1. 准备数据文件:按照 LSMW 要求的格式,创建一个包含要删除银行信息的供应商编号以及对应的银行账户等相关标识信息的 Excel 或文本文件。
    2. 进入 LSMW 操作界面:输入相应的事务代码进入 LSMW,选择与供应商银行信息删除相关的项目和对象。
    3. 映射字段:将数据文件中的字段与 SAP 系统中供应商银行信息相关的字段进行对应映射,比如将文件中的供应商编号映射到 SAP 的供应商主数据编号字段等。
    4. 导入数据:将准备好的数据文件导入到 LSMW 中。
    5. 执行删除操作:在 LSMW 中配置好删除操作的相关设置,通常可以通过设置删除标志或指定删除操作类型等方式,然后执行批量删除操作。
    6. 检查结果:操作完成后,在系统中检查供应商银行信息是否已被成功批量删除。

    使用 BAPI 或 ABAP 编程


    1. 使用相关 BAPI:可使用 “VMD_EI_API” 等 BAPI 进行操作1。
    2. 编写 ABAP 代码:以 “VMD_EI_API” 为例,使用该类的 “GET_DATA” 方法获取供应商的完整数据,再将需要删除的银行信息的相关记录标记为删除任务,最后调用 “MAINTAIN_BAPI” 方法来执行更新操作以实现删除1。以下是一个简单示例代码1:

    收起
    abap
    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参数设置为要删除银行信息的供应商编号。

    使用特定事务码结合筛选条件


    1. 进入供应商主数据批量维护界面:例如使用事务码XK997。
    2. 选择筛选条件:在XK99界面中,选择合适的筛选条件,以确定要批量删除银行信息的供应商范围,可以根据供应商组、公司代码等条件进行筛选。
    3. 进入银行信息维护页面:选中要操作的供应商后,进入供应商银行信息维护页面。
    4. 删除银行信息:在银行信息维护页面中,批量选择要删除的银行信息记录,然后点击删除按钮或设置删除标志,最后保存操作。
    0 举报

快速提问,在线解答

1

描述需求

填写需求概要标题,补充详细需求

2

耐心等

等待网友或网站工作人员在线解答

3

巧咨询

还有疑问?及时追问回复

立即咨询