**清空内表
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.