Using BAPI - /AFS/BAPI_MATERIAL_SAVEDATA

Hi,    
Here is what I am looking for, using BAPI (/AFS/BAPI_MATERIAL_SAVEDATA). Based on some conditions i need to clear all the related entries in MEAN table and need to clear UPC (EAN11) and EAN Type (EANTP) from MARA table. To achieve this using BAPI - (/AFS/BAPI_MATERIAL_SAVEDATA), but its not working since I am missing some of the important parameters to be passed.
Thanks in advance,
Satya

Hi Satya,
Did you read this : "Note 1407359 - Unable to reset AFS material master fields via BAPI"?
Hope this can help you to go forward.
To reset other AFS fields I had to use the direct input solution.
BR,
Daniel

Similar Messages

  • Error while updating AFS weights & measures material master data using BAPI

    Hello ABAP experts,
    Please help me in finding the right way in updating AFS weights & measures data (/AFS/MARM) data using BAPI /AFS/BAPI_MATERIAL_SAVE_DATA.
    I'm populating the following table parameters of the BAPI,
    1. SKUUNITSOFMEASURE with /AFS/MARM records
    s_bapi_marm-ALT_UNIT = 'EA'.
    s_bapi_marm-ALT_UNIT_ISO = 'EA'.
    s_bapi_marm-grid_value = 'XXXXS'.
    *s_bapi_marm-STOCK_CATEGORY = '01000'.
    s_bapi_marm-volume  = '10'.
    s_bapi_marm-GROSS_WT  = '10'.
    s_bapi_marm-NET_WEIGHT  = '10'.
    append s_bapi_marm to t_bapi_marm.
    2. UNITSOFMEASURE with MARM records
    s_bapi_uom-ALT_UNIT = 'EA'.
    s_bapi_uom-ALT_UNIT_ISO = 'EA'.
    s_bapi_uom-NUMERATOR = '1'.
    s_bapi_uom-DENOMINATR = '1'.
    s_bapi_uom-UNIT_OF_WT = 'KG'.
    s_bapi_uom-VOLUMEUNIT = 'CCM'.
    append s_bapi_uom to t_bapi_uom.
    But the BAPI returns me an error "Stock Category & is not valid in Category structure  &"
    Let me know if you have any inputs on this one.
    Thanks,
    Partha.

    Hi VAMSHI,
    I have your same error but I don't know how to solve it. We have active "material split valuation" and valuation type is mandatory field if using ACCOUNTING and COSTING views.
    Please, let me know.
    Thanks in advance.
    GB

  • Problem in Sales order create using BAPI with reference to quotation

    Hi,
    I am creating a sales order from Quotation using BAPI /AFS/BAPI_SALESORD_CREATEFDATA.
    The Sale order is getting created and the document flow is updated. When i check the status of quotation it is "OPEN".
    Ideally when a sale order is created in VA01 with reference to a quotation and if all items are added in the order from quotation, then the status of the quotation must be "Complete".
    When i use the BAPI, the status of the quotation is sill "Open". Has anyone faced this issue?
    Even if anyone has faced this issue with BAPI_SALESORDER_CREATEFROMDAT2, please let me know...
    Regards

    Hi RV,
    I am using BAPI  to create order reference to contracts. I am facing same issue. Its not updating document flow (vbfa-plmin field). After creating orders I am forcing to update plmin field in vbfa. This worked fine. But now status in reference document not updating properly. I saw your thread. It looks like similar issue. I saw your comments "Customization was not maintained properly for the Order types ". Please can you explain little bit more about your solution. It will helps us lot.
    Thanks,
    srini

  • Updation in synchronous mode using bapi

    hi all ,
           i have a requirement to update master table using bapi /SAPMP/BAPI_MATERIAL_SAVEDATA  where has it is taking more time can any one of you sugguest what will be the best approach which i can improve the execution time and can u tell me whether i can execute bapi in synchronous mode.
    with regards,
    abaper

    Hi,
    You can go for either BDC or LSMW also.
    Regards,
    Renjith Michael.

  • Upload the Plant by using BAPI "  BAPI_MATERIAL_SAVEDATA"

    Hi experts ,
    I have a requirement where i need to update the plant for the material.
    i tried to use BAPI "  BAPI_MATERIAL_SAVEDATA"
    Can any one please help me out what are the import and export parameters we need to pass  for updating the Plant for that particluar material.
    If any one have any sample code please send .
    Thanks in advance.
    Anupama . P

    Hi
    When creating material master data, you must transfer the material number, the material type, and the industry sector to the method. You must also enter a material description and its language.
    When changing material master data, you need enter only the material number.
    In the header data, you must select at least one view for which data is to be created. Depending on the view selected, you must maintain other required parameters. If you do not enter values for all of the required parameters, the method is ended with an error message.
    For what fields to be filled up, please go to SE37, Enter the BAPI, click on display
    Click on Import tab page , clcik on the Associated type of Parmeters
    HEADDATA
    CLIENTDATA
    PLANTDATA
    & any other data which you want to upload ,
    Thanks & Regards
    Kishore

  • Create material using bapi ' bapi_material_savedata'

    Hi Experts,
    i was tring to create material using bapi ' bapi_material_savedata' but the material is not updating in the table.
    please find the code and suggest me if any modification
    data: la_headdata type BAPIMATHEAD,
    la_clientdata type BAPI_MARA,
    la_CLIENTDATAX type BAPI_MARAX,
    la_return type BAPIRET2.
    data: i_materialdescription type table of BAPI_MAKT,
    wa_materialdescription like line of i_materialdescription.
    *la_headdata-MATERIAL = int_matnum-MATERIAL.
    *LOOP AT int_matnum.
    la_headdata-MATERIAL = int_matnum-MATERIAL.
    write : int_matnum-material.
    *ENDLOOP.
    la_headdata-MATERIAL = '100000518'."int_matnum-MATERIAL.
    la_headdata-IND_SECTOR = p_indsr.
    la_headdata-MATL_TYPE = p_matype.
    la_clientdata-BASE_UOM = 'FT3'.
    la_clientdata-pur_valkey = ' '.
    la_CLIENTDATAX-BASE_UOM = 'X'.
    la_clientdata-MATL_GROUP = '01'.
    la_CLIENTDATAX-MATL_GROUP = 'X'.
    wa_materialdescription = 'TEST'.
    append wa_materialdescription to i_materialdescription.
    clear: wa_materialdescription.
    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
    EXPORTING
    headdata = la_headdata
    CLIENTDATA = la_clientdata
    CLIENTDATAX = la_CLIENTDATAX
    PLANTDATA =
    PLANTDATAX =
    FORECASTPARAMETERS =
    FORECASTPARAMETERSX =
    PLANNINGDATA =
    PLANNINGDATAX =
    STORAGELOCATIONDATA =
    STORAGELOCATIONDATAX =
    VALUATIONDATA =
    VALUATIONDATAX =
    WAREHOUSENUMBERDATA =
    WAREHOUSENUMBERDATAX =
    SALESDATA =
    SALESDATAX =
    STORAGETYPEDATA =
    STORAGETYPEDATAX =
    FLAG_ONLINE = ' '
    FLAG_CAD_CALL = ' '
    IMPORTING
    RETURN = la_return
    TABLES
    MATERIALDESCRIPTION = i_materialdescription
    UNITSOFMEASURE =
    UNITSOFMEASUREX =
    INTERNATIONALARTNOS =
    MATERIALLONGTEXT =
    TAXCLASSIFICATIONS =
    RETURNMESSAGES =
    PRTDATA =
    PRTDATAX =
    EXTENSIONIN =
    EXTENSIONINX =
    Please Help me
    Regards,
    Naresh

    Hi all,
    Now it is asking me for the other fields,
    E ,
    The field MARA-XCHPF/BAPI_MARA-BATCH_MGMT is defined as a required field; it does not contain an entry
    i have passed this val as
    la_clientdata-batch_mgmt = 'X'.
    even though i am getting the same error.
    can you help me to solve the issue.
    Tthanks
    Naresh
    Edited by: naresh.k.dasari on Jan 4, 2011 10:36 AM

  • Create materials with multiple organizational levels using BAPI

    Dear Gurus,
    I have to develop a program generating materials from an Excel file. I am using the BAPI_MATERIAL_SAVEDATA.
    On the Excel file a new material can be associated to 'n' organizational levels. For eg :
    MATNR              MTART            SALES_ORG            DISTR_CHAN
    01                       ZAAA                Z100                           Z1
    01                       ZAAA                Z100                           Z2
    We can add sales_data in the BAPI but in a structure, not in a table !
    The funny thing is that I have found online the /AFS/BAPI_MATERIAL_SAVEDATA which allowed n sales data line but this BAPI is delivered in a package specialised in footwear industry !
    I cannot find a good way to solve this problem. I will strongly appreciate any help to find a solution as I am blocked.
    Thanks a lot!
    Ben

    Thanks Jurgen for your quick answer.
    Just what do you put in the field 'Function' of the different tables ?
    Here's my code for headdata and salesdata :
      CLEAR ls_headdata.
      ls_headdata-function = 'INS'.
      ls_headdata-material = gs_datatab-matnr.
      ls_headdata-ind_sector = gs_datatab-mbrsh.
      ls_headdata-matl_type = gs_datatab-mtart.
      ls_headdata-sales_view = 'X'.
      APPEND ls_headdata TO lt_headdata.
      CLEAR ls_salesdata.
      CLEAR ls_salesdatax.
      ls_salesdata-function = 'INS'.
      ls_salesdatax-function = 'INS'.
      ls_salesdata-material = gs_datatab-matnr.
      ls_salesdatax-material = gs_datatab-matnr.
      ls_salesdata-sales_org = gs_datatab-vkorg.
      ls_salesdatax-sales_org = gs_datatab-vkorg.
      ls_salesdata-distr_chan = gs_datatab-vtweg.
      ls_salesdatax-distr_chan = gs_datatab-vtweg.
      ls_salesdata-sal_status = gs_datatab-vmsta.
      ls_salesdatax-sal_status = 'X'.
      ls_salesdata-valid_from = gs_datatab-vmstd.
      ls_salesdatax-valid_from = 'X'.
      APPEND ls_salesdata TO lt_salesdata.
      APPEND ls_salesdatax TO lt_salesdatax.
      CLEAR ls_salesdata.
      CLEAR ls_salesdatax.
      ls_salesdata-function = 'INS'.
      ls_salesdatax-function = 'INS'.
      ls_salesdata-material = gs_datatab-matnr.
      ls_salesdatax-material = gs_datatab-matnr.
      ls_salesdata-sales_org = gs_datatab2-vkorg.
      ls_salesdatax-sales_org = gs_datatab2-vkorg.
      ls_salesdata-distr_chan = gs_datatab2-vtweg.
      ls_salesdatax-distr_chan = gs_datatab2-vtweg.
      ls_salesdata-sal_status = gs_datatab2-vmsta.
      ls_salesdatax-sal_status = 'X'.
      ls_salesdata-valid_from = gs_datatab2-vmstd.
      ls_salesdatax-valid_from = 'X'.
      APPEND ls_salesdata TO lt_salesdata.
      APPEND ls_salesdatax TO lt_salesdatax.
      CALL FUNCTION 'BAPI_MATERIAL_SAVEREPLICA'
        EXPORTING
          noappllog                  = 'X'
          nochangedoc                = ' '
          testrun                    = ' '
          inpfldcheck                = ' '
      FLAG_CAD_CALL              = ' '
      NO_ROLLBACK_WORK           = ' '
      FLAG_ONLINE                = ' '
       IMPORTING
         return                     = ls_return
        TABLES
          headdata                   = lt_headdata
         salesdata                  = lt_salesdata
         salesdatax                 = lt_salesdatax
    (Of course I have other structures like clientdata, plantdata etc.)
    But I get the error message M3305 (The material &&&&& does not exist or is not activated)
    Edited by: Fonctionnel OSS on Oct 29, 2010 2:20 PM

  • Issue in material master update from presentation server  using BAPI....

    Hi Guru's...
    i am trying to change the material master from presentation server (desktop flat file)
    using BAPI(BAPI_MATERIAL_SAVEDATA) ....
    while executing my program i am getting the message like material had changed...
    but while in mm02 i am un able to fine the updates...
    please find below program logic and correct me if any mistakes....
    thanks in advance...
    *& Report  ZAREPAS36
    REPORT  zarepas36.
    DATA : gs_bapimathead             TYPE  bapimathead,
           gs_clientdata              TYPE  bapi_mara,
           gs_clientdatax             TYPE  bapi_marax.
    TYPES : BEGIN OF gty_itab1,
            matnr(18),
            matkl(9),
            spart(2),
            ntgew(13),
            gewei(3),
            meins(3),
            END OF gty_itab1.
    DATA : gt_itab1 TYPE STANDARD TABLE OF gty_itab1,
           gwa_itab1 TYPE gty_itab1.
    TYPES: BEGIN OF gty_itab2,
           abc(132),
           END OF gty_itab2.
    DATA: gt_itab2 TYPE STANDARD TABLE OF gty_itab2,
          gwa_itab2 TYPE gty_itab2.
    flat file at selection screen
    PARAMETERS: p_files TYPE string.
    CALL METHOD cl_gui_frontend_services=>gui_upload
      EXPORTING
        filename = p_files
        filetype = 'ASC'
      CHANGING
        data_tab = gt_itab2
      EXCEPTIONS
        OTHERS   = 8.
    LOOP AT gt_itab2 INTO gwa_itab2.
      IF gwa_itab2-abc(1) = 'S'.
        gwa_itab1 = gwa_itab2-abc(132).
        APPEND gwa_itab1 TO gt_itab1.
      ENDIF.
    ENDLOOP.
    loop at gt_itab1 into gwa_itab1.
    *Material
    gs_bapimathead-material    = gwa_itab1-matnr.
    *Material details at client data
    *material group.
    gs_clientdata-matl_group = gwa_itab1-matkl.
    gs_clientdatax-matl_group = 'X'.
    *Division
    gs_clientdata-division = gwa_itab1-spart.
    gs_clientdatax-division = 'X'.
    *Net Weight
    gs_clientdata-net_weight = gwa_itab1-ntgew.
    gs_clientdatax-net_weight = 'X'.
    *Unit of Weight
    gs_clientdata-unit_of_wt = gwa_itab1-gewei.
    gs_clientdatax-unit_of_wt = 'X'.
    *Base Unit of Measure
    gs_clientdata-base_uom = gwa_itab1-meins.
    gs_clientdatax-base_uom = 'X'.
    endloop.
    *calling BAPI for making changes in material and saving thru BAPI.
    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata    = gs_bapimathead
        clientdata  = gs_clientdata
        clientdatax = gs_clientdatax.
    IF sy-subrc NE 0.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      WRITE: / 'Error occured while changing material'.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
      WRITE: / 'material',gs_bapimathead-material,'changed'.
    ENDIF.

    hi hello Guru's
    i resolved the issuee..
    pleaso go thru the below proram logic for your reference..........
    *& Report  ZAREPAS36
    REPORT  zarepas36.
    DATA : gs_bapimathead             TYPE  bapimathead,
           gs_clientdata              TYPE  bapi_mara,
           gs_clientdatax             TYPE  bapi_marax.
    TYPES : BEGIN OF gty_itab1,
            matnr(18),
            matkl(9),
            spart(2),
            ntgew(13),
            gewei(3),
            meins(3),
            END OF gty_itab1.
    DATA : gt_itab1 TYPE STANDARD TABLE OF gty_itab1,
           gwa_itab1 TYPE gty_itab1.
    TYPES: BEGIN OF gty_itab2,
           abc(132),
           END OF gty_itab2.
    DATA: gt_itab2 TYPE STANDARD TABLE OF gty_itab2,
          gwa_itab2 TYPE gty_itab2.
    DATA:ls_return         TYPE bapiret2,
         lt_bapiret2       TYPE standard table of bapiret2.
    flat file at selection screen
    PARAMETERS: p_files TYPE string.
    CALL METHOD cl_gui_frontend_services=>gui_upload
      EXPORTING
        filename = p_files
        filetype = 'ASC'
      CHANGING
        data_tab = gt_itab2
      EXCEPTIONS
        OTHERS   = 8.
    LOOP AT gt_itab2 INTO gwa_itab2.
      IF gwa_itab2-abc(1) = 'S'.
        gwa_itab1 = gwa_itab2-abc(132).
        APPEND gwa_itab1 TO gt_itab1.
      ENDIF.
    ENDLOOP.
    LOOP AT gt_itab1 INTO gwa_itab1.
    *Material
      gs_bapimathead-material    = gwa_itab1-matnr.
    *Material details at client data
    *material group.
      gs_clientdata-matl_group = gwa_itab1-matkl.
      gs_clientdatax-matl_group = 'X'.
    *Division
      gs_clientdata-division = gwa_itab1-spart.
      gs_clientdatax-division = 'X'.
    *Net Weight
      gs_clientdata-net_weight = gwa_itab1-ntgew.
      gs_clientdatax-net_weight = 'X'.
    *Unit of Weight
      gs_clientdata-unit_of_wt = gwa_itab1-gewei.
      gs_clientdatax-unit_of_wt = 'X'.
    *Base Unit of Measure
      gs_clientdata-base_uom = gwa_itab1-meins.
      gs_clientdatax-base_uom = 'X'.
    ENDLOOP.
    *calling BAPI for making changes in material and saving thru BAPI.
    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata    = gs_bapimathead
        clientdata  = gs_clientdata
        clientdatax = gs_clientdatax
      IMPORTING
        return      = ls_return.
    LOOP AT lt_bapiret2 INTO ls_return.
      EXIT.
    ENDLOOP.
    IF sy-subrc = 0.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      WRITE: / 'Error occured while changing material'.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
      WRITE: / 'material',gs_bapimathead-material,'changed'.
    ENDIF.

  • 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.

  • IS-RETAIL: How to update custom enhancement field using BAPI?

    Hi gurus,
    Like ECC BAPI: BAPI_MATERIAL_SAVEDATA,
    This BAPI(BAPI_MATERIAL_MAINTAINDATA_RT) is specific for IS-RETAIL to create and update material master data.
    But now If I append one custom field "ZFIELD" to end of table MARA, my question is how to update this custom enhancement field(ZFIELD) using BAPI(BAPI_MATERIAL_MAINTAINDATA_RT)
    Thanks in advance!

    Hi DongHai,
    I suggest you create your own BAPI. Just copy the codes in BAPI_MATERIAL_MAINTAINDATA_RT and add your custom fields. If you want to append the data of the custom field in table MARA, first, you have to create a structure table then goto SE11, type MARA and display. Click the APPEND STRUCTURE then choose the structure that you've created. Hope this will help.
    Rewards if useful
    Regards,
    Mark

  • Data transfer using BAPI'S

    please get me the detailed procedure  ( including code) of any data transfer program using BAPI's

    check the sample code....it is used to transfer the data to MM01 tcode.
    *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'.
    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.[/code]
    Reward if useful.
    Dara.

  • I want complete code of mm01 using bapi's

    hi experts!
    my requirements is upload material master data using bapi....
    i want complete  code of mm01 ......i have no idea of bapi
    pls help me anybody...............................

    Dear Shilpa,
    Please go through the following link:
    https://www.sdn.sap.com/irj/sdn/wiki
    Tutorial, MM01 Upload using BAPI
    Author: Karthik Potharaju
    Submitted: 28.09.07
    *& Report ZKAR_MATMAS_BAPI
    *& This program demonstrates how easy it is to create Material master
    *& data using BAPI_MATERIAL_SAVEDATA
    *& The program also generates a report post-execution displaying errors
    *& as well as successful uploads
    *& Written by: Karthik Potharaju
    *& URL: http://allaboutsap.blogspot.com
    REPORT ZKAR_MATMAS_BAPI.
    TABLES
    FLAGS *
    DATA: F_STOP. " Flag used to stop processing
    DATA DECLARATIONS *
    DATA : V_EMPTY TYPE I, " No. of empty records
    V_TOTAL TYPE I. " Total no. of records.
    STRUCTURES & INTERNAL TABLES
    *--- BAPI structures
    DATA: BAPI_HEAD LIKE BAPIMATHEAD, " Header Segment with Control Information
    BAPI_MAKT LIKE BAPI_MAKT, " Material Description
    BAPI_MARA1 LIKE BAPI_MARA, " Client Data
    BAPI_MARAX LIKE BAPI_MARAX, " Checkbox Structure for BAPI_MARA
    BAPI_MARC1 LIKE BAPI_MARC, " Plant View
    BAPI_MARCX LIKE BAPI_MARCX, " Checkbox Structure for BAPI_MARC
    BAPI_MBEW1 LIKE BAPI_MBEW, " Accounting View
    BAPI_MBEWX LIKE BAPI_MBEWX, " Checkbox Structure for BAPI_MBEW
    BAPI_RETURN LIKE BAPIRET2. " Return Parameter
    *--- Internal table to hold excel file data
    DATA: IT_INTERN TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
    *--- Internal table to hold Matetrial descriptions
    DATA: BEGIN OF IT_MAKT OCCURS 100.
    INCLUDE STRUCTURE BAPI_MAKT.
    DATA: END OF IT_MAKT.
    *--- Internal to hold the records in the text file
    DATA : BEGIN OF IT_DATA OCCURS 100,
    WERKS(4), " Plant
    MTART(4), " Material type
    MATNR(18), " Material number
    MATKL(9) , " Material group
    MBRSH(1), " Industry sector
    MEINS(3), " Base unit of measure
    GEWEI(3), " Weight Unit
    SPART(2), " Division
    EKGRP(3), " Purchasing group
    VPRSV(1), " Price control indicator
    STPRS(12), " Standard price
    PEINH(3), " Price unit
    SPRAS(2), " Language key
    MAKTX(40), " Material description
    END OF IT_DATA.
    SELECTION SCREEN. *
    SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-111.
    PARAMETER : P_FILE TYPE RLGRAP-FILENAME OBLIGATORY DEFAULT " Input File
    'C:Material_master.XLS'.
    PARAMETER : P_MAX(4) OBLIGATORY DEFAULT '100'. " no.of recs in a session
    PARAMETERS: P_HEADER TYPE I DEFAULT 0. " Header Lines
    PARAMETERS: P_BEGCOL TYPE I DEFAULT 1 NO-DISPLAY,
    P_BEGROW TYPE I DEFAULT 1 NO-DISPLAY,
    P_ENDCOL TYPE I DEFAULT 100 NO-DISPLAY,
    P_ENDROW TYPE I DEFAULT 32000 NO-DISPLAY.
    SELECTION-SCREEN END OF BLOCK SCR1.
    AT SELECTION-SCREEN *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    *--- Validating file
    PERFORM VALIDATE_FILE USING P_FILE.
    START-OF-SELECTION
    START-OF-SELECTION.
    *--- Perform to convert the Excel data into an internal table
    PERFORM CONVERT_XLS_ITAB.
    IF NOT IT_DATA[] IS INITIAL.
    *--- Perform to delete Header lines
    PERFORM DELETE_HEADER_EMPTY_RECS.
    ENDIF.
    END OF SELECTION. *
    END-OF-SELECTION.
    *--- Perform to upload Material Master data
    PERFORM UPLOAD_MATMAS.
    Form : validate_input_file
    Description : To provide F4 help for file if read from PC
    FORM VALIDATE_FILE USING F_FILE TYPE RLGRAP-FILENAME.
    CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    CHANGING
    FILE_NAME = F_FILE
    EXCEPTIONS
    MASK_TOO_LONG = 1
    OTHERS = 2.
    IF SY-SUBRC <> 0.
    MESSAGE S010(ZLKPL_MSGCLASS). " 'Error in getting filename'.
    ENDIF.
    ENDFORM. " validate_input_file
    *& Form CONVER_XLS_ITAB
    text
    FORM CONVERT_XLS_ITAB.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
    FILENAME = P_FILE
    I_BEGIN_COL = P_BEGCOL
    I_BEGIN_ROW = P_BEGROW
    I_END_COL = P_ENDCOL
    I_END_ROW = P_ENDROW
    TABLES
    INTERN = IT_INTERN.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    *--- Perform to move the data into an internal data
    PERFORM MOVE_DATA.
    ENDFORM. " CONVERT_XLS_ITAB
    *& Form MOVE_DATA
    text
    FORM MOVE_DATA.
    DATA : LV_INDEX TYPE I.
    FIELD-SYMBOLS <FS>.
    *--- Sorting the internal table
    SORT IT_INTERN BY ROW COL.
    CLEAR IT_INTERN.
    LOOP AT IT_INTERN.
    MOVE IT_INTERN-COL TO LV_INDEX.
    *--- Assigning the each record to an internal table row
    ASSIGN COMPONENT LV_INDEX OF STRUCTURE IT_DATA TO <FS>.
    *--- Asigning the field value to a field symbol
    MOVE IT_INTERN-VALUE TO <FS>.
    AT END OF ROW.
    APPEND IT_DATA.
    CLEAR IT_DATA.
    ENDAT.
    ENDLOOP.
    ENDFORM. " MOVE_DATA
    *& Form DELETE_HEADER_EMPTY_RECS
    To delete the Header and empty records
    FORM DELETE_HEADER_EMPTY_RECS.
    DATA: LV_TABIX LIKE SY-TABIX.
    IF NOT P_HEADER IS INITIAL.
    LOOP AT IT_DATA.
    IF P_HEADER > 0 AND NOT IT_DATA IS INITIAL.
    DELETE IT_DATA FROM 1 TO P_HEADER.
    P_HEADER = 0.
    EXIT.
    ENDIF.
    ENDLOOP.
    ENDIF.
    CLEAR IT_DATA.
    *--- To delete the empty lines from internal table
    LOOP AT IT_DATA.
    LV_TABIX = SY-TABIX.
    IF IT_DATA IS INITIAL.
    V_EMPTY = V_EMPTY + 1.
    DELETE IT_DATA INDEX LV_TABIX..
    ENDIF.
    ENDLOOP.
    CLEAR IT_DATA.
    *--- Total no of recs in file
    DESCRIBE TABLE IT_DATA LINES V_TOTAL.
    IF V_TOTAL = 0.
    MESSAGE I013(ZLKPL_MSGCLASS). " No records in the file
    F_STOP = 'X'.
    STOP.
    ENDIF.
    ENDFORM. " DELETE_HEADER_EMPTY_RECS
    *& Form UPLOAD_MATMAS
    to upload Material Master data
    FORM UPLOAD_MATMAS .
    LOOP AT IT_DATA.
    Header
    BAPI_HEAD-MATERIAL = IT_DATA-MATNR.
    BAPI_HEAD-IND_SECTOR = IT_DATA-MBRSH.
    BAPI_HEAD-MATL_TYPE = IT_DATA-MTART.
    BAPI_HEAD-BASIC_VIEW = 'X'.
    BAPI_HEAD-PURCHASE_VIEW = 'X'.
    BAPI_HEAD-ACCOUNT_VIEW = 'X'.
    Material Description
    REFRESH IT_MAKT.
    IT_MAKT-LANGU = IT_DATA-SPRAS.
    IT_MAKT-MATL_DESC = IT_DATA-MAKTX.
    APPEND IT_MAKT.
    Client Data - Basic
    BAPI_MARA1-MATL_GROUP = IT_DATA-MATKL.
    BAPI_MARA1-BASE_UOM = IT_DATA-MEINS.
    BAPI_MARA1-UNIT_OF_WT = IT_DATA-GEWEI.
    BAPI_MARA1-DIVISION = IT_DATA-SPART.
    BAPI_MARAX-MATL_GROUP = 'X'.
    BAPI_MARAX-BASE_UOM = 'X'.
    BAPI_MARAX-UNIT_OF_WT = 'X'.
    BAPI_MARAX-DIVISION = 'X'.
    Plant - Purchasing
    BAPI_MARC1-PLANT = IT_DATA-WERKS.
    BAPI_MARC1-PUR_GROUP = IT_DATA-EKGRP.
    BAPI_MARCX-PLANT = IT_DATA-WERKS.
    BAPI_MARCX-PUR_GROUP = 'X'.
    Accounting
    BAPI_MBEW1-VAL_AREA = IT_DATA-WERKS.
    BAPI_MBEW1-PRICE_CTRL = IT_DATA-VPRSV.
    BAPI_MBEW1-STD_PRICE = IT_DATA-STPRS.
    BAPI_MBEW1-PRICE_UNIT = IT_DATA-PEINH.
    BAPI_MBEWX-VAL_AREA = IT_DATA-WERKS.
    BAPI_MBEWX-PRICE_CTRL = 'X'.
    BAPI_MBEWX-STD_PRICE = 'X'.
    BAPI_MBEWX-PRICE_UNIT = 'X'.
    *--- BAPI to create material
    call function 'BAPI_MATERIAL_SAVEDATA'
    exporting
    HEADDATA = BAPI_HEAD
    CLIENTDATA = BAPI_MARA1
    CLIENTDATAX = BAPI_MARAX
    PLANTDATA = BAPI_MARC1
    PLANTDATAX = BAPI_MARCX
    FORECASTPARAMETERS =
    FORECASTPARAMETERSX =
    PLANNINGDATA =
    PLANNINGDATAX =
    STORAGELOCATIONDATA =
    STORAGELOCATIONDATAX =
    VALUATIONDATA = BAPI_MBEW1
    VALUATIONDATAX = BAPI_MBEWX
    WAREHOUSENUMBERDATA =
    WAREHOUSENUMBERDATAX =
    SALESDATA = BAPI_MVKE1
    SALESDATAX = BAPI_MVKEX
    STORAGETYPEDATA =
    STORAGETYPEDATAX =
    IMPORTING
    RETURN = BAPI_RETURN
    TABLES
    MATERIALDESCRIPTION = IT_MAKT
    UNITSOFMEASURE =
    UNITSOFMEASUREX =
    INTERNATIONALARTNOS =
    MATERIALLONGTEXT =
    TAXCLASSIFICATIONS =
    RETURNMESSAGES =
    PRTDATA =
    PRTDATAX =
    EXTENSIONIN =
    EXTENSIONINX =
    IF BAPI_RETURN-TYPE = 'E'.
    WRITE:/ 'Error:' ,BAPI_RETURN-MESSAGE ,'for material:' ,it_data-matnr.
    ELSEIF BAPI_RETURN-TYPE = 'S'.
    WRITE: 'Successfully created material' ,it_data-matnr.
    ENDIF.
    ENDLOOP.
    ENDFORM. " UPLOAD_MATMAS
    Regards,
    Abir
    Don't forget to Reward Points  *

  • Creating a material with its classification using BAPI's

    Hi there,
               I am creating a function module to create a material master using BAPI's. I am using the BAPI 'BAPI_MATERIAL_SAVEDATA'. However I did not find a way to pass the classification details to this BAPI. As I need to create a classification data along with material basic data, can you please tell me how I can do it. Are there any BAPI's which I can use to create classification data?
             Please help, I have stuck here from a longer time.
    Thanks,
    Ganesh.

    hi
    good
    Use FM 'BAPI_OBJCL_GETDETAIL' to retrieve the classification data.
    Import params:
    1. Object key : give the material number
    2. Object table : give material master table i.e. MARA
    3. Class Num: Give the class name from which u have to fetch the characteristic data
    4. Class type: give '001' for material
    You will get the classification data in the following tables:
    ALLOCVALUESNUM
    ALLOCVALUESCHAR
    ALLOCVALUESCURR
    This should be helpful, do get back in case of any queries.
    thanks
    mrutyun^

  • 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 creation for All VIEW using BAPI Function modules

    Dear All,
                 I want to create materials for all views using BAPI F.Ms. By using BAPI_MATERIAL_SAVEDATA i have extended materials for for only specified views. now my requirement is to create Material with All views including Classfication view also. For this i found BAPI_OBJCL_CREATEFM.
             Tell me that shall i use both Fm's at time to create material.Will it work? According to my knowledge we need to create Characters first ,then we should  assign this character to this class, then while creation of material we should select this class .
            so pls guide me the procedure to follow for both FM's .
    Note : Pls don't suggest me LSMW OR BDC procedure.
    regards,
    Prashanth Maturu.

    Hi prashanth,
    U can use both the FM. using BAPI_MATERIAL_SAVEDATA u can create all the views and for classification view use BAPI_OBJCL_CREATE. before assigning class to material u hve to make sure that the characteristics are uploaded and is attched to the class using transaction CL03.
    Regards,
    Anil N.

Maybe you are looking for

  • Adding metadata to a list in sharepoint hosted apps

    Hi, I created a share point hosted app and i added a custom list with columns.Now i need to add some metadata to the list through app only.How can i achieve this requirement.Please help me.Thanks in advance. Regards, Praveen

  • Cross company code purchasing process?

    Hi Hurus, I went through previous threads of cross company code purchasing...but got confused.. could u pls all provide sime inputs as what is cross company code purchasing with example... i will be really grateful to u all..

  • Steps to copy datafiles in another database

    Hi, I want to use datafiles of another 10g database ,installed on different server, in my local 10g database. Please educate me on steps I need to take to do this. Kindly inform me if any further information is required in this regard. Thanks Harbind

  • Creating categories / hierarchial folder structure

    HI, I have created a query based taxonomy. What I find is the classification happens with same name as taxonomy name. If I need to add a folder structure for the classification to happen, how should it be done. The documentation says"Now create the c

  • Background applications bogging down the iphone?

    Hey everyone, I am a brand new iphone user. I used to own an HTC 8515 and I recall that it kept applications running in the background and eventually it would start to eat up a lot of RAM. There was a task manager however where you could clear all ru