abap修改客户主数据值bapi SD_CUSTOMER_MAINTAIN_ALL

来源:互联网 发布:js set to array 编辑:程序博客网 时间:2024/05/07 02:29

修改客户主数据的bapi"SD_CUSTOMER_MAINTAIN_ALL"的使用案例,代码如下:

  DATA:lt_knvv LIKE TABLE OF knvv WITH HEADER LINE.
  DATA:ls_knvv LIKE knvv.
  DATA:lt_upd LIKE TABLE OF fkuntxt WITH HEADER LINE.
  DATA:ls_upd LIKE fkuntxt.
  DATA:lt_in_knvv LIKE TABLE OF zsekp048 WITH HEADER LINE.
  DATA:ls_in_knvv LIKE zsekp048.
  DATA:lv_kunnr LIKE kna1-kunnr.
  DATA:lt_kna1 LIKE TABLE OF kna1 WITH HEADER LINE.
  DATA:e_sd_cust_1321_done TYPE c.


  DATA:ls_return LIKE bapiret2.

  CHECK t_knvv[] IS NOT INITIAL.
  lt_in_knvv[] t_knvv[].
  LOOP AT lt_in_knvv INTO ls_in_knvv.

    REFRESH lt_upd.
    ls_knvv-kunnr ls_in_knvv-kunnr.
    ls_knvv-vkorg ls_in_knvv-vkorg.
    ls_knvv-vtweg ls_in_knvv-vtweg.
    ls_knvv-spart ls_in_knvv-spart.
    ls_knvv-kvgr1 ls_in_knvv-kvgr1.
    ls_knvv-kvgr2 ls_in_knvv-kvgr2.
    ls_knvv-kvgr3 ls_in_knvv-kvgr3.
    APPEND ls_knvv TO lt_knvv.


    ls_upd-kunnr ls_in_knvv-kunnr.
    ls_upd-bukrs ls_in_knvv-bukrs.
    ls_upd-vkorg ls_in_knvv-vkorg.
    ls_upd-vtweg ls_in_knvv-vtweg.
    ls_upd-spart ls_in_knvv-spart.
    ls_upd-upd_a 'U'.
    ls_upd-upd_b 'U'.
    ls_upd-upd_v 'U'.
    ls_upd-upd_ap 'U'.
    APPEND ls_upd TO lt_upd.
    CLEAR ls_upd.

    CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
      EXPORTING
*       I_KNA1                  =
*       I_KNB1                  =
        i_knvv                  ls_knvv
*       I_BAPIADDR1             =
*       I_BAPIADDR2             =
*       I_MAINTAIN_ADDRESS_BY_KNA1          = ' '
*       I_KNB1_REFERENCE        = ' '
*       I_FORCE_EXTERNAL_NUMBER_RANGE       = ' '
*       I_NO_BANK_MASTER_UPDATE = ' '
*       I_CUSTOMER_IS_CONSUMER  = ' '
*       I_RAISE_NO_BTE          = ' '
        pi_postflag             'X'
        pi_cam_changed          'X'
*       PI_ADD_ON_DATA          =
        i_from_customermaster   'X'
      IMPORTING
        e_kunnr                 lv_kunnr
*       o_kna1                  = lt_kna1
        e_sd_cust_1321_done     e_sd_cust_1321_done
      TABLES
*       T_XKNAS                 =
*       T_XKNBK                 =
*       T_XKNB5                 =
*       T_XKNEX                 =
*       T_XKNVA                 =
*       T_XKNVD                 =
*       T_XKNVI                 =
*       T_XKNVK                 =
*       T_XKNVL                 =
*       T_XKNVP                 =
*       T_XKNZA                 =
*       T_YKNAS                 =
*       T_YKNBK                 =
*       T_YKNB5                 =
*       T_YKNEX                 =
*       T_YKNVA                 =
*       T_YKNVD                 =
*       T_YKNVI                 =
*       T_YKNVK                 =
*       T_YKNVL                 =
*       T_YKNVP                 =
*       T_YKNZA                 =
        t_upd_txt               lt_upd
      EXCEPTIONS
        client_error            1
        kna1_incomplete         2
        knb1_incomplete         3
        knb5_incomplete         4
        knvv_incomplete         5
        kunnr_not_unique        6
        sales_area_not_unique   7
        sales_area_not_valid    8
        insert_update_conflict  9
        number_assignment_error 10
        number_not_in_range     11
        number_range_not_extern 12
        number_range_not_intern 13
        account_group_not_valid 14
        parnr_invalid           15
        bank_address_invalid    16
        tax_data_not_valid      17
        no_authority            18
        company_code_not_unique 19
        dunning_data_not_valid  20
        knb1_reference_invalid  21
        cam_error               22
        OTHERS                  23.
    IF sy-subrc EQ 0.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait 'X'.

      IF sy-subrc EQ 0.
        ls_return-type 'S'.
        ls_return-id ls_knvv-kunnr.
        ls_return-message '实时更新客户组数据成功,请在SAP系统中查看!'.
        APPEND ls_return TO t_return.
        CLEAR ls_return.
      ENDIF.
    ELSE.
      ls_return-type 'E'.
      ls_return-id ls_knvv-kunnr.
      ls_return-message '实时更新客户组数据失败,请检查数据是否正确!'.
      APPEND ls_return TO t_return.
      CLEAR ls_return.
    ENDIF.

    CLEAR ls_knvv.

    CLEAR ls_in_knvv.
  ENDLOOP.

ENDFUNCTION.

我这里的功能只是修改了客户附加数据的几个字段,需要修改其他什么字段,自己修改传入参数。


原创粉丝点击