MAKTX Material Master

Hi,
I am trying to find the datasource in RSA5 for MATERIAL MASTER ( MAKTX) for a Production Price Variance report. Could any one tell me where i can find it and which one it is?
Thanks

what are they under, bec they dont seem to be under:
MM----MM-IO?
Thanks

Similar Messages

  • Material Master BDC recording

    hi gurus,
    i am trying to do a material master creation using BDC recording,
    i am new i dont know how to modify the code,
    the following is the code, please let me know how to make changes.
    report ZTEST95
           no standard page heading line-size 255.
    include bdcrecx1.
    parameters: dataset(132) lower case default
                                  'C:\Documents and Settings\Deskt'
                                & 'op\test95.txt'.
       DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
      If it is nessesary to change the data section use the rules:
      1.) Each definition of a field exists of two lines
      2.) The first line shows exactly the comment
          '* data element: ' followed with the data element
          which describes the field.
          If you don't have a data element use the
          comment without a data element name
      3.) The second line shows the fieldname of the
          structure, the fieldname must consist of
          a fieldname and optional the character '_' and
          three numbers and the field length in brackets
      4.) Each field must be type C.
    Generated data section with specific formatting - DO NOT CHANGE  ***
    data: begin of record,
    data element: MATNR
            MATNR_001(040),
    data element: MBRSH
            MBRSH_002(001),
    data element: MTART
            MTART_003(004),
    data element: REF_MATNR
            MATNR_004(040),
    data element: XFELD
            KZSEL_01_005(001),
    data element: MAKTX
            MAKTX_006(040),
    data element: MEINS
            MEINS_007(003),
    data element: MATKL
            MATKL_008(009),
    data element: SPART
            SPART_009(002),
    data element: MTPOS_MARA
            MTPOS_MARA_010(004),
    data element: BRGEW
            BRGEW_011(017),
    data element: GEWEI
            GEWEI_012(003),
    data element: NTGEW
            NTGEW_013(017),
          end of record.
    End generated data section ***
    start-of-selection.
    perform open_dataset using dataset.
    perform open_group.
    do.
    read dataset dataset into record.
    if sy-subrc <> 0. exit. endif.
    perform bdc_dynpro      using 'SAPLMGMM' '0060'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MATNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'RMMG1-MATNR'
                                  record-MATNR_001.
    perform bdc_field       using 'RMMG1-MBRSH'
                                  record-MBRSH_002.
    perform bdc_field       using 'RMMG1-MTART'
                                  record-MTART_003.
    perform bdc_field       using 'RMMG1_REF-MATNR'
                                  record-MATNR_004.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(01)'
                                  record-KZSEL_01_005.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-MAKTX_006.
    perform bdc_field       using 'MARA-MEINS'
                                  record-MEINS_007.
    perform bdc_field       using 'MARA-MATKL'
                                  record-MATKL_008.
    perform bdc_field       using 'MARA-SPART'
                                  record-SPART_009.
    perform bdc_field       using 'MARA-MTPOS_MARA'
                                  record-MTPOS_MARA_010.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARA-BRGEW'.
    perform bdc_field       using 'MARA-BRGEW'
                                  record-BRGEW_011.
    perform bdc_field       using 'MARA-GEWEI'
                                  record-GEWEI_012.
    perform bdc_field       using 'MARA-NTGEW'
                                  record-NTGEW_013.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    perform bdc_transaction using 'MM01'.
    enddo.
    perform close_group.
    perform close_dataset using dataset.
    thanks.

    Hi,
    It is better if the Material Master creation step is done by LSMW - Direct Input method with the following object:
    Object               0020   Material master
    Method               0000                 
    Program name         RMDATIND             
    Program type         D   Direct input
    Check the program documentation for more details.
    For a sample data file generation ( Sequential file ),  check the program RMDATGEN
    If the reqmt., is for a repetetive loading of Material Master you could schedule / execute the LSMW by following program: /SAPDMC/SAP_LSMW_INTERFACE.
    Hope this helps.
    Best Regards, Murugesh

  • Creation of a Material Master

    Hi guys,
        Can any one help me in creating a Material master
        pls do send me the steps that are involved in
        creating a Material master
    Thanku
    Jino

    Check the BAPI BAPI_MATERIAL_SAVEDATA
    Check the below sample code.
    REPORT YGECICI MESSAGE-ID 00
    No Standard Page Heading
    Line-Size 200
    Line-Count 65.
    *TO CREATE MATERIAL USING BAPI.
    STRUCTURE DECLARATIONS *
    TABLES: BAPIMATHEAD, “Headerdata
    BAPI_MARA, “Clientdata
    BAPI_MARAX, “Clientdatax
    BAPI_MARC, “Plantdata
    BAPI_MARCX, “Plantdatax
    BAPI_MAKT, “Material description
    BAPI_MBEW, “VALUATION DATA
    BAPI_MBEWX,
    BAPI_MARM,
    BAPI_MARMX,
    bapi_mean,
    BAPIRET2. “Return messages
    DATA:V_FILE TYPE STRING. “input data file
    DATA:
    BEGIN OF LSMW_MATERIAL_MASTER,
    MATNR(018) TYPE C, “Material number
    MTART(004) TYPE C, “Material type
    MBRSH(001) TYPE C, “Industry sector
    WERKS(004) TYPE C, “Plant
    MAKTX(040) TYPE C, “Material description
    DISMM(002) TYPE C, “Extra Field Added In the Program as itsrequired
    MEINS(003) TYPE C, “Base unit of measure
    MATKL(009) TYPE C, “Material group
    SPART(002) TYPE C, “Division
    LABOR(003) TYPE C, “Lab/office
    PRDHA(018) TYPE C, “Product hierarchy
    MSTAE(002) TYPE C, “X-plant matl status
    MTPOS_MARA(004) TYPE C, “Gen item cat group
    BRGEW(017) TYPE C, “Gross weight
    GEWEI(003) TYPE C, “Weight unit
    NTGEW(017) TYPE C, “Net weight
    GROES(032) TYPE C, “Size/Dimensions
    MAGRV(004) TYPE C, “Matl grp pack matls
    BISMT(018) TYPE C, “Old material number
    WRKST(048) TYPE C, “Basic material
    PROFL(003) TYPE C, “DG indicator profile
    KZUMW(001) TYPE C, “Environmentally rlvt
    BSTME(003) TYPE C, “Order unit
    VABME(001) TYPE C,
    EKGRP(003) TYPE C, “Purchasing group
    XCHPF(001) TYPE C, “Batch management
    EKWSL(004) TYPE C, “Purchasing key value
    WEBAZ(003) TYPE C, “GR processing time
    MFRPN(040) TYPE C, “Manufacturer part number
    MFRNR(010) TYPE C, “Manufacturer number
    VPRSV(001) TYPE C, “Price control indicator
    STPRS(015) TYPE C, “Standard price
    BWPRH(014) TYPE C, “Commercial price1
    BKLAS(004) TYPE C, “Valuation class
    bwkey(004) type c,
    END OF LSMW_MATERIAL_MASTER.
    INTERNAL TABLE DECLARATIONS *
    *to store the input data
    DATA:
    BEGIN OF it_matmaster OCCURS 0.
    INCLUDE STRUCTURE LSMW_MATERIAL_MASTER.
    DATA:
    END OF it_matmaster.
    *for material description
    DATA:BEGIN OF IT_MATERIALDESC OCCURS 0.
    INCLUDE STRUCTURE BAPI_MAKT .
    DATA:END OF IT_MATERIALDESC.
    *FOR gross wt
    data: begin of it_uom occurs 0.
    include structure BAPI_MARM.
    data:end of it_uom.
    DATA: BEGIN OF IT_UOMX OCCURS 0.
    INCLUDE STRUCTURE BAPI_MARMX.
    DATA:END OF IT_UOMX.
    data:begin of it_mean occurs 0.
    include structure bapi_mean.
    data:end of it_mean.
    DATA:BEGIN OF IT_MLTX OCCURS 0.
    INCLUDE STRUCTURE BAPI_MLTX.
    DATA:END OF IT_MLTX.
    *to return messages
    DATA:BEGIN OF IT_RETURN OCCURS 0.
    INCLUDE STRUCTURE BAPIRET2.
    DATA:END OF IT_RETURN.
    SELECTION SCREEN *
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.
    PARAMETERS:P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1 .
    AT SELECTION SCREEN *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    CALL FUNCTION ‘F4_FILENAME’
    EXPORTING
    PROGRAM_NAME = SYST-CPROG
    DYNPRO_NUMBER = SYST-DYNNR
    FIELD_NAME = ‘P_FILE’
    IMPORTING
    FILE_NAME = P_FILE.
    TO UPLOAD THE DATA *
    START-OF-SELECTION.
    V_FILE = P_FILE.
    CALL FUNCTION ‘GUI_UPLOAD’
    EXPORTING
    filename = V_FILE
    FILETYPE = ‘ASC’
    HAS_FIELD_SEPARATOR = ‘X’
    HEADER_LENGTH = 0
    READ_BY_LINE = ‘X’
    DAT_MODE = ‘ ‘
    IMPORTING
    FILELENGTH =
    HEADER =
    tables
    data_tab = IT_MATMASTER
    EXCEPTIONS
    FILE_OPEN_ERROR = 1
    FILE_READ_ERROR = 2
    NO_BATCH = 3
    GUI_REFUSE_FILETRANSFER = 4
    INVALID_TYPE = 5
    NO_AUTHORITY = 6
    UNKNOWN_ERROR = 7
    BAD_DATA_FORMAT = 8
    HEADER_NOT_ALLOWED = 9
    SEPARATOR_NOT_ALLOWED = 10
    HEADER_TOO_LONG = 11
    UNKNOWN_DP_ERROR = 12
    ACCESS_DENIED = 13
    DP_OUT_OF_MEMORY = 14
    DISK_FULL = 15
    DP_TIMEOUT = 16
    OTHERS = 17
    IF sy-subrc 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *ELSE.
    *DELETE IT_MATMASTER INDEX 1.
    ENDIF.
    DATA POPULATIONS *
    LOOP AT IT_MATMASTER.
    *HEADER DATA
    BAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
    BAPIMATHEAD-IND_SECTOR = IT_MATMASTER-Mbrsh.
    BAPIMATHEAD-MATL_TYPE = IT_MATMASTER-Mtart.
    BAPIMATHEAD-BASIC_VIEW = ‘X’.
    BAPIMATHEAD-PURCHASE_VIEW = ‘X’.
    BAPIMATHEAD-ACCOUNT_VIEW = ‘X’.
    *CLIENTDATA
    BAPI_MARA-MATL_GROUP = IT_MATMASTER-MATKL.
    BAPI_MARA-DIVISION = IT_MATMASTER-SPART.
    BAPI_MARA-DSN_OFFICE = IT_MATMASTER-LABOR.
    BAPI_MARA-PROD_HIER = IT_MATMASTER-PRDHA.
    BAPI_MARA-PUR_STATUS = IT_MATMASTER-MSTAE.
    BAPI_MARA-ITEM_CAT = IT_MATMASTER-MTPOS_MARA.
    BAPI_MARA-NET_WEIGHT = IT_MATMASTER-NTGEW.
    BAPI_MARA-PO_UNIT = ‘KG’.
    BAPI_MARA-UNIT_OF_WT_ISO = ‘KG’.
    BAPI_MARA-UNIT_OF_WT = ‘KG’.
    BAPI_MARA-PACK_VO_UN = ‘KG’.
    BAPI_MARA-BASE_UOM_ISO = ‘KG’.
    bapi_mara-size_dim = it_matmaster-groes.
    BAPI_MARA-MAT_GRP_SM = IT_MATMASTER-MAGRV.
    BAPI_MARA-OLD_MAT_NO = IT_MATMASTER-BISMT.
    BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
    BAPI_MARA-BASIC_MATL = IT_MATMASTER-WRKST.
    BAPI_MARA-HAZMATPROF = IT_MATMASTER-PROFL.
    BAPI_MARA-ENVT_RLVT = IT_MATMASTER-KZUMW.
    BAPI_MARA-PO_UNIT = IT_MATMASTER-BSTME.
    BAPI_MARA-VAR_ORD_UN = IT_MATMASTER-VABME.
    BAPI_MARA-PUR_VALKEY = IT_MATMASTER-EKWSL.
    BAPI_MARA-MANU_MAT = IT_MATMASTER-MFRPN.
    BAPI_MARA-MFR_NO = IT_MATMASTER-MFRNR.
    BAPI_MARAX-MATL_GROUP = ‘X’.
    BAPI_MARAX-DIVISION = ‘X’.
    BAPI_MARAX-DSN_OFFICE = ‘X’.
    BAPI_MARAX-PROD_HIER = ‘X’.
    BAPI_MARAX-PUR_STATUS = ‘X’.
    BAPI_MARAX-ITEM_CAT = ‘X’.
    BAPI_MARAX-NET_WEIGHT = ‘X’.
    BAPI_MARAX-UNIT_OF_WT = ‘X’.
    BAPI_MARAX-UNIT_OF_WT_ISO = ‘X’.
    bapi_maraX-size_dim = ‘X’.
    BAPI_MARAX-MAT_GRP_SM = ‘X’.
    BAPI_MARAX-OLD_MAT_NO = ‘X’.
    BAPI_MARAX-BASE_UOM = ‘X’.
    BAPI_MARAX-BASE_UOM_ISO = ‘X’.
    BAPI_MARAX-BASIC_MATL = ‘X’.
    BAPI_MARAX-MFR_NO = ‘X’.
    BAPI_MARAX-HAZMATPROF = ‘X’.
    BAPI_MARAX-ENVT_RLVT = ‘X’.
    BAPI_MARAX-PO_UNIT = ‘X’.
    BAPI_MARAX-PACK_VO_UN = ‘X’.
    BAPI_MARAX-VAR_ORD_UN = ‘X’.
    BAPI_MARAX-PUR_VALKEY = ‘X’.
    BAPI_MARAX-MANU_MAT = ‘X’.
    BAPI_MARAX-MFR_NO = ‘X’.
    *PLANT DATA
    BAPI_MARC-PLANT = IT_MATMASTER-WERKS.
    BAPI_MARC-PUR_GROUP = IT_MATMASTER-EKGRP.
    BAPI_MARC-BATCH_MGMT = IT_MATMASTER-XCHPF.
    BAPI_MARC-GR_PR_TIME = IT_MATMASTER-WEBAZ.
    BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.
    BAPI_MARCX-PUR_GROUP = ‘X’.
    BAPI_MARCX-BATCH_MGMT = ‘X’.
    BAPI_MARCX-GR_PR_TIME = ‘X’.
    *VALUATION DATA
    BAPI_MBEW-PRICE_CTRL = IT_MATMASTER-VPRSV.
    BAPI_MBEW-STD_PRICE = IT_MATMASTER-STPRS.
    BAPI_MBEW-COMMPRICE1 = IT_MATMASTER-BWPRH.
    BAPI_MBEW-VAL_AREA = IT_MATMASTER-BWKEY.
    BAPI_MBEW-VAL_CLASS = IT_MATMASTER-BKLAS.
    BAPI_MBEWX-PRICE_CTRL = ‘X’.
    BAPI_MBEWX-STD_PRICE = ‘X’.
    BAPI_MBEWX-COMMPRICE1 = ‘X’.
    BAPI_MBEWX-VAL_AREA = IT_MATMASTER-BWKEY.
    BAPI_MBEWX-VAL_CLASS = ‘X’.
    IT_MATERIALDESC-LANGU = ‘EN’.
    IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
    append IT_materialdesc.
    IT_UOM-GROSS_WT = IT_MATMASTER-BRGEW.
    IT_UOM-ALT_UNIT = ‘KG’.
    IT_UOM-ALT_UNIT_ISO = ‘KG’.
    IT_UOM-UNIT_OF_WT = IT_MATMASTER-GEWEI.
    APPEND IT_UOM.
    IT_UOMX-GROSS_WT = ‘X’.
    IT_UOMX-ALT_UNIT = ‘KG’.
    IT_UOMX-ALT_UNIT_ISO = ‘KG’.
    IT_UOMX-UNIT_OF_WT = ‘X’.
    APPEND IT_UOMX.
    it_mean-unit = ‘KD3&#8242;.
    append it_mean.
    it_mltx-langu = ‘E’.
    it_mltx-text_name = it_matmaster-matnr.
    APPEND IT_MLTX.
    CALL FUNCTION ‘BAPI_MATERIAL_SAVEDATA’
    EXPORTING
    headdata = BAPIMATHEAD
    CLIENTDATA = BAPI_MARA
    CLIENTDATAX = BAPI_MARAx
    PLANTDATA = BAPI_MARc
    PLANTDATAX = BAPI_MARcx
    FORECASTPARAMETERS =
    FORECASTPARAMETERSX =
    PLANNINGDATA =
    PLANNINGDATAX =
    STORAGELOCATIONDATA =
    STORAGELOCATIONDATAX =
    VALUATIONDATA = BAPI_MBEW
    VALUATIONDATAX = BAPI_MBEWX
    WAREHOUSENUMBERDATA =
    WAREHOUSENUMBERDATAX =
    SALESDATA =
    SALESDATAX =
    STORAGETYPEDATA =
    STORAGETYPEDATAX =
    FLAG_ONLINE = ‘ ‘
    FLAG_CAD_CALL = ‘ ‘
    IMPORTING
    RETURN = IT_RETURN
    TABLES
    MATERIALDESCRIPTION = IT_MATERIALDESC
    UNITSOFMEASURE = IT_UOM
    UNITSOFMEASUREX = IT_UOMX
    INTERNATIONALARTNOS = it_mean
    MATERIALLONGTEXT = IT_MLTX
    TAXCLASSIFICATIONS =
    RETURNMESSAGES =
    PRTDATA =
    PRTDATAX =
    EXTENSIONIN =
    EXTENSIONINX =
    read table it_return with key TYPE = ‘S’.
    if sy-subrc = 0.
    CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
    EXPORTING
    WAIT =
    IMPORTING
    RETURN =
    *else.
    *CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’
    IMPORTING
    RETURN =
    endif.
    WRITE:/ IT_RETURN-TYPE,
    2 IT_RETURN-ID,
    22 IT_RETURN-NUMBER,
    25 IT_RETURN-MESSAGE.
    IT_RETURN-LOG_NO,
    IT_RETURN-LOG_MSG_NO,
    IT_RETURN-MESSAGE_V1,
    IT_RETURN-MESSAGE_V2,
    IT_RETURN-MESSAGE_V3,
    IT_RETURN-MESSAGE_V4,
    IT_RETURN-PARAMETER,
    IT_RETURN-ROW,
    IT_RETURN-FIELD,
    IT_RETURN-SYSTEM.
    ENDLOOP.
    Reward points..

  • Mass Update of Material Master

    Hi,
    I have to migrate Material Master from Legacy System to SAP. And data would be getting populated in the following tables:
    1. MARA
    2. MAKTX
    3. MARC
    4. MVKE
    5. MLAN
    6. MARD
    7. MBEW
    8. PROP
    9. MVER
    I checked option of LSMW -> Direct Input Method -> Program Name: RMDATIND. This I guess, will help me to update data in all the above mentioned tables except MVER.
    May I get a way out to update data in MVER same time when I upload Material Master? Please also let me know if my understading is not correct. Or if there is a better way out than this!!!
    Please let me know if I need to provide any further details on the same from my end to get above query answered.
    Rgds,
    KK

    HI,
    May I get a way out to update data in MVER same time when I upload Material Master? Please also let me know if my understading is not correct. Or if there is a better way out than this!!!
    this table related to material consumption
    which data you want to put in this table ,material consumption of legacy system ?
    Regards
    Kailas Ugale

  • Material master upload using BAPI...

    Helo SDNers,
    I am trying to upload material master using BAPI.
    data :  begin of t_mat occurs 0,
            material type matnr,             " Material - MATNR
            ind_sec type mbrsh,              " Industry sector  - MBRSH
            mat_typ type mtart,              " Material type - MTART
            plant type werks_d,              " plant - WERKS_D
            stge_loc type lgort_d,           " Storage location - LGORT_D
            sales_org type vkorg,            " Sales org - VKORG
            distr_chan type vtweg,           " Distribution channel - VTWEG
            mat_desc type maktx,             " Material description - MAKTX
            base_uom type meins,             " Base unit of measurement- MEINS
            mat_grp type matkl,              " material group - MATKL
            division type spart,             " Division - SPART
            gen_itmcatmgrp type MTPOS,       " General item category group -MTPOS_MARA
            gros_weight type BRGEW,          " Gross weight - BRGEW
            net_weight type NTGEW,          " Net weight - NTGEW
            mat_grppack type MAGRV,          " Material group pack - MAGRV
            delv_plant type DWERK_EXT,       " Delivery plant
            tax_clasif type TAXKM,           " Tax classification
            item_catgrp type MTPOS,          " Item category group
            aval_check type MTVFP,           " Availability check
            trans_grp type TRAGR,            " Transportation group
            load_grp type LADGR,             " Loading group
            pur_grp type EKGRP,              " Purchasing grp,
            mrp_type type DISMM,             " MRP type
            mrp_contr type DISPO,            " MRP Controller
            lot_size type DISLS,             " Lot size,
            gr_processing type WEBAZ,        " GR Processing time
            schdmargin_key type FHORI,       " Schedule margin key
            batch_mangment type XCHPF,       " Batch management
            strog_cond type RAUBE,           " Storage condition
            source_list type KORDB,          " Source list
            mrp_grp type DISGR,              " MRP group
            reorder_point type MINBE,        " Reorder point
            procurement_type type BESKZ,     " Procurement type
            sp_procurement_type type SOBSL,  " Special  Procurement type
            inhouse_prod type DZEIT,                    " Inhouse production
            safety_stock type EISBE,         " Safety stock
            strategy_group type STRGR,       " Strategy group
            availabilty_grp type MTVFP,      " Availability group
            batch_entry type KZECH ,         " Batch entry
            valuation_class type BKLAS,      " Valuation class
            price_control type VPRSV,        " Price control
            moving_price type VERPR,         " Moving price
            standard_price type STPRS,       " Standard price - STPRS
            langu(2),                        " Language
    end of t_mat.
    this is my internal table i have these many content in my excel file
    please explain me what the following code does .....
    move-corresponding wa to bapi_head.
    bapi_head-basic_view = 'X'.
    bapi_head-sales_view = 'X'.
    bapi_head-purchase_view = 'X'.
    bapi_head-mrp_view = 'X'.
    bapi_head-forecast_view = 'X'.
    bapi_head-work_sched_view = 'X'.
    bapi_head-prt_view = 'X'.
    bapi_head-storage_view = 'X'.
    bapi_head-warehouse_view = 'X'.
    bapi_head-quality_view = 'X'.
    bapi_head-account_view = 'X'.
    bapi_head-cost_view = 'X'.
    and also please help with an example how do i upload data from IT (my internal table) using BAPI.
    Regards,
    Ranjith N

    Hi ,
    First you upload your Excel data into Internal Table.
    Move all data to Respected BAPI Structures.
    and then call 'BAPI_MATERIAL_SAVEDATA' and pass all structures.
    Sample Code:
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
        EXPORTING
          filename                = p_fname
          i_begin_col             = v_c1
          i_begin_row             = l_v_r
          i_end_col               = v_cl
          i_end_row               = v_rl
        TABLES
          intern                  = i_excel
        EXCEPTIONS
          inconsistent_parameters = 1
          upload_ole              = 2
          OTHERS                  = 3.
      IF sy-subrc eq 0.
        LOOP AT i_excel.
          CASE i_excel-col.
            WHEN 0001.
              wa_final-field1 = i_excel-value.
            WHEN 0002.
              wa_final-field2 = i_excel-value.
            WHEN 0003.
              wa_final-field3 = i_excel-value.
            WHEN 0004.
              wa_final-field4 = i_excel-value.
            WHEN 0005.
              wa_final-field5 = i_excel-value.
            WHEN 0006.
              wa_final-field6 = i_excel-value.
            WHEN 0007.
              wa_final-field7 = i_excel-value.
            WHEN 0008.
              wa_final-field8 = i_excel-value.
            WHEN 0009.
              wa_final-field9 = i_excel-value.
            WHEN 0010.
              wa_final-field10 = i_excel-value.
            WHEN 0011.
              wa_final-field11 = i_excel-value.
            WHEN 0012.
              wa_final-field12 = i_excel-value.
            WHEN 0013.
              wa_final-field13 = i_excel-value.
            WHEN 0014.
              wa_final-field14 = i_excel-value.
            WHEN 0015.
              wa_final-field15 = i_excel-value.
            WHEN 0016.
              wa_final-field16 = i_excel-value.
          ENDCASE.
    *-at end of each row, a record needs to append the internal table
          AT END OF row.
            APPEND wa_final TO i_final.
            CLEAR: wa_final.
          ENDAT.
        ENDLOOP.
      ENDIF.
    Move all your Inatrnal tbale data to respected BAPI structures
    *&      Form  MOVE_HEADDATA
       * Move Header data to BAPI Header.
    FORM move_headdata .
    Move Header Data to BAPI Fields
      MOVE : wa_final-matnr      TO wa_mathead-material,
             wa_final-mbrsh      TO wa_mathead-ind_sector,
             wa_final-mtart      TO wa_mathead-matl_type.
    To get UOM
      SELECT SINGLE * FROM t006 INTO t006 WHERE msehi = wa_final-meins.
      MOVE: t006-isocode TO wa_mara-base_uom_iso,
            c_x          TO wa_marax-base_uom_iso.
    **-- Move Material Descriptions
      PERFORM move_materialdescription .
    ENDFORM.                    " MOVE_HEADDATA
    *&      Form  MOVE_CLIENTDATA
          * Move Basic data to Clientdata
    FORM   move_clientdata .
      MOVE : wa_final-spart      TO wa_mara-division,
             wa_final-bismt      TO wa_mara-old_mat_no,
             wa_final-extwg      TO wa_mara-extmatlgrp,
             wa_final-mtpos_mara TO wa_mara-item_cat,
             wa_final-groes      TO wa_mara-size_dim,
             wa_final-zeivr      TO wa_mara-doc_vers,
             wa_final-ekwsl      TO wa_mara-pur_valkey.
      MOVE : c_x      TO wa_marax-division,
             c_x      TO wa_marax-old_mat_no,
             c_x      TO wa_marax-extmatlgrp,
             c_x      TO wa_marax-item_cat,
             c_x      TO wa_marax-size_dim,
             c_x      TO wa_marax-doc_vers,
             c_x      TO wa_marax-pur_valkey.
    ENDFORM.                    " MOVE_CLIENTDATA
    *&      Form  MOVE_STORAGELOCATIONDATA
          * Move storage location data to STORAGELOCATIONDATA
    FORM move_storagelocationdata .
      CLEAR: wa_mard,wa_mardx.
      MOVE : wa_final-werks      TO wa_mard-plant,
             wa_final-lgort      TO wa_mard-stge_loc.
      MOVE : wa_final-werks      TO wa_mardx-plant,
             wa_final-lgort      TO wa_mardx-stge_loc.
    ENDFORM.                    " MOVE_STORAGELOCATIONDATA
    *&      Form  MOVE_SALESDATA
         * Move Salesdate to SALESDATA
    FORM move_salesdata .
      MOVE : wa_final-vkorg      TO wa_mvke-sales_org,
             wa_final-vtweg      TO wa_mvke-distr_chan,
             wa_final-dwerk      TO wa_mvke-delyg_plnt,
             wa_final-versg      TO wa_mvke-matl_stats,
             wa_final-ktgrm      TO wa_mvke-acct_assgt,
             wa_final-mtpos      TO wa_mvke-item_cat,
             wa_final-mvgr1      TO wa_mvke-matl_grp_1,
             wa_final-mvgr2      TO wa_mvke-matl_grp_2,
             wa_final-mvgr3      TO wa_mvke-matl_grp_3,
             wa_final-mvgr4      TO wa_mvke-matl_grp_4,
             wa_final-mvgr5      TO wa_mvke-matl_grp_5,
             wa_final-vrkme      TO wa_mvke-sales_unit.
      MOVE : wa_final-vkorg      TO wa_mvkex-sales_org,
             wa_final-vtweg      TO wa_mvkex-distr_chan,
             c_x                 TO wa_mvkex-delyg_plnt,
             c_x                 TO wa_mvkex-matl_stats,
             c_x                 TO wa_mvkex-acct_assgt,
             c_x                 TO wa_mvkex-item_cat,
             c_x                 TO wa_mvkex-matl_grp_1,
             c_x                 TO wa_mvkex-matl_grp_2,
             c_x                 TO wa_mvkex-matl_grp_3,
             c_x                 TO wa_mvkex-matl_grp_4,
             c_x                 TO wa_mvkex-matl_grp_5,
             c_x                 TO wa_mvkex-sales_unit.
    ENDFORM.                    " MOVE_SALESDATA
    *&      Form  MOVE_MATERIALDESCRIPTION
          * Move MATERIALDESCRIPTION to Material Description
    FORM move_materialdescription .
      CLEAR: wa_makt,i_makt.
      MOVE : wa_final-maktx TO wa_makt-matl_desc,
             sy-langu       TO wa_makt-langu.
      APPEND wa_makt TO i_makt.
      CLEAR wa_makt.
    ENDFORM.                    " MOVE_MATERIALDESCRIPTION
    *&      Form  basic_data
    FORM basic_data .
    **-- Move Material Data at Storage Location Level
      PERFORM move_storagelocationdata .
      MOVE : wa_final-vkorg      TO wa_mvke-sales_org,
             wa_final-vtweg      TO wa_mvke-distr_chan.
      MOVE : wa_final-vkorg      TO wa_mvkex-sales_org,
             wa_final-vtweg      TO wa_mvkex-distr_chan.
    **-- Move Material Data at Client Level
      PERFORM move_clientdata .
    IF ALT_UOM is not Given in flat file Move BASEUOM as ALT_UOM
      IF wa_final-meinh EQ c_space.
        MOVE : wa_final-meins     TO wa_marm-alt_unit,
               wa_final-meins     TO wa_marmx-alt_unit.
      ELSE.
        MOVE : wa_final-meinh      TO wa_marm-alt_unit,
                wa_final-umren      TO wa_marm-numerator.
        MOVE : wa_final-meinh     TO wa_marmx-alt_unit,
               c_x                TO wa_marmx-numerator.
      ENDIF.
      MOVE : wa_final-numtp      TO wa_marm-ean_cat,
             wa_final-brgew      TO wa_marm-gross_wt,
             wa_final-volum      TO wa_marm-volume,
             wa_final-voleh      TO wa_marm-volumeunit,
             wa_final-gewei      TO wa_marm-unit_of_wt.
      APPEND wa_marm TO i_marm.
      CLEAR wa_marm.
      MOVE : c_x                TO wa_marmx-ean_cat,
             c_x                TO wa_marmx-gross_wt,
             c_x                TO wa_marmx-volume,
             c_x                TO wa_marmx-volumeunit,
             c_x                TO wa_marmx-unit_of_wt.
      APPEND wa_marmx TO i_marmx.
      CLEAR wa_marmx.
    ENDFORM.                    " basic_data
    *&      Form  sales_data1
    FORM sales_data1 .
    Move Sales & Plant Data
      MOVE : wa_final-werks      TO wa_marc-plant,
             wa_final-mtvfp      TO wa_marc-availcheck,
             wa_final-ladgr      TO wa_marc-loadinggrp,
             wa_final-prctr      TO wa_marc-profit_ctr.
      MOVE : wa_final-werks      TO wa_marcx-plant,
             c_x                 TO wa_marcx-availcheck,
             c_x                 TO wa_marcx-loadinggrp,
             c_x                 TO wa_marcx-profit_ctr.
      MOVE: wa_final-tragr      TO wa_mara-trans_grp,
            c_x                 TO wa_marax-trans_grp.
    **-- Move Sales Data
      PERFORM move_salesdata .
    Move Tax Data
      MOVE : 'JP'              TO wa_mlan-depcountry_iso,
            'MWAR'             TO wa_mlan-tax_type_1,
             wa_final-taklv    TO wa_mlan-taxclass_1.
      APPEND wa_mlan TO i_mlan.
      CLEAR wa_mlan.
    ENDFORM.                    " sales_data1
    *&      Form  purchase_data
    FORM purchase_data .
    Move Plant Data
      MOVE : wa_final-werks      TO wa_marc-plant,
             wa_final-werks      TO wa_marcx-plant.
    Move PO data
      MOVE : wa_final-ekgrp  TO wa_marc-pur_group,
             wa_final-kautb  TO wa_marc-auto_p_ord,
             wa_final-usequ  TO wa_marc-quotausage,
             wa_final-kordb  TO wa_marc-sourcelist,
             c_x             TO wa_marcx-pur_group,
             c_x             TO wa_marcx-auto_p_ord,
             c_x             TO wa_marcx-quotausage,
             c_x             TO wa_marcx-sourcelist.
      MOVE: wa_final-matkl  TO wa_mara-matl_group,
            wa_final-bstme  TO wa_mara-po_unit,
             c_x            TO wa_marax-matl_group,
             c_x            TO wa_marax-po_unit.
    ENDFORM.                    " purchase_data
    *&      Form  mrp_data
    FORM mrp_data .
    **-- Move Material Data at Storage Location Level
      PERFORM move_storagelocationdata .
    Move All MRP data
      MOVE: wa_final-diskz TO wa_mard-mrp_ind,
            c_x            TO wa_mardx-mrp_ind.
      MOVE : wa_final-werks TO wa_marc-plant,
             wa_final-dismm TO wa_marc-mrp_type,
             wa_final-dispo TO wa_marc-mrp_ctrler,
             wa_final-beskz TO wa_marc-proc_type,
             wa_final-sobsl TO wa_marc-spproctype,
             wa_final-mtvfp TO wa_marc-availcheck,
             wa_final-minbe  TO wa_marc-reorder_pt,
             wa_final-fxhor  TO wa_marc-pl_ti_fnce,
             wa_final-disls  TO wa_marc-lotsizekey,
             wa_final-bstmi  TO wa_marc-minlotsize,
             wa_final-bstma  TO wa_marc-maxlotsize,
             wa_final-bstfe  TO wa_marc-fixed_lot,
             wa_final-mabst  TO wa_marc-max_stock,
             wa_final-ausss  TO wa_marc-assy_scrap,
             wa_final-dzeit  TO wa_marc-inhseprodt,
             wa_final-plifz  TO wa_marc-plnd_delry,
             wa_final-webaz  TO wa_marc-gr_pr_time,
             wa_final-fhori  TO wa_marc-sm_key,
             wa_final-eisbe  TO wa_marc-safety_stk,
             wa_final-strgr  TO wa_marc-plan_strgp,
             wa_final-wzeit  TO wa_marc-replentime,
             wa_final-lgfsb  TO wa_marc-sloc_exprc,
             wa_final-sbdkz  TO wa_marc-dep_req_id,
             wa_final-kzbed  TO wa_marc-grp_reqmts,
             wa_final-miskz  TO wa_marc-mixed_mrp,
             wa_final-stlal  TO wa_marc-alternative_bom,
             wa_final-stlan  TO wa_marc-bom_usage.
      MOVE : wa_final-werks TO wa_marcx-plant,
             c_x            TO wa_marcx-mrp_type,
             c_x            TO wa_marcx-mrp_ctrler,
             c_x            TO wa_marcx-proc_type,
             c_x            TO wa_marcx-spproctype,
             c_x            TO wa_marcx-availcheck,
             c_x            TO wa_marcx-reorder_pt,
             c_x            TO wa_marcx-pl_ti_fnce,
             c_x            TO wa_marcx-lotsizekey,
             c_x            TO wa_marcx-minlotsize,
             c_x            TO wa_marcx-maxlotsize,
             c_x            TO wa_marcx-fixed_lot,
             c_x            TO wa_marcx-max_stock,
             c_x            TO wa_marcx-assy_scrap,
             c_x            TO wa_marcx-inhseprodt,
             c_x            TO wa_marcx-plnd_delry,
             c_x            TO wa_marcx-gr_pr_time,
             c_x            TO wa_marcx-sm_key,
             c_x            TO wa_marcx-safety_stk,
             c_x            TO wa_marcx-plan_strgp,
             c_x            TO wa_marcx-replentime,
             c_x            TO wa_marcx-sloc_exprc,
             c_x            TO wa_marcx-dep_req_id,
             c_x            TO wa_marcx-grp_reqmts,
             c_x            TO wa_marcx-mixed_mrp,
             c_x            TO wa_marcx-alternative_bom,
             c_x            TO wa_marcx-bom_usage.
    ENDFORM.                    " mrp_data
    *&      Form  accounting_data
    FORM accounting_data .
    Move Plant Data
      MOVE: wa_final-werks TO wa_marc-plant,
            wa_final-werks TO wa_marcx-plant.
    Move Account Data
      MOVE :  wa_final-werks TO wa_mbew-val_area,
              wa_final-bklas TO wa_mbew-val_class,
              wa_final-vprsv TO wa_mbew-price_ctrl,
              wa_final-verpr TO wa_mbew-moving_pr,
              wa_final-peinh TO wa_mbew-price_unit,
              wa_final-stprs TO wa_mbew-std_price.
      MOVE :  wa_final-werks TO wa_mbewx-val_area,
              c_x TO wa_mbewx-val_class,
              c_x TO wa_mbewx-price_ctrl,
              c_x TO wa_mbewx-moving_pr,
              c_x TO wa_mbewx-price_unit,
              c_x TO wa_mbewx-std_price.
    ENDFORM.                    " accounting_data
    *&      Form  cost_data
    FORM cost_data .
    Move Plant Data
      MOVE: wa_final-werks TO wa_marc-plant,
            wa_final-awsls TO wa_marc-variance_key,
            wa_final-verid  TO wa_marc-prodverscs,   " Production Version
            wa_final-werks TO wa_marcx-plant,
            c_x            TO wa_marcx-variance_key,
            c_x            TO wa_marcx-prodverscs.
    Move Cost Data
      MOVE :  wa_final-werks TO wa_mbew-val_area,
              wa_final-bklas TO wa_mbew-val_class,
              wa_final-vprsv TO wa_mbew-price_ctrl,
              wa_final-ekalr TO wa_mbew-qty_struct.
      MOVE :  wa_final-werks TO wa_mbewx-val_area,
              c_x            TO wa_mbewx-val_class,
              c_x            TO wa_mbewx-price_ctrl,
              c_x            TO wa_mbewx-qty_struct.
    ENDFORM.                    " cost_data
    Call All Structures in to BAPI
      CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
        EXPORTING
          headdata             = wa_mathead
          clientdata           = wa_mara
          clientdatax          = wa_marax
          plantdata            = wa_marc
          plantdatax           = wa_marcx
          storagelocationdata  = wa_mard
          storagelocationdatax = wa_mardx
          valuationdata        = wa_mbew
          valuationdatax       = wa_mbewx
          salesdata            = wa_mvke
          salesdatax           = wa_mvkex
        IMPORTING
          return               = i_return
        TABLES
          materialdescription  = i_makt
          unitsofmeasure       = i_marm
          unitsofmeasurex      = i_marmx
          taxclassifications   = i_mlan.
      IF i_return-type = 'A' OR i_return-type = 'E' .
        DATA : l_v_string TYPE string,
               l_v_msg1   TYPE string,
               l_v_msg2   TYPE string.
        MOVE i_return-message TO l_v_string.
        CONDENSE l_v_string.
        PERFORM fill_error_table USING 'E'
                                       'ZMSG_MM'
                                       '098'
                                       v_reccon
                                       l_v_string
        v_error = v_error + 1.
        CLEAR: l_v_string.
      ELSEIF i_return-type = 'S'.
        PERFORM fill_error_table USING 'S'
                                             i_return-id
                                             i_return-number
                                            i_return-message_v1
                                           i_return-message_v2
                                           i_return-message_v3
                                           i_return-message_v4.
        v_success = v_success + 1.
      ENDIF .
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.
      IF sy-subrc = 0.
        COMMIT WORK AND WAIT.      "for the update to table Transcation
      ENDIF.
    Regards,
    Siva.

  • About material master data batch input

    hello
        i wrote a batch input for material master data. but it can't work ,i can't use it to create material.hope someone help me!thanks.code is below.
    report z_mat_batchinput no standard page heading
          line-size 255 message-id YB.
           mat batch input
    include bdcrecx1.
    include .
    tables: mara,marm,MARC,MARD,T134,NRIV,T006A,T023,T001W,T001L,
            TVKO,TVTW,T025,TTGR,TLGR,TVKWZ,T006.
    data: DIMID like t006-DIMID.
    data: flag, K, tmp.
    DATA: X TYPE I.
    ************ÉÏÔØÎļþÄÚ±í************************
    data: begin of record occurs 0,
            MATNR(018),        " ÎïÁϺÅ
            MTART(004),        " ÎïÁÏÀàÐÍ
    **generaldata1**
            MAKTX(040),        " ÎïÁÏÃèÊö
           EAKTX(040),        " Ó¢ÎÄÃèÊö
            MEINS(003),        " »ù±¾¼ÆÁ¿µ¥Î»
            MATKL(009),        " ÎïÁÏ×é
            BISMT(018),        " ¾ÉÎïÁϺÅ
           EXTWG(018),        " ÍⲿÎïÁÏ×é
           SPART(002),        " ²¿ÃÅ
            MTPOS_MARA(004),   " ÆÕͨÏîÄ¿Àà±ð×é
            BRGEW(017),        " ëÖØ
            GEWEI(003),        " ÖØÁ¿µ¥Î»
            NTGEW(017),        " ¾»ÖØ
            VOLUM(017),        " Ìå»ý
            VOLEH(003),        " Ìå»ýµ¥Î»
            GROES(032),        " Á¿¸Ù
            MAGRV(004),        " ÎïÁÏ×éµÄ°ü×°Îï
    **generaldata2**
            NORMT(018),        " ¹¤Òµ±ê×¼ÃèÊö
            FERTH(018),        " ÀàÐÍ
            WRKST(048),        " ¹æ¸ñ
    **generaldata1**
           EAN11(018),        " ²úÆ·±íʶÂë
    **generaldata2**
           ZEIAR(003),        " ÎĵµÀàÐÍ£¬ºÏÀí´¢±¸ÖÜתÆÚ
            WERKS(004),        " ¹¤³§
            VKORG(004),        " ÏúÊÛ×éÖ¯
            VTWEG(002),        " ·ÖÏúÇþµÀ
    **salesorg 1**
           VRKME(003),        " ÏúÊÛµ¥Î»
           VMREN(006),        " ÏúÊÛµ¥Î»×ª»»Òò×Ó
           VMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
            SPART(002),        " ²úÆ·×é
            DWERK(004),        " ½»»õ¹¤³§
            TAXKM(001),        " ÎïÁÏË°·ÖÀà
    **salesorg 2**
            KONDM(002),        " ÎïÁ϶¨¼Û×é
            KTGRM(002),        " ¿ÆÄ¿ÉèÖÃ×é
           MVGR1(003),                                         " ÎïÁÏ×é 1
           MVGR2(003),                                         " ÎïÁÏ×é 2
            MTPOS(004),        " ÏîÄ¿Àà±ð×é
           VERSG(001),        " ÎïÁÏͳ¼Æ×é
    **ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý**
            MTVFP(002),        " ¿ÉÓÃÐÔ¼ì²é
            XCHPF(001),        " Åú´Î¹ÜÀí
           YCHPF(001),        " ÅúÁ¿¹ÜÀí
            TRAGR(004),        " ÔËÊä×é
            ladgr(004),        " ×°ÔØ×é
    **pur**
           BSTME(003),        " ¶©µ¥µ¥Î»
           UMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREN(006),        " ¶©µ¥µ¥Î»×ª»»Òò×Ó
           WEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            EKGRP(003),        " ²É¹º×é
          LGORT(004),        " ¿â´æµØ
    **Ò»°ã¹¤³§Êý¾Ý/²Ö´¢1**
           AUSME(003),        " ·¢»õµ¥Î»
           UMREJ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREF(006),        " ·¢»õµ¥Î»×ª»»Òò×Ó
           XCHPF(001),        " ÅúÁ¿¹ÜÀí
    **MRP 1**
           DISGR(004),        " MRP×é
            DISMM(002),        " MRPÀàÐÍ
           FXHOR(003),        " ¼Æ»®µÄʱ½ì
            DISPO(003),        " MRP¿ØÖÆÕß
            DISLS(002),        " ÅúÁ¿
            MAABC(001),        " ABC±êʶ
           BSTFE(018),        " ¹Ì¶¨ÅúÁ¿´óС
    **MRP 2**
           RESKZ(001),        " »ñÈ¡ÀàÐÍ
            BESKZ(001),        " ²É¹ºÀàÐÍ
           SOBSL(002),        " ÌØÊâ²É¹ºÀà
           LGPRO(004),        " ·¢»õ²Ö´¢µØµã
           RGEKZ(001),        " ·´³å
            PLIFZ(003),        " ¼Æ»®½»»õʱ¼ä
           VEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            DZEIT(008),        "×ÔÖÆÉú²ú
            FHORI(003),        " ¼Æ»®±ß¼ÊÂë
           EISBE(018),        " °²È«¿â´æ
    **MRP 3**
            PERKZ(001),        " ÆÚ¼ä±êʶ
            STRGR(002),        " ²ßÂÔ×é
           VRMOD(001),        " ÏûºÄģʽ
           VINT1(003),        " ÄæÏòÏûºÄÆÚ¼ä
           VINT2(003),        " ÏòÇ°ÏûºÄÆÚ¼ä
            NTVFP(002),        " ¿ÉÓÃÐÔ¼ì²é
    **MRP 4**
           SAUFT(001),        " Öظ´ÖÆÔì±êÖ¾
           SFEPR(004),        " Öظ´Éú²ú²ÎÊýÎļþ
    **¹¤×÷¼Æ»®**
           FEVOR(003),        " Éú²úµ÷¶ÈÔ±
           FRTME(003),        " Éú²úµ¥Î»
           SMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           SMREN(006),        " Éú²úµ¥Î»×ª»»Òò×Ó
           UEETK(001),        " ÎÞÏÞÖƹýÁ¿½»»õ
    **»á¼Æ 1**
            BKLAS(004),        " ÆÀ¹ÀÀà
           BWTTY(001),        " ¹À¼Û·ÖÀà
            VPRSV(001),        " ¼Û¸ñ¿ØÖÆ
            PEINH(006),        " ¼Û¸ñµ¥Î»
            VERPR(015),        " Òƶ¯Æ½¾ù¼Û
            STPRS(015),        " ±ê×¼¼Û
    **»á¼Æ 2**
           BWPRH(014),        " ÉÌÒµ¼Û¸ñ 1
    **³É±¾ 1**
           LOSGR(018),        " ÅúÁ¿³É±¾ºËËã
    **³É±¾ 2**
           ZPLP1(014),        " ¼Æ»®¼Û¸ñ 1
           ZPLD1(010),        " ¼Æ»®ÈÕÆÚ 1
    **qm**
            ART1(8),            "¼ìÑéÀàÐÍ1
            AKTIV1(1),          "ÒѼ¤»î
            QMPUR(1),             "¼¤»î²É¹ºÖÐµÄ QM
            SSQSS(8),          "QM ¿ØÖÆÂë¡¢
           QMATV(8),          "QM¼ìÑéÉèÖÃ
           ART2(8),            "¼ìÑéÀàÐÍ2
           AKTIV2(6),          "ÒѼ¤»î
           ART3(8),            "¼ìÑéÀàÐÍ3
           AKTIV3(6),          "ÒѼ¤»î
          end of record.
    ************ÏÂÔظñʽ/´íÎóÎļþÄÚ±í**************
    data: begin of record1 occurs 0,
            MATNR(018),        " ÎïÁϺÅ
            MTART(008),        " ÎïÁÏÀàÐÍ
    **»ù±¾Êý¾Ý1**
            MAKTX(040),        " ÎïÁÏÃèÊö
           EAKTX(040),        " Ó¢ÎÄÃèÊö
            MEINS(013),        " »ù±¾¼ÆÁ¿µ¥Î»
            MATKL(009),        " ÎïÁÏ×é
            BISMT(018),        " ¾ÉÎïÁϺÅ
           EXTWG(018),        " ÍⲿÎïÁÏ×é
           SPART(002),        " ²¿ÃÅ
            MTPOS_MARA(004),   " ÆÕͨÏîÄ¿Àà±ð×é
            BRGEW(017),        " ëÖØ
            GEWEI(008),        " ÖØÁ¿µ¥Î»
            NTGEW(017),        " ¾»ÖØ
            VOLUM(017),        " Ìå»ý
            VOLEH(008),        " Ìå»ýµ¥Î»
            GROES(032),        " Á¿¸Ù
            MAGRV(014),        " ÎïÁÏ×éµÄ°ü×°Îï
    **»ù±¾Êý¾Ý2**
            NORMT(018),        " ¹¤Òµ±ê×¼ÃèÊö
            FERTH(018),        " ÀàÐÍ
            WRKST(048),        " ¹æ¸ñ
    **»ù±¾Êý¾Ý1**
           EAN11(018),        " ²úÆ·±íʶÂë
    **»ù±¾Êý¾Ý2**
           ZEIAR(003),        " ÎĵµÀàÐÍ£¬ºÏÀí´¢±¸ÖÜתÆÚ
            WERKS(004),        " ¹¤³§
            VKORG(008),        " ÏúÊÛ×éÖ¯
            VTWEG(008),        " ·ÖÏúÇþµÀ
    **ÏúÊÛ×éÖ¯ 1**
           VRKME(003),        " ÏúÊÛµ¥Î»
           VMREN(006),        " ÏúÊÛµ¥Î»×ª»»Òò×Ó
           VMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
            SPART(006),        " ²úÆ·×é
            DWERK(008),        " ½»»õ¹¤³§
            TAXKM(010),        " ÎïÁÏË°·ÖÀà
    **ÏúÊÛ×éÖ¯ 2**
            KONDM(010),        " ÎïÁ϶¨¼Û×é
            KTGRM(010),        " ¿ÆÄ¿ÉèÖÃ×é
           MVGR1(003),                                         " ÎïÁÏ×é 1
           MVGR2(003),                                         " ÎïÁÏ×é 2
            MTPOS(010),        " ÏîÄ¿Àà±ð×é
           VERSG(001),        " ÎïÁÏͳ¼Æ×é
    **ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý**
            MTVFP(010),        " ¿ÉÓÃÐÔ¼ì²é
            XCHPF(008),        " Åú´Î¹ÜÀí
           YCHPF(001),        " ÅúÁ¿¹ÜÀí
            TRAGR(006),        " ÔËÊä×é
            ladgr(006),        " ×°ÔØ×é
    **²É¹º**
           BSTME(003),        " ¶©µ¥µ¥Î»
           UMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREN(006),        " ¶©µ¥µ¥Î»×ª»»Òò×Ó
           WEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            EKGRP(006),        " ²É¹º×é
          LGORT(004),        " ¿â´æµØ
    **Ò»°ã¹¤³§Êý¾Ý/²Ö´¢1**
           AUSME(003),        " ·¢»õµ¥Î»
           UMREJ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREF(006),        " ·¢»õµ¥Î»×ª»»Òò×Ó
           XCHPF(001),        " ÅúÁ¿¹ÜÀí
    **MRP 1**
           DISGR(004),        " MRP×é
            DISMM(009),        " MRPÀàÐÍ
           FXHOR(003),        " ¼Æ»®µÄʱ½ì
            DISPO(011),        " MRP¿ØÖÆÕß
            DISLS(004),        " ÅúÁ¿
            MAABC(007),        " ABC±êʶ
           BSTFE(018),        " ¹Ì¶¨ÅúÁ¿´óС
    **MRP 2**
           RESKZ(001),        " »ñÈ¡ÀàÐÍ
            BESKZ(008),        " ²É¹ºÀàÐÍ
           SOBSL(002),        " ÌØÊâ²É¹ºÀà
           LGPRO(004),        " ·¢»õ²Ö´¢µØµã
           RGEKZ(001),        " ·´³å
            PLIFZ(012),        " ¼Æ»®½»»õʱ¼ä
           VEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            DZEIT(008),        "×ÔÖÆÉú²ú
            FHORI(010),        " ¼Æ»®±ß¼ÊÂë
           EISBE(018),        " °²È«¿â´æ
    **MRP 3**
            PERKZ(008),        " ÆÚ¼ä±êʶ
            STRGR(006),        " ²ßÂÔ×é
           VRMOD(001),        " ÏûºÄģʽ
           VINT1(003),        " ÄæÏòÏûºÄÆÚ¼ä
           VINT2(003),        " ÏòÇ°ÏûºÄÆÚ¼ä
            NTVFP(010),        " ¿ÉÓÃÐÔ¼ì²é
    **MRP 4**
           SAUFT(001),        " Öظ´ÖÆÔì±êÖ¾
           SFEPR(004),        " Öظ´Éú²ú²ÎÊýÎļþ
    **¹¤×÷¼Æ»®**
           FEVOR(003),        " Éú²úµ÷¶ÈÔ±
           FRTME(003),        " Éú²úµ¥Î»
           SMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           SMREN(006),        " Éú²úµ¥Î»×ª»»Òò×Ó
           UEETK(001),        " ÎÞÏÞÖƹýÁ¿½»»õ
    **»á¼Æ 1**
            BKLAS(006),        " ÆÀ¹ÀÀà
           BWTTY(001),        " ¹À¼Û·ÖÀà
            VPRSV(008),        " ¼Û¸ñ¿ØÖÆ
            PEINH(008),        " ¼Û¸ñµ¥Î»
            VERPR(015),        " Òƶ¯Æ½¾ù¼Û
            STPRS(015),        " ±ê×¼¼Û
    **»á¼Æ 2**
           BWPRH(014),        " ÉÌÒµ¼Û¸ñ 1
    **³É±¾ 1**
           LOSGR(018),        " ÅúÁ¿³É±¾ºËËã
    **³É±¾ 2**
           ZPLP1(014),        " ¼Æ»®¼Û¸ñ 1
           ZPLD1(010),        " ¼Æ»®ÈÕÆÚ 1
    **ÖÊÁ¿¹ÜÀí**
            ART1(8),            "¼ìÑéÀàÐÍ1
            AKTIV1(6),          "ÒѼ¤»î
            QMPUR(010),             "¼¤»î²É¹ºÖÐµÄ QM
            SSQSS(8),          "QM ¿ØÖÆÂë¡¢
           QMATV(8),          "QM¼ìÑéÉèÖÃ
           ART2(8),            "¼ìÑéÀàÐÍ2
           AKTIV2(6),          "ÒѼ¤»î
           ART3(8),            "¼ìÑéÀàÐÍ3
           AKTIV3(6),          "ÒѼ¤»î
          end of record1.
    selection-screen begin of block 0 with frame title text-001.
    selection-screen begin of line .
    selection-screen position 1.
    parameters: test like rkec1-test .
    selection-screen
      comment 3(4) text-004 for field test.
    selection-screen position 26.
    parameters: oldfile like rlgrap-filename.
    selection-screen
      comment 9(17) text-003 for field oldfile.
    selection-screen: end of line.
    selection-screen begin of line.
    selection-screen position 1.
    parameters: dnldflag like rkec1-test default 'X'.
    selection-screen
      comment 3(4) text-005 for field dnldflag.
    selection-screen position 26.
    parameters: outfile like rlgrap-filename .
    selection-screen
      comment 9(17) text-006 for field outfile.
    selection-screen: end of line.
    selection-screen end of block 0 .
    SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-002.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: GEN1 LIKE RKEC1-TEST.
    selection-screen
      comment 3(9) text-007 for field GEN1.
    selection-screen position 26.
    PARAMETERS: GEN2 LIKE RKEC1-TEST.
    selection-screen
      comment 28(9) text-008 for field GEN2.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: SALORG1 LIKE RKEC1-TEST.
    selection-screen
      comment 3(21) text-009 for field SALORG1.
    selection-screen position 26.
    PARAMETERS: SALORG2 LIKE RKEC1-TEST.
    selection-screen
      comment 28(21) text-010 for field SALORG2.
    selection-screen position 51.
    PARAMETERS: SALPLANT LIKE RKEC1-TEST.
    selection-screen
      comment 53(19) text-011 for field SALPLANT.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: PURCHASE LIKE RKEC1-TEST.
    selection-screen
      comment 3(21) text-012 for field PURCHASE.
    selection-screen position 26.
    PARAMETERS: PLTSTRG1 LIKE RKEC1-TEST.
    selection-screen
      comment 28(21) text-018 for field PLTSTRG1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: MRP1 LIKE RKEC1-TEST.
    selection-screen
      comment 3(4) text-013 for field MRP1.
    selection-screen position 13.
    PARAMETERS: MRP2 LIKE RKEC1-TEST.
    selection-screen
      comment 15(4) text-014 for field MRP2.
    selection-screen position 26.
    PARAMETERS: MRP3 LIKE RKEC1-TEST.
    selection-screen
      comment 28(4) text-015 for field MRP3.
    selection-screen position 37.
    PARAMETERS: MRP4 LIKE RKEC1-TEST.
    selection-screen
      comment 39(4) text-016 for field MRP4.
    selection-screen position 51.
    PARAMETERS: PLANTSTR LIKE RKEC1-TEST.
    selection-screen
      comment 53(8) text-017 for field PLANTSTR.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: QAU LIKE RKEC1-TEST.
    selection-screen
      comment 3(8) text-023 for field QAU.
    selection-screen position 13.
    PARAMETERS: ACC1 LIKE RKEC1-TEST.
    selection-screen
      comment 15(5) text-019 for field ACC1.
    selection-screen position 26.
    PARAMETERS: ACC2 LIKE RKEC1-TEST.
    selection-screen
      comment 28(5) text-020 for field ACC2.
    selection-screen position 37.
    PARAMETERS: COR1 LIKE RKEC1-TEST.
    selection-screen
      comment 39(5) text-021 for field COR1.
    selection-screen position 51.
    PARAMETERS: COR2 LIKE RKEC1-TEST.
    selection-screen
      comment 53(5) text-022 for field COR2.
    selection-screen end of line.
    SELECTION-SCREEN END OF BLOCK 1.
    at selection-screen on value-request for oldfile.
      call function 'KD_GET_FILENAME_ON_F4'
           EXPORTING
                mask      = ',Îı¾Îļþ(ÖƱí·û·Ö¸ô),*.txt'
                static    = 'X'
           CHANGING
                file_name = oldfile.
    at selection-screen on value-request for outfile.
      call function 'KD_GET_FILENAME_ON_F4'
           EXPORTING
                mask      = ',Microsoft Excel¹¤×÷²¾,*.xls'
                static    = 'X'
           CHANGING
                file_name = outfile.
    initialization.
    ******µÃµ½ÎļþĿ¼*******
      call function 'WS_QUERY'
           EXPORTING
                query  = 'CD'
           IMPORTING
                return = outfile.
      if sy-subrc <> 0.
        message e005 with outfile.
      endif.
      oldfile = outfile.
      concatenate outfile 'mat_fat' into outfile.
    *ÅúÊäÈëĬÈÏÃû³Æ
      group = 'MATBATCHIN'.
    start-of-selection.
      if dnldflag eq 'X' and not ( outfile is initial ).
        perform download_data.
        stop.
      endif.
      perform upload_data.
      if test = ' '.
    *ÊÓͼ²ÎÊý¼ì²é
        IF ( GEN1 NE 'X' AND GEN2 NE 'X' AND SALORG1 NE 'X'
           AND SALORG2 NE 'X' AND SALPLANT NE 'X'
           AND PURCHASE NE 'X' AND PLTSTRG1 NE 'X'
           AND MRP1 NE 'X' AND MRP2 NE 'X' AND MRP3 NE 'X'
               AND MRP4 NE 'X' AND PLANTSTR NE 'X'
           AND ACC1 NE 'X' AND ACC2 NE 'X'
           AND COR1 NE 'X' AND COR2 NE 'X' and qau ne 'X' ) .
          MESSAGE E000 WITH 'ÇëÑ¡ÔñÐèά»¤ÊÓͼ'.
        ENDIF.
        perform open_group.
        SORT RECORD BY WERKS MATNR.
        loop at record.
          perform bdc_fill.
          perform bdc_transaction using 'MM01'.
          clear: bdcdata.
          refresh: bdcdata.
        endloop.
        perform close_group.
      else.
        perform file_check.
      endif.
    end-of-selection.
    *&      Form  UPLOAD_DATA
          ÉÏÔØÅúÊäÈëÊý¾Ý
    -->  p1        text
    <--  p2        text
    form upload_data.
      call function 'WS_UPLOAD'
           EXPORTING
                filename                = oldfile
                filetype                = 'DAT'
           TABLES
                data_tab                = record
           EXCEPTIONS
                conversion_error        = 1
                file_open_error         = 2
                file_read_error         = 3
                invalid_table_width     = 4
                invalid_type            = 5
                no_batch                = 6
                unknown_error           = 7
                gui_refuse_filetransfer = 8
                customer_error          = 9
                others                  = 10.
      if sy-subrc <> 0.
        message E000 with 'ÇëÊäÈëÉÏÔØÎļþ'.
      endif.
      read table record with key MATNR = '**'.
      if sy-tabix lt 1.
        message E000 with 'ÉÏÔØÎļþÎļþÍ·ÓëÊý¾ÝÖ®¼äÎÞ**'.
      endif.
      delete record from 1 to sy-tabix.
    endform.                               " UPLOAD_DATA
    *&      Form  BDC_FILL
          ÅúÊäÈë
    -->  p1        text
    <--  p2        text
    form bdc_fill.
      data: N type I,
            M type I,
            S_MATNR(018),
            test(1) type N.
      PERFORM BDC_FILL_INITALSCR.    "³õʼÆÁÄ»
      tmp = '0'.
      condense record-matnr no-gaps.
      test =  record-matnr(1).
      if test <> ''.
        M = STRLEN( RECORD-MATNR ).
        M = 18 - M.
        DO M TIMES.
          CONCATENATE '0' RECORD-MATNR INTO S_MATNR.
          RECORD-MATNR = S_MATNR.
        ENDDO.
      endif.
    **ÅжÏÎïÁÏ»ù±¾ÊÓͼÊÇ·ñÒѾ±»Î¬»¤¹ý**
      SELECT SINGLE * FROM MARA WHERE MATNR = RECORD-MATNR.
      IF SY-SUBRC NE 0.
        K = '0'.
      Else.
        condense MARA-PSTAT no-gaps.
        N = strlen( mara-pstat ).
        M = 0.
        record-meins = mara-meins.
        do N times.
          K = MARA-PSTAT+M.
          IF K = 'K'.
            EXIT.
          ENDIF.
          M = M + 1.
        enddo.
      ENDIF.
      IF ( ( GEN1 EQ 'X' OR GEN2 EQ 'X' ) AND SALORG1 NE 'X'
         AND SALORG2 NE 'X' AND SALPLANT NE 'X'
         AND PURCHASE NE 'X' AND PLTSTRG1 NE 'X'
         AND MRP1 NE 'X' AND MRP2 NE 'X' AND MRP3 NE 'X'
             AND MRP4 NE 'X' AND PLANTSTR NE 'X'
         AND ACC1 NE 'X' AND ACC2 NE 'X'
         AND COR1 NE 'X' AND COR2 NE 'X' and qau ne 'X' ) .
        IF K EQ 'K'.
          perform bdc_dynpro      using 'SAPLMGMM' '0070'.
          perform bdc_field       using 'BDC_CURSOR'
                                        'MSICHTAUSW-DYTXT(15)'.
          perform bdc_field       using 'BDC_OKCODE'
                                        '/N'.
        ELSE.
          PERFORM BDC_FILL_CHOICEVIEW.   "Ñ¡ÔñÊÓͼ
        ENDIF.
      ELSE.
        PERFORM BDC_FILL_CHOICEVIEW.   "Ñ¡ÔñÊÓͼ
        PERFORM BDC_FILL_ORGVIEW.      "×éÖ¯¼¶±ð
      ENDIF.
      TRANSLATE record-MEINS TO UPPER CASE.
    TRANSLATE record-BSTME TO UPPER CASE.
    TRANSLATE record-VRKME TO UPPER CASE.
    TRANSLATE record-FRTME TO UPPER CASE.
    TRANSLATE record-AUSME TO UPPER CASE.
      if gen1 eq 'X'.
        IF K NE 'K'.
          PERFORM GENERALDATA1.
        ENDIF.
      endif.
      if gen2 eq 'X'.
        IF K NE 'K'.
          perform generaldata2.
        ENDIF.
      endif.
      if salorg1 eq 'X'.
        perform salorg1.
      endif.
      if salorg2 eq 'X'.
        perform salorg2.
      endif.
      if salplant eq 'X'.
        perform salplant.
      endif.
      if purchase eq 'X'.
        perform purchasedata.
      endif.
      if mrp1 eq 'X'.
        perform MRP1.
      endif.
      if mrp2 eq 'X'.
        perform MRP2.
      endif.
      if mrp3 eq 'X'.
        perform MRP3.
      endif.
      if mrp4 eq 'X'.
        perform MRP4.
      endif.
      if PLANTSTR eq 'X'.
        perform PLANTSTR.
      endif.
      if PLTSTRG1 eq 'X'.
        perform PLTSTRG1.
      endif.
      if qau eq 'X'.
        perform qualitydata.
      endif.
      if ACC1 eq 'X'.
        perform ACC1DATA.
      endif.
      if ACC2 eq 'X'.
        perform ACC2DATA.
      endif.
      if COR1 eq 'X'.
        perform COR1DATA.
      endif.
      if COR2 eq 'X'.
        perform COR2DATA.
      endif.
      perform BDC_SAVE.
    endform.                               " BDC_FILL
    *&      Form  GENERALDATA1
          Ò»°ãÊý¾Ý 1
    -->  p1        text
    <--  p2        text
    form generaldata1.
      perform bdc_dynpro      using 'SAPLMGMM' '4004'.
      perform bdc_field       using 'BDC_OKCODE'
                                    "'=ZU01'.
                                    '/00'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    record-MAKTX.       " ÎïÁÏÃèÊö
      perform bdc_field       using 'MARA-MEINS'
                                    record-MEINS.       " »ù±¾¼ÆÁ¿µ¥Î»
      perform bdc_field       using 'MARA-MATKL'
                                    record-MATKL.       " ÎïÁÏ×é
      perform bdc_field       using 'MARA-BISMT'
                                    record-BISMT.
    perform bdc_field       using 'MARA-EXTWG'
                                   record-EXTWG.
    perform bdc_field       using 'MARA-SPART'
                                   record-SPART.
      perform bdc_field       using 'MARA-MTPOS_MARA'
                                    record-MTPOS_MARA.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MARA-GROES'.
      perform bdc_field       using 'MARA-BRGEW'
                                    record-BRGEW.
      if record-gewei = '' and ( salorg1 = 'X' or salorg2 = 'X'
                           or salplant = 'X' ).
        perform bdc_field       using 'MARA-GEWEI'
                                      'KG'.              " ÖØÁ¿µ¥Î»
      else.
        perform bdc_field       using 'MARA-GEWEI'
                                      record-GEWEI.      " ÖØÁ¿µ¥Î»
      endif.
      perform bdc_field       using 'MARA-NTGEW'
                                    record-NTGEW.
      perform bdc_field       using 'MARA-VOLUM'
                                    record-VOLUM.
      perform bdc_field       using 'MARA-VOLEH'
                                    record-VOLEH.
      perform bdc_field       using 'MARA-GROES'
                                    record-GROES.
    condense record-EAN11 no-gaps.
    if record-EAN11 <> ''.
       perform bdc_field       using 'MARA-EAN11'
                                     record-EAN11.
       perform bdc_field       using 'MARA-NUMTP'
                                     'HT'.
    endif.
      perform bdc_field       using 'MARA-MAGRV'
                                    record-MAGRV.
    perform bdc_dynpro      using 'SAPLMGMM' '4300'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '=ZU02'.
    condense record-EAKTX no-gaps.
    if record-EAKTX <> ''.
       perform bdc_field       using 'SKTEXT-SPRAS(2)'
                                     'EN'.
       perform bdc_field       using 'SKTEXT-MAKTX(2)'
                                     record-EAKTX.
    endif.
    perform bdc_dynpro      using 'SAPLMGMM' '4300'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '=MAIN'.
    if record-meins <> 'PAK'.
       perform bdc_field       using 'SMEINH-UMREN(05)'
                                     '1'.
       perform bdc_field       using 'SMEINH-MEINH(05)'
                                     'PAK'.
       perform bdc_field       using 'SMEINH-UMREZ(05)'
                                     '1'.
    endif.
      perform bdc_dynpro      using 'SAPLMGMM' '4004'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
    endform.                               " GENERALDATA
    *&      Form  generaldata2
          Ò»°ãÊý¾Ý 2
    -->  p1        text
    <--  p2        text
    FORM generaldata2.
      perform bdc_dynpro      using 'SAPLMGMM' '4004'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    record-MAKTX.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MARA-NORMT'.
      condense record-ferth no-gaps.
      if record-ferth <> ''.
        perform bdc_field       using 'MARA-FERTH'
                                      record-FERTH.
      endif.
      perform bdc_field       using 'MARA-NORMT'
                                    record-NORMT.
      perform bdc_field       using 'MARA-WRKST'
                                    record-WRKST.
    perform bdc_field       using 'MARA-ZEIAR'
                                   record-ZEIAR.
    ENDFORM.                    " generaldata2
    *&      Form  salorg1
          ÏúÊÛ×éÖ¯ 1
    -->  p1        text
    <--  p2        text
    FORM salorg1.
      condense RECORD-SPART no-gaps.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'MAKT-MAKTX'
                                    RECORD-MAKTX.     " ÎïÁÏÃèÊö
      IF K NE 'K'.
        perform bdc_field       using 'MARA-MEINS'
                                      record-MEINS.   " »ù±¾¼ÆÁ¿µ¥Î»
      ENDIF.
      perform bdc_field       using 'MARA-SPART'
                                    record-SPART.     " ²úÆ·×é
      perform bdc_field       using 'MVKE-DWERK'
                                    record-DWERK.     " ½»»õ¹¤³§
      PERFORM BDC_FIELD       USING 'MG03STEUER-TAXKM(01)'
                                    RECORD-TAXKM.     " ÎïÁÏË°·ÖÀà
    condense RECORD-VRKME no-gaps.
    IF RECORD-MEINS <> RECORD-VRKME and RECORD-VRKME <> ''.
       perform bdc_field       using 'MVKE-VRKME'
                                     record-VRKME.     " ÏúÊÛµ¥Î»
       select single * from MARM where matnr = record-matnr
                     and meinh = record-vrkme.
       if SY-SUBRC NE 0.
         tmp = 'W'.
         select single * from t006 where MSEHI = record-meins.
         if t006-DIMID = 'AAAADL'.
           DIMID = ''.
         else.
           DIMID = t006-DIMID.
         endif.
         select single * from t006 where MSEHI = record-vrkme.
         if dimid <> t006-DIMID.
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0510'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '=ENTR'.
           perform bdc_field       using 'RMMZU-UMREN'
                                         record-VMREN.  "ÏúÊÛµ¥Î»×ª»»Òò×Ó
           perform bdc_field       using 'RMMZU-UMREZ'
                                         record-VMREZ.  "»ù±¾µ¥Î»×ª»»Òò×Ó
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '/00'.
         endif.
       endif.
    ENDIF.
      perform bdc_dynpro      using 'SAPLMGMM' '4200'.
      perform bdc_field       using 'BDC_OKCODE'      " µ÷ÓÃË°Àà×ÓÆÁÄ»
                                    '/00'.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'      " ·µ»ØÏúÊÛ×éÖ¯ 1ÆÁÄ»
                                    '/00'.
    ENDFORM.                                                    " salorg1
    *&      Form  salorg2
          ÏúÊÛ×éÖ¯ 2
    -->  p1        text
    <--  p2        text
    FORM salorg2.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'MVKE-KTGRM'.
    PERFORM BDC_FIELD       USING 'MVKE-VERSG'
                                   RECORD-VERSG.     " ÎïÁÏͳ¼Æ×é
      PERFORM BDC_FIELD       USING 'MVKE-KTGRM'
                                    RECORD-KTGRM.     " ¿ÆÄ¿ÉèÖÃ×é
      PERFORM BDC_FIELD       USING 'MVKE-KONDM'
                                    RECORD-KONDM.     " ÎïÁ϶¨¼Û×é
      perform bdc_field       using 'MVKE-MTPOS'
                                    RECORD-MTPOS.     " ÏîÄ¿Àà±ð×é
    PERFORM BDC_FIELD       USING 'MVKE-MVGR1'
                                   RECORD-MVGR1.               " ÎïÁÏ×é 1
    PERFORM BDC_FIELD       USING 'MVKE-MVGR2'
                                   RECORD-MVGR2.               " ÎïÁÏ×é 2
    ENDFORM.                                                    " salorg2
    *&      Form  salplant
          ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý
    -->  p1        text
    <--  p2        text
    FORM salplant.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      select single * from marc where matnr = record-matnr
                                  and werks = record-werks.
      if SY-SUBRC NE 0  OR  MARC-MTVFP = ''.
        PERFORM BDC_FIELD       USING 'MARC-MTVFP'
                                      RECORD-MTVFP.     " ¿ÉÓÃÐÔ¼ì²é
      endif.
      PERFORM BDC_FIELD       USING 'MARA-TRAGR'
                                      RECORD-TRAGR.   " ÔËÊä×é
      PERFORM BDC_FIELD       USING 'MARC-LADGR'
                                    RECORD-LADGR.     " ×°ÔØ×é
      perform bdc_field       using 'MARC-XCHPF'
                                    record-XCHPF.     " ÅúÁ¿¹ÜÀí
    ENDFORM.                    " salplant
    *&      Form  PURCHASEDATA
          ²É¹ºÊý¾Ý
    -->  p1        text
    <--  p2        text
    form purchasedata.
      perform bdc_dynpro      using 'SAPLMGMM' '4000'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MARC-WEBAZ'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    record-MAKTX.
      IF K NE 'K'.
        perform bdc_field       using 'MARA-MEINS'
                                      record-MEINS.     " »ù±¾¼ÆÁ¿µ¥Î»
        perform bdc_field       using 'MARA-MATKL'
                                      record-MATKL.     " ÎïÁÏ×é
      ENDIF.
    condense RECORD-BSTME no-gaps.
    IF RECORD-MEINS <> RECORD-BSTME and RECORD-BSTME <> ''.
       perform bdc_field       using 'MARA-BSTME'
                                     record-BSTME.     " ¶©µ¥µ¥Î»
       select single * from MARM where matnr = record-matnr
                     and meinh = record-bstme.
       if SY-SUBRC NE 0 and
             ( record-vrkme <> record-bstme or tmp <> 'W' ).
         tmp = 'W'.
         select single * from t006 where MSEHI = record-meins.
         if t006-DIMID = 'AAAADL'.
           DIMID = ''.
         else.
           DIMID = t006-DIMID.
         endif.
         select single * from t006 where MSEHI = record-bstme.
         if dimid <> t006-DIMID.
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0510'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '=ENTR'.
           perform bdc_field       using 'RMMZU-UMREN'
                                         record-UMREN.  "¶©µ¥µ¥Î»×ª»»Òò×Ó
           perform bdc_field       using 'RMMZU-UMREZ'
                                         record-UMREZ.  "»ù±¾µ¥Î»×ª»»Òò×Ó
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '/00'.
         endif.
       endif.
    ENDIF.
      perform bdc_field       using 'MARC-EKGRP'
                                    record-EKGRP.       " ²É¹º×é
    perform bdc_field       using 'MARC-WEBAZ'
                                   record-WEBAZ.       " ÊÕ»õ´¦Àíʱ¼ä
    endform.                               " PURCHASEDATA
    *&      Form  MRP1
          text
    -->  p1        text
    <--  p2        text
    FORM MRP1.
      perform bdc_dynpro      using 'SAPLMGMM' '4000'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   record-MAKTX.       " ÎïÁÏÃèÊö
    IF K NE 'K'.
       perform bdc_field       using 'MARA-MEINS'
                                     record-MEINS.     " »ù±¾µ¥Î»
    ENDIF.
    perform bdc_field       using 'MARC-DISGR'
                                   record-DISGR.       " MRP×é
      perform bdc_field       using 'MARC-MAABC'
                                    record-MAABC.       " ABC±êʶ
      perform bdc_field       using 'MARC-DISMM'
                                    record-DISMM.       " MRPÀàÐÍ
    perform bdc_field       using 'MARC-FXHOR'
                                   record-FXHOR.       " ¼Æ»®µÄʱ½ì
      perform bdc_field       using 'MARC-DISPO'
                                    record-DISPO.       " MRP¿ØÖÆÕß
      perform bdc_field       using 'MARC-DISLS'
                                    record-DISLS.       " ÅúÁ¿
    perform bdc_field       using 'MARC-BSTFE'
                   

    Here is a sample program which creates a material with the bare minmal fields,  this will get you started.
    report zrich_0003 .
    data: headdata type bapimathead.
    data: clientdata type bapi_mara.
    data: clientdatax type bapi_marax.
    data: descdata type table of BAPI_MAKT with header line.
    data: return type  bapiret2 .
    data: returnm type table of bapi_matreturn2 with header line.
    data: xmara type mara.
    parameters: p_matnr type mara-matnr.
    headdata-material        = p_matnr.
    headdata-ind_sector      = 'M'.
    headdata-matl_type       = 'FERT'.
    headdata-basic_view = 'X'.
    clientdata-BASE_UOM   = 'EA'.
    clientdatax-BASE_UOM   = 'X'.
    clientdata-old_mat_no = 'Old Material'.
    clientdatax-old_mat_no = 'X'.
    clientdata-division = '00'.
    clientdatax-division = 'X'.
    descdata-LANGU = sy-langu.
    descdata-MATL_DESC = 'This is the description'.
    append descdata.
    call function 'BAPI_MATERIAL_SAVEDATA'
      exporting
        headdata                   = headdata
        clientdata                 = clientdata
        clientdatax                = clientdatax
    *   PLANTDATA                  =
    *   PLANTDATAX                 =
    *   FORECASTPARAMETERS         =
    *   FORECASTPARAMETERSX        =
    *   PLANNINGDATA               =
    *   PLANNINGDATAX              =
    *   STORAGELOCATIONDATA        =
    *   STORAGELOCATIONDATAX       =
    *   VALUATIONDATA              =
    *   VALUATIONDATAX             =
    *   WAREHOUSENUMBERDATA        =
    *   WAREHOUSENUMBERDATAX       =
    *   SALESDATA                  =
    *   SALESDATAX                 =
    *   STORAGETYPEDATA            =
    *   STORAGETYPEDATAX           =
    importing
       return                     = return
      tables
        MATERIALDESCRIPTION        = descdata
    *   UNITSOFMEASURE             =
    *   UNITSOFMEASUREX            =
    *   INTERNATIONALARTNOS        =
    *   MATERIALLONGTEXT           =
    *   TAXCLASSIFICATIONS         =
        returnmessages             = returnm
    *   PRTDATA                    =
    *   PRTDATAX                   =
    *   EXTENSIONIN                =
    *   EXTENSIONINX               =
    check sy-subrc  = 0.
    Regards,
    Rich Heilman

  • How to upload material master using BAPI

    I have a flat file with 3 fields MATNR,MAKTX,MEINS and I want to create material master with 2 views basic data1 & basic data2 with three fields using BAPI
    Can anyone tell me how to do this only using three fields and 2 views
    and also i want to know what is the exact difference between session call transaction BAPI and LSWM methods.
    Thank you,
    Pradeep Reddy M.

    Hi Pradeep Reddy Miriyala,
    This a example you can use, the views are related with each table only have to adapt to your case.
    Best regards
    Jaime Cordeiro
    *& Report  ZMM01_BAPI_01                                               *
    REPORT  ZMM01_BAPI_01                           .
                   STRUCTURE  DECLARATIONS                             *
    TABLES: BAPIMATHEAD,  "Headerdata
            BAPI_MARA,    "Clientdata
            BAPI_MARAX,   "Clientdatax
            BAPI_MVKE,    "SalesData
            BAPI_MVKEX,   "SalesDatax
            BAPI_MARC,    "Plantdata
            BAPI_MARCX,   "Plantdatax
            BAPI_MBEW,    "ValuationData
            BAPI_MBEWX,    "ValuationData
            BAPI_MLGN,    "Storage
            BAPI_MLGNX,   "StorageX
            BAPI_MAKT,    "Material description
            BAPI_MARM,
            BAPI_MARMX,
            bapi_mean,
            BAPI_MLAN,
            BAPIRET2.     "Return messages
    DATA: BEGIN OF LSMW_MATERIAL_MASTER,
    > Initial Data
         matnr(18),
         mtart(4),
         WERKS(4),
         VKORG(4),
         VTWEG(2),
         LGNUM(3),"retirar
    > Basic Data 1
         MAKTX(40),
         MEINS(3),
         MATKL(9),
         BISMT(18),
         SPART(2),
         PRDHA(18),
         BRGEW(17),
         NTGEW(17),
         GEWEI(3),
         VOLUM(13),
         VOLEH(3),
         EAN11(18),
         NUMTP(2),
    > Sales 1
         DWERK(4),
         TAXKM(1),
    > Sales 2
         KTGRM(2),
         PRODH(18),
         MTPOS(4),
    > Sales: General/Plant
         MTVFP(2),
         TRAGR(4),
         LADGR(4),
         PRCTR(10),
    > Purchasing
    Novas entradas
         EKGRP(3),
         KAUTB(1),
         XCHPF1(1),
         EKWSL(4),
         WEBAZ(3),
         INSMK1(1),
         KORDB(1),
    > Foreign Trade
         STAWN(17),
         MTVER(4),
         HERKL(3),
         HERKR(3),
    > Purchase Order Text View
    Identificar Campos
         TextoEN(100),
         TextoPT(100),
         TextoPL(100),
         TextoES(100),
    > MRP1
         DISGR(4),
         DISMM(2),
         DISPO(3),
         DISLS(2),
         BSTMI(18),
         BSTRF(13),
    > MRP2
         BESKZ(1),
         RGEKZ(1),
         LGPRO(4),
         LGFSB(4),
         EPRIO(4),
         WEBAZ1(3),
         PLIFZ(3),
         FHORI(3),
    > MRP3
         PERKZ(1),
         STRGR(2),
         VRMOD(1),
         VINT1(3),
         VINT2(3),
    > MRP4
         ALTSL(1),
         FEVOR(3),
    > Work Sch
         INSMK(1),
         XCHPF(1),
         UEETO(3),
    > Plant Storage 1
         MHDRZ(4),
         MHDHB(4),
    > Plant Storage 2
         PRCTR1(10),
         EPRIO1(4),
    > WM 1 S01 comum a todos
         LTKZA_S01(3),
         LTKZE_S01(3),
         LGBKZ_S01(3),
    > WM 1 SHV
         LTKZA_SHV(3),
         LTKZE_SHV(3),
         LGBKZ_SHV(3),
    > WM 1 SQW
         LTKZA_SQW(3),
         LTKZE_SQW(3),
         LGBKZ_SQW(3),
    > WM 2
         LHMG1(13),
         LHME1(3),
         LETY1(3),
         LHMG2(13),
         LHME2(3),
         LETY2(3),
         LHMG3(13),
         LHME3(3),
         LETY3(3),
    > Accounting 1
         BKLAS(4),
         VPRSV(1),
         VERPR(23),
         PEINH(5),
       END OF LSMW_MATERIAL_MASTER.
    DATA:V_FILE TYPE STRING.
    DATA:VolumUnitConv(3).
    DATA:UnitConv(3).
                   INTERNAL TABLE DECLARATIONS                         *
    *to store the input data
    DATA:
      BEGIN OF  it_matmaster OCCURS 0.
            INCLUDE STRUCTURE LSMW_MATERIAL_MASTER.
    DATA:
      END OF it_matmaster.
    *for material description
    DATA:BEGIN OF IT_MATERIALDESC OCCURS 0.
            INCLUDE STRUCTURE BAPI_MAKT .
    DATA:END OF IT_MATERIALDESC.
    *FOR gross wt
    data: begin of it_uom occurs 0.
            include structure BAPI_MARM.
    data:end of it_uom.
    DATA: BEGIN OF IT_UOMX OCCURS 0.
            INCLUDE STRUCTURE BAPI_MARMX.
    DATA:END OF IT_UOMX.
    data:begin of it_mean occurs 0.
            include structure bapi_mean.
    data:end of it_mean.
    DATA: BEGIN OF it_MLAN OCCURS 0.
            include STRUCTURE BAPI_MLAN.
    DATA: END OF it_MLAN.
    DATA:BEGIN OF IT_MLTX OCCURS 0.
            INCLUDE STRUCTURE BAPI_MLTX.
    DATA:END OF IT_MLTX.
    *to return messages
    DATA:BEGIN OF IT_RETURN OCCURS 0.
            INCLUDE STRUCTURE BAPIRET2.
    DATA:END OF IT_RETURN.
    DATA : imat TYPE TABLE OF bapimatinr WITH HEADER LINE.
    DATA: text LIKE bapi_mltx OCCURS 0 WITH HEADER LINE.
    DATA: matnrAct(18),oldMart(4).
    SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.
    PARAMETERS:P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1 .
    AT SELECTION SCREEN
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          PROGRAM_NAME  = SYST-CPROG
          DYNPRO_NUMBER = SYST-DYNNR
          FIELD_NAME    = 'P_FILE'
        IMPORTING
          FILE_NAME     = P_FILE.
                   TO UPLOAD THE DATA                                  *
    START-OF-SELECTION.
      V_FILE = P_FILE.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      = V_FILE
         FILETYPE                      = 'ASC'
         HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        tables
          data_tab                      =  IT_MATMASTER
       EXCEPTIONS
         FILE_OPEN_ERROR               = 1
         FILE_READ_ERROR               = 2
         NO_BATCH                      = 3
         GUI_REFUSE_FILETRANSFER       = 4
         INVALID_TYPE                  = 5
         NO_AUTHORITY                  = 6
         UNKNOWN_ERROR                 = 7
         BAD_DATA_FORMAT               = 8
         HEADER_NOT_ALLOWED            = 9
         SEPARATOR_NOT_ALLOWED         = 10
         HEADER_TOO_LONG               = 11
         UNKNOWN_DP_ERROR              = 12
         ACCESS_DENIED                 = 13
         DP_OUT_OF_MEMORY              = 14
         DISK_FULL                     = 15
         DP_TIMEOUT                    = 16
         OTHERS                        = 17
      IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      check sy-subrc eq 0.
                   DATA POPULATIONS                                    *
      LOOP AT  IT_MATMASTER.
        IF IT_MATMASTER-MATNR EQ '' .
          oldMart = IT_MATMASTER-Mtart.
          CALL FUNCTION 'MATERIAL_NUMBER_GET_NEXT'
            EXPORTING
              MATERIALART                = IT_MATMASTER-Mtart
           IMPORTING
             MATERIALNR                 = matnrAct
      RETURNCODE                 =
    EXCEPTIONS
      NO_INTERNAL_INTERVAL       = 1
      TYPE_NOT_FOUND             = 2
      OTHERS                     = 3
          if sy-subrc = 0.
            BAPIMATHEAD-MATERIAL = matnrAct.
          endif.
        ELSE.
          BAPIMATHEAD-MATERIAL = it_matmaster-matnr.
        ENDIF.
    Preenchimento dos dados do ecrã inicial
       BAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
        BAPIMATHEAD-IND_SECTOR = 'M'.
        BAPIMATHEAD-MATL_TYPE = IT_MATMASTER-Mtart.
        "declaration of views
        BAPIMATHEAD-BASIC_VIEW = 'X'.
        BAPIMATHEAD-MRP_VIEW = 'X'.
        BAPIMATHEAD-STORAGE_VIEW = 'X'.
        BAPIMATHEAD-WAREHOUSE_VIEW = 'X'.
        BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
        If IT_MATMASTER-Mtart EQ '31'.
          BAPIMATHEAD-SALES_VIEW = 'X'.
          BAPIMATHEAD-WORK_SCHED_VIEW = 'X'.
        ENDIF.
        If IT_MATMASTER-Mtart EQ '51'.
          BAPIMATHEAD-SALES_VIEW = 'X'.
          BAPIMATHEAD-WORK_SCHED_VIEW = 'X'.
        ENDIF.
        If IT_MATMASTER-Mtart EQ '65'.
          BAPIMATHEAD-PURCHASE_VIEW = 'X'.
        ENDIF.
    Preenchimento de dados relativos a MARA
        BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
        BAPI_MARA-MATL_GROUP = IT_MATMASTER-MATKL.
        BAPI_MARA-OLD_MAT_NO = IT_MATMASTER-BISMT.
        BAPI_MARA-DIVISION = IT_MATMASTER-SPART.
        BAPI_MARA-PROD_HIER = IT_MATMASTER-PRDHA.
        BAPI_MARA-NET_WEIGHT = IT_MATMASTER-ntgew.
        BAPI_MARA-UNIT_OF_WT = IT_MATMASTER-GEWEI.
        BAPI_MARA-TRANS_GRP = IT_MATMASTER-tragr.
    > Novas Entradas
        IF IT_MATMASTER-Mtart EQ '65'.
          BAPI_MARA-BATCH_MGMT = IT_MATMASTER-XCHPF1.
          BAPI_MARA-PUR_VALKEY = IT_MATMASTER-EKWSL.     
          BAPI_MARAX-PUR_VALKEY = 'X'.
        ELSE.
                   BAPI_MARA-BATCH_MGMT = IT_MATMASTER-XCHPF.
    ENDIF.
    > Novas Entradas
          BAPI_MARA-MINREMLIFE = IT_MATMASTER-MHDRZ.
          BAPI_MARA-SHELF_LIFE = IT_MATMASTER-MHDHB.
          BAPI_MARAX-MATL_GROUP = 'X'.
          BAPI_MARAX-OLD_MAT_NO = 'X'.
          BAPI_MARAX-BASE_UOM = 'X'.
          BAPI_MARAX-DIVISION = 'X'.
          BAPI_MARAX-PROD_HIER = 'X'.
          BAPI_MARAX-NET_WEIGHT = 'X'.
          BAPI_MARAX-UNIT_OF_WT = 'X'.
          BAPI_MARAX-TRANS_GRP = 'X'.
          BAPI_MARAX-BATCH_MGMT = 'X'.
          BAPI_MARAX-MINREMLIFE = 'X'.
          BAPI_MARAX-SHELF_LIFE = 'X'.
    Preencimento de dados Relativos a MKVE
          BAPI_MVKE-DELYG_PLNT = IT_MATMASTER-DWERK.
          BAPI_MVKE-SALES_ORG = IT_MATMASTER-VKORG.
          BAPI_MVKE-DISTR_CHAN = IT_MATMASTER-VTWEG.
          BAPI_MVKE-PROD_HIER = IT_MATMASTER-PRODH.
          BAPI_MVKE-ITEM_CAT = IT_MATMASTER-MTPOS.
          BAPI_MVKE-ACCT_ASSGT = IT_MATMASTER-KTGRM.
          BAPI_MVKEX-SALES_ORG = IT_MATMASTER-VKORG.
          BAPI_MVKEX-DISTR_CHAN = IT_MATMASTER-VTWEG.
          BAPI_MVKEX-PROD_HIER = 'X'.
          BAPI_MVKEX-ITEM_CAT = 'X'.
          BAPI_MVKEX-DELYG_PLNT = 'X'.
          BAPI_MVKEX-ACCT_ASSGT = 'X'.
    Preencimento de dados Relativos a MARC
          BAPI_MARC-PLANT = IT_MATMASTER-WERKS.
          BAPI_MARC-AVAILCHECK = IT_MATMASTER-MTVFP.
          BAPI_MARC-LOADINGGRP = IT_MATMASTER-LADGR.
          BAPI_MARC-PROFIT_CTR = IT_MATMASTER-PRCTR.
          IF NOT IT_MATMASTER-Mtart EQ '51'.
            BAPI_MARC-COMM_CODE = IT_MATMASTER-STAWN.
            BAPI_MARC-COUNTRYORI = IT_MATMASTER-HERKL.
            BAPI_MARC-REGIONORIG = IT_MATMASTER-HERKR.
            BAPI_MARCX-COMM_CODE = 'X'.
            BAPI_MARCX-COUNTRYORI = 'X'.
            BAPI_MARCX-REGIONORIG = 'X'.
          ENDIF.
          BAPI_MARC-MRP_GROUP = IT_MATMASTER-DISGR.
          BAPI_MARC-MRP_TYPE = IT_MATMASTER-DISMM.
          BAPI_MARC-MRP_CTRLER = IT_MATMASTER-DISPO.
          BAPI_MARC-LOTSIZEKEY = IT_MATMASTER-DISLS.
          BAPI_MARC-MINLOTSIZE = IT_MATMASTER-BSTMI.
          BAPI_MARC-ROUND_VAL = IT_MATMASTER-BSTRF.
          BAPI_MARC-PROC_TYPE = IT_MATMASTER-BESKZ.
          BAPI_MARC-BACKFLUSH = IT_MATMASTER-RGEKZ .
          BAPI_MARC-ISS_ST_LOC = IT_MATMASTER-LGPRO.
          BAPI_MARC-DETERM_GRP = IT_MATMASTER-EPRIO.
          BAPI_MARC-SM_KEY = IT_MATMASTER-FHORI.
          BAPI_MARC-PERIOD_IND = IT_MATMASTER-PERKZ.
          BAPI_MARC-PLAN_STRGP = IT_MATMASTER-STRGR.
          BAPI_MARC-CONSUMMODE = IT_MATMASTER-VRMOD.
          BAPI_MARC-BWD_CONS = IT_MATMASTER-VINT1.
          BAPI_MARC-FWD_CONS = IT_MATMASTER-VINT2.
          BAPI_MARC-ALT_BOM_ID = IT_MATMASTER-ALTSL.
          BAPI_MARC-PRODUCTION_SCHEDULER = IT_MATMASTER-FEVOR.
          IF NOT IT_MATMASTER-Mtart EQ '65'.
            BAPI_MARC-IND_POST_TO_INSP_STOCK = IT_MATMASTER-INSMK.
            BAPI_MARC-OVER_TOL = IT_MATMASTER-UEETO.
            BAPI_MARCX-IND_POST_TO_INSP_STOCK = 'X'.
            BAPI_MARCX-OVER_TOL = 'X'.
          ENDIF.
    > Novas Entradas
          IF IT_MATMASTER-Mtart EQ '65'.
                 BAPI_MARC-PUR_GROUP = IT_MATMASTER-EKGRP .
                 BAPI_MARC-AUTO_P_ORD = IT_MATMASTER-KAUTB .
                 BAPI_MARC-GR_PR_TIME = IT_MATMASTER-WEBAZ .
                 BAPI_MARC-IND_POST_TO_INSP_STOCK = IT_MATMASTER-INSMK1 .
                 BAPI_MARC-SOURCELIST = IT_MATMASTER-KORDB .
                 BAPI_MARC-EXPIMPGRP = IT_MATMASTER-MTVER .
                 BAPI_MARCX-PUR_GROUP = 'X'.
                 BAPI_MARCX-AUTO_P_ORD = 'X'.
            BAPI_MARCX-GR_PR_TIME = 'X'.
            BAPI_MARCX-IND_POST_TO_INSP_STOCK = 'X'.
            BAPI_MARCX-SOURCELIST = 'X'.
            BAPI_MARCX-EXPIMPGRP = 'X'.
          ENDIF.
    > Novas Entradas
          BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.
          BAPI_MARCX-AVAILCHECK = 'X'.
          BAPI_MARCX-LOADINGGRP = 'X'.
          BAPI_MARCX-PROFIT_CTR = 'X'.
          BAPI_MARCX-MRP_GROUP = 'X'.
          BAPI_MARCX-MRP_TYPE = 'X'.
          BAPI_MARCX-MRP_CTRLER = 'X'.
          BAPI_MARCX-LOTSIZEKEY = 'X'.
          BAPI_MARCX-MINLOTSIZE = 'X'.
          BAPI_MARCX-ROUND_VAL = 'X'.
          BAPI_MARCX-PROC_TYPE = 'X'.
          BAPI_MARCX-BACKFLUSH = 'X'.
          BAPI_MARCX-ISS_ST_LOC = 'X'.
          BAPI_MARCX-DETERM_GRP = 'X'.
          BAPI_MARCX-SM_KEY = 'X'.
          BAPI_MARCX-PERIOD_IND = 'X'.
          BAPI_MARCX-PLAN_STRGP = 'X'.
          BAPI_MARCX-CONSUMMODE = 'X'.
          BAPI_MARCX-BWD_CONS = 'X'.
          BAPI_MARCX-FWD_CONS = 'X'.
          BAPI_MARCX-ALT_BOM_ID = 'X'.
          BAPI_MARCX-PRODUCTION_SCHEDULER = 'X'.
    Preencimento de dados Relativos a MLGN
          BAPI_MLGN-WHSE_NO = 'S01'.
          BAPI_MLGN-WITHDRAWAL = IT_MATMASTER-LTKZA_S01.
          BAPI_MLGN-PLACEMENT = IT_MATMASTER-LTKZE_S01.
          BAPI_MLGN-STGESECTOR = IT_MATMASTER-LGBKZ_S01.
          BAPI_MLGN-L_EQUIP_1 = IT_MATMASTER-LHMG1.
          BAPI_MLGN-L_EQUIP_2 = IT_MATMASTER-LHMG2.
          BAPI_MLGN-L_EQUIP_3 = IT_MATMASTER-LHMG3.
          BAPI_MLGN-LEQ_UNIT_1 = IT_MATMASTER-LHME1.
          BAPI_MLGN-LEQ_UNIT_2 = IT_MATMASTER-LHME2.
          BAPI_MLGN-LEQ_UNIT_3 = IT_MATMASTER-LHME3.
          BAPI_MLGN-UNITTYPE_1 = IT_MATMASTER-LETY1.
          BAPI_MLGN-UNITTYPE_2 = IT_MATMASTER-LETY2.
          BAPI_MLGN-UNITTYPE_3 = IT_MATMASTER-LETY3.
          BAPI_MLGNX-WHSE_NO = 'S01'.
          BAPI_MLGNX-WITHDRAWAL = 'X'.
          BAPI_MLGNX-PLACEMENT = 'X'.
          BAPI_MLGNX-STGESECTOR = 'X'.
          BAPI_MLGNX-L_EQUIP_1 = 'X'.
          BAPI_MLGNX-L_EQUIP_2 = 'X'.
          BAPI_MLGNX-L_EQUIP_3 = 'X'.
          BAPI_MLGNX-LEQ_UNIT_1 = 'X'.
          BAPI_MLGNX-LEQ_UNIT_2 = 'X'.
          BAPI_MLGNX-LEQ_UNIT_3 = 'X'.
          BAPI_MLGNX-UNITTYPE_1 = 'X'.
          BAPI_MLGNX-UNITTYPE_2 = 'X'.
          BAPI_MLGNX-UNITTYPE_3 = 'X'.
    Preencimento de dados Relativos a MBEW
    BAPI_MBEW,
    BAPI_MBEWX,
          BAPI_MBEW-VAL_CLASS = IT_MATMASTER-BKLAS.
          BAPI_MBEW-PRICE_CTRL = IT_MATMASTER-VPRSV.
          BAPI_MBEW-STD_PRICE = IT_MATMASTER-VERPR.
          BAPI_MBEW-PRICE_UNIT = IT_MATMASTER-PEINH.
          BAPI_MBEW-VAL_AREA = 'CLPS'."IT_MATMASTER-BWKEY.
          BAPI_MBEWX-VAL_AREA = 'CLPS'."IT_MATMASTER-BWKEY.
          BAPI_MBEWX-VAL_CLASS = 'X'.
          BAPI_MBEWX-PRICE_CTRL = 'X'.
          BAPI_MBEWX-STD_PRICE = 'X'.
          BAPI_MBEWX-PRICE_UNIT = 'X'.
    ---------------------------------------------------> Material Descrition
          IT_MATERIALDESC-LANGU = sy-langu. "'EN'.
          IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
          APPEND IT_materialdesc.
    Gross Weight, Volume and EAN
    *Volume é preciso uma rotina de conversão
          CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
            EXPORTING
              INPUT                = IT_MATMASTER-VOLEH
      LANGUAGE             = SY-LANGU
           IMPORTING
             OUTPUT               = VolumUnitConv
           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.
          CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
            EXPORTING
              INPUT                = IT_MATMASTER-MEINS
      LANGUAGE             = SY-LANGU
           IMPORTING
             OUTPUT               = UnitConv
           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.
          IT_UOM-GROSS_WT = IT_MATMASTER-BRGEW.
          IT_UOM-ALT_UNIT = UnitConv.
         IT_UOM-ALT_UNIT_ISO = IT_MATMASTER-GEWEI.
          IT_UOM-UNIT_OF_WT = IT_MATMASTER-GEWEI.
          IT_UOM-EAN_UPC = IT_MATMASTER-EAN11.
          IT_UOM-EAN_CAT = IT_MATMASTER-NUMTP.
          IT_UOM-VOLUME = IT_MATMASTER-VOLUM.
          IT_UOM-VOLUMEUNIT = VolumUnitConv.
         IT_UOM-VOLUMEUNIT_ISO = IT_MATMASTER-VOLEH.
          APPEND IT_UOM.
          IT_UOMX-ALT_UNIT = IT_MATMASTER-MEINS.
         IT_UOMX-ALT_UNIT_ISO = IT_MATMASTER-GEWEI.
          IT_UOMX-GROSS_WT = 'X'.
          IT_UOMX-UNIT_OF_WT = 'X'.
          IT_UOMX-EAN_UPC = 'X'.
          IT_UOMX-EAN_CAT = 'X'.
    *Volume
          IT_UOMX-VOLUME = 'X'.
          IT_UOMX-VOLUMEUNIT = 'X'.
         IT_UOMX-VOLUMEUNIT_ISO = 'X'.
          APPEND IT_UOMX.
          CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
            EXPORTING
              headdata             = BAPIMATHEAD
              CLIENTDATA           = BAPI_MARA
              CLIENTDATAX          = BAPI_MARAx
              PLANTDATA            = BAPI_MARc
              PLANTDATAX           = BAPI_MARcx
              VALUATIONDATA        = BAPI_MBEW
              VALUATIONDATAX       = BAPI_MBEWX
              WAREHOUSENUMBERDATA  = BAPI_MLGN
              WAREHOUSENUMBERDATAX = BAPI_MLGNX
              SALESDATA            = BAPI_MVKE
              SALESDATAX           = BAPI_MVKEX
            IMPORTING
              RETURN               = IT_RETURN
            TABLES
              MATERIALDESCRIPTION  = IT_MATERIALDESC
              UNITSOFMEASURE       = IT_UOM
              UNITSOFMEASUREX      = IT_UOMX
              MATERIALLONGTEXT     = text
              TAXCLASSIFICATIONS   = it_MLAN.
          if it_return-type eq 'S'.
            CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
         endif.
         WAIT UP TO 10 SECONDS.
          WRITE : / IT_RETURN-MESSAGE.
          CLEAR: IT_MATERIALDESC[],
                 IT_UOM[],
                 IT_UOMX[],
                 it_MLAN[],
                 IT_RETURN,
                 text,
                 BAPIMATHEAD,
                 BAPI_MARA,
                 BAPI_MARAx,
                 BAPI_MARc,
                 BAPI_MARcx,
                 BAPI_MBEW,
    BAPI_MBEWX,
    BAPI_MLGN,
    BAPI_MLGNX,
    BAPI_MVKE,
    BAPI_MVKEX
        ENDLOOP.

  • Material Master Extension to all the plants of same type

    Hi
    In the given scenario, we have  almost 200 plants where same materials are required , now when we create material master using Tcode MM01 we want to extend this material master to all the plants of same type in one go .Is it possible , if yes , how to go about it ?? please help, this is the specific customer requirment .
    ans will be rewarded
    rgds
    mojib

    Hi,
    Just go through the code
    report ZMM_FERT_CREATE_EXT_PLANT
           no standard page heading line-size 255.
    *include bdcrecx1.
    DATA : it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE,
           it_bdcmsgcoll LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
    data : p_filex type string .
    types: BEGIN OF t_mm01,
            matnr(018),
            MAKTX(040),
            mtart(004),
            matkl(009),
            WGBEZ(020),
            bklas(004),
            vprsv(001),
            werks(004),
            vkorg(004),
            vtweg(002),
            sktof(001),
            versg(001),
            kondm(002),
            ktgrm(002),
            meins(003),
            gewei(003),
            j_1ichid(012),
            j_1isubind(001),
            j_1icapind(001),
            j_1igrxref(001),
            tragr(004),
            ladgr(004),
            mtvfp(002),
            xchpf(001),
            mtpos_mara(004),
            mtpos(004),
            ekgrp(003),
            BWTTY(010),
            meins1(003),
            meins2(003),
            meins3(003),
            sales_txt(040),
            purc_txt(040),
            mbrsh(001),
            verpr(015),
            peinh(006),
            stprs(015),
            brgew(017),
            ntgew(017),
            j_1ivalass(018),
            umrez1(006),
            umren1(006),
            umrez2(006),
            umren2(006),
            umrez3(006),
            umren3(006),
            lgort(004),
            TAXKM1(001),
            TAXKM2(001),
            HERKL(003),
            HERKR(003),
            J_1IMOOM(018),
          end of t_mm01.
    DATA : it_mm01 type table of t_mm01 with header line initial size 0.
    *Selection Screen                                              *
      SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE text-001.
                PARAMETERS: p_file like IBIPPARMS-PATH obligatory.
      SELECTION-SCREEN:END OF BLOCK B.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .
      PERFORM get_filename.
    *START-OF-SELECTION
      START-OF-SELECTION.
       PERFORM upload_data.
       PERFORM fill_data.
    *&      Form  upload_data
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form upload_data .
    p_filex = p_file.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename                      = p_filex
        FILETYPE                      = 'ASC'
        HAS_FIELD_SEPARATOR           = '#'
    *   HEADER_LENGTH                 = 0
    *   READ_BY_LINE                  = 'X'
    *   DAT_MODE                      = ' '
    *   CODEPAGE                      = ' '
    *   IGNORE_CERR                   = ABAP_TRUE
    *   REPLACEMENT                   = '#'
    *   CHECK_BOM                     = ' '
    *   NO_AUTH_CHECK                 = ' '
    * IMPORTING
    *   FILELENGTH                    =
    *   HEADER                        =
      tables
        data_tab                      = it_mm01
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
       FILE_READ_ERROR               = 2
       NO_BATCH                      = 3
       GUI_REFUSE_FILETRANSFER       = 4
       INVALID_TYPE                  = 5
       NO_AUTHORITY                  = 6
       UNKNOWN_ERROR                 = 7
       BAD_DATA_FORMAT               = 8
       HEADER_NOT_ALLOWED            = 9
       SEPARATOR_NOT_ALLOWED         = 10
       HEADER_TOO_LONG               = 11
       UNKNOWN_DP_ERROR              = 12
       ACCESS_DENIED                 = 13
       DP_OUT_OF_MEMORY              = 14
       DISK_FULL                     = 15
       DP_TIMEOUT                    = 16
       OTHERS                        = 17
    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.                    " upload_data
    *&      Form  get_filename
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form get_filename .
    CALL FUNCTION 'F4_FILENAME'
                   EXPORTING
                     PROGRAM_NAME        = SYST-CPROG
                     DYNPRO_NUMBER       = SYST-DYNNR
    *                 FIELD_NAME          = p_file
                   IMPORTING
                     FILE_NAME           = p_file .
                   if sy-subrc NE 0  .
                      write : / 'Enter File Name'.
                   endif.
    endform.                    " get_filename
    *&      Form  fill_data
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form fill_data .
    *perform open_group.
    loop at it_mm01.
      clear it_bdcdata.
    refresh it_bdcdata.
    perform bdc_dynpro      using 'SAPLMGMM' '0060'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MTART'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'RMMG1-MATNR'
                                   it_mm01-matnr.
    *                              '116100'.
    perform bdc_field       using 'RMMG1-MBRSH'
                                  'C'.
    perform bdc_field       using 'RMMG1-MTART'
                                  'FERT'.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(16)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(03)'
                                  'X'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(05)'
                                  'X'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(06)'
                                  'X'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(07)'
                                  'X'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(09)'
                                  'X'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(10)'
                                  'X'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(13)'
                                  'X'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(16)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLMGMM' '0080'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-VTWEG'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'RMMG1-WERKS'
                                   it_mm01-werks.
    *                              '9010'.
    perform bdc_field       using 'RMMG1-LGORT'
                                   it_mm01-lgort.
    *                              'F901'.
    perform bdc_field       using 'RMMG1-VKORG'
                                   it_mm01-vkorg.
    *                              '1000'.
    perform bdc_field       using 'RMMG1-VTWEG'
                                   it_mm01-vtweg.
    *                              '03'.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                    it_mm01-maktx.
    *                              'Test ACEPHATE TECHNICAL 50kg'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MVKE-MTPOS'.
    perform bdc_field       using 'MVKE-VERSG'
                                    it_mm01-versg.
    *                              '1'.
    perform bdc_field       using 'MVKE-KONDM'
                                    it_mm01-kondm.
    *                              '03'.
    perform bdc_field       using 'MVKE-KTGRM'
                                   it_mm01-ktgrm.
    *                              '01'.
    perform bdc_field       using 'MVKE-MTPOS'
                                    it_mm01-mtpos.
    *                              'NORM'.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                    it_mm01-maktx.
    *                              'Test ACEPHATE TECHNICAL 50kg'.
    perform bdc_field       using 'MARC-MTVFP'
                                   it_mm01-mtvfp.
    *                              '01'.
    perform bdc_field       using 'MARC-XCHPF'
                                   it_mm01-xchpf.
    *                              'X'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARC-LADGR'.
    perform bdc_field       using 'MARC-LADGR'
                                   it_mm01-ladgr.
    *                              '0003'.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                    it_mm01-maktx.
    *                              'Test ACEPHATE TECHNICAL 50kg'.
    perform bdc_field       using 'MARC-HERKL'
                                   it_mm01-HERKL.
    *                              'IN'.
    perform bdc_field       using 'MARC-HERKR'
                                   it_mm01-HERKR.
    *                              '01'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'J_1IASSVAL-J_1IVALASS'.
    perform bdc_field       using 'J_1IMTCHID-J_1ICHID'
                                   it_mm01-J_1ICHID.
    *                              '2913 00 90'.
    perform bdc_field       using 'J_1IMTCHID-J_1ISUBIND'
                                    it_mm01-J_1ISUBIND .
    *                              'X'.
    perform bdc_field       using 'J_1IMTCHID-J_1ICAPIND'
                                    it_mm01-J_1ICAPIND.
    *                              'F'.
    perform bdc_field       using 'J_1IMTCHID-J_1IGRXREF'
                                     it_mm01-J_1IGRXREF .
    *                              '2'.
    if  it_mm01-J_1IVALASS <> '0'.
    perform bdc_field       using 'J_1IASSVAL-J_1IVALASS'
                                    it_mm01-J_1IVALASS.
    *                              '0'.
    endif.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   it_mm01-maktx.
    *                              'Test ACEPHATE TECHNICAL 50kg'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARC-EKGRP'.
    perform bdc_field       using 'MARC-EKGRP'
                                   it_mm01-ekgrp.
    *                              '002'.
    perform bdc_field       using 'MARC-XCHPF'
                                   it_mm01-xchpf.
    *                              'X'.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   it_mm01-maktx.
    *                              'Test ACEPHATE TECHNICAL 50kg'.
    perform bdc_field       using 'MARC-STEUC'
                                   it_mm01-J_1ICHID.
    *                              '2913 00 90'.
    perform bdc_field       using 'MARC-HERKL'
                                    it_mm01-HERKL.
    *                              'IN'.
    perform bdc_field       using 'MARC-HERKR'
                                   it_mm01-HERKR.
    *                              '01'.
    perform bdc_field       using 'J_1IMTCHID-J_1ICHID'
                                   it_mm01-J_1ICHID.
    *                              '2913 00 90'.
    perform bdc_field       using 'J_1IMTCHID-J_1ISUBIND'
                                    it_mm01-J_1ISUBIND.
    *                              'X'.
    perform bdc_field       using 'J_1IMTCHID-J_1ICAPIND'
                                   it_mm01-J_1ICAPIND.
    *                              'F'.
    perform bdc_field       using 'J_1IMTCHID-J_1IGRXREF'
                                    it_mm01-J_1IGRXREF.
    *                              '2'.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   it_mm01-maktx.
    *                              'Test ACEPHATE TECHNICAL 50kg'.
    perform bdc_field       using 'MARC-XCHPF'
                                    it_mm01-xchpf.
    *                              'X'.
    *perform bdc_field       using 'MARA-IPRKZ'
    *                              'D'.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                    it_mm01-maktx.
    *                              'Test ACEPHATE TECHNICAL 50kg'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MBEW-STPRS'.
    perform bdc_field       using 'MBEW-BKLAS'
                                    it_mm01-bklas.
    *                              '7930'.
    perform bdc_field       using 'MBEW-VPRSV'
                                    it_mm01-vprsv.
    *                              'S'.
    perform bdc_field       using 'MBEW-PEINH'
                                    it_mm01-peinh.
    *                              '1'.
    perform bdc_field       using 'MBEW-VERPR'
                                    it_mm01-verpr.
    *                              '273.75'.
    perform bdc_field       using 'MBEW-STPRS'
                                   it_mm01-stprs.
    *                              '207'.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    CALL TRANSACTION 'MM01' USING it_bdcdata
                                    MODE 'A'
                                    UPDATE 'A'
                                    MESSAGES INTO it_bdcmsgcoll.
    CLEAR it_mm01.
    endloop.
    *perform bdc_transaction using 'MM01'.
    *perform close_group.
    endform.                    " fill_data
    *&      Form  bdc_dynpro
    *       text
    *      -->P_0297   text
    *      -->P_0298   text
    form bdc_dynpro  USING prog scr.
    CLEAR it_bdcdata.
      it_bdcdata-program = prog.
      it_bdcdata-dynpro  = scr.
      it_bdcdata-dynbegin = 'X'.
      APPEND it_bdcdata.
    endform.                    " bdc_dynpro
    *&      Form  bdc_field
    *       text
    *      -->P_0687   text
    *      -->P_IT_MM01_VPRSV  text
    form bdc_field  USING fnam fval.
    CLEAR it_bdcdata.
      it_bdcdata-fnam = fnam.
      it_bdcdata-fval  = fval.
      APPEND it_bdcdata.
    endform.                    " bdc_field
    Regards,
    Madhu.

  • Bapi or Function Module to update Material Master Data

    Hi Friends,
               could anyone let me know any BAPI's or Function Modules for Material Master UPdate.
    Thanks in Advance
    Regards
    Tina

    hi Tina,
    check this BAPi BAPI_MATERIAL_SAVEDATA to create and change the material master .
    Try ....
    BAPI_MATERIAL_SAVEDATA
    REPORT Z_BAPI_MAT.
                   STRUCTURE  DECLARATIONS                             *
    TABLES: BAPIMATHEAD,  "Headerdata
            BAPI_MARA,    "Clientdata
            BAPI_MARAX,   "Clientdatax
            BAPI_MARC,    "Plantdata
            BAPI_MARCX,   "Plantdatax
            BAPI_MAKT,    "Material description
            BAPIRET2.     "Return messages
    DATA:V_FILE TYPE STRING.
    DATA:
      BEGIN OF LSMW_MATERIAL_MASTER,
        MATNR(018) TYPE C,  "Material number
        MTART(004) TYPE C,  "Material type
        MBRSH(001) TYPE C,  "Industry sector
        WERKS(004) TYPE C,  "Plant
        MAKTX(040) TYPE C,  "Material description
        DISMM(002) TYPE C,  "Extra Field Added In the Program as itsrequired
        MEINS(003) TYPE C,  "Base unit of measure
        MATKL(009) TYPE C,  "Material group
        SPART(002) TYPE C,  "Division
        LABOR(003) TYPE C,  "Lab/office
        PRDHA(018) TYPE C,  "Product hierarchy
        MSTAE(002) TYPE C,  "X-plant matl status
        MTPOS_MARA(004) TYPE C,  "Gen item cat group
        BRGEW(017) TYPE C,  "Gross weight
        GEWEI(003) TYPE C,  "Weight unit
        NTGEW(017) TYPE C,  "Net weight
        GROES(032) TYPE C,  "Size/Dimensions
        MAGRV(004) TYPE C,  "Matl grp pack matls
        BISMT(018) TYPE C,  "Old material number
        WRKST(048) TYPE C,  "Basic material
        PROFL(003) TYPE C,  "DG indicator profile
        KZUMW(001) TYPE C,  "Environmentally rlvt
        BSTME(003) TYPE C,  "Order unit
        VABME(001) TYPE C,
        EKGRP(003) TYPE C,  "Purchasing group
        XCHPF(001) TYPE C,  "Batch management
        EKWSL(004) TYPE C,  "Purchasing key value
        WEBAZ(003) TYPE C,  "GR processing time
        MFRPN(040) TYPE C,  "Manufacturer part number
        MFRNR(010) TYPE C,  "Manufacturer number
        VPRSV(001) TYPE C,  "Price control indicator
        STPRS(015) TYPE C,  "Standard price
        BWPRH(014) TYPE C,  "Commercial price1
        BKLAS(004) TYPE C,  "Valuation class
      END OF LSMW_MATERIAL_MASTER.
                   INTERNAL TABLE DECLARATIONS                         *
    *to store the input data
    DATA:
      BEGIN OF it_matmaster OCCURS 0.
            INCLUDE STRUCTURE LSMW_MATERIAL_MASTER.
    DATA:
      END OF it_matmaster.
    *for material description
    DATA:BEGIN OF IT_MATERIALDESC OCCURS 0.
         INCLUDE STRUCTURE BAPI_MAKT .
    DATA:END OF IT_MATERIALDESC.
    *to return messages
    DATA:BEGIN OF IT_RETURN OCCURS 0.
         INCLUDE STRUCTURE BAPIRET2.
    DATA:END OF IT_RETURN.
    SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.
    PARAMETERS:P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1 .
    AT SELECTION SCREEN
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          PROGRAM_NAME  = SYST-CPROG
          DYNPRO_NUMBER = SYST-DYNNR
          FIELD_NAME    = 'P_FILE'
        IMPORTING
          FILE_NAME     = P_FILE.
                   TO UPLOAD THE DATA                                  *
    START-OF-SELECTION.
    V_FILE = P_FILE.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename                      = V_FILE
       FILETYPE                      = 'ASC'
       HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
      tables
        data_tab                      =  IT_MATMASTER
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
       FILE_READ_ERROR               = 2
       NO_BATCH                      = 3
       GUI_REFUSE_FILETRANSFER       = 4
       INVALID_TYPE                  = 5
       NO_AUTHORITY                  = 6
       UNKNOWN_ERROR                 = 7
       BAD_DATA_FORMAT               = 8
       HEADER_NOT_ALLOWED            = 9
       SEPARATOR_NOT_ALLOWED         = 10
       HEADER_TOO_LONG               = 11
       UNKNOWN_DP_ERROR              = 12
       ACCESS_DENIED                 = 13
       DP_OUT_OF_MEMORY              = 14
       DISK_FULL                     = 15
       DP_TIMEOUT                    = 16
       OTHERS                        = 17
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
                   DATA POPULATIONS                                    *
    LOOP AT  IT_MATMASTER.
      BAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
      BAPIMATHEAD-IND_SECTOR = IT_MATMASTER-Mbrsh.
      BAPIMATHEAD-MATL_TYPE = IT_MATMASTER-Mtart.
      BAPIMATHEAD-BASIC_VIEW = 'X'.
      BAPIMATHEAD-PURCHASE_VIEW = 'X'.
      BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
      BAPI_MARA-MATL_GROUP = IT_MATMASTER-MATKL.
      BAPI_MARA-OLD_MAT_NO = IT_MATMASTER-BISMT.
      BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
      BAPI_MARA-BASIC_MATL = IT_MATMASTER-WRKST.
      BAPI_MARA-MFR_NO = IT_MATMASTER-MFRNR.
      BAPI_MARAX-MATL_GROUP = 'X'.
      BAPI_MARAX-OLD_MAT_NO = 'X'.
      BAPI_MARAX-BASE_UOM = 'X'.
      BAPI_MARAX-BASIC_MATL = 'X'.
      BAPI_MARAX-MFR_NO = 'X'.
      BAPI_MARC-PLANT = IT_MATMASTER-WERKS.
      BAPI_MARC-PUR_GROUP = IT_MATMASTER-EKGRP.
      BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.
      BAPI_MARCX-PUR_GROUP = 'X'.
      IT_MATERIALDESC-LANGU = 'EN'.
      IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
      append IT_materialdesc.
      CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
        EXPORTING
          headdata                   = BAPIMATHEAD
          CLIENTDATA                 = BAPI_MARA
          CLIENTDATAX                = BAPI_MARAx
         PLANTDATA                  = BAPI_MARc
         PLANTDATAX                 = BAPI_MARcx
        FORECASTPARAMETERS         =
        FORECASTPARAMETERSX        =
        PLANNINGDATA               =
        PLANNINGDATAX              =
        STORAGELOCATIONDATA        =
        STORAGELOCATIONDATAX       =
        VALUATIONDATA              =
        VALUATIONDATAX             =
        WAREHOUSENUMBERDATA        =
        WAREHOUSENUMBERDATAX       =
        SALESDATA                  =
        SALESDATAX                 =
        STORAGETYPEDATA            =
        STORAGETYPEDATAX           =
        FLAG_ONLINE                = ' '
        FLAG_CAD_CALL              = ' '
       IMPORTING
         RETURN                     = IT_RETURN
       TABLES
         MATERIALDESCRIPTION        = IT_MATERIALDESC
        UNITSOFMEASURE             =
        UNITSOFMEASUREX            =
        INTERNATIONALARTNOS        =
        MATERIALLONGTEXT           =
        TAXCLASSIFICATIONS         =
        RETURNMESSAGES             =
        PRTDATA                    =
        PRTDATAX                   =
        EXTENSIONIN                =
        EXTENSIONINX               =
    WRITE:/    IT_RETURN-TYPE,
            2   IT_RETURN-ID,
            22  IT_RETURN-NUMBER,
            25  IT_RETURN-MESSAGE.
               IT_RETURN-LOG_NO,
               IT_RETURN-LOG_MSG_NO,
               IT_RETURN-MESSAGE_V1,
               IT_RETURN-MESSAGE_V2,
               IT_RETURN-MESSAGE_V3,
               IT_RETURN-MESSAGE_V4,
               IT_RETURN-PARAMETER,
               IT_RETURN-ROW,
               IT_RETURN-FIELD,
               IT_RETURN-SYSTEM.
    ENDLOOP.
    Regards,
    Naveen

  • ADD NEW CHARACTERISTIC: MAKTX (material text) in Profitability Report_CO-PA

    Hello,
    I have a CO-PA report (ZINTEGR...), when I run (KE30 tr.), I check the report by the Navigation fields (charact.) Company Code and Product, with drill down of material numbers and text.
    This text is the "Product Hierarchy" (MARA-PRDHA), field in the Material Master and also I have the Material number (RMMG1-MATNR), but I need a long text to see all the material details descrip., so I will need the material description (short text-->MAKT-MAKTX) instead of the text that I have in the Product Hierarchy field in the material master data.
    It is possible to add, (i suppose like a charact.) in the Z CO-PA report?
    I try to edit charact. (KEA5 tr.) and I can´t see the MAKT-MAKTX in the characteristic overview list.
    It is possible if I create a new charact. (WW...)?
    B.Regards
    Francisco

    Hi,
    If the problem exists only in KE30, please goto KE30 -> execute the report (e.g. drilldown) -> select the column -> goto SETTINGS -> CHARACTERISTICS DISPLAY -> select name + key. Also check the other options available here
    regards
    Waman

  • BDC for Material master

    Hi ,
        I am developing the BI program for Material Master (MM01) and change MM02(Both create and change).
    Can you let me know how do i select particular views before creating/changing the material .
    Is there any specific function module available to do this ..
    If you help me with any sample coding ,that would be great.
    Thanks
    Raj

    & Description                : This program is used to create material
    *& master (tcode MM01) . Material data is available in tab delimited   *
    *& flat file.                                                          *
    *& The Following is the flat file Structure:                           *
                     MATNR(018)  "Material Number
                     MBRSH(001)  "Industry Sectory
                     MTART(004)  "Material Type
                     WERKS(004)  "Plant
                     LGORT(004)  "Storage Location
                     MAKTX(040)  "Material Text
                     MEINS(003)  "Basic Unit of Measurement
                     MATKL(009)  "Material Group
                     PRDHA(018), "Product Hierarchy
                     MTPOS_MARA(004), "General Item Categoy Group
                     ZEINR(022)  "Document
                     ZEIVR(002)  "Doc Version
                     SPART(002)  "Division
                     DWERK(004)  "Delivery Plant
                     TAXKM(001)  "Tax
                     KTGRM(002)  "Account Assignemnt Group
                     MTPOS_MARA(004), "General. Item Category Group
                     MTPOS(004), "Item Category Group
                     MTVFP(002)  "Availability check
    */ Begin of changes by Anoop for Sales Text Date: 17 feb 2004
                     s_ltex1(40), "Sales Text line 1
                     s_ltex2(40), "Sales Text line 2
                     s_ltex3(40), "Sales Text line 3
                     s_ltex4(40), "Sales Text line 4
                     s_ltex5(40), "Sales Text line 5
                     s_ltex6(40), "Sales Text line 6
    **/ End of changes by Anoop for Sales Text Date: 17 feb 2004
    **/ Begin of changes by Anoop for Purchase Order Text Date: 17 feb 2004
                     po_ltex1(40), "Purchase Order Text line 1
                     po_ltex2(40), "Purchase Order Text line 2
                     po_ltex3(40), "Purchase Order Text line 3
                     po_ltex4(40), "Purchase Order Text line 4
                     po_ltex5(40), "Purchase Order Text line 5
                     po_ltex6(40), "Purchase Order Text line 6
                     MAKTX(040)  "Sales text
                     EKGRP(003)  "Purchasing Group
                     DISMM(002)  "MRP Type
                     DISPO(003)  "MRP Controller
                     DISLS(002)  "Lot Size
                     EKGRP(003)  "Purchasing group
                     BSTFE(017)  "Fixed Lot Size
                     BESKZ(001)  "Procurement Type
                     LGPRO(004)  "Prod. Storage Location
                     DZEIT(003)  "In house production
                     PLIFZ(003)  "Planned Delivery Time
                     FHORI(003)  "Sch. Margin Key
                     STRGR(002)  "Planning Strategy Group
                     MTVFP(002)  "Availabilty Check
                     SBDKZ(001)  "Ind/Collective
                     SERNP(004)  "Serial Number Profile
                     LGPBE(010)  "Storage Bin
                     GROES(032)  "Size and Dimension
                     WEBAZ(003)  "GR Processing Time
                     BKLAS(004)  "Valuation Class
                     VPRSV(001)  "Price Control
                     VERPR(015)  "Moving Average Price
                     STPRS(015)  "Standard Price
                     MYPOL(004)  "LIFO Pool
                     EKALR(001)  "With Qty structure
                     HKMAT(001)  "Material Origin
                     ZPLP1(014)  "Planned Price 1
                     ZPLD1(010)  "Planned Price Date 1
    *Include
    INCLUDE bdcrecx1.
    *Variables
    DATA : v_filename TYPE string,
           v_flag(1) TYPE c,
           v_counter(2) TYPE c,
           v_lines TYPE i,
           v_count TYPE i VALUE 0.
    *Selection-screen
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    PARAMETER : filename LIKE rlgrap-filename OBLIGATORY.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
    PARAMETER : v_basic1    TYPE checkbox,
                v_basic2    TYPE checkbox,
                v_sales1    TYPE checkbox,
                v_sales2    TYPE checkbox,
                v_salesg    TYPE checkbox,
                v_salest    TYPE checkbox,
                v_purcha    TYPE checkbox,
    Begin of changes by Anoop Date: 18 feb 2004.
                v_potext    TYPE checkbox,
    *End of changes by Anoop Date: 18 feb 2004
                v_mrp1      TYPE checkbox,
                v_mrp2      TYPE checkbox,
                v_mrp3      TYPE checkbox,
                v_mrp4      TYPE checkbox,
                v_wrksch    TYPE checkbox,
                v_gplnt1    TYPE checkbox,
                v_gplnt2    TYPE checkbox,
                v_qality    TYPE checkbox,
                v_acct1     TYPE checkbox,
                v_acct2     TYPE checkbox,
                v_testi     TYPE checkbox,
                v_cost2     TYPE checkbox.
    SELECTION-SCREEN END OF BLOCK blk2.
    SELECTION-SCREEN END OF BLOCK blk1.
    */ Comments given are the view names that have been incorporated into
    the BDC for the transaction MM01.
    **Internal Tables
    DATA: BEGIN OF record,
    */ Basic Data 1..
    data element: MATNR
            matnr_001(018),  "Material Number
    data element: MBRSH
            mbrsh_002(001),  "Industry Sectory
    data element: MTART
            mtart_003(004),  "Material Type
    data element: WERKS_D
            werks_019(004),  "Plant
    data element: LGORT_D
            lgort_020(004),  "Storage Location
    *DATA ELEMENT : vkorg
            vkorg(004),      "Sales Organisation
    *DATA ELEMENT : VTWEG
            vtweg(002),      "Distribution channel
    data element: MAKTX
            maktx_021(040),  "Material Text
    data element: MEINS
            meins_022(003),  "Basic Unit of Measurement
    data element: MATKL
            matkl_023(009),  "Material Group
    data element: PRODH_D
            prdha_015(018),
    data element: MTPOS_MARA
            mtpos_mara_016(004),
    data element: MTPOS_MARA
           MTPOS_MARA_024(004),
    */ Basic Data 2...
    data element: DZEINR
            zeinr_026(022),  "Document
    data element: DZEIVR
            zeivr_027(002),  "Doc Version
    data element: MEINS
           MEINS_029(003),
    */ Sales : Sales Org. Data 1
    data element: SPART
            spart_020(002),
    data element: DWERK_EXT
            dwerk_021(004),
    data element: TAXKM
            taxkm_01_024(001),
    */ Sales  : Sales Org. Data 2
    data element: KTGRM
            ktgrm_033(002),
    data element: MTPOS_MARA
            mtpos_mara_034(004),
    data element: MTPOS
            mtpos_035(004),
    */ Sales : General Plant/Data
    data element: MTVFP
            mtvfp_040(002),
    data element: PRCTR
            prctr_041(007),
    */ Sales Text
    */commented by Anoop
    data element: MAKTX
           maktx_041(040),
    */commented up to here by Anoop
    */ Begin of changes by Anoop for Sales Text Date: 17 feb 2004
            s_ltex1(40),
            s_ltex2(40),
            s_ltex3(40),
            s_ltex4(40),
            s_ltex5(40),
            s_ltex6(40),
    */ End of changes by Anoop for Sales Text Date: 17 feb 2004
    */ Purchasing..
    data element: EKGRP
            ekgrp_030(003),
    data element: MEINS
           MEINS_033(003),
    data element: EKGRP
           EKGRP_034(003),
    */ Begin of changes by Anoop for Purchase Order Text Date: 17 feb 2004
    */ Purchase Order Text
            po_ltex1(40),
            po_ltex2(40),
            po_ltex3(40),
            po_ltex4(40),
            po_ltex5(40),
            po_ltex6(40),
    */ MRP1..
    data element: DISMM
            dismm_035(002), "MRP Type
    data element: DISPO
            dispo_036(003), "MRP Controller
    data element: DISLS
            disls_037(002), "Lot Size
    data element : EKGRP
            ekgrp(003),
    data element: MEINS
           MEINS_039(003),
    data element: EKGRP
           EKGRP_040(003),
    data element: DISMM
           DISMM_041(002),
    data element: DISPO
           DISPO_042(003),
    data element: DISLS
           DISLS_043(002), "Proc. Type
    data element: BSTFE
            bstfe_044(017),
    */ MRP2..
    data element: BESKZ
            beskz_046(001),
    data element: LGPRO
            lgpro_047(004),
    data element: DZEIT
            dzeit_048(003),
    data element: PLIFZ
            plifz_049(003),
    data element: FHORI
            fhori_050(003),
    data element: PERKZ
           PERKZ_052(001),
    */ MRP3..
    data element: STRGR
            strgr_053(002),
    data element: MTVFP
            mtvfp_054(002),
    */ MRP4
    data element: SBDKZ
            sbdkz_056(001),
    data element: MEINS
           MEINS_058(003),
    data element: LGPRO
           LGPRO_059(004),
    */ Work Scheduling
    data element: SERAIL
            sernp_060(004),
    data element: DZEIT
           DZEIT_061(003),
    data element: MEINS
           MEINS_063(003),
    */ Plant Data/Str1
    data element: LGPBE
            lgpbe_064(010),
    data element: DATTP
           IPRKZ_065(001),
    */ Plant Data/Str2
    data element: GROES
            groes_067(032),
    data element: SERAIL
           SERNP_068(004),
    data element: MEINS
           MEINS_070(003),
    */ Quality Management
    data element: WEBAZ
            webaz_071(003),
    data element: MEINS
           MEINS_073(003),
    */ Accounting 1
    data element: BKLAS
            bklas_074(004),
    data element: VPRSV
            vprsv_075(001),
    data element: PEINH
           PEINH_076(006),
    data element: VERPR
            verpr_077(015),
    data element: STPRS
            stprs_078(015),
    */ Accounting 2
    data element: MYPOOL
            mypol_080(004),
    data element: MEINS
           MEINS_082(003),
    */ Cost Estimate 1.
    data element: CK_EKALREL
            ekalr_083(001),
    data element: HKMAT
            hkmat_084(001),
    data element: CK_LOSGR
           LOSGR_085(017),
    */ Costing 2..
    data element: DZPLP1
           zplp1_087(014),
    data element: DZPLD1
            zpld1_088(010),
    data element: BKLAS
           BKLAS_089(004),
    data element: VPRSV
           VPRSV_090(001),
    data element: PEINH
           PEINH_091(006),
    data element: VERPR
           VERPR_092(015),
    data element: STPRS
           STPRS_093(015),
          END OF record.
    */ Begin of changes by Anoop Date: 17 feb 2004
    */ intermediate internal table for Sales Text and Purchase Order Text
    *DATA: BEGIN OF s_tab OCCURS 0,
         matnr LIKE mara-matnr,
         s_ltex1 LIKE makt-maktx,
         s_ltex2 LIKE makt-maktx,
         s_ltex3 LIKE makt-maktx,
         s_ltex4 LIKE makt-maktx,
         s_ltex5 LIKE makt-maktx,
         s_ltex6 LIKE makt-maktx,
         END OF s_tab.
    *DATA: BEGIN OF po_tab OCCURS 0,
         matnr LIKE mara-matnr,
         po_ltex1 LIKE makt-maktx,
         po_ltex2 LIKE makt-maktx,
         po_ltex3 LIKE makt-maktx,
         po_ltex4 LIKE makt-maktx,
         po_ltex5 LIKE makt-maktx,
         po_ltex6 LIKE makt-maktx,
         END OF po_tab.
    */ End of changes by Anoop Date: 17 feb 2004
    DATA : itab LIKE record OCCURS 0 WITH HEADER LINE.
    DATA : ok_code(5) TYPE c.
    *AT SELECTION-SCREEN
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          field_name = filename
        CHANGING
          file_name  = filename.
    *START-OF-SELECTION
    START-OF-SELECTION.
      v_filename = filename.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      = v_filename
          filetype                      = 'ASC'
          has_field_separator           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        TABLES
          data_tab                      = itab.
    */ Begin of changes by Anoop Date: 17 feb 2004
       LOOP AT itab.
       move itab-s_ltext+0(40) to itab-s_ltex1.
       move itab-s_ltext+40(40) to itab-s_ltex2.
       move itab-s_ltext+80(40) to itab-s_ltex3.
       move itab-s_ltext+120(40) to itab-s_ltex4.
       move itab-s_ltext+160(40) to itab-s_ltex5.
       move itab-s_ltext+200(40) to itab-s_ltex6.
       move itab-po_ltext+0(40) to itab-po_ltex1.
       move itab-po_ltext+40(40) to itab-po_ltex2.
       move itab-po_ltext+80(40) to itab-po_ltex3.
       move itab-po_ltext+120(40) to itab-po_ltex4.
       move itab-po_ltext+160(40) to itab-po_ltex5.
       move itab-po_ltext+200(40) to itab-po_ltex6.
       modify itab.
       ENDLOOP.
    */ End of changes by Anoop Date: 17 feb 2004
      DELETE itab WHERE  matnr_001 = ' '.
      DESCRIBE TABLE itab LINES v_lines.
      PERFORM open_group.
      LOOP AT itab.
        v_count = v_count + 1.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '0060'.
        IF v_count = v_lines.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=BACK'.
        ENDIF.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RMMG1-MATNR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'RMMG1-MATNR'
                                      itab-matnr_001.
        PERFORM bdc_field       USING 'RMMG1-MBRSH'
                                      itab-mbrsh_002.
        PERFORM bdc_field       USING 'RMMG1-MTART'
                                      itab-mtart_003.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '0070'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MSICHTAUSW-DYTXT(17)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=P+'.
        TRANSLATE itab-mtart_003 TO UPPER CASE.
    */ IF the data to be uploaded is of Material type 'Trading Goods'
    the following view selection
        IF itab-mtart_003 = 'HAWA'.
          PERFORM view_sel3.
        ENDIF.
    */ IF the data to be uploaded is of Material type 'Finished Goods'
    the following view selection
        IF itab-mtart_003 = 'FERT'.
          PERFORM view_sel1.
        ENDIF.
    */ IF the data to be uploaded is of Material type 'Semi-Finished Goods'
    the following view selection
        IF itab-mtart_003 = 'HALB'.
          PERFORM view_sel2.
        ENDIF.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '0080'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'T001L-LGOBE'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM bdc_field       USING 'RMMG1-WERKS'
                                      itab-werks_019.
        PERFORM bdc_field       USING 'RMMG1-LGORT'
                                      itab-lgort_020.
        PERFORM bdc_field       USING 'RMMG1-VKORG'
                                      itab-vkorg.
        PERFORM bdc_field       USING 'RMMG1-VTWEG'
                                      itab-vtweg.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4004'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        IF  v_basic1 = 'X'.
    */ Basic Data 1
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARA-MATKL'.
          PERFORM bdc_field       USING 'MARA-MEINS'
                                        itab-meins_022.
          PERFORM bdc_field       USING 'MARA-MATKL'
                                        itab-matkl_023.
          PERFORM bdc_field       USING 'MARA-PRDHA'
                                        itab-prdha_015.
          PERFORM bdc_field       USING 'MARA-MTPOS_MARA'
                                        itab-mtpos_mara_016.
       perform bdc_field       using 'MARA-MTPOS_MARA'
                                     itab-MTPOS_MARA_024.
        ENDIF.
        IF v_basic2 = 'X'.
    */ Basic Data 2
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4004'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARA-ZEIVR'.
          PERFORM bdc_field       USING 'MARA-ZEINR'
                                        itab-zeinr_026.
          PERFORM bdc_field       USING 'MARA-ZEIVR'
                                        itab-zeivr_027.
        ENDIF.
        IF itab-vkorg(004) <> ' '.
          IF v_sales1 = 'X'.
    */ Sales : Sales Org. Data 1
            PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
            PERFORM bdc_field       USING 'MAKT-MAKTX'
                                          itab-maktx_021.
            PERFORM bdc_field       USING 'MARA-MEINS'
                                          itab-meins_022.
            PERFORM bdc_field       USING 'MARA-SPART'
                                          itab-spart_020.
            PERFORM bdc_field       USING 'MVKE-DWERK'
                                          itab-dwerk_021.
            PERFORM bdc_field       USING 'MARA-MATKL'
                                          itab-matkl_023.
    ****perform bdc_field       using 'MVKE-SKTOF'
                                 record-SKTOF_023.
            IF itab-taxkm_01_024 <> ' '.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'MG03STEUER-TAXKM(01)'.
              PERFORM bdc_field       USING 'MG03STEUER-TAXKM(01)'
                                            itab-taxkm_01_024.
    */ After entering tax another screen in which no data has to be *
    populated
              PERFORM bdc_dynpro      USING 'SAPLMGMM' '4200'.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '/00'.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'MAKT-MAKTX'.
       PERFORM bdc_field       USING 'MAKT-MAKTX'
                                     record-maktx_021.
            ENDIF.
            PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
            PERFORM bdc_field       USING 'MAKT-MAKTX'
                                          itab-maktx_021.
            PERFORM bdc_field       USING 'MARA-MEINS'
                                          itab-meins_022.
            PERFORM bdc_field       USING 'MARA-SPART'
                                          itab-spart_020.
            PERFORM bdc_field       USING 'MVKE-DWERK'
                                          itab-dwerk_021.
            PERFORM bdc_field       USING 'MARA-MATKL'
                                          itab-matkl_023.
          ENDIF.
          IF v_sales2 = 'X'.
    */ Sales : Sales Org. Data 2
            PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
            PERFORM bdc_field       USING 'MAKT-MAKTX'
    */commented by Anoop
    */                                 itab-maktx_041.
    */commented up to here by Anoop
    */ Begin of changes by Anoop Date: 17 feb 2004
                                          itab-maktx_021.
    */ End of changes by Anoop Date: 17 feb 2004
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'MVKE-MTPOS'.
            PERFORM bdc_field       USING 'MVKE-KTGRM'
                                          itab-ktgrm_033.
            IF itab-mtpos_mara_034 <> ' '.
              PERFORM bdc_field       USING 'MARA-MTPOS_MARA'
                                            itab-mtpos_mara_034.
            ENDIF.
            IF itab-mtpos_035 <> ' '.
              PERFORM bdc_field       USING 'MVKE-MTPOS'
                                            itab-mtpos_035.
            ENDIF.
          ENDIF.
          IF v_salesg = 'X'.
    */ Sales : General/Plant Data
            PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
            PERFORM bdc_field       USING 'MAKT-MAKTX'
                                          itab-maktx_021.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'MARC-MTVFP'.
           PERFORM bdc_field       USING 'MARA-MEINS'
                                         itab-meins_022.
    ***perform bdc_field       using 'MARA-GEWEI'
                                 record-GEWEI_039.
            PERFORM bdc_field       USING 'MARC-MTVFP'
                                          itab-mtvfp_040.
            IF itab-prctr_041 <> ' '.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'MARC-PRCTR'.
              PERFORM bdc_field       USING 'MARC-PRCTR'
                                            itab-prctr_041.
            ENDIF.
          ENDIF.
          IF v_salest = 'X'.
    */ Sales Text
            PERFORM bdc_dynpro      USING 'SAPLMGMM' '4040'.
            IF itab-mtart_003 = 'HAWA' OR itab-mtart_003 = 'HALB'.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '=SP09'.
              ok_code = '=SP09'.
            ELSEIF itab-mtart_003 = 'FERT'.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                           '=SP12'.
              ok_code = '=SP12'.
            ENDIF.
    */commented by Anoop
          PERFORM bdc_field       USING 'MAKT-MAKTX'
    */                                 itab-maktx_041.
    */commented up to here by Anoop
    */ Begin of changes by Anoop for Sales Text Date: 17 feb 2004
            PERFORM bdc_field      USING 'BDC_OKCODE'  '=LTEX'.
            PERFORM bdc_dynpro     USING 'SAPLSTXX'   '1100'.
            PERFORM bdc_field      USING 'BDC_CURSOR' 'RSTXT-TXLINE(02)' .
            PERFORM bdc_field      USING 'BDC_OKCODE' '=TXBA' .
            PERFORM bdc_field      USING 'RSTXT-TXLINE(02)' itab-s_ltex1.
            perform bdc_field      using 'RSTXT-TXLINE(03)' itab-s_ltex2.
            perform bdc_field      using 'RSTXT-TXLINE(04)' itab-s_ltex3.
            perform bdc_field      using 'RSTXT-TXLINE(05)' itab-s_ltex4.
            perform bdc_field      using 'RSTXT-TXLINE(06)' itab-s_ltex5.
            perform bdc_field      using 'RSTXT-TXLINE(07)' itab-s_ltex6.
            PERFORM bdc_dynpro      USING 'SAPLSPO1'   '0100'.
            PERFORM bdc_field       USING 'BDC_OKCODE'     '=YES' .
    */ End of changes by Anoop for Sales Text Date: 17 feb 2004
            PERFORM bdc_dynpro      USING 'SAPLMGMM' '4040'.
            PERFORM bdc_field       USING 'BDC_OKCODE'  '/00'.
          ENDIF.
        ENDIF.
        IF v_purcha = 'X' AND ok_code = '=SP09'.
          CLEAR ok_code.
    */ Purchasing
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        'SP11'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARC-EKGRP'.
          PERFORM bdc_field       USING 'MARA-MEINS'
                                        itab-meins_022.
          PERFORM bdc_field       USING 'MARC-EKGRP'
                                        itab-ekgrp_030.
          PERFORM bdc_field       USING 'MARA-MATKL'
                                        itab-matkl_023.
       perform bdc_dynpro      using 'SAPLMGMM' '4000'.
       perform bdc_field       using 'BDC_OKCODE'
                                     'ENTR'.
       perform bdc_field       using 'MAKT-MAKTX'
                                     itab-maktx_021.
       perform bdc_field       using 'MARA-MEINS'
                                     itab-meins_022.
       perform bdc_field       using 'MARC-EKGRP'
                                     itab-ekgrp_030.
       perform bdc_field       using 'BDC_CURSOR'
                                     'MARC-DISMM'.
       perform bdc_field       using 'MARC-DISMM'
                                     itab-DISMM_035.
       perform bdc_field       using 'MARC-DISPO'
                                     itab-DISPO_036.
       perform bdc_field       using 'MARC-DISLS'
                                     itab-DISLS_037.
        ENDIF.
    */ Begin of changes by Anoop for Purchase Order Text Date: 18 feb 2004
       PERFORM bdc_dynpro      USING 'SAPLMGMM' '4040'.
       PERFORM bdc_field       USING 'BDC_OKCODE'  '/00'.
        IF v_potext = 'X' .
          CLEAR ok_code.
    *Purchase Order Text
          PERFORM bdc_dynpro      USING 'SAPLMGMM'   '4040'.
          PERFORM bdc_field       USING 'BDC_OKCODE'  '=LTEX'.
          PERFORM bdc_dynpro      USING 'SAPLSTXX'   '1100'.
          PERFORM bdc_field       USING 'BDC_CURSOR' 'RSTXT-TXLINE(02)' .
          PERFORM bdc_field       USING 'BDC_OKCODE' '=TXBA' .
            PERFORM bdc_field      USING 'RSTXT-TXLINE(02)' itab-po_ltex1.
            perform bdc_field      using 'RSTXT-TXLINE(03)' itab-po_ltex2.
            perform bdc_field      using 'RSTXT-TXLINE(04)' itab-po_ltex3.
            perform bdc_field      using 'RSTXT-TXLINE(05)' itab-po_ltex4.
            perform bdc_field      using 'RSTXT-TXLINE(06)' itab-po_ltex5.
            perform bdc_field      using 'RSTXT-TXLINE(07)' itab-po_ltex6.
         PERFORM bdc_field       USING 'RSTXT-TXLINE(02)' itab-po_ltex1 .
       PERFORM bdc_field       USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(03)'.
         PERFORM bdc_field       USING 'RSTXT-TXPARGRAPH(03)' '*'.
         PERFORM bdc_field       USING 'RSTXT-TXLINE(03)' itab-po_ltex2 .
        PERFORM bdc_field       USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(04)'.
         PERFORM bdc_field       USING 'RSTXT-TXPARGRAPH(04)' '*'.
         PERFORM bdc_field       USING 'RSTXT-TXLINE(04)' itab-po_ltex3 .
         PERFORM bdc_field      USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(05)'.
         PERFORM bdc_field       USING 'RSTXT-TXPARGRAPH(05)' '*'.
         PERFORM bdc_field       USING 'RSTXT-TXLINE(05)' itab-po_ltex4 .
         PERFORM bdc_field      USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(06)'.
         PERFORM bdc_field       USING 'RSTXT-TXPARGRAPH(06)' '*'.
         PERFORM bdc_field       USING 'RSTXT-TXLINE(06)' itab-po_ltex5 .
        PERFORM bdc_field       USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(07)'.
         PERFORM bdc_field       USING 'RSTXT-TXPARGRAPH(07)' '*'.
         PERFORM bdc_field       USING 'RSTXT-TXLINE(07)' itab-po_ltex6 .
        PERFORM bdc_field       USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(08)'.
         PERFORM bdc_field       USING 'RSTXT-TXPARGRAPH(08)' '*'.
          PERFORM bdc_dynpro      USING 'SAPLSPO1'   '0100'.
          PERFORM bdc_field       USING 'BDC_OKCODE'     '=YES' .
          PERFORM bdc_dynpro      USING 'SAPLMGMM'   '4040'.
          PERFORM bdc_field       USING 'BDC_OKCODE'   '/00'.
        endif.
    */ End of changes by Anoop for Purchase Order Text Date: 18 feb 2004
        IF v_mrp1 = 'X'.
    */ MRP 1
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        'ENTR'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'MARA-MEINS'
                                        itab-meins_022.
          PERFORM bdc_field       USING 'MARC-EKGRP'
                                        itab-ekgrp_030.
          PERFORM bdc_field       USING 'MARC-DISMM'
                                        itab-dismm_035.
          PERFORM bdc_field       USING 'MARC-DISPO'
                                        itab-dispo_036.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARC-DISLS'.
          PERFORM bdc_field       USING 'MARC-DISLS'
                                        itab-disls_037.
          IF itab-ekgrp <> ' '.
            PERFORM bdc_field       USING 'MARC-EKGRP'
                                          itab-ekgrp.
          ENDIF.
          PERFORM bdc_field       USING 'MARC-BSTFE'
                                        itab-bstfe_044.
        ENDIF.
        IF v_mrp2 = 'X'.
    */ MRP 2
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'MARC-BESKZ'
                                        itab-beskz_046.
          PERFORM bdc_field       USING 'MARC-LGPRO'
                                        itab-lgpro_047.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARC-DZEIT'.
          PERFORM bdc_field       USING 'MARC-DZEIT'
                                        itab-dzeit_048.
          PERFORM bdc_field       USING 'MARC-PLIFZ'
                                        itab-plifz_049.
          PERFORM bdc_field       USING 'MARC-FHORI'
                                        itab-fhori_050.
        ENDIF.
        IF v_mrp3 = 'X'.
    */ MRP 3
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
       perform bdc_field       using 'MARC-PERKZ'
                                     itab-PERKZ_052.
          PERFORM bdc_field       USING 'MARC-STRGR'
                                        itab-strgr_053.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARC-MTVFP'.
          PERFORM bdc_field       USING 'MARC-MTVFP'
                                        itab-mtvfp_054.
        ENDIF.
        IF v_mrp4 = 'X'.
    */ MRP 4
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARC-SBDKZ'.
          PERFORM bdc_field       USING 'MARC-SBDKZ'
                                        itab-sbdkz_056.
        ENDIF.
        IF v_wrksch = 'X'.
    */ WORK SCHEDULES
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARC-SERNP'.
          PERFORM bdc_field       USING 'MARA-MEINS'
                                        itab-meins_022.
          PERFORM bdc_field       USING 'MARC-LGPRO'
                                        itab-lgpro_047.
          PERFORM bdc_field       USING 'MARC-SERNP'
                                        itab-sernp_060.
          PERFORM bdc_field       USING 'MARC-DZEIT'
                                        itab-dzeit_048.
        ENDIF.
        IF v_gplnt1 = 'X'.
    */ PLANT DATA/STR1
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARD-LGPBE'.
          PERFORM bdc_field       USING 'MARA-MEINS'
                                        itab-meins_022.
          PERFORM bdc_field       USING 'MARD-LGPBE'
                                        itab-lgpbe_064.
       perform bdc_field       using 'MARA-IPRKZ'
                                     itab-IPRKZ_065.
        ENDIF.
        IF v_gplnt2 = 'X'.
    */ PLANT DATA/STR2
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARA-GROES'.
          PERFORM bdc_field       USING 'MARA-GROES'
                                        itab-groes_067.
          PERFORM bdc_field       USING 'MARC-SERNP'
                                        itab-sernp_060.
        ENDIF.
        IF v_qality = 'X'.
    */ QUALITY MANAGEMENT
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=PB01'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARC-WEBAZ'.
          PERFORM bdc_field       USING 'MARA-MEINS'
                                        itab-meins_022.
          PERFORM bdc_field       USING 'MARC-WEBAZ'
                                        itab-webaz_071.
    Addition done by Hymavathi on 24-01-2005
          PERFORM bdc_dynpro      USING 'SAPLQPLS' '0100'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RMQAM-ARGUMENT'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=NEU'.
          PERFORM bdc_dynpro      USING 'SAPLQPLS' '0100'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RMQAM-AKTIV(01)'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=WEIT'.
          PERFORM bdc_field       USING 'RMQAM-ART(01)'
                                         '01'.
          PERFORM bdc_field       USING 'RMQAM-AKTIV(01)'
                                        'X'.
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MARC-WEBAZ'.
          PERFORM bdc_field       USING 'MARA-MEINS'
                                        itab-meins_022.
          PERFORM bdc_field       USING 'MARC-WEBAZ'
                                        itab-webaz_071.
    End Of Addition Done By Hymavathi
        ENDIF.
        IF v_acct1 = 'X'.
    */ ACCOUNTING 1
          PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'MAKT-MAKTX'
                                        itab-maktx_021.
          PERFORM bdc_field       USING 'MARA-MEINS'
                                        itab-meins_022.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'MBEW-STPRS'.
          PERFORM bdc_field       USING 'MBEW-BKLAS'
                                        itab-bklas_074.
          PERFORM bdc_field       USING 'MBEW-VPRSV'
                                 

  • Function Module in Material Master

    Hi All,
    I am developing an interface for Material Master. On change of fields, MATNR, MAKTX, <Short name (extension)>, MTART, MSTAE, WERKS, I need to trigger an IDOC.
    For populating the extended fields I need a function module name which gets called while triggering IDOC.
    Please let me know ASAP.
    Thanks,
    Shriram

    Hi,
    Create a project in cmod with z name and add the below mentioned component and write ur code in the incude program ZXMGVU03 which is present in the Customer function module:EXIT_SAPLMV01_002 .
    And dont forget activate the project .
    Component: MGV00001
    Please reward points if the solution is helpful.
    Thanks ,
    Prasanna

  • How can I extract the list of fields for every view of the material master?

    Hello SAPients,
    Is there a table or a FM where I can extract the list of fields that every view of material master have?
    I need to create a dynamic selection-screen with something like this:
    Basic Data
        mara-matnr
        makt-maktx
        mara-meins
    Sales: Sales Organization Data
        mara-matnr
        makt-maktx
    Thank you in advance.

    Hi
    Try to run the trx OMT3B: this the customizing where the dynpro for the views are defined: perhaps u can find something can help you.
    Max

  • LSMW(Direct Input) Material master issues

    Hi,
    I have few issues on Material master-LSMW(Direct Input-RMDATIND) data upload(creating materials).
    1. Can i upload excel sheet for uploading data! What option i have to choose in 'specify files' for this!
    2. I am using fields MBRSH, MTART, MAKTX, MEINS, BISMT, MATKL, MAGRV for mapping.
        But when i tried to upload in last step-start direct input program with Lock Mode-'N' it is giving error as
        'Plant data does not exist'. Because this is for 'Basic Data' i though no need to input plant.
    3. MATNR field is not needed for creation right as it is auto generated!
    4. I have to do seperate object for this project for 'Sales organization data' & Plant Data is there any checks needed for the same!
    Can anybody give solutions for the above!
    Thanks in advance.
    Thanks,
    Deep.

    1. Now i am trying to process 4 records it is creating 3 records.
        It is always skipping 1st record in flat file.
        Any check required!
    2. Also i want to write a output file(log file) to my presentation/application server with all material no's created & material descriptions. Where can i do the same!
    3. Can anybody tell me how to upload using excel sheet.
    Thanks,
    Deep.
    Edited by: Deep on May 14, 2009 3:21 PM

  • Zprogram to create material master data using bapi

    can anyone send me a zprogram which uses a
    bapi to create\update material master data .
    thanks ,
    Amit

    hi,
    here below a code sample that will help you
    FORM execution .
      DATA: is_headdata TYPE bapimathead.
      DATA: is_clientdata TYPE bapi_mara.
      DATA: is_clientdatax TYPE bapi_marax.
      DATA: is_plantdata TYPE bapi_marc.
      DATA: is_plantdatax TYPE bapi_marcx.
      DATA: is_valuationdata  TYPE bapi_mbew.
      DATA: is_valuationdatax  TYPE bapi_mbewx.
      DATA: it_materialdescription TYPE bapi_makt OCCURS 0 WITH HEADER LINE.
      DATA : is_storagelocationdata TYPE bapi_mard,
             is_storagelocationdatax TYPE bapi_mardx.
    *... views
      is_headdata-material = mara-matnr.
      is_headdata-ind_sector = 'M'.
      is_headdata-matl_type = 'ROH'.
      is_headdata-basic_view = 'X'.
      is_headdata-purchase_view = 'X'.
      is_headdata-mrp_view = 'X'.
      is_headdata-account_view = 'X'.
      is_headdata-cost_view = 'X'.
      is_headdata-storage_view = 'X'.
    *... constants
      is_clientdata-pur_valkey = '3'.
      is_clientdatax-pur_valkey = 'X'.
    *... Données article générales (de l'écran)
      is_clientdata-base_uom = mara-meins.
      is_clientdata-matl_group = mara-matkl.
      is_clientdata-mfr_no = mara-mfrnr.
      is_clientdata-manu_mat = mara-mfrpn.
      is_clientdata-pur_status = mara-mstae.
      is_clientdata-old_mat_no = mara-bismt.
      is_clientdatax-base_uom = 'X'.
      is_clientdatax-matl_group = 'X'.
      is_clientdatax-mfr_no = 'X'.
      is_clientdatax-manu_mat = 'X'.
      is_clientdatax-pur_status = 'X'.
      is_clientdatax-old_mat_no = 'X'.
    *... Description
      it_materialdescription-langu = sy-langu.
      it_materialdescription-matl_desc = makt-maktx.
      APPEND it_materialdescription.
      is_plantdata-sm_key = '000'.
      is_plantdata-dep_req_id = '2'.
      is_plantdata-availcheck = '02'.
      is_plantdata-auto_p_ord = 'X'.
      is_plantdatax-sm_key = 'X'.
      is_plantdatax-dep_req_id = 'X'.
      is_plantdatax-availcheck = 'X'.
      is_plantdatax-auto_p_ord = 'X'.
      is_plantdata-pur_status = mara-mstae.
      is_plantdatax-pur_status = 'X'.
          is_plantdata-profit_ctr = '100012'.
      is_plantdata-proc_type = 'F'.
      is_plantdata-determ_grp = 'Z001'.
      is_plantdata-deploy_horiz = '000'.
      is_plantdatax-proc_type = 'X'.
      is_plantdatax-determ_grp = 'X'.
      is_plantdatax-deploy_horiz = 'X'.
    *... Plant data
      is_plantdata-plant = marc-werks.
      is_plantdata-pur_group = marc-ekgrp.
      is_plantdata-abc_id = marc-maabc.
      is_plantdata-mrp_type = marc-dismm.
      is_plantdata-plnd_delry = marc-plifz.
      is_plantdata-lotsizekey = marc-disls.
      is_plantdata-safety_stk = marc-eisbe.
      is_plantdata-mrp_ctrler = marc-dispo.
      is_plantdata-iss_st_loc = marc-lgpro.
      is_plantdata-sloc_exprc = marc-lgfsb.
      is_plantdata-round_prof = marc-rdprf.
      is_plantdatax-plant = marc-werks.
      is_plantdatax-pur_group = 'X'.
      is_plantdatax-abc_id = 'X'.
      is_plantdatax-mrp_type = 'X'.
      is_plantdatax-plnd_delry = 'X'.
      is_plantdatax-lotsizekey = 'X'.
      is_plantdatax-safety_stk = 'X'.
      is_plantdatax-mrp_ctrler = 'X'.
      is_plantdatax-iss_st_loc = 'X'.
      is_plantdatax-sloc_exprc = 'X'.
      is_plantdatax-round_prof = 'X'.
    *... Valuation
      is_valuationdata-val_area = marc-werks.
      is_valuationdatax-val_area = marc-werks.
      is_valuationdata-price_ctrl = 'V'.
      is_valuationdata-price_unit = '1'.
      is_valuationdata-val_class = '3000'.
      is_valuationdata-qty_struct = 'X'.
      is_valuationdata-orig_mat = 'X'.
      is_valuationdata-price_unit = mbew-peinh.
      is_plantdata-lot_size = mbew-peinh.
      is_valuationdatax-price_ctrl = 'X'.
      is_valuationdatax-price_unit = 'X'.
      is_valuationdatax-val_class = 'X'.
      is_valuationdatax-qty_struct = 'X'.
      is_valuationdatax-orig_mat = 'X'.
      is_valuationdatax-price_unit = 'X'.
      is_plantdatax-lot_size = 'X'.
    Storage
      IF NOT marc-lgpro IS INITIAL.
        is_storagelocationdata-plant = marc-werks.
        is_storagelocationdata-stge_loc = marc-lgpro.
        is_storagelocationdata-stge_bin = mard-lgpbe.
        is_storagelocationdatax-plant = is_storagelocationdata-plant.
        is_storagelocationdatax-stge_loc = is_storagelocationdata-stge_loc.
        is_storagelocationdatax-stge_bin = 'X'.
      ENDIF.
      CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
      headdata                   = is_headdata
      clientdata                 = is_clientdata
      clientdatax                = is_clientdatax
      plantdata                  = is_plantdata
      plantdatax                 = is_plantdatax
      FORECASTPARAMETERS         =
      FORECASTPARAMETERSX        =
      PLANNINGDATA               =
      PLANNINGDATAX              =
       storagelocationdata        = is_storagelocationdata
       storagelocationdatax       = is_storagelocationdatax
      valuationdata              = is_valuationdata
      valuationdatax             = is_valuationdatax
      WAREHOUSENUMBERDATA        =
      WAREHOUSENUMBERDATAX       =
      SALESDATA                  =
      SALESDATAX                 =
      STORAGETYPEDATA            =
      STORAGETYPEDATAX           =
      FLAG_ONLINE                = ' '
      FLAG_CAD_CALL              = ' '
      IMPORTING
      return                     = return
    TABLES
         materialdescription        = it_materialdescription
      UNITSOFMEASURE             =
      UNITSOFMEASUREX            =
      INTERNATIONALARTNOS        =
      MATERIALLONGTEXT           =
      TAXCLASSIFICATIONS         =
         returnmessages             = it_returnmessages
      PRTDATA                    =
      PRTDATAX                   =
      EXTENSIONIN                =
      EXTENSIONINX               =
    endform.
    Regards.
    David

Maybe you are looking for

  • SQL with connect by prior running for a long time

    Hi, We are using Oracle 10g. Below is a cursor sql which is having performance issues. The pAccountid is being passed from the output of a different cursor. But this cursor sql is running for a long time. Could you please help me in tuning this sql.

  • How to get bitmaps in Mail?

    I can't believe that this has not been resolved.  I received an email with a Device Independent Bitmap .dib file and it shows up as an html question mark.  It is not shown as an attachment and can't be downloaded.  An older post (from 2008) that did

  • HTTP Receiver Channel

    Hi Gurus, I am working on a JDBC to HTTP scenario. Scenario is working fine, but have a confusion on the configuration of Receiver HTTP channel. In the receiver channel, there is something called 'Additional Query String Attribute'. I am not getting

  • Is there a way to Proof Colour within Elements

    Our Camera Club  and all those within South Africa project images for judging Salon Entries using IrfanView which is not colour proofed. Entries edited in CS are able to Proof Colour but I have not found a way to do this within Elements. Any informat

  • Cache Notifications Error in Integration Directory

    Hello, I'm having an interesting problem at my client's PI 7.0 system. When I update my changelist, I can see problems in Integration Directory - cache notifications. Integration Builder works fine. When I retry the cache refresh manually, I turns to