BAPI INVOICE_UPDATE

Can I change the value of the 'key to block payment' to record an invoice with MIRO, using BAPI INVOICE_UPDATE?
Thanks

hi,
   You can use user exit  --EXIT_SAPLMRMP_010 (LMR1M001)    which definitely will solve ur issue.
   revert to me if u have any doubts on it.
murali.c

Similar Messages

  • MIRO: EXIT_SAPLMR1M_002 & BAPI: invoice_update

    Hello,
    Can anyone tell me how to use exit EXIT_SAPLMR1M_002 in transaction MIRO? 
    I have requirements to create new line items with GL accounts and amounts.  From OSS, exit EXIT_SAPLMR1M_002, should be use.  But I cannot trigger this exit.  I have tried to figure out how  this is called, but the only thing I found is it is called in screen 210 of program SAPLMR1M.  But I could not find where or how this screen is displayed in the transaction.  I also tried using BAPI invoice_update, but I could not create any new entries because the parameters are 'importing' parameters only. 
    So, can anyone suggest on how to create new GL line items in transaction MIRO?
    This is pretty urgent because if it cannot be done with these exits, a new design solution would be necessary and I have short time-frame for development.
    Any suggestion is greatly appreciated.
    Regards,
    Anna-Liza

    Hi
    Define a variable for VORGANG and set a value in the same way that from VORGANG SAP gives values for other fields in include LMR1MF5G (FORM vorgang)
      CASE rm08m-vorgang.
        WHEN '1'.                          " Rechnung
          rbkpv-xrech      = 'X'.          " - Rechnungs-Kennzeichen
          rbkpv-tbtkz      = space.        " - Nachbelastungs-Kennzeichen
          rbkpv-xrechl     = 'S'.
          rbkpv-xrechr     = 'H'.
        WHEN '2'.                          " Gutschrift
          rbkpv-xrech      = space.
          rbkpv-tbtkz      = space.
          rbkpv-xrechl     = 'H'.
          rbkpv-xrechr     = 'H'.
        WHEN '3'.                          " nachträgliche Belastung
          rbkpv-xrech      = 'X'.
          rbkpv-tbtkz      = 'X'.
          rbkpv-xrechl     = 'S'.
          rbkpv-xrechr     = 'H'.
        WHEN '4'.                          " nachträgliche Entlastung
          rbkpv-xrech      = space.
          rbkpv-tbtkz      = 'X'.
          rbkpv-xrechl     = 'H'.
          rbkpv-xrechr     = 'S'.
    So, do the algorithm in the reverse for fields XRECH, TBTKZ, XRECHL and XRECHR in MRM_RBKPV.
    I hope this helps you
    Regards
    Eduardo

  • Transfer data from the PO to the invoice header data in MIRO (user exits)

    Hi.
    We are trying to transfer some basic information from the PO to the invoice header data by the time we process the logistic invoice verification (transaction MIRO).
    The information we want to transfer is:
    1.     PO Text (screen field DRSEG-TXZ01) -
    > should be transferred to Header text field (screen field INVFO-SGTXT) located in the tab u2018Basic Datau2019.
    2.     Purchasing Document Number (screen field DRSEG-EBELN) -
    > should be transferred to Assignment field (screen field INVFO-ZUONR) located in tab u2018Detailsu2019.
    The exits we had listed for this tasks are:
    EXIT_SAPLMR1M_002: Change Proposed Account Assignment
    EXIT_SAPLMR1M_003: Pass On Document Header Data
    EXIT_SAPLMR1M_004: Change the Withholding Tax- and Split Table
    EXIT_SAPLMRMP_010: Analyze Document Header and Item Data
    The second one, EXIT_SAPLMR1M_003, should have stopped at by the time we processed the information, but it didnu2019t.
    Iu2019ve heard EXIT_SAPLMRMP_010 would no longer be functional from version 4.6c.
    Users enter the information in MIRO following this chronological order:
    1.Invoice date
    2.Reference
    3.Purchase order number ---> operation which u201Ccallsu201D the PO to the screen.
    4.Amount
    5.Flag u201Ccalculate taxu201D field (if mandatory)
    6.Tax on sales/purchases code (if mandatory)
    And then they post. Thatu2019s all.
    Weu2019ve tried to get this data from the time we u201Ccallu201D the PO to the screen, just to see if we can get it before we saved the document, and we werenu2019t capable of doing it. The second option is to get the data right after we process the document (post it), so weu2019ve reached bapi INVOICE_UPDATE but we cannot locate the exact place to put the references to the dynpro (although, weu2019re not 100% sure if this bapi would solve the problem).
    Thanks in advance.
    Sebastian

    Hi Sunil.
    Function MRM_INVOICE_CHECK doesn't exist in system 4.6c. Also I've searched for it in ECC 5 and I got the same result. Are you sure about the name of the function?
    From the function group MRMC, I found this:
    MRM_BADI_INVOICE_CHECK    
    MRM_DUPLICATE_INVOICE_CHECK
    I haven't still check them. But for what I know, the second one (...DUPLICATE...) processes a control to avoid a double entry of the invoice, I not sure it will work. I'll let you know.
    Thanks for answering.
    Sebas

  • BAPI Program -Invoice_update- For not allowing MIRO if Quality not clear

    Hello Gurus,
    Does anybody have program done for BAPI -Invoice Update
    This is for not allowing user to post MIRO-Vendor Incoming Invoice Creation & Posting if any material against that PO or GR is lying in the Quality Inspection.
    Please send if you have the same.
    Thanks
    Rahul

    hi,
       You can use user exit  --EXIT_SAPLMRMP_010 (LMR1M001)    which definitely will solve ur issue.
       revert to me if u have any doubts on it.
    murali.c

  • Bapi or user-exit to create warning in invoice

    Hi,
    I was askes to create a warning whenever someone pushes delete within an invoice (mir7). The problem is that our users are not aware, that they are really going to delete not only the marked position within the invoice but the whole invoice.
    I´ve tried to find a bapi or user-exit to place my coding but so far was unsuccessful, can anyone tell me if there is a badi or user-exit?

    Hi Ute!
    Try BADI INVOICE_UPDATE (hope this is defined in your release).
    It's help says:
    "You can use the business add-in (INVOICE_UPDATE) to further process the following functions or, if necessary, forbid them:
    Creating invoices (invoices, credit memos, subsequent debits, subsequent credits) in Logistics Invoice Verification
    Parking documents in Logistics Invoice Verification, and making changes to these documents, for example, deleting them"
    -> Exactly what you are looking for.
    Regards,
    Christian

  • Open Purchase Order UPload Using the BAPI 's

    i need to upload the open Purchase Order using the BAPI function BAPI_PO_CREATE1., below is the given fileds blod are for Header, header will Repeat for the line items,can any one help me out  using the BAIP's for upload the PO, i need sample code for this ........
    Thanks & Regards
    Raghu
    <u>Field Name     Field Description                              Type     Length</u>
    <b>EBELN             Purchasing Document Number                         CHAR     010          X
    BUKRS             Company Code                                                     CHAR    004     MN10     C
    EKORG             Purchasing Organization                              CHAR     004     MN00     C
    EKGRP             Purchasing group                              CHAR     003          X
    BSART             Order type (Purchasing)                              CHAR     004          X
    LIFNR             Account Number of Vendor or Creditor                    CHAR     010          X
    BEDAT             Purchase Order Date                              DATS     010          X
    ZTERM             Terms of payment key                              CHAR     004          X
    WAERS             Currency Key                                   CUKY     005          X
    INCO1             Incoterms (part 1)                              CHAR     003          X
    INCO2             Incoterms (part 2)                              CHAR     028          X</b>
    EBELP             Item Number of Purchasing Document                    NUMC     005          X
    EMATN             Material number                                   CHAR     018          X
    WERKS             Plant                                        CHAR     004          X
    LGORT             Storage location                              CHAR     004          X
    EPSTP             Item category in purchasing document                    CHAR     001          X
    KNTTP             Account assignment category                         CHAR     001          X
    EINDT             Item delivery date                              DATS     010          X
    MENGE            "Purchase order quantity (direct input, transfer of POs)"     CHAR     013          X
    MEINS            Order unit                                   UNIT     003          X
    NETPR            "Net price: Document currency (direct input, transfer of"     CHAR     011          X
    PEINH            "Price unit (direct input, transfer of POs)"               CHAR     005          X
    BPRME            Order Price Unit (Purchasing)                         UNIT     003          X
    BPUMZ            Numerator: Conversion OPUn into OUn (direct input of POs          CHAR     005          X
    BPUMN            Denominator: Conversion OPUn into OUn (direct input of P          CHAR     005          X
    SAKTO            Cost element                                   CHAR     010          X
    KOSTL              Cost Center                                   CHAR     010          X
    VBELN          Sales and Distribution Document Number                    CHAR     010          X
    VBELP          Sales document item                              NUMC     006          X
    WEMPF          Goods recipient                                   CHAR     012          X
    WEBTH          "Amount in local currency (direct input, transfer of POs)"     CHAR     013          X
    WEBTF          "Amount in document currency (direct input, transfer of P"     CHAR     013          X
    WEREF          Flag for treatment of GR/IR (direct input of POs)          CHAR     001          X
    SPINF          Indicator: Update info record                         CHAR     001          X
    WEPOS          Goods Receipt Indicator                              CHAR     001          X
    REPOS          Invoice receipt indicator                         CHAR     001          X

    i need to upload the open Purchase Order using the BAPI function BAPI_PO_CREATE1., below is the given fileds blod are for Header, header will Repeat for the line items,can any one help me out  using the BAIP's for upload the PO, i need sample code for this ........
    Thanks & Regards
    Raghu
    <u>Field Name     Field Description                              Type     Length</u>
    <b>EBELN             Purchasing Document Number                         CHAR     010          X
    BUKRS             Company Code                                                     CHAR    004     MN10     C
    EKORG             Purchasing Organization                              CHAR     004     MN00     C
    EKGRP             Purchasing group                              CHAR     003          X
    BSART             Order type (Purchasing)                              CHAR     004          X
    LIFNR             Account Number of Vendor or Creditor                    CHAR     010          X
    BEDAT             Purchase Order Date                              DATS     010          X
    ZTERM             Terms of payment key                              CHAR     004          X
    WAERS             Currency Key                                   CUKY     005          X
    INCO1             Incoterms (part 1)                              CHAR     003          X
    INCO2             Incoterms (part 2)                              CHAR     028          X</b>
    EBELP             Item Number of Purchasing Document                    NUMC     005          X
    EMATN             Material number                                   CHAR     018          X
    WERKS             Plant                                        CHAR     004          X
    LGORT             Storage location                              CHAR     004          X
    EPSTP             Item category in purchasing document                    CHAR     001          X
    KNTTP             Account assignment category                         CHAR     001          X
    EINDT             Item delivery date                              DATS     010          X
    MENGE            "Purchase order quantity (direct input, transfer of POs)"     CHAR     013          X
    MEINS            Order unit                                   UNIT     003          X
    NETPR            "Net price: Document currency (direct input, transfer of"     CHAR     011          X
    PEINH            "Price unit (direct input, transfer of POs)"               CHAR     005          X
    BPRME            Order Price Unit (Purchasing)                         UNIT     003          X
    BPUMZ            Numerator: Conversion OPUn into OUn (direct input of POs          CHAR     005          X
    BPUMN            Denominator: Conversion OPUn into OUn (direct input of P          CHAR     005          X
    SAKTO            Cost element                                   CHAR     010          X
    KOSTL              Cost Center                                   CHAR     010          X
    VBELN          Sales and Distribution Document Number                    CHAR     010          X
    VBELP          Sales document item                              NUMC     006          X
    WEMPF          Goods recipient                                   CHAR     012          X
    WEBTH          "Amount in local currency (direct input, transfer of POs)"     CHAR     013          X
    WEBTF          "Amount in document currency (direct input, transfer of P"     CHAR     013          X
    WEREF          Flag for treatment of GR/IR (direct input of POs)          CHAR     001          X
    SPINF          Indicator: Update info record                         CHAR     001          X
    WEPOS          Goods Receipt Indicator                              CHAR     001          X
    REPOS          Invoice receipt indicator                         CHAR     001          X

  • URGENT: Function modules or BAPIs

    Hi Experts,
    I need function modules or BAPI to get the open items and cleared items G/L Account wise.
    Useful replies will be surely awarded.

    Hi Chakradhar,
    Check tcode : BAPI
    u will get all bapis there.
    Regards,
    Hemant

  • Questions on BPS BAPI calls and PDF forms

    I will need to create a button on a BPS form and that button is supposed to call a BAPI.  One of the buttons will create a PDF of the form (using the contents of the form) and print said form to a 'default' printer.  The issue is that not all cFolder users will have an ECC logon name.  What am I to do in this instance?  Will I need to pass some type of credentials to the ECC backend in order to run this BAPI?
    Also, how can I get the contents of the form(s) to the BAPI?  I assume that I will need to create the PDF in the code of the BAPI.  Please be patient with me as this is my first time to work with cFolders and/or BPS.
    Regards,
    Davis

    Hi Davis,
    Well, if you are able to log on the BPS application (thus, a Web Interface if I'm not mistaken) then it means that some user is logged on the ABAP-side. It is either a "personal" user or a technical (common) user, that is used for anonymous access.
    You will certainly be able to track down this user with the SM04 transaction.
    You should be able to add a button to the BPS page. One idea would be to call an URL with an ICF service behind that will be able to process the parameters contained in this URL.
    It will be this very ICF service that will call the BAPI.
    Try these links
    http://help.sap.com/saphelp_nw04s/helpdata/en/55/33a83e370cc414e10000000a114084/frameset.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/ea8db790-0201-0010-af98-de15b6c1ee1a
    Hope this helps.
    Best regards,
    Guillaume

  • Deletion of Scheduling Agreement and Delivery Schedule using BAPI

    Hi SAP MM Gurus,
    Please assist in inquiry below:
    My scenario is that I am trying to delete delivery schedules and scheduling lines using BAPIs. I have no issues when there is no GR made yet for the delivery schedules. The error arises when there are already existing Goods Receipts and Invoices for the schedule line that I wish to delete
    When using the BAPIs (either BAPI_SAG_CHANGE or BAPI_SCHEDULE_MAINTAIN), I set the deletion indicator to "L" and set to X all change relevant fields (i.e. DELETION_INDX). However, whenever I execute it, I get the error message 06088. The funny thing is both the Quantities and the delivered quantities that are normally populated are left blank.
    For example:
    Normal error for 06088:
    Quantity 100.0 smaller than quantity delivered 179.0
    Error using BAPI with deletion indicator:
    Quantity  smaller than quantity delivered
    Is this a bug of the BAPI? or am I just missing some settings?
    Your immediate response is appreciated
    Regards,
    DeLo

    Hi,
    Please find the below link check the setting are correct or not
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a02cb00a-bfb4-2c10-98aa-e33e7f64ba28?quicklink=index&overridelayout=true
    Reagrds,
    Pramod

  • BAPI for training and event management

    Hi all,
    I need a bapi that returns the list of the attendees of a training course.
    I've seen that a FM exists: RH_GET_PARTICIPANTS and i know how it works.
    I would like a standard BAPI to be called by an external system.
    If it doesn't exit I will create a remote FM that calls the RH_GET_PARTICIPANTS.
    thanks
    enzo

    Hi Enzo,
    I don't think there is a BAPI.. but you can create one using the Method 'Display Attendance' for the 'Attendance' Business Object (PDRELA_025) in Tcode BAPI. But I think creating an RFC that in turn calls RH_GET_PARTICIPANTS is the easy way out.
    Regards,
    Suresh Datti

  • Scheduling BAPi

    Hi guys,
    While scheduling a BAPI(ZBAPI_WS_REPORT ),am gettin an error msg says Program ZBAPI_WS_REPORT is invalid or does not exist,even though it exists in the target client.What could be the problem?Please help me out in this regard asap.Its very urgent.
    Surely points vl b rewarded.
    Warm Regards,
    Mohandoss P.

    You need to call that BAPI into your report and then you have schedule that report.
    I hope it helps.
    Let me know if any doubts.
    Thanks,
    Vibha
    Please mark all the useful answers

  • BAPI Error: No account assignment exists for service line 0000000000

    I am using BAPI : BAPI_PO_CREATE1 to create a PO.
    I am getting this error while creating PO  "No account assignment exists for service line 0000000000"
    Please help.

    Yes...
    for each item i am creating one parent service record and one child service record with REQUISITION_SERVICES.
    the Package no for parent is the subpackage no for child.
    also for each item, I fill REQUISITION_ACCOUNT_ASSIGNMENT and REQUISITION_SRV_ACCASS_VALUES
    Still I get the Error.
    Thanks to help me resolve.

  • Need BAPI for MIGO to create a Goods Receipt against PO &Outbound Delivery

    Hi Friends,
    GRN’s (Good receipt notifications) created in DHL (Non SAP system) will need to be communicated to SAP.
    I need to post goods receipt using input data in MIGO. Is there any BAPI that i can use.The requirement is like below:
    PO number field in output file is checked against entries in EKKO-EBELN, if a match is found the GR is posted against a Purchase Order otherwise LIKP-VBELN is checked and if a match is found GR is posted against an Outbound Delivery.
              If PO Number = EKKO-EBELN    GR against Purchase Order
                            = LIKP-VBELN      GR against Outbound Delivery
    Based on the above condition I need to create a Goods Receipt. 
    Could you please tell me the GM code, movement types and the required fields to be passed for the BAPI?
    The fields available are with us are...
    Header text. - Bill of Lading- Posting Date-Quantity- UOM--- Vendor Batch / Batch / Serial No --- PO Number or Delivery Number… SLED
    Are these fields sufficient for doing MIGO with the BAPI or do we require more fields???
    Please provide sample code if possible.
    Waiting for replies,
    Thanks and Regards,
    Sudha

    Hi Friends,
    GRN’s (Good receipt notifications) created in DHL (Non SAP system) will need to be communicated to SAP.
    I need to post goods receipt using input data in MIGO. Is there any BAPI that i can use.The requirement is like below:
    PO number field in output file is checked against entries in EKKO-EBELN, if a match is found the GR is posted against a Purchase Order otherwise LIKP-VBELN is checked and if a match is found GR is posted against an Outbound Delivery.
              If PO Number = EKKO-EBELN    GR against Purchase Order
                            = LIKP-VBELN      GR against Outbound Delivery
    Based on the above condition I need to create a Goods Receipt. 
    Could you please tell me the GM code, movement types and the required fields to be passed for the BAPI?
    The fields available are with us are...
    Header text. - Bill of Lading- Posting Date-Quantity- UOM--- Vendor Batch / Batch / Serial No --- PO Number or Delivery Number… SLED
    Are these fields sufficient for doing MIGO with the BAPI or do we require more fields???
    Please provide sample code if possible.
    Waiting for replies,
    Thanks and Regards,
    Sudha

  • How to change pricing Conditions in Sales order in change sales order bapi

    Hi Experts,
    How to change pricing Conditions in Sales order in change sales order bapi.
    I have used the 2 function modules bapi-changesalesorder and sd salesdocument change, But it is creating the new record , instead of changing the existing one, Could please assist regarding the same
    Thanks in Advance .
    NLN

    HI NLN
      I have just tried on my system and managed to overwrite the existing price by passing the following parameters.
      <b>Import Paramters:</b>
         SALESDOCUMENT - Sales Document Number
         ORDER_HEADER_INX - UPDATEFLAG as <b>'U'</b>.
         LOGIC_SWITCH - Import Structure - Pass 'X' to LOGIC_SWITCH-COND_HANDL.
      <b>Tables:</b>
         CONDITIONS_IN - ITM_NUMBER,
                         COND_COUNT, -> Condition counter same as KONV-ZAEHK generally it is <b>'01'</b>
                         COND_TYPE,
                         COND_VALUE,
                         CURRENCY.
         CONDITIONS_INX - ITM_NUMBER,
                          COND_COUNT,
                          COND_TYPE,
                          UPDATEFLAG as <b>'U'</b>,
                          CURRENCY.
       Hope i have clarified your query.
    Kind Regards
    Eswar

  • Error in BAPI

    Hello ,
    While using the BAPI 'BAPI_MATERIAL_SAVEDATA', to extend material from one plant to another my code is throwing an error 'Currency initial v,current amount 6,000.0000 in MOVING_PR was transferred without a currency'
    Enter a material number'
    I have incorporated mbew-peinh, even then its throwing the same error.
    I snd copy of my code.
    report  zmm_r018 .
    *& Prog to copy n create the existing material using bapi .
    tables: t001l, "Storage Locations
            mara,  "General Material Data
            makt,  "Material Descriptions
            mbew,  "Material Valuation
            marc,  "Plant Data for Material
            mltx.  "Purchase Order Descriptions
    **parameters : new_mat like mara-matnr,
                desc like makt-maktx,
    *data:         ref_mat like mara-matnr.
    *data: xmara type mara.
    **data: wamatnr like mara-matnr.
    data: potext type string."Purchase Order Desc
    data : ihead_data type bapimathead,
           iclient_data type bapi_mara,                    "Client Data
           iclient_datax type bapi_marax,
          imakt like bapi_makt,                           "Mat Description
           iplant_data    like bapi_marc,                  "Plant View
           iplant_datax   like bapi_marcx,
           iltxt type table of bapi_mltx with header line, "Pur Order Text
           istoragelocationdata type bapi_mard,            "Storage Location
           istoragelocationdatax type bapi_mardx,
           iaccounting_data  like bapi_mbew,               "Accounting View
           iaccounting_datax  like bapi_mbewx,
           bapiret like bapiret2,
           returnm type table of bapi_matreturn2 with header line.
    **Internal Table to hold the records in the text file
    types:begin of it,
    matnr(18),  " Material number
    mbrsh(1),   " Industry sector
    mtart(4),   " Material type
    werks(4),   " Plant
    lgort_d(4),  "Storage Location
    maktx(40),  " Material description
    meins(3),   " Base unit of measure
    matkl(9) ,  " Material group
    bismt(18),  " Old Material number
    spart(2),   " Division
    gewei(3),   " Weight Unit
    text1(30),  " Purchasr Order Text
    text2(30),
    text3(30),
    text4(30),
    text5(30),
    text6(30),
    dzeinr(22), " Document
    ekgrp(3),   " Purchasing group
    ekwsl(4),   " Purchase Value Key
    webaz(3),   " Goods receipt processing time in days
    dismm(2),   " MRP Type
    minbe(13),  "Reorder point
    dispo(3),   " MRP Controller
    disls(2),   "Lot size (materials planning)
    mabst(13),  "Maximum stock level
    plifz(3),   " Planned delivery time in days
    webaz1(3),  " Goods receipt processing time in days
    fhori(3),   "Scheduling Margin Key for Floats
    eisbe(13),  "Safety stock
    mtvfp(2),   "Checking Group for Availability Check
    lgpbe(10),  "Storage Bin
    qmatauth(6),"Material Authorization Group for Activities in QM
    qmpur(1),   " QM in Procurement is Active
    qsspur(8),  "Control Key for Quality Management in Procurement
    bklas(4),   " Valuation Class
    bwtty_d(1), "Valuation Category
    vprsv(1),   " Price control indicator
    verpr_bapi(23), "Moving average price/periodic unit price
    peinh(5),     "Price Unit
    end of it.
    data: it_data type table of it,
          wa_data like line  of it_data.
    *Decalraing flag
    data: v_flag value ''.
    *DECLARING WORK AREAs  TO BE PASSED TO THE FUNCTION MODULE.
    data: bapi_head like bapimathead,
          bapi_clientdata like bapi_mara,
          bapi_clientdatax like bapi_marax,
          bapi_plantdata like bapi_marc,
          bapi_plantdatax like  bapi_marcx,
          bapi_storagelocationdata like bapi_mard,
          bapi_storagelocationdatax like bapi_mardx,
          bapi_salesdata like bapi_mvke,
          bapi_salesdatax like bapi_mvkex,
          bapi_makt like bapi_makt,
          bapi_return like bapiret2.
    *INTERNAL TABLE TO HOLD THE MATERIAL DESCRIPTION
    data: begin of it_makt occurs 0.
    include structure bapi_makt.
    data end of it_makt.
    data:begin of it_ret occurs 0.
    include structure bapiret2.
    data end of it_ret.
    *INTERNAL TABLE TO HOLD HEADER DATA
    data: it_excel type alsmex_tabline occurs 0 with header line.
    *SELECTION-SCREEN ELEMENTS
    selection-screen begin of block b1 with frame title text-001.
    parameter: fname type rlgrap-filename  default 'c:\supplies.xls'.
    parameters: p_begcol type i default '1' no-display,
                p_begrow type i default '2' no-display,
                p_endcol type i default '200' no-display,
                p_endrow type i default '2500' no-display.
    *perform f_get_data.
    selection-screen end of block b1.
    *DECLARATION OF EXCELAL TABLE
    at selection-screen on value-request for fname.
    perform f_get_file using fname.
    start-of-selection.
    perform f_xls_itab using fname
                       changing it_excel.
    perform f_move_data.
    perform f_get_data.
    perform f_call_bapi.
    *&      Form  F_GET_FILE
          text
         -->P_FNAME  text
         <--P_SY_SUBRC  text
    form f_get_file  using    p_fname like fname.
    call function 'KD_GET_FILENAME_ON_F4'
    exporting
       program_name        = syst-repid
       dynpro_number       = syst-dynnr
      FIELD_NAME          = ' '
      STATIC              = ' '
      MASK                = ' '
      changing
        file_name           = p_fname
    EXCEPTIONS
      MASK_TOO_LONG       = 1
      OTHERS              = 2
    if sy-subrc <>  0.
    message e006(zhnc).
    endif.
    endform.                    " F_GET_FILE
    *&      Form  F_XLS_ITAB
          text
         -->P_FNAME  text
         <--P_IT_EXCEL  text
    form f_xls_itab  using    p_fname
                     changing p_it_excel.
    call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      exporting
        filename                      = 'c:\supplies.xls'
        i_begin_col                   = p_begcol
        i_begin_row                   = p_begrow
        i_end_col                     = p_endcol
        i_end_row                     = p_endrow
      tables
        intern                        = it_excel
    exceptions
       inconsistent_parameters       = 1
       upload_ole                    = 2
       others                        = 3.
    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.                    " F_XLS_ITAB
    *&      Form  F_MOVE_DATA
          text
    -->  p1        text
    <--  p2        text
    form f_move_data .
    data : lv_index type i.
    field-symbols <fs>.
    *--- Sorting the internal table
    sort it_excel by row col.
    clear it_excel.
    loop at it_excel.
    move it_excel-col to lv_index.
    *--- Assigning the each record to an internal table row
    assign component lv_index of structure wa_data to <fs>.
    *--- Asigning the field value to a field symbol
    move it_excel-value to <fs>.
    at end of row.
    append wa_data to it_data.
    clear wa_data.
    endat.
    endloop.
    endform.                    " F_MOVE_DATA
    form f_get_data .
    loop at it_data into wa_data.
    move-corresponding wa_data to ihead_data.
    Header
        ihead_data-material       = wa_data-matnr.
        ihead_data-ind_sector     = wa_data-mbrsh.
        ihead_data-matl_type      = wa_data-mtart.
        ihead_data-basic_view     = 'X'.
        ihead_data-purchase_view  = 'X'.
        ihead_data-mrp_view       = 'X'.
        ihead_data-storage_view   = 'X'.
        ihead_data-quality_view   = 'X'.
        ihead_data-account_view   = 'X'.
        move-corresponding wa_data to iclient_data.
    Material Description
        refresh it_makt.
        it_makt-langu              = 'EN'.
        it_makt-matl_desc          =  wa_data-maktx.
        append it_makt.
    Purchase Order Description
    clear:iltxt,iltxt[].
    concatenate wa_data-text1 wa_data-text2 wa_data-text3 wa_data-text4
    wa_data-text5 wa_data-text6 into potext
    separated by space.
    iltxt-applobject = 'MATERIAL'.
    iltxt-text_name  =  wa_data-matnr.
    iltxt-text_id    = 'BEST'.
    iltxt-langu      = sy-langu.
    iltxt-langu_iso  = 'EN'.
    iltxt-format_col = space.
    iltxt-text_line  = potext.
    append iltxt.
    Client Data - Basic
        iclient_data-matl_group     = wa_data-matkl.
        iclient_data-old_mat_no     = wa_data-bismt.
        iclient_data-base_uom       = wa_data-meins.
        iclient_data-document       = wa_data-dzeinr.
        iclient_data-unit_of_wt     = wa_data-gewei.
        iclient_data-division       = wa_data-spart.
        iclient_data-qm_procmnt     = wa_data-qmpur.
        iclient_data-pur_valkey     = wa_data-ekwsl.
        iclient_datax-matl_group    = 'X'.
        iclient_datax-old_mat_no    = 'X'.
        iclient_datax-base_uom      = 'X'.
        iclient_datax-po_unit       = 'X'.
        iclient_datax-document      = 'X'.
        iclient_datax-unit_of_wt    = 'X'.
        iclient_datax-division      = 'X'.
        iclient_datax-var_ord_un    = 'X'.
        iclient_data-pur_valkey    = 'X'.
    move-corresponding wa_data to iplant_data.
    Plant - Purchasing
        iplant_data-plant          = wa_data-werks.
        iplant_data-pur_group      = wa_data-ekgrp.
        iplant_data-gr_pr_time     = wa_data-webaz.
        iplant_datax-plant         = wa_data-werks.
        iplant_data-pur_group      = 'X'.
        iplant_datax-gr_pr_time     = 'X'.
    *MRP1 View
        iplant_data-mrp_type       = wa_data-dismm.
        iplant_data-reorder_pt     = wa_data-minbe.
        iplant_data-mrp_ctrler     = wa_data-dispo.
        iplant_data-lotsizekey     = wa_data-disls.
        iplant_data-max_stock      = wa_data-mabst .
        iplant_datax-mrp_type       = 'X'.
        iplant_datax-reorder_pt     = 'X'.
        iplant_datax-mrp_ctrler     = 'X'.
        iplant_datax-lotsizekey     = 'X'.
        iplant_datax-max_stock      = 'X'.
    *MRP2 View
        iplant_data-plnd_delry     = wa_data-plifz.
        iplant_data-sm_key         = wa_data-fhori.
        iplant_data-ctrl_key       = wa_data-qsspur.
        iplant_data-availcheck     = wa_data-mtvfp.
        iplant_datax-plnd_delry     = 'X'.
        iplant_datax-sm_key         = 'X'.
        iplant_data-ctrl_key        = 'X'.
        iplant_datax-availcheck     = 'X'.
    *MRP3 View
       iplant_data-safety_stk     = wa_data-eisbe.
       iplant_data-qm_authgrp     = wa_data-qmatauth.
       iplant_datax-safety_stk     = 'X'.
       iplant_data-qm_authgrp      = 'X'.
    move-corresponding wa_data to istoragelocationdata.
    Storage View
        istoragelocationdata-plant        = wa_data-werks.
        istoragelocationdata-stge_loc     = wa_data-lgort_d.
        istoragelocationdata-stge_bin     = wa_data-lgpbe.
        istoragelocationdatax-plant        = wa_data-werks.
        istoragelocationdatax-stge_loc     = wa_data-lgort_d.
        istoragelocationdatax-stge_bin     = 'X'.
    Accounting
        iaccounting_data-val_area   = wa_data-werks.
        iaccounting_data-price_ctrl = wa_data-vprsv.
        iaccounting_data-moving_pr  = wa_data-verpr_bapi.
        iaccounting_data-price_unit = wa_data-peinh.
        iaccounting_data-val_class  = wa_data-bklas.
        iaccounting_data-val_cat    = wa_data-bwtty_d.
        iaccounting_datax-val_area   = wa_data-werks.
        iaccounting_datax-price_ctrl = 'X'.
        iaccounting_datax-moving_pr  = 'X'.
        iaccounting_datax-price_unit = 'X'.
        iaccounting_datax-val_class  = 'X'.
        iaccounting_datax-val_cat    = 'X'.
    clear it_ret.
    refresh it_ret.
    perform f_call_bapi.
    read table it_ret with key type = 'S'.
    if sy-subrc eq 0.
    perform f_bapi_commit.
    write:/ 'MATERIAL CREATED OR UPDATED SUCESSFULLY WITH MATERIAL NO',
    wa_data-matnr.
    else.
    *message e000(zhnc) with 'ERROR IN CREATING THE MATERIAL'.
    *WRITE: / 'ERROR IN CREATIN MATERIAL',IT_RET-MESSAGE.
    *PERFORM F_DOWNLOAD.
    endif.
    *ENDIF.
    endloop.
    endform.                    " F_GET_DATA
    *&      Form  F_CALL_BAPI
          text
    -->  p1        text
    <--  p2        text
    form f_call_bapi .
    call function 'BAPI_MATERIAL_SAVEDATA'
       exporting
         headdata                   = ihead_data
         clientdata                 = iclient_data
         clientdatax                = iclient_datax
         plantdata                  = iplant_data
         plantdatax                 = iplant_datax
       FORECASTPARAMETERS         =
       FORECASTPARAMETERSX        =
       PLANNINGDATA               =
       PLANNINGDATAX              =
        storagelocationdata        = istoragelocationdata
        storagelocationdatax       = istoragelocationdatax
         valuationdata              = iaccounting_data
         valuationdatax             = iaccounting_datax
       WAREHOUSENUMBERDATA        =
       WAREHOUSENUMBERDATAX       =
       SALESDATA                  =
       SALESDATAX                 =
       STORAGETYPEDATA             = istoragelocationdata
       STORAGETYPEDATAX            = istoragelocationdatax
       FLAG_ONLINE                = ' '
       FLAG_CAD_CALL              = ' '
       NO_DEQUEUE                 = ' '
       NO_ROLLBACK_WORK           = ' '
      importing
        return                     = it_ret
      tables
        materialdescription        = it_makt
       UNITSOFMEASURE             = it_uom
       UNITSOFMEASUREX            = it_uomx
      INTERNATIONALARTNOS        =
         materiallongtext          = iltxt
       TAXCLASSIFICATIONS        =
        returnmessages             = returnm.
       PRTDATA                   =
       PRTDATAX                  =
       EXTENSIONIN               =
       EXTENSIONINX              =
    append it_ret.
    write: it_ret-message .
    endform.                    " F_CALL_BAPI
    *&      Form  F_BAPI_COMMIT
          text
    -->  p1        text
    <--  p2        text
    form f_bapi_commit .
    call function 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT         =
    IMPORTING
      RETURN        =
    endform.                    " F_BAPI_COMMIT
    Plz suggest some solution.
    Best Regards,
    Ravi

    Hi,
    Insert Material number in the MAKT(Material Description table).
    Also, check if the material number is missing somewhere else...
    Regards,
    Kunjal

Maybe you are looking for