物料主数据的创建 (BAPI_MATERIAL_MAINTAINDATA_RT)

 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.

猜你喜欢

转载自blog.csdn.net/qq_16116183/article/details/83184082