调用BAPI_MATERIAL_SAVEDATA批量创建/修改物料
生活随笔
收集整理的這篇文章主要介紹了
调用BAPI_MATERIAL_SAVEDATA批量创建/修改物料
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
report??ytest_savemat.
data:?headdata????????????????type?bapimathead,?????"表頭數據
??????clientdata??????????????type?bapi_mara,???????"基本數據
??????clientdatax?????????????type?bapi_marax.
data:?materialdescription?type?table?of?bapi_makt?with?header?line."描述
data:?unitsofmeasure?type?table?of?bapi_marm?with?header?line."
data:?unitsofmeasurex?type?table?of?bapi_marmx?with?header?line."
??data?pr_unit?type?meins."基本單位
??data?pr_unit2?type?meins."重量單位
??data?return?type?bapiret2.
data:?begin?of?msg?occurs?0,
material?type?matnr,
description?type?maktx,
message(97)?type?c,
end?of?msg.
data:begin?of?itab?occurs?0,
??head_material?type?matnr,"物料號
??head_ind_sector?type?mbrsh,"行業領域
??head_matl_type?type?mtart,"物料類型
??t_makt_matl_desc?type?maktx,"物料描述
??mara_base_uom?type?meins,"基本計量單位
??mara_matl_group?type?matkl,"物料組
??t_old_mat_no?type?bismt,"型號
??mara_division?type?spart,"產品組
??t_dsn_office?type?labor,"實驗室/辦公室
??mara_item_cat?type?mtpos_mara,"普通項目組類別
??t_marm_gross_wt?type?brgew,"毛重
??mara_unit_of_wt?type?gewei,"重量單位
??mara_net_weight?type?ntgew,"凈重
??mara_size_dim?type?groes,"大小/量綱
end?of?itab.
data?itab1?type?itab?occurs?0?with?header?line.
perform?putdata.
perform?run.
form?run.
loop?at?itab.
??clear?headdata.
??headdata-material???????=?itab-head_material.
??headdata-matl_type??????=?itab-head_matl_type.
??headdata-ind_sector?????=?itab-head_ind_sector.
??headdata-basic_view?????=?'X'.??"基本數據視圖
??clear?pr_unit.
??clear?pr_unit2.
??perform?frm_unit?using?itab-mara_base_uom?changing?pr_unit."基本單位
??perform?frm_unit?using?itab-mara_unit_of_wt?changing?pr_unit2."重量單位
??clear?clientdata.
??clientdata-base_uom?=?pr_unit."基本計量單位
??clientdata-matl_group?=?itab-mara_matl_group."物料組
??clientdata-old_mat_no?=?itab-t_old_mat_no."型號
??clientdata-division?=?itab-mara_division."產品組
??clientdata-dsn_office?=?itab-t_dsn_office."實驗室/辦公室
??clientdata-item_cat?=?itab-mara_item_cat."普通項目組類別
??clientdata-unit_of_wt?=?pr_unit2."重量單位
??clientdata-net_weight?=?itab-mara_net_weight."凈重
??clientdata-size_dim?=?itab-mara_size_dim."大小/量綱
??"bapi_mara?的復選框結構
??clear?clientdatax.
??clientdatax-base_uom?=?'X'."基本計量單位
??clientdatax-matl_group?=?'X'."物料組
??clientdatax-old_mat_no?=?'X'."型號
??clientdatax-division?=?'X'."產品組
??clientdatax-dsn_office?=?'X'."實驗室/辦公室
??clientdatax-item_cat?=?'X'."普通項目組類別
??clientdatax-unit_of_wt?=?'X'."重量單位
??clientdatax-net_weight?=?'X'."凈重
??clientdatax-size_dim?=?'X'."大小/量綱
??"計量單位
??unitsofmeasure-alt_unit?=?pr_unit.????"替換單位(必須為基本計量單位,否則會報錯,說沒有轉換因子什么的)
??unitsofmeasure-numerator?=?1.????"分子
??unitsofmeasure-denominatr?=?1.????"分母
??unitsofmeasure-gross_wt?=?itab-t_marm_gross_wt."毛重
??unitsofmeasure-unit_of_wt?=?pr_unit2."需要填充毛重的話,注意此處需要添加重量單位,否則會一直提示你沒有指定單位
??append?unitsofmeasure.
??clear?unitsofmeasure.
??unitsofmeasurex-alt_unit?=?pr_unit."注意此處不是填充'X'
??unitsofmeasurex-numerator?=?'X'.
??unitsofmeasurex-denominatr?=?'X'.
??unitsofmeasurex-gross_wt?=?'X'.
??unitsofmeasurex-unit_of_wt?=?'X'."此處填充'X'
??if?unitsofmeasurex-alt_unit?is?not?initial?and?unitsofmeasurex-numerator?is?not?initial?and?unitsofmeasurex-denominatr?is?not?initial.
????append?unitsofmeasurex.
??endif.
??clear?unitsofmeasurex.
??"物料描述
??clear?materialdescription[].
??materialdescription-langu_iso?=?'ZH'.
??materialdescription-matl_desc?=?itab-t_makt_matl_desc.
??append?materialdescription.
??clear?return.
????call?function?'BAPI_MATERIAL_SAVEDATA'
??????exporting
????????headdata????????????=?headdata
????????clientdata??????????=?clientdata
????????clientdatax?????????=?clientdatax
??????importing
????????return??????????????=?return
??????tables
????????materialdescription?=?materialdescription[]
????????unitsofmeasure?=?unitsofmeasure[]
????????unitsofmeasurex?=?unitsofmeasurex[].
????if?return-type?ne?'E'.
??????call?function?'BAPI_TRANSACTION_COMMIT'
??????exporting
????????wait??????????=?'X'?.
????else.
??????call?function?'bapi_transaction_rollback'.
????endif.
endloop.
write?:?return-type,return-message.
endform.
form?putdata.
??itab-head_material?=?'10101010105'.
??itab-head_ind_sector?=?'M'.
??itab-head_matl_type?=?'zroh'.
??itab-mara_base_uom?=?'個'."基本計量單位
??itab-mara_matl_group?=?'10235'."物料組
??itab-t_old_mat_no?=?'testbapi05'."型號
??itab-mara_division?=?'00'."產品組
??itab-t_dsn_office?=?'001'."實驗室/辦公室
??itab-mara_item_cat?=?'NORM'."普通項目組類別
??itab-mara_net_weight?=?2."凈重
*??itab-mara_normt?=?''."行業標準描述
??itab-mara_size_dim?=?'2*3'."大小/量綱
??itab-t_marm_gross_wt?=?22?/?10."毛重
??itab-mara_unit_of_wt?=?'KG'."重量單位
??itab-t_makt_matl_desc?=?'test?mat?0005'.
????call?function?'CONVERSION_EXIT_ALPHA_INPUT'"
??????exporting
????????input??=?itab-head_material
??????importing
????????output?=?itab-head_material.
??append?itab.
endform.
*獲取基本計量單位內碼
form?frm_unit?using?unit1?changing?unit2.
??call?function?'CONVERSION_EXIT_CUNIT_INPUT'
????exporting??????input??????????=?unit1
???????????????????language???????=?sy-langu
????importing??????output?????????=?unit2
????exceptions??????unit_not_found?=?1
????others?????????=?2.
??if?sy-subrc?<>?0.
*???message?id?sy-msgid?type?sy-msgty?number?sy-msgno
*???????????with?sy-msgv1?sy-msgv2?sy-msgv3?sy-msgv4.
??endif.
endform.????????????????????"frm_unit?
data:?headdata????????????????type?bapimathead,?????"表頭數據
??????clientdata??????????????type?bapi_mara,???????"基本數據
??????clientdatax?????????????type?bapi_marax.
data:?materialdescription?type?table?of?bapi_makt?with?header?line."描述
data:?unitsofmeasure?type?table?of?bapi_marm?with?header?line."
data:?unitsofmeasurex?type?table?of?bapi_marmx?with?header?line."
??data?pr_unit?type?meins."基本單位
??data?pr_unit2?type?meins."重量單位
??data?return?type?bapiret2.
data:?begin?of?msg?occurs?0,
material?type?matnr,
description?type?maktx,
message(97)?type?c,
end?of?msg.
data:begin?of?itab?occurs?0,
??head_material?type?matnr,"物料號
??head_ind_sector?type?mbrsh,"行業領域
??head_matl_type?type?mtart,"物料類型
??t_makt_matl_desc?type?maktx,"物料描述
??mara_base_uom?type?meins,"基本計量單位
??mara_matl_group?type?matkl,"物料組
??t_old_mat_no?type?bismt,"型號
??mara_division?type?spart,"產品組
??t_dsn_office?type?labor,"實驗室/辦公室
??mara_item_cat?type?mtpos_mara,"普通項目組類別
??t_marm_gross_wt?type?brgew,"毛重
??mara_unit_of_wt?type?gewei,"重量單位
??mara_net_weight?type?ntgew,"凈重
??mara_size_dim?type?groes,"大小/量綱
end?of?itab.
data?itab1?type?itab?occurs?0?with?header?line.
perform?putdata.
perform?run.
form?run.
loop?at?itab.
??clear?headdata.
??headdata-material???????=?itab-head_material.
??headdata-matl_type??????=?itab-head_matl_type.
??headdata-ind_sector?????=?itab-head_ind_sector.
??headdata-basic_view?????=?'X'.??"基本數據視圖
??clear?pr_unit.
??clear?pr_unit2.
??perform?frm_unit?using?itab-mara_base_uom?changing?pr_unit."基本單位
??perform?frm_unit?using?itab-mara_unit_of_wt?changing?pr_unit2."重量單位
??clear?clientdata.
??clientdata-base_uom?=?pr_unit."基本計量單位
??clientdata-matl_group?=?itab-mara_matl_group."物料組
??clientdata-old_mat_no?=?itab-t_old_mat_no."型號
??clientdata-division?=?itab-mara_division."產品組
??clientdata-dsn_office?=?itab-t_dsn_office."實驗室/辦公室
??clientdata-item_cat?=?itab-mara_item_cat."普通項目組類別
??clientdata-unit_of_wt?=?pr_unit2."重量單位
??clientdata-net_weight?=?itab-mara_net_weight."凈重
??clientdata-size_dim?=?itab-mara_size_dim."大小/量綱
??"bapi_mara?的復選框結構
??clear?clientdatax.
??clientdatax-base_uom?=?'X'."基本計量單位
??clientdatax-matl_group?=?'X'."物料組
??clientdatax-old_mat_no?=?'X'."型號
??clientdatax-division?=?'X'."產品組
??clientdatax-dsn_office?=?'X'."實驗室/辦公室
??clientdatax-item_cat?=?'X'."普通項目組類別
??clientdatax-unit_of_wt?=?'X'."重量單位
??clientdatax-net_weight?=?'X'."凈重
??clientdatax-size_dim?=?'X'."大小/量綱
??"計量單位
??unitsofmeasure-alt_unit?=?pr_unit.????"替換單位(必須為基本計量單位,否則會報錯,說沒有轉換因子什么的)
??unitsofmeasure-numerator?=?1.????"分子
??unitsofmeasure-denominatr?=?1.????"分母
??unitsofmeasure-gross_wt?=?itab-t_marm_gross_wt."毛重
??unitsofmeasure-unit_of_wt?=?pr_unit2."需要填充毛重的話,注意此處需要添加重量單位,否則會一直提示你沒有指定單位
??append?unitsofmeasure.
??clear?unitsofmeasure.
??unitsofmeasurex-alt_unit?=?pr_unit."注意此處不是填充'X'
??unitsofmeasurex-numerator?=?'X'.
??unitsofmeasurex-denominatr?=?'X'.
??unitsofmeasurex-gross_wt?=?'X'.
??unitsofmeasurex-unit_of_wt?=?'X'."此處填充'X'
??if?unitsofmeasurex-alt_unit?is?not?initial?and?unitsofmeasurex-numerator?is?not?initial?and?unitsofmeasurex-denominatr?is?not?initial.
????append?unitsofmeasurex.
??endif.
??clear?unitsofmeasurex.
??"物料描述
??clear?materialdescription[].
??materialdescription-langu_iso?=?'ZH'.
??materialdescription-matl_desc?=?itab-t_makt_matl_desc.
??append?materialdescription.
??clear?return.
????call?function?'BAPI_MATERIAL_SAVEDATA'
??????exporting
????????headdata????????????=?headdata
????????clientdata??????????=?clientdata
????????clientdatax?????????=?clientdatax
??????importing
????????return??????????????=?return
??????tables
????????materialdescription?=?materialdescription[]
????????unitsofmeasure?=?unitsofmeasure[]
????????unitsofmeasurex?=?unitsofmeasurex[].
????if?return-type?ne?'E'.
??????call?function?'BAPI_TRANSACTION_COMMIT'
??????exporting
????????wait??????????=?'X'?.
????else.
??????call?function?'bapi_transaction_rollback'.
????endif.
endloop.
write?:?return-type,return-message.
endform.
form?putdata.
??itab-head_material?=?'10101010105'.
??itab-head_ind_sector?=?'M'.
??itab-head_matl_type?=?'zroh'.
??itab-mara_base_uom?=?'個'."基本計量單位
??itab-mara_matl_group?=?'10235'."物料組
??itab-t_old_mat_no?=?'testbapi05'."型號
??itab-mara_division?=?'00'."產品組
??itab-t_dsn_office?=?'001'."實驗室/辦公室
??itab-mara_item_cat?=?'NORM'."普通項目組類別
??itab-mara_net_weight?=?2."凈重
*??itab-mara_normt?=?''."行業標準描述
??itab-mara_size_dim?=?'2*3'."大小/量綱
??itab-t_marm_gross_wt?=?22?/?10."毛重
??itab-mara_unit_of_wt?=?'KG'."重量單位
??itab-t_makt_matl_desc?=?'test?mat?0005'.
????call?function?'CONVERSION_EXIT_ALPHA_INPUT'"
??????exporting
????????input??=?itab-head_material
??????importing
????????output?=?itab-head_material.
??append?itab.
endform.
*獲取基本計量單位內碼
form?frm_unit?using?unit1?changing?unit2.
??call?function?'CONVERSION_EXIT_CUNIT_INPUT'
????exporting??????input??????????=?unit1
???????????????????language???????=?sy-langu
????importing??????output?????????=?unit2
????exceptions??????unit_not_found?=?1
????others?????????=?2.
??if?sy-subrc?<>?0.
*???message?id?sy-msgid?type?sy-msgty?number?sy-msgno
*???????????with?sy-msgv1?sy-msgv2?sy-msgv3?sy-msgv4.
??endif.
endform.????????????????????"frm_unit?
總結
以上是生活随笔為你收集整理的调用BAPI_MATERIAL_SAVEDATA批量创建/修改物料的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谢霆锋音乐收藏
- 下一篇: M8100-Table T169P: e