ABAP VD51 - RV_CUSTOMER_MATERIAL_UPDATE创建物料-客户信息记录

该程序涉及在SAP系统中处理物料主数据的更新,特别是针对零部件物料号下的附加客户物料号。通过循环遍历并过滤数据,生成UUID,然后将信息分别存入xknmt_tab和xknmta_tab两个表格。在确保无重复数据后,调用函数进行客户物料主数据的更新,并提交事务。
摘要由CSDN通过智能技术生成

前台操作

 

 将对应附加客户物料编号、客户物料描述填入在红框内,点击保存

 程序

按需填入字段。

例:批导数据

 零部件物料号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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值