前台操作
将对应附加客户物料编号、客户物料描述填入在红框内,点击保存
程序
按需填入字段。
例:批导数据
零部件物料号S11-2127090下有两条附加客户物料号cs1和cs2,零部件物料号相关信息存入xknmt_tab,附加物料号存入xknmta_tab,GUID需要保持一致才能挂在同一张单子下。
" STEP3. 传值,区分头行结构
LOOP AT gt_display ASSIGNING FIELD-SYMBOL(<ls_display>) WHERE cbox = 'X' AND id <> icon_led_red.
AT NEW matnr.
TRY .
cl_system_uuid=>if_system_uuid_static~create_uuid_x16( RECEIVING uuid = DATA(lv_uuid_x16) ).
CATCH cx_uuid_error.
ENDTRY.
xknmt_tab = VALUE #( BASE xknmt_tab ( kunnr = <ls_display>-kunnr
vkorg = <ls_display>-vkorg
vtweg = <ls_display>-vtweg
matnr = <ls_display>-matnr
ernam = sy-uname
erdat = sy-datum
guid = lv_uuid_x16
updkz = 'I' ) ).
ENDAT.
xknmta_tab = VALUE #( BASE xknmta_tab ( guid = lv_uuid_x16
kdmat = <ls_display>-kdmat
addpostx = <ls_display>-postx
kz = 'I' ) ).
ENDLOOP.
SORT xknmt_tab BY kunnr vkorg vtweg matnr.
DELETE ADJACENT DUPLICATES FROM xknmt_tab COMPARING kunnr vkorg vtweg matnr.
" STEP4. 客户物料主数据新增
CALL FUNCTION 'RV_CUSTOMER_MATERIAL_UPDATE' IN UPDATE TASK "不用IN UPDATE TASK会dump,要求传入参数表TCATALOG_TAB
TABLES
xknmt_tab = xknmt_tab
* yknmt_tab = yknmt_tab "更新
xknmta_tab = xknmta_tab.
* yknmta_tab = yknmta_tab.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'"对于IN UPDATE TASK,sy-subrc没有意义
EXPORTING
wait = abap_true.