修改客户主数据的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.
我这里的功能只是修改了客户附加数据的几个字段,需要修改其他什么字段,自己修改传入参数。