SAP_常用BAPI_创建修改物料主数据(BAPI_MATERIAL_SAVEDATA)



BAPI_MATERIAL_SAVEDATA

  LOOP AT pt_out.
    CLEARls_headdata,ls_return.
    REFRESHlt_extensionin,lt_extensioninx.

    "---判断是否需要扩展修改
    READ TABLE gt_mard WITH KEY matnr pt_out-matnr
                                werks pt_out-werks
                                lgort pt_out-lgort
                                BINARY SEARCH.
    IF sy-subrc EQ AND gt_mard-lgort1 EQ pt_out-lgort1 AND gt_mard-lgort2 EQ pt_out-lgort2.
      l_proc_n_lines l_proc_n_lines + 1.   "无需处理
      pt_out-bz '无需扩展'.
      MODIFY pt_out TRANSPORTING bz.
      CONTINUE.
    ENDIF.

    ls_headdata-material pt_out-matnr.
    ls_headdata-storage_view  'X'.

    ls_bapi_te_mard-plant pt_out-werks.
    ls_bapi_te_mard-stge_loc pt_out-lgort.
    ls_bapi_te_mard-lgort1 pt_out-lgort1.
    ls_bapi_te_mard-lgort2 pt_out-lgort2.

    ls_bapi_te_mardx-plant pt_out-werks.
    ls_bapi_te_mardx-stge_loc pt_out-lgort.
    ls_bapi_te_mardx-lgort1 'X'.
    ls_bapi_te_mardx-lgort2 'X'.

    lt_extensionin-structure 'BAPI_TE_MARD'.
    lt_extensionin-valuepart1 ls_bapi_te_mard.
    APPEND lt_extensionin.
    CLEAR lt_extensionin.

    lt_extensioninx-structure 'BAPI_TE_MARDX'.
    lt_extensioninx-valuepart1 ls_bapi_te_mardx.
    APPEND lt_extensioninx.
    CLEAR lt_extensioninx.

    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata             ls_headdata
*       CLIENTDATA           =
*       CLIENTDATAX          =
*       PLANTDATA            =
*       PLANTDATAX           =
*       FORECASTPARAMETERS   =
*       FORECASTPARAMETERSX  =
*       PLANNINGDATA         =
*       PLANNINGDATAX        =
*       storagelocationdata  =
*       storagelocationdatax =
*       VALUATIONDATA        =
*       VALUATIONDATAX       =
*       WAREHOUSENUMBERDATA  =
*       WAREHOUSENUMBERDATAX =
*       SALESDATA            =
*       SALESDATAX           =
*       STORAGETYPEDATA      =
*       STORAGETYPEDATAX     =
*       FLAG_ONLINE          = ''
*       FLAG_CAD_CALL        = ' '
*       NO_DEQUEUE           = ''
*       NO_ROLLBACK_WORK     = ''
      IMPORTING
        return               ls_return
      TABLES
*       MATERIALDESCRIPTION  =
*       UNITSOFMEASURE       =
*       UNITSOFMEASUREX      =
*       INTERNATIONALARTNOS  =
*       MATERIALLONGTEXT     =
*       TAXCLASSIFICATIONS   =
*       RETURNMESSAGES       =
*       PRTDATA              =
*       PRTDATAX             =
        extensionin          lt_extensionin
        extensioninx         lt_extensioninx.
    IF ls_return-type CA 'EA'.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      CONCATENATE ls_return-message ls_return-message_v1
        ls_return-message_v2 ls_return-message_v3
        ls_return-message_v4 INTO pt_out-bz.
      l_proc_f_lines l_proc_f_lines + 1.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait c_strx.
      pt_out-bz '扩展成功'.
      l_proc_s_lines l_proc_s_lines + 1.
    ENDIF.
    "---已处理标识
    gt_out-flag '2'.  "导入数据已处理
    MODIFY pt_out TRANSPORTING bz flag.
  ENDLOOP.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值