SAP:MM03 BAPI_MATERIAL_SAVEDATA

44 篇文章 0 订阅
22 篇文章 0 订阅
**清空内表
    CLEAR:   it_rount,
             it_bapiret2,
             it_head,
             it_clinetdata,
             it_clinetdatax,
             it_salesdata,
             it_salesdatax,
             it_plantdata,
             it_plantdatax,
             it_storagelocationdata,
             it_storagelocationdatax,
             it_valuationdata,
             it_valuationdatax.
    it_head-material it_matnr.       "物料号*


*基本数据录入

    IF itab_ext-magrv <> ''.
      it_head-basic_view 'X'.         "基本数据视图
      it_clinetdata-mat_grp_sm itab_ext-magrv.      "进口/国产
      it_clinetdatax-mat_grp_sm 'X'.
    ENDIF.
    IF itab_ext-matkl <> ''.
      it_head-basic_view 'X'.         "基本数据视图
      it_clinetdata-matl_group itab_ext-matkl.    "物料组*
      it_clinetdatax-matl_group 'X'.
    ENDIF.
    IF itab_ext-spart <> ''.
      it_head-basic_view 'X'.         "基本数据视图
      it_clinetdata-division itab_ext-spart.      "产品组
      it_clinetdatax-division 'X'.
    ENDIF.

*销售视图录入
    IF itab_ext-vkorg <> '' AND itab_ext-vtweg <> ''.
      it_head-sales_view 'X'.         "销售视图
      it_salesdata-sales_org itab_ext-vkorg.    "销售组织*
      it_salesdata-distr_chan itab_ext-vtweg.   "分销渠道*
      it_salesdata-delyg_plnt itab_ext-dwerk.   "交货工厂
      it_salesdata-acct_assgt itab_ext-ktgrm.   "科目设置组
      it_salesdata-mat_pr_grp itab_ext-kondm.     "物料定价组
      it_salesdata-matl_stats itab_ext-versg.   "物料统计组
      it_clinetdata-trans_grp itab_ext-tragr.   "运输组*
      it_plantdata-loadinggrp itab_ext-ladgr.   "装载组*
      it_plantdata-availcheck itab_ext-mtvfp.   "可用性检查*

      it_salesdatax-sales_org  itab_ext-vkorg.
      it_salesdatax-distr_chan itab_ext-vtweg.
      it_salesdatax-delyg_plnt 'X'.
      it_salesdatax-acct_assgt 'X'.
      it_salesdatax-mat_pr_grp   'X'.
      it_salesdatax-matl_stats 'X'.
      it_clinetdatax-trans_grp 'X'.
      it_plantdatax-loadinggrp 'X'.
      it_plantdatax-availcheck 'X'.
    ENDIF.
*税分类
    IF itab_ext-taxkm <> ''.
      it_mlan-depcountry 'CN'.  "发货国(由该国家发货)
      it_mlan-tax_type_1 'MWSI'."税类别(销项税)
      it_mlan-taxclass_1 itab_ext-taxkm.
      APPEND it_mlan.
    ENDIF.
**&&&工厂数据维护
    IF itab_ext-werks <> ''.
      it_plantdata-plant itab_ext-werks."工厂
      it_plantdatax-plant itab_ext-werks.
      it_valuationdata-val_area   itab_ext-werks.   "估价范围(工厂)
      it_valuationdatax-val_area   itab_ext-werks.


*6采购视图录入
      IF itab_ext-ekgrp <> '' OR itab_ext-kordb <> ''
      OR itab_ext-usequ <> ''.
        it_head-purchase_view 'X'.      "采购视图
        it_plantdata-pur_group itab_ext-ekgrp.                "采购组
        it_plantdata-sourcelist itab_ext-kordb.               "货源清单
        it_plantdata-quotausage itab_ext-usequ.               "配额
        it_plantdatax-pur_group   'X'.
        it_plantdatax-sourcelist  'X'.
        it_plantdatax-quotausage 'X'.
      ENDIF.
*MRP录入
      IF itab_ext-dismm <> ''.
        it_head-mrp_view 'X'.           "物料需求计划(MRP)视图
        it_plantdata-mrp_type itab_ext-dismm.      "MRP类型*_A
        it_plantdata-mrp_ctrler itab_ext-dispo.    "MRP控制者*
        it_plantdata-lotsizekey itab_ext-disls.    "批量*
        it_plantdata-minlotsize itab_ext-bstmi.    "最小批量
        it_plantdata-abc_id itab_ext-maabc.        "ABC标识
        it_plantdata-pur_status itab_ext-mmsta.    "特定工厂的物料状态
        it_plantdatax-mrp_type   'X'.
        it_plantdatax-mrp_ctrler 'X'.
        it_plantdatax-lotsizekey 'X'.
        it_plantdatax-minlotsize 'X'.
        it_plantdatax-abc_id 'X'.
        it_plantdatax-pur_status 'X'.

        IF itab_ext-beskz <> ''.
          it_plantdata-proc_type itab_ext-beskz.     "获取(采购)类型*_B
          it_plantdata-spproctype itab_ext-sobsl.    "特殊采购类型
          it_plantdata-backflush itab_ext-rgekz.     "反冲
          it_plantdata-iss_st_loc itab_ext-lgpro.     "生产仓储地点
          it_plantdata-sloc_exprc itab_ext-lgfsb.     "外部采购仓储地点
          it_plantdata-inhseprodt itab_ext-dzeit.    "内部生产(自制)时间?
          it_plantdata-plnd_delry itab_ext-plifz.    "计划交货时间
          it_plantdata-sm_key itab_ext-fhori.        "计划边际码
          it_plantdata-safety_stk itab_ext-eisbe.    "安全库存
          it_plantdatax-proc_type  'X'.
          it_plantdatax-spproctype 'X'.
          it_plantdatax-backflush  'X'.
          it_plantdatax-iss_st_loc 'X'.
          it_plantdatax-sloc_exprc 'X'.
          it_plantdatax-inhseprodt 'X'.
          it_plantdatax-plnd_delry 'X'.
          it_plantdatax-sm_key     'X'.
          it_plantdatax-safety_stk 'X'.
        ENDIF.

        IF itab_ext-vrmod <> ''.
          it_plantdata-period_ind 'M'.             "期间标识
          it_plantdata-availcheck itab_ext-mtvfp.    "可用性检查*
          it_plantdata-consummode itab_ext-vrmod.    "消耗模式
          it_plantdata-bwd_cons   itab_ext-vint1.    "逆向消耗模式
          it_plantdata-fwd_cons   itab_ext-vint2.    "向前消耗模式
          it_plantdatax-period_ind 'X'.
          it_plantdatax-availcheck 'X'.
          it_plantdatax-consummode 'X'.
          it_plantdatax-bwd_cons   'X'.
          it_plantdatax-fwd_cons   'X'.
        ENDIF.

        it_plantdata-dep_req_id itab_ext-sbdkz.    "独立/集中
        it_plantdatax-dep_req_id 'X'.
      ENDIF.
*8工作计划录入
      IF itab_ext-beskz 'E' OR itab_ext-beskz 'X'.
        it_head-work_sched_view 'X'.    "工作计划视图
        it_plantdata-serno_prof itab_ext-sernp.    "序列号参数文件
        it_plantdata-profit_ctr itab_ext-prctr.    "利润中心
        it_plantdatax-serno_prof =  'X'.
        it_plantdatax-profit_ctr 'X'.
      ENDIF.
*9工厂数据/存储录入
      IF itab_ext-lgort <> ''.
        it_head-storage_view 'X'.       "存储视图
        it_storagelocationdata-plant itab_ext-werks.       "工厂
        it_storagelocationdata-stge_loc itab_ext-lgort.    "库存地点
        it_storagelocationdata-stge_bin itab_ext-lgpbe.    "仓位_A
        it_storagelocationdatax-plant itab_ext-werks.
        it_storagelocationdatax-stge_loc itab_ext-lgort.
        it_storagelocationdatax-stge_bin 'X'.
      ENDIF.

      IF itab_ext-sernp <> ''.
        it_head-storage_view 'X'.       "存储视图
        it_plantdata-serno_prof itab_ext-sernp.            "序列号参数文件
        it_plantdatax-serno_prof 'X'.
      ENDIF.
      IF itab_ext-prctr <> ''.
        it_head-storage_view 'X'.       "存储视图
        it_plantdata-profit_ctr itab_ext-prctr.    "利润中心
        it_plantdatax-profit_ctr 'X'.
      ELSEIF itab_ext-prctr ''.
        it_head-storage_view 'X'.       "存储视图
        it_plantdata-profit_ctr '0000209001'.
        it_plantdatax-profit_ctr 'X'.
      ENDIF.
**会计录入
      IF itab_ext-bklas <> ''.
        it_head-account_view 'X'.       "会计视图
        it_valuationdata-val_class itab_ext-bklas.    "评估类
        it_valuationdata-price_unit itab_ext-peinh.   "价格单位
        it_valuationdata-std_price itab_ext-stprs_1.    "标准价


        it_valuationdatax-val_class  'X'.
        it_valuationdatax-price_unit 'X'.
        it_valuationdatax-std_price  'X'.
      ENDIF.
*成本录入
      it_head-cost_view 'X'.          "成本视图
      it_plantdata-variance_key itab_ext-awsls.      "差异码A
      it_valuationdata-orig_mat itab_ext-hkmat.      "物料来源
      it_plantdatax-variance_key 'X'.
      it_valuationdatax-orig_mat 'X'.
    ENDIF.
*调用函数,保存数据
    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata             it_head
        clientdata           it_clinetdata
        clientdatax          it_clinetdatax
        salesdata            it_salesdata
        salesdatax           it_salesdatax
        plantdata            it_plantdata
        plantdatax           it_plantdatax
        storagelocationdata  it_storagelocationdata
        storagelocationdatax it_storagelocationdatax
        valuationdata        it_valuationdata
        valuationdatax       it_valuationdatax
      IMPORTING
        return               it_bapiret2
      TABLES
        taxclassifications   it_mlan.

    IF  it_bapiret2-type CA 'EA'.
      SUPPRESS DIALOG.
      WRITE: /'添加物料信息出错!物料号为:',it_matnr1,it_bapiret2-message.
      CONCATENATE '添加物料信息出错!物料号为:'  it_matnr1 ';' it_bapiret2-message INTO it_error-message.
    ELSE.
      COMMIT WORK.
      SUPPRESS DIALOG.
      IF itab_ext-zpslx '' OR itab_ext-zpslx '1' OR itab_ext-zpslx '2' OR itab_ext-zpslx '3' ).
*        UPDATE marc SET zpslx = itab_ext-zpslx
*             WHERE matnr = itab_ext-matnr AND
*                   werks = itab_ext-werks .
      ENDIF.
      WRITE: /'物料已成功导入!物料号为:',it_matnr1.
*          LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0101.
      CONCATENATE '物料已成功导入!物料号为:' it_matnr1 INTO it_error-message.
    ENDIF.
    APPEND it_error.
  ENDLOOP.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值