DATA: c_matnr LIKE mara-matnr,
c_meins like mara-meins,
wa_head TYPE bapie1mathead,
it_materialdescription LIKE TABLE OF bapie1maktrt WITH HEADER LINE,
wa_materialdescription LIKE bapie1maktrt,
it_addnlclientdata LIKE TABLE OF bapie1maw1rt WITH HEADER LINE,
wa_addnlclientdata LIKE bapie1maw1rt,
it_addnlclientdatax LIKE TABLE OF bapie1maw1rtx WITH HEADER LINE,
wa_addnlclientdatax LIKE bapie1maw1rtx,
it_clientdata LIKE TABLE OF bapie1marart WITH HEADER LINE,
wa_clientdata LIKE bapie1marart,
it_clientdatax LIKE TABLE OF bapie1marartx WITH HEADER LINE,
wa_clientdatax LIKE bapie1marartx,
it_plantdata LIKE TABLE OF bapie1marcrt WITH HEADER LINE,
wa_plantdata LIKE bapie1marcrt,
it_plantdatax LIKE TABLE OF bapie1marcrtx WITH HEADER LINE,
wa_plantdatax LIKE bapie1marcrtx,
it_unitsofmeasure LIKE TABLE OF bapie1marmrt WITH HEADER LINE,
wa_unitsofmeasure LIKE bapie1marmrt,
it_unitsofmeasurex LIKE TABLE OF bapie1marmrtx WITH HEADER LINE,
wa_unitsofmeasurex LIKE bapie1marmrtx,
* it_return LIKE TABLE OF bapireturn1 WITH HEADER LINE,
wa_return LIKE bapireturn1.
CLEAR:wa_head,it_clientdata[],it_addnlclientdata[],it_materialdescription[],
it_plantdata[],wa_return.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = '1001200'
IMPORTING
output = c_matnr.
"单位转换
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
input = '盒'
language = sy-langu
IMPORTING
output = c_meins
EXCEPTIONS
unit_not_found = 1
OTHERS = 2.
wa_head-function = '009'.
wa_head-material = c_matnr.
wa_head-matl_type = 'J001'.
wa_head-matl_group = '100108'.
wa_head-matl_cat = '00'.
wa_head-basic_view = 'X'.
wa_head-list_view = 'X'.
* wa_head-logdc_view = 'X'.
* wa_head-logst_view = 'X'.
* wa_head-sales_view = 'X'.
"MATERIALDESCRIPTION
wa_materialdescription-function = '009'.
wa_materialdescription-material = c_matnr.
wa_materialdescription-langu = '1'.
wa_materialdescription-matl_desc = '安必仙 氨苄西林胶囊-90'.
APPEND wa_materialdescription TO it_materialdescription.
"ADDNLCLIENTDATA
wa_addnlclientdata-function = '009'.
wa_addnlclientdata-material = c_matnr.
wa_addnlclientdata-val_class = '7900'.
wa_addnlclientdata-loadinggrp = '0001'.
wa_addnlclientdata-repl_list = '1'.
wa_addnlclientdata-li_proc_st = '02'.
wa_addnlclientdata-li_proc_dc = '02'.
APPEND wa_addnlclientdata TO it_addnlclientdata.
wa_addnlclientdatax-function = '009'.
wa_addnlclientdatax-material = c_matnr.
wa_addnlclientdatax-loadinggrp = 'X'.
wa_addnlclientdatax-val_class = 'X'.
wa_addnlclientdatax-li_proc_st = 'X'.
wa_addnlclientdatax-li_proc_dc = 'X'.
wa_addnlclientdatax-repl_list = 'X'.
APPEND wa_addnlclientdatax TO it_addnlclientdatax.
"CLIENTDATA
wa_clientdata-function = '009'.
wa_clientdata-material = c_matnr.
wa_clientdata-old_mat_no = '旧-氨苄西林胶囊-90'.
wa_clientdata-base_uom = c_meins.
wa_clientdata-tax_class = '1'.
wa_clientdata-batch_mgmt = 'X'.
wa_clientdata-proc_rule = '1'.
wa_clientdata-item_cat = 'NORM'.
APPEND wa_clientdata TO it_clientdata.
wa_clientdatax-function = '009'.
wa_clientdatax-material = c_matnr.
wa_clientdatax-old_mat_no = 'X'.
wa_clientdatax-base_uom = 'X'.
wa_clientdatax-tax_class = 'X'.
wa_clientdatax-batch_mgmt = 'X'.
wa_clientdatax-proc_rule = 'X'.
wa_clientdatax-item_cat = 'X'.
APPEND wa_clientdatax TO it_clientdatax.
"PLANTDATA "9998和9999必须要加的 不然报错且只能是这2个
wa_plantdata-function = '009'.
wa_plantdata-material = c_matnr.
wa_plantdata-plant = '9998'.
wa_plantdata-batch_mgmt = 'X'.
* wa_plantdata-period_ind = ''.
wa_plantdata-loadinggrp = '0001'.
wa_plantdata-mrp_type = 'ND'.
wa_plantdata-availcheck = '02'.
wa_plantdata-pur_group = 'Y01'.
wa_plantdata-proc_type = 'X'.
APPEND wa_plantdata TO it_plantdata.
wa_plantdatax-function = '009'.
wa_plantdatax-material = c_matnr.
wa_plantdatax-plant = '9998'.
wa_plantdatax-mrp_type = 'X'.
* wa_plantdatax-period_ind = 'X'.
wa_plantdatax-batch_mgmt = 'X'.
wa_plantdatax-loadinggrp = 'X'.
wa_plantdatax-mrp_type = 'X'.
wa_plantdatax-availcheck = 'X'.
wa_plantdatax-pur_group = 'X'.
wa_plantdatax-proc_type = 'X'.
APPEND wa_plantdatax TO it_plantdatax.
"PLANTDATA
wa_plantdata-function = '009'.
wa_plantdata-material = c_matnr.
wa_plantdata-plant = '9999'.
wa_plantdata-batch_mgmt = 'X'.
* wa_plantdata-period_ind = ''.
wa_plantdata-loadinggrp = '0001'.
wa_plantdata-mrp_type = 'ND'.
wa_plantdata-availcheck = '02'.
wa_plantdata-pur_group = 'Y02'.
wa_plantdata-proc_type = 'X'.
APPEND wa_plantdata TO it_plantdata.
wa_plantdatax-function = '009'.
wa_plantdatax-material = c_matnr.
wa_plantdatax-plant = '9999'.
wa_plantdatax-mrp_type = 'X'.
* wa_plantdatax-period_ind = 'X'.
wa_plantdatax-batch_mgmt = 'X'.
wa_plantdatax-loadinggrp = 'X'.
wa_plantdatax-mrp_type = 'X'.
wa_plantdatax-availcheck = 'X'.
wa_plantdatax-pur_group = 'X'.
wa_plantdatax-proc_type = 'X'.
APPEND wa_plantdatax TO it_plantdatax.
"
wa_unitsofmeasure-function = '009'.
wa_unitsofmeasure-material = c_matnr.
wa_unitsofmeasure-gross_wt = '1.1'.
wa_unitsofmeasure-alt_unit = c_meins.
* wa_unitsofmeasure-alt_unit_iso = c_meins.
* wa_unitsofmeasure-unit = c_meins.
wa_unitsofmeasure-unit_of_wt = 'KG'.
wa_unitsofmeasure-length = '12'.
wa_unitsofmeasure-numerator = '1'.
wa_unitsofmeasure-denominatr = '1'.
wa_unitsofmeasure-width = '13'.
wa_unitsofmeasure-height = '11'.
wa_unitsofmeasure-unit_dim = 'CM'.
APPEND wa_unitsofmeasure TO it_unitsofmeasure.
wa_unitsofmeasurex-function = '009'.
wa_unitsofmeasurex-material = c_matnr.
wa_unitsofmeasurex-alt_unit = c_meins.
* wa_unitsofmeasurex-alt_unit_iso = c_meins.
wa_unitsofmeasurex-gross_wt = 'X'.
wa_unitsofmeasurex-unit_of_wt = 'X'.
wa_unitsofmeasurex-numerator = 'X'.
wa_unitsofmeasurex-denominatr = 'X'.
wa_unitsofmeasurex-length = 'X'.
wa_unitsofmeasurex-width = 'X'.
wa_unitsofmeasurex-height = 'X'.
wa_unitsofmeasurex-unit_dim = 'X'.
APPEND wa_unitsofmeasurex TO it_unitsofmeasurex.
CALL FUNCTION 'BAPI_MATERIAL_MAINTAINDATA_RT'
EXPORTING
headdata = wa_head
IMPORTING
return = wa_return
TABLES
clientdata = it_clientdata
clientdatax = it_clientdatax
addnlclientdata = it_addnlclientdata
addnlclientdatax = it_addnlclientdatax
materialdescription = it_materialdescription
plantdata = it_plantdata
plantdatax = it_plantdatax
* salesdata = it_salesdata
* salesdatax = it_salesdatax
unitsofmeasure = it_unitsofmeasure
unitsofmeasurex = it_unitsofmeasurex.
IF wa_return-type = 'E'.
* WRITE:wa_return-id, wa_return-number,wa_return-message.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
INTO DATA(mtext)
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WRITE:mtext.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
WRITE: c_matnr.
ENDIF.