Variant for create Purchase Order ?

Hi MM experts,
how can i create 2 varients for one USER ID.  when we create the po with ME21N  in Personal Settings
1,  how can we maintail 2 diferent plant ,storage location ,purch org ext...
2,  creating of po with reference of (document overview on ) Select variant  - then i have a varient like accepted quotations.
how can i maintain that varient with 2 different plants with one USER ID.
is there any way to workout this.
Thanks in advance,
Anthyodaya.
Edited by: anthyodaya Reddy Nagaram on Aug 3, 2010 6:28 PM

ok

Similar Messages

  • I need output type NEU automaticaly for create purchase order document type

    Dear Experts,
    I need output type NEU automaticaly for create purchase order document type NB
    when transaction code MN04, I am doing the following:
    (1) I selected the third option Purchasing Output determination: Document type
    (2) I selected the output type NEU.
    (3) In condition records in document type , i have chosen NB.
    (4) In name its automatically coming as Purchase requisition
    Please suggest how Purchase Order NB will come

    Hi,
    Check & press F4, NB Purchase Order (for catagory F) will be there after entering PO output type NEU & then maintaion the condition record in MN04.
    Output type NEU automaticaly defaulted during purchase order creation with document type ,then just fine tune the output (message) type in following path:
    SPRO--->MM->Purchasing>Message>Output control->Message types> Define message type for Purchase Order----->Fine-Tuned Control: Purchase Order
    Now here select the check box corresponding to your output(message) type NEU to have print output automatically displayed & save.
    Now try to creating Purchase Order & you will have default message type NEU.
    Regards,
    Biju K

  • Search user-exit for create purchase order

    Hi all,
    i'm searching the user-exit (or BADI) for create purchase order.
    Thanks for help.

    Hi CECG,
    GOTO SMOD and press F4
    then Click on  Information system
    and in the Package name give as     ME
    and press enter.
    you will get all user exits for Purchase Orders
    Hope this solves your problem.
    Please reward points if found helpful.
    Thanks and regards,
    Rajeshwar.

  • Program for Creating Purchase Order with reference to purchase requisition

    Hi ,
    I need to Create purchase Order with reference to  Purchase requisition,
    in my case i need to automize the Process which is happening in MD04,
    Can you please suggest me ?
    Thanks ,
    Murali

    Hi,
    Plz check this link. It will be helpful to you.
    Purchase order creation with reference to PR
    We can also create the PO Using the BAPI_PO_CREATE1 function module.
    In this function module fill up the all necessary Details.
    With details in Item Table we haveto give the Fields PREQ_NO and PREQ_ITEM for each item .
    then it will creates the PO with PREQ.
    Thanks & Regards,
    Sarita Singh Rathour
    Edited by: Sarita Rathour on Aug 3, 2009 7:01 AM

  • LOGIC FOR CREATING Purchase Order FOR repective Purchase Requisiton URGENT

    hi all,
    guys i have got all the purchase requisition for the materials  from EBAN table.
    now i have to create the PURCHASE ORDER  for these PURCHASE REQUISITIONS.
    so how should i proceed.
    what logic i should use to create the PO for These PR.
    if anyone of u have any code regd this requirement then plz share it with me.
    its very urgent, i have to deliver it by today evening.
    plz help me .
    i will award ur efforts.
    Thanks
    Sanjeev

    hi,
    Automatic Conversion of PR to PO
    You created purchase requisition for various material. During creation of purchase order you used the following path:
    Purchase Requisition
    .......Follow on function 
    .........Create Purchase Order
    ............automatic via purReq. 
    When you mentioned required purchase requisition number and execute, system give error that purchase requisition does not contain any suitable item. 
    Is there any setting in customization where you can monitor and use that function.
    In an effort for you to successfully use the Transaction Code ME59 to automatically convert the current PR into PO, then the following criteria should be met: 
    1) In the Purchasing View of the material master data, the "Autom. PO" field must be clicked; 
    2) In the Purchasing View of the Vendor Master Data, the "Automatic Purchase Order" field must be clicked; 
    3) The Outline Agreement or Purchasing Info Record shall be maintained which will allow the automatic copying of unit price and other conditions into PO; 
    4) The Source List shall be maintained for the nominated vendor which was shown in either the Outline Agreement or Purchasing Info Record. 
    or 
    it might be PR subject to release strategy and not yet released
    or 
    If you're not using a source list or automatic creation of PO, you may need to assign the requisition to a purchase information record using transaction ME56. Then it should appear in ME58. 
    reward points to helpful answers.
    rgds

  • Customising for create purchase order

    Hello,
    i have an error message when i save my purchase order without a tax code. I would like to set the tax code field to not-obligatory based on my purchase order type.Does anyone know the customising path?
    e.g if purchase order type = 'ZPCG'
    tax-code is not obligatory.

    Hi
    Check in SPRO >> Materials Management >> Purchasing >> Purchase order >> Define document types >> here you can check which filed selection key is asigned agaist your doc type ZPCG.
    E.g. NBF or ZCF etc.
    Go to SPRO-Materials ManagementMaterials ManagementPurchase Order--Define Screen Layout at Document Level,
    Now, double click on the field selection key which is assigned to your doc type ZPCG and click on GR/IR control and select the radio biuttton for tax code as optional.
    hope it helps,
    regards,
    Edited by: Raju DS on Dec 4, 2008 6:56 AM

  • Bapi for creating purchase order

    hi, iam using BAPI_PO_CREATE1 to create PO's for service. after creating opne PO if i go and create another po within a short span of a minute or so then it does not create the second PO. it gives message that doc does not contain any items.
    TABLES: ekpo,zcta_podates,ekko.
    DATA iekpo LIKE ekpo OCCURS 0 WITH HEADER LINE.
    DATA iekko LIKE ekko OCCURS 0 WITH HEADER LINE.
    DATA ipodates LIKE zcta_podates OCCURS 0 WITH HEADER LINE.
    DATA : wabldat1 LIKE zcta_podates-podat.
    DATA : wabldat2 LIKE zcta_podates-podat.
    DATA : wabldat3 LIKE zcta_podates-podat.
    DATA : wabldat4 LIKE zcta_podates-podat.
    DATA : wabldat5 LIKE zcta_podates-podat.
    DATA : wabldat6 LIKE zcta_podates-podat.
    DATA : wabldat7 LIKE zcta_podates-podat.
    DATA :fname1 TYPE string.
    DATA :w_fname1 TYPE string.
    DATA : BEGIN OF itab1 OCCURS 0 ,
           txz01 LIKE mepo1211-txz01,
           werks LIKE mepo1211-name1,
           srvpos  LIKE esll-srvpos,
           gross(15),
           val1(10),   "LIKE esll-frmval1,
           val2(10),   " LIKE esll-frmval2
           val3(10),
          zzformat LIKE ekpo-zzformat,
          zzcampaign LIKE ekpo-zzcampaign,
          zzmeansofad LIKE ekpo-zzmeansofad,
          zzcity  LIKE ekpo-zzcity,
          zzlangu  LIKE ekpo-zzlangu,
          zzedition LIKE ekpo-zzedition,
          zzcolorhue  LIKE ekpo-zzcolorhue,
          zztypeofad LIKE ekpo-zztypeofad,
          date1(10),
           date2(10),
           date3(10),
           date4(10),
           date5(10),
           date6(10),
           date7(10),
           END OF itab1.
    DATA :BEGIN OF itab2 OCCURS 0,         " radio
             txz01 LIKE mepo1211-txz01,
          werks LIKE mepo1211-name1,
          srvpos  LIKE esll-srvpos,
          gross(12),
          val1(10),   "LIKE esll-frmval1,
          val2(10),   " LIKE esll-frmval2
          zzformat LIKE ekpo-zzformat,
          zzcampaign  LIKE ekpo-zzcampaign,
          zzmeansofad LIKE ekpo-zzmeansofad,
          zzcity      LIKE ekpo-zzcity,
          zzprogramname LIKE ekpo-zzprogramname,
          zzdealstructure LIKE ekpo-zzdealstructure,
          zztimeband    LIKE ekpo-zztimeband,
         date1(10),
           date2(10),
           date3(10),
           date4(10),
           date5(10),
           date6(10),
           date7(10),
          END OF itab2.
    DATA :BEGIN OF itab3 OCCURS 0,   "tv
          txz01 LIKE mepo1211-txz01,
          werks LIKE mepo1211-name1,
          srvpos  LIKE esll-srvpos,
          gross(12),
          val1(10),   "LIKE esll-frmval1,
          val2(10),   " LIKE esll-frmval2
          zzformat LIKE ekpo-zzformat,
          zzcampaign    LIKE ekpo-zzcampaign,
          zzmeansofad LIKE ekpo-zzmeansofad,
          zzgenre        LIKE ekpo-zzgenre,
          zzprogramname LIKE ekpo-zzprogramname,
          zzdealstructure LIKE ekpo-zzdealstructure,
          zztimeband    LIKE ekpo-zztimeband,
          zzlangu       LIKE ekpo-zzlangu,
          zzcity(20),  "      LIKE ekpo-zzcity,
          date1(10),
           date2(10),
           date3(10),
           date4(10),
           date5(10),
           date6(10),
           date7(10),
          END OF itab3.
    DATA :BEGIN OF itab4 OCCURS 0,   "OUTDOOR
             txz01 LIKE mepo1211-txz01,
          werks LIKE mepo1211-name1,
          srvpos  LIKE esll-srvpos,
          gross(12),
          val1(10),   "LIKE esll-frmval1,
          val2(10),   " LIKE esll-frmval2
          cond(12),
          zzformat LIKE ekpo-zzformat,
          zzcampaign    LIKE ekpo-zzcampaign,
          zzmeansofad LIKE ekpo-zzmeansofad,
          zzcity      LIKE ekpo-zzcity,
          zzlocationorroad LIKE ekpo-zzlocationorroad,
          zztypeofad  LIKE ekpo-zztypeofad,
          zztrafficdirtn LIKE ekpo-zztrafficdirtn,
          date1(10),
           date2(10),
           date3(10),
           date4(10),
           date5(10),
           date6(10),
           date7(10),
          END OF itab4.
    DATA :BEGIN OF itab5 OCCURS 0,  "INTERNET
          txz01 LIKE mepo1211-txz01,
          werks LIKE mepo1211-name1,
          srvpos  LIKE esll-srvpos,
          gross(12),
          val1(10),   "LIKE esll-frmval1,
          val2(10),   " LIKE esll-frmval2
          cond(12),
          zzformat LIKE ekpo-zzformat,
          zzcampaign    LIKE ekpo-zzcampaign,
          zzmeansofad LIKE ekpo-zzmeansofad,
          zztypeofad  LIKE ekpo-zztypeofad,
          zzsection      LIKE ekpo-zzsection,
         date1(10),
           date2(10),
           date3(10),
           date4(10),
           date5(10),
           date6(10),
           date7(10),
          END OF itab5.
    DATA :BEGIN OF itab6 OCCURS 0,  "CINEMA
          txz01 LIKE mepo1211-txz01,
          werks LIKE mepo1211-name1,
          srvpos  LIKE esll-srvpos,
          gross(12),
          val1(10),   "LIKE esll-frmval1,
          val2(10),   " LIKE esll-frmval2
          cond(12),
          zzformat LIKE ekpo-zzformat,
          zzcampaign    LIKE ekpo-zzcampaign,
          zzcity      LIKE ekpo-zzcity,
          zzlocationorroad LIKE ekpo-zzlocationorroad,
          zzcinemaname   LIKE ekpo-zzcinemaname,
          date1(10),
           date2(10),
           date3(10),
           date4(10),
           date5(10),
           date6(10),
           date7(10),
          END OF itab6.
    DATA :BEGIN OF itab7 OCCURS 0,   "OTHER MEDIA
             txz01 LIKE mepo1211-txz01,
          werks LIKE mepo1211-name1,
          srvpos  LIKE esll-srvpos,
          gross(12),
          val1(10),   "LIKE esll-frmval1,
          val2(10),   " LIKE esll-frmval2
          val3(10),
          val4(10),
          zzformat LIKE ekpo-zzformat,
          zcampaign    LIKE ekpo-zzcampaign,
          zzmeansofad LIKE ekpo-zzmeansofad,
          zzcity      LIKE ekpo-zzcity,
          zzedition   LIKE ekpo-zzedition,
          zzcolorhue  LIKE ekpo-zzcolorhue,
          zztypeofad  LIKE ekpo-zztypeofad,
          zzlangu       LIKE ekpo-zzlangu,
          zzgenre        LIKE ekpo-zzgenre,
          zzprogramname LIKE ekpo-zzprogramname,
          zzdealstructure LIKE ekpo-zzdealstructure,
          zztimeband    LIKE ekpo-zztimeband,
          zzlocationorroad LIKE ekpo-zzlocationorroad,
          zzsection      LIKE ekpo-zzsection,
          date1(10),
           date2(10),
           date3(10),
           date4(10),
           date5(10),
           date6(10),
           date7(10),
          END OF itab7.
    DATA :BEGIN OF itab8 OCCURS 0,    "NO MEDIA
            txz01 LIKE mepo1211-txz01,
          werks LIKE mepo1211-name1,
          srvpos  LIKE esll-srvpos,
          qty(12),
          gross(12),
          zzformat LIKE ekpo-zzformat,
          zzcampaign    LIKE ekpo-zzcampaign,
          zzcity      LIKE ekpo-zzcity,
          date1(10),
           date2(10),
           date3(10),
           date4(10),
           date5(10),
           date6(10),
           date7(10),
          END OF itab8.
    DATA : BEGIN OF str OCCURS 0,
           txz01 LIKE mepo1211-txz01,
           werks LIKE mepo1211-name1,
           srvpos  LIKE esll-srvpos,
           gross(15),
           val1(10),   "LIKE esll-frmval1,
           val2(10),   " LIKE esll-frmval2
           val3(10),
          val4(10),
          zzformat LIKE ekpo-zzformat,
          zzcampaign LIKE ekpo-zzcampaign,
          zzmeansofad LIKE ekpo-zzmeansofad,
          zzcity  LIKE ekpo-zzcity,
          zzlangu  LIKE ekpo-zzlangu,
          zzedition LIKE ekpo-zzedition,
          zzcolorhue  LIKE ekpo-zzcolorhue,
          zztypeofad LIKE ekpo-zztypeofad,
          zzillumination LIKE ekpo-zzillumination ,
         zztrafficdirtn LIKE ekpo-zztrafficdirtn ,
        zzstore LIKE ekpo-zzstore ,
        zzcasting LIKE ekpo-zzcasting ,
        zzgenre LIKE ekpo-zzgenre ,
        zzsection LIKE ekpo-zzsection ,
        zznumberofdays LIKE ekpo-zznumberofdays ,
        zzprogramname LIKE ekpo-zzprogramname ,
        zzdealstructure LIKE ekpo-zzdealstructure ,
        zztimeband LIKE ekpo-zztimeband ,
        zzdate LIKE ekpo-zzdate ,
    zzdaysofwk LIKE ekpo-zzdaysofwk ,
    zzasnum LIKE ekpo-zzasnum ,
    zzlocationorroad LIKE ekpo-zzlocationorroad ,
    zzcinemaname LIKE ekpo-zzcinemaname ,
    zzcapacity LIKE ekpo-zzcapacity ,
    zzfield2 LIKE ekpo-zzfield2 ,
    zzfield3 LIKE ekpo-zzfield3 ,
           date1(10),
           date2(10),
           date3(10),
           date4(10),
           date5(10),
           date6(10),
           date7(10),
           END OF str.
    DATA :package(10) TYPE n VALUE '4747'.
    DATA :subpackage(10) TYPE n VALUE '4748'.
    DATA : l_po_header LIKE bapimepoheader.
    DATA : l_po_headerx LIKE bapimepoheaderx.
    DATA : l_purchaseorder LIKE bapimepoheader-po_number.
    DATA : t_po_account LIKE bapimepoaccount OCCURS 0 WITH HEADER LINE.
    DATA : t_po_accountx LIKE bapimepoaccountx OCCURS 0 WITH HEADER LINE.
    DATA : t_po_servalue LIKE bapiesklc OCCURS 0 WITH HEADER LINE.
    DATA : BEGIN OF t_po_items OCCURS 0.
            INCLUDE STRUCTURE bapimepoitem.
    DATA : END OF t_po_items.
    DATA : BEGIN OF t_po_itemsx OCCURS 0.
            INCLUDE STRUCTURE bapimepoitemx.
    DATA : END OF t_po_itemsx.
    DATA : BEGIN OF t_return OCCURS 0.
            INCLUDE STRUCTURE bapiret2.
    DATA : END OF t_return.
    DATA : BEGIN OF t_po_services OCCURS 0.
            INCLUDE STRUCTURE bapiesllc.
    DATA : END OF t_po_services.
    DATA: l_item(5) TYPE n,l_last_po(10).
    *TABLES : zerror.
    DATA lcounter(3) TYPE n.
    DATA : l_errflag.
    SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME.
    PARAMETER:x_lifnr LIKE ekko-lifnr .
    PARAMETER:x_ekorg LIKE ekko-ekorg DEFAULT '9000' .
    PARAMETER:x_ekgrp LIKE ekko-ekgrp .
    PARAMETER:x_bukrs LIKE ekko-bukrs DEFAULT '0101' .
    PARAMETER:x_bsart LIKE ekko-bsart DEFAULT 'ZNB1'.
    PARAMETER:x_sdate LIKE ekko-bedat.
    PARAMETER : x_edate LIKE ekko-bedat.
    PARAMETER: pr_fn1 LIKE ibipparms-path OBLIGATORY.
    PARAMETER: rad1 RADIOBUTTON GROUP gr1.
    PARAMETER: rad2 RADIOBUTTON GROUP gr1.
    PARAMETER: rad3 RADIOBUTTON GROUP gr1.
    PARAMETER: rad4 RADIOBUTTON GROUP gr1.
    PARAMETER: rad5 RADIOBUTTON GROUP gr1.
    PARAMETER: rad6 RADIOBUTTON GROUP gr1.
    PARAMETER: rad7 RADIOBUTTON GROUP gr1.
    PARAMETER: rad8 RADIOBUTTON GROUP gr1.
    SELECTION-SCREEN:END OF BLOCK b1 .
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_fn1.
      CALL FUNCTION 'F4_FILENAME'
        IMPORTING
          file_name = pr_fn1.
      MOVE pr_fn1 TO w_fname1.
    START-OF-SELECTION.
      IF rad1 = 'X'.
        PERFORM table_upload  TABLES itab1.
      ELSEIF rad2 = 'X'.
        PERFORM table_upload  TABLES itab2.
      ELSEIF rad3 = 'X'.
        PERFORM table_upload  TABLES itab3.
      ELSEIF rad4 = 'X'.
        PERFORM table_upload  TABLES itab4.
      ELSEIF rad5 = 'X'.
        PERFORM table_upload  TABLES itab5.
      ELSEIF rad6 = 'X'.
        PERFORM table_upload  TABLES itab6.
      ELSEIF rad7 = 'X'.
        PERFORM table_upload  TABLES itab7.
      ELSEIF rad8 = 'X'.
        PERFORM table_upload  TABLES itab8.
      ENDIF.
      LOOP AT str.
        SHIFT str-srvpos RIGHT DELETING TRAILING ' '.
        OVERLAY str-srvpos WITH '00000000000000000'.
        MODIFY str.
      ENDLOOP.
      CLEAR : l_po_header.
      PERFORM create_po_header.
      LOOP AT str FROM 2 .
        PERFORM append_item.
      ENDLOOP.
      PERFORM create_po.
      WAIT UP TO 5 SECONDS.
      SELECT * FROM ekpo INTO CORRESPONDING FIELDS OF TABLE iekpo WHERE ebeln = l_purchaseorder.
      COMMIT WORK.
      WAIT UP TO  5 SECONDS.
      LOOP AT iekpo.
        l_item =  sy-tabix + 1.
        READ TABLE str INDEX  l_item.
        iekpo-zzfield2 = str-zzfield2 .
        iekpo-zzfield3 = str-zzfield3 .
        iekpo-zzformat = str-zzformat .
        iekpo-zzmeansofad = str-zzmeansofad .
        iekpo-zzedition = str-zzedition .
        iekpo-zzcolorhue = str-zzcolorhue .
        iekpo-zztypeofad = str-zztypeofad .
        iekpo-zzcity = str-zzcity .
        iekpo-zzlangu = str-zzlangu .
        iekpo-zzdaysofwk = str-zzdaysofwk .
        iekpo-zzasnum = str-zzasnum .
        iekpo-zzlocationorroad = str-zzlocationorroad .
        iekpo-zzcinemaname = str-zzcinemaname .
        iekpo-zzcapacity = str-zzcapacity .
        iekpo-zzcampaign = str-zzcampaign .
        iekpo-zzillumination = str-zzillumination .
        iekpo-zztrafficdirtn = str-zztrafficdirtn .
        iekpo-zzstore = str-zzstore .
        iekpo-zzcasting = str-zzcasting .
        iekpo-zzgenre = str-zzgenre .
        iekpo-zzsection = str-zzsection .
        iekpo-zznumberofdays = str-zznumberofdays .
        iekpo-zzprogramname = str-zzprogramname .
        iekpo-zzdealstructure = str-zzdealstructure .
        iekpo-zztimeband = str-zztimeband .
        iekpo-zzdate = str-zzdate .
        MODIFY iekpo.
      ENDLOOP.
      WAIT UP TO 2 SECONDS.
      COMMIT WORK.
      WAIT UP TO 15 SECONDS.
      UPDATE ekpo FROM TABLE iekpo.
      COMMIT WORK.
      WAIT UP TO 2 SECONDS.
      SELECT * FROM ekko INTO CORRESPONDING FIELDS OF TABLE iekko WHERE ebeln = l_purchaseorder.
      LOOP AT iekko.
        iekko-kdatb = x_sdate.
        iekko-kdate = x_edate.
        MODIFY iekko.
      ENDLOOP.
      UPDATE ekko FROM TABLE iekko.
      COMMIT WORK.
      WAIT UP TO 1 SECONDS.
      CLEAR l_item.
      l_item = 10.
      LOOP AT str FROM 2 .
        CONCATENATE str-date1+6(4)  str-date1+3(2)  str-date1(2)  INTO wabldat1.
        CONCATENATE str-date2+6(4)  str-date2+3(2)  str-date2(2)  INTO wabldat2.
        CONCATENATE str-date3+6(4)  str-date3+3(2)  str-date3(2)  INTO wabldat3.
        CONCATENATE str-date4+6(4)  str-date4+3(2)  str-date4(2)  INTO wabldat4.
        CONCATENATE str-date5+6(4)  str-date5+3(2)  str-date5(2)  INTO wabldat5.
        CONCATENATE str-date6+6(4)  str-date6+3(2)  str-date6(2)  INTO wabldat6.
        CONCATENATE str-date7+6(4)  str-date7+3(2)  str-date7(2)  INTO wabldat7.
        ipodates-ebeln = l_purchaseorder.
        ipodates-ebelp = l_item.
        ipodates-linno = '001'.
        ipodates-podat = wabldat1.
        APPEND ipodates.
        ipodates-ebeln = l_purchaseorder.
        ipodates-ebelp = l_item.
        ipodates-linno = '002'.
        ipodates-podat = wabldat2.
        APPEND ipodates.
        ipodates-ebeln = l_purchaseorder.
        ipodates-ebelp = l_item.
        ipodates-linno = '003'.
        ipodates-podat = wabldat3.
        APPEND ipodates.
        ipodates-ebeln = l_purchaseorder.
        ipodates-ebelp = l_item.
        ipodates-linno = '004'.
        ipodates-podat = wabldat4.
        APPEND ipodates.
        ipodates-ebeln = l_purchaseorder.
        ipodates-ebelp = l_item.
        ipodates-linno = '005'.
        ipodates-podat = wabldat5.
        APPEND ipodates.
        ipodates-ebeln = l_purchaseorder.
        ipodates-ebelp = l_item.
        ipodates-linno = '006'.
        ipodates-podat = wabldat6.
        APPEND ipodates.
        ipodates-ebeln = l_purchaseorder.
        ipodates-ebelp = l_item.
        ipodates-linno = '007'.
        ipodates-podat = wabldat7.
        APPEND ipodates.
        l_item = l_item + 10.
      ENDLOOP.
      WAIT UP TO 1 SECONDS.
      MODIFY zcta_podates FROM TABLE ipodates.
      COMMIT WORK.
      WAIT UP TO 2 SECONDS.
    ipodates-podat,ipodates-ebeln,ipodates-ebelp,ipodates-linno.
      WAIT UP TO 5 SECONDS.
      LOOP AT t_return.
        WRITE :/ t_return-message.
      ENDLOOP.
    free : ipodates,iekpo,str,itab1,itab2,itab3,itab4,itab5,itab6,itab7,itab8.
    *&      Form  create_po_header
    FORM create_po_header .
      l_po_header-comp_code = '0101'.             " Company Code
      l_po_header-doc_type = x_bsart.         "'ZNB1'.            " Order Typr BSART
      l_po_header-creat_date = sy-datum.        " P.O Dt - BEDAT
      l_po_header-doc_date  = sy-datum.
      l_po_header-vendor   =   x_lifnr.
      l_po_header-vper_start  = x_sdate.
      l_po_header-vper_end  =     x_edate.
      l_po_header-purch_org = '9000'.           " Purch. Org - EKKO-EKORG
      l_po_header-pur_group = x_ekgrp.        " Purch Group - EKKO-EKGRP
      l_po_header-currency_iso = 'INR'.
      CLEAR : l_po_headerx.
      l_po_headerx-po_number = 'X'.
      l_po_headerx-comp_code = 'X'." Company Code
      l_po_headerx-doc_type = 'X'. " Order Typr BSART
      l_po_headerx-vendor = 'X'. "Vendor - EKKO-LIFNR
      l_po_headerx-purch_org = 'X'. " Purch. Org - EKKO-EKORG
      l_po_headerx-pur_group = 'X'. " Purch Group - EKKO-EKGRP
      l_po_headerx-currency_iso = 'X'. " Currency Default field for Enjoy
      l_po_headerx-ref_1       = 'X'.
    ENDFORM.                    " create_po_header
    *&      Form  APPEND_ITEM
    FORM append_item .
      package  = package + 2.
      subpackage = package + 1.
      l_item = l_item + 10.
      t_po_items-po_item =  l_item.
      t_po_items-acctasscat = 'K'.
      t_po_items-item_cat = 'D'.
      t_po_items-short_text = str-txz01. .
      t_po_items-plant = str-werks  . " P
      t_po_items-tax_code = 'S1'.
      t_po_items-pckg_no  =    package.            " 4748.             "package.
      APPEND t_po_items.
      CLEAR t_po_items.
      t_po_itemsx-po_item =  l_item.
      t_po_itemsx-po_itemx = 'X'.
      t_po_itemsx-acctasscat = 'X'.
      t_po_itemsx-item_cat = 'X'.
      t_po_itemsx-short_text = 'X'.
      t_po_itemsx-plant = 'X'.
      t_po_itemsx-tax_code = 'X'.
      t_po_itemsx-pckg_no  = 'X'.
      APPEND t_po_itemsx.
      CLEAR t_po_itemsx.
      t_po_account-po_item =  l_item.
      t_po_account-serial_no = 1.
      t_po_account-quantity = 1.
      t_po_account-distr_perc = '00'.
      t_po_account-costcenter = '0006079000'.                   " 'BR034'.
      t_po_account-gl_account = '0054014071'.        "'0000135075'.
      t_po_account-co_area    =  '1001'.
      APPEND t_po_account.
      CLEAR t_po_account.
      t_po_accountx-po_item =  l_item.
      t_po_accountx-serial_no = 1.
    t_po_accountx-quantity = 'X'.
      t_po_accountx-distr_perc = 'X'.
      t_po_accountx-costcenter = 'X'.
      t_po_accountx-gl_account = 'X'.
      t_po_accountx-co_area  = 'X'.
      APPEND t_po_accountx.
      CLEAR t_po_accountx.
      t_po_services-pckg_no =  package.                         "'4748'.
      t_po_services-line_no = '0000000001' .
      t_po_services-ext_line = '0000000000' .
      t_po_services-outl_level = '0'.
      t_po_services-outl_no = ' '.
      t_po_services-outl_ind = 'X'.
      t_po_services-subpckg_no =  subpackage .                  "'4749'.
      APPEND t_po_services. CLEAR t_po_services .
      t_po_services-pckg_no = subpackage .                      "'4749'.
      t_po_services-line_no = '0000000002' .
      t_po_services-ext_line = '10' .
      t_po_services-outl_level = '0'.
      t_po_services-service = str-srvpos.          "'000000000003000045'.
      t_po_services-gr_price = str-gross.                       "'2000.00'.
      t_po_services-form_val1 =  str-val1.                      "'10.000'.
      t_po_services-form_val2 = str-val2.                       "'33.000'.
    if rad1 = 'x'.
      t_po_services-form_val3 = str-val3.                       " '3.000'.
    endif.
      t_po_services-tax_code   = 'S1'.
      APPEND t_po_services. CLEAR t_po_services .
      t_po_servalue-pckg_no = subpackage .                      "'4749'.
      t_po_servalue-line_no = '0000000002' .
      t_po_servalue-serial_no = '01'.
      APPEND t_po_servalue . CLEAR t_po_servalue.
    ENDFORM.                    " APPEND_ITEM
    *&      Form  create_po
    FORM create_po .
      CALL FUNCTION 'BAPI_PO_CREATE1'
          EXPORTING
            poheader                     = l_po_header
           poheaderx                    =  l_po_headerx
         IMPORTING
           exppurchaseorder             = l_purchaseorder
         TABLES
           return                       = t_return
           poitem                       =  t_po_items
           poitemx                      =  t_po_itemsx
           poaccount                    = t_po_account
           poaccountx                   = t_po_accountx
           poservices                   = t_po_services
         posrvaccessvalues            =   t_po_servalue
      WAIT UP TO 15 SECONDS.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    ENDFORM.                    " create_po
    *&      Form  TABLE_UPLOAD
    FORM table_upload  TABLES   p_itab1.  " structure < itab1 #local# >
      "Insert correct name for <...>.
      CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename                      = w_fname1
       filetype                      = 'ASC'
       has_field_separator           = 'X'
       read_by_line                  = 'X'
       replacement                   = '#'
      TABLES
        data_tab                      =  p_itab1.
      LOOP AT p_itab1.
        MOVE-CORRESPONDING p_itab1 TO str.
        APPEND str.
        CLEAR p_itab1.
      ENDLOOP.
    *  WAIT UP TO 5 SECONDS.
    ENDFORM.                    " TABLE_UPLOAD

    Hi,
    Check this sample code..how to use the BAPI_PO_CREATE1.
    REPORT  Z_TEST_PO   .
    *DATA DECLARATION
    CONSTANTS : C_X VALUE 'X'.
    *Structures to hold PO header data
    DATA : HEADER LIKE BAPIMEPOHEADER ,
    HEADERX LIKE BAPIMEPOHEADERX .
    *Structures to hold PO account data
    DATA : ACCOUNT LIKE BAPIMEPOACCOUNT OCCURS 0 WITH HEADER LINE ,
    ACCOUNTX LIKE BAPIMEPOACCOUNTX OCCURS 0 WITH HEADER LINE .
    *Internal Tables to hold PO ITEM DATA
    DATA : ITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
    ITEMX LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,
    *Internal table to hold messages from BAPI call
    RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
    *Internal table to hold messages from BAPI call
    POCONTRACTLIMITS LIKE BAPIESUCC OCCURS 0 WITH HEADER LINE.
    DATA : W_HEADER(40) VALUE 'PO Header',
    PURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER,
    DELIVERY_DATE LIKE BAPIMEPOSCHEDULE-DELIVERY_DATE.
    DATA : WS_LANGU LIKE SY-LANGU.
    *text-001 = 'PO Header' - define as text element
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS : COMPANY LIKE HEADER-COMP_CODE DEFAULT '122' ,
    DOCTYP LIKE HEADER-DOC_TYPE DEFAULT 'NB' ,
    CDATE LIKE HEADER-CREAT_DATE DEFAULT SY-DATUM ,
    VENDOR LIKE HEADER-VENDOR DEFAULT '2000000012' ,
    PUR_ORG LIKE HEADER-PURCH_ORG DEFAULT 'PU01' ,
    PUR_GRP LIKE HEADER-PUR_GROUP DEFAULT '005' .
    *sociedad like HEADER-COMP_CODE default '122' ,
    *vendedor like HEADER-SALES_PERS default 'sale person'.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    PARAMETERS : ITEM_NUM LIKE ITEM-PO_ITEM DEFAULT '00010',
    MATERIAL LIKE ITEM-MATERIAL DEFAULT '12000000' ,
    TIPO_IMP LIKE ITEM-ACCTASSCAT DEFAULT 'K' ,
    *pos_doc like ITEM-ITEM_CAT default 'F' ,
    SHORTTXT LIKE ITEM-SHORT_TEXT DEFAULT 'PRUEBA BAPI' ,
    GRUP_ART LIKE ITEM-MATL_GROUP DEFAULT '817230000' ,
    PLANT LIKE ITEM-PLANT DEFAULT '3001' ,
    MPE LIKE ITEM-TRACKINGNO DEFAULT '9999' ,
    *contrato like ITEM-AGREEMENT default '4904000003' ,
    *quantity like ITEM-QUANTITY default 1 .
    PO_UNIT LIKE ITEM-PO_UNIT DEFAULT 'EA'.
    SELECTION-SCREEN END OF BLOCK B2.
    * Par?mnetros de imputaci?n
    SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-004.
    PARAMETERS : CENTRO LIKE ACCOUNT-COSTCENTER DEFAULT '1220813150',
    CUENTA LIKE ACCOUNT-GL_ACCOUNT DEFAULT '6631400' ,
    NUM_POS LIKE ACCOUNT-PO_ITEM DEFAULT '10' ,
    SERIAL LIKE ACCOUNT-SERIAL_NO DEFAULT '01' ,
    IND_IMP LIKE ACCOUNT-TAX_CODE DEFAULT 'I2' .
    SELECTION-SCREEN END OF BLOCK B3.
    START-OF-SELECTION.
    *DATA POPULATION
      WS_LANGU = SY-LANGU. "Language variable
    *POPULATE HEADER DATA FOR PO
    *HEADER-COMP_CODE = sociedad .
      HEADER-DOC_TYPE = DOCTYP .
      HEADER-VENDOR = VENDOR .
      HEADER-CREAT_DATE = CDATE .
      HEADER-CREATED_BY = 'TD17191' .
      HEADER-PURCH_ORG = PUR_ORG .
      HEADER-PUR_GROUP = PUR_GRP .
      HEADER-COMP_CODE = COMPANY .
      HEADER-LANGU = WS_LANGU .
    *HEADER-SALES_PERS = vendedor .
    *HEADER-CURRENCY = 'DOP' .
    *HEADER-ITEM_INTVL = 10 .
    *HEADER-PMNTTRMS = 'N30' .
    *HEADER-EXCH_RATE = 1 .
    *POPULATE HEADER FLAG.
      HEADERX-COMP_CODE = C_X.
      HEADERX-DOC_TYPE = C_X.
      HEADERX-VENDOR = C_X.
      HEADERX-CREAT_DATE = C_X.
      HEADERX-CREATED_BY = C_X.
      HEADERX-PURCH_ORG = C_X.
      HEADERX-PUR_GROUP = C_X.
      HEADERX-LANGU = C_X.
    *HEADERX-sales_pers = c_x.
    *HEADERX-CURRENCY = c_x.
    *HEADER-ITEM_INTVL = c_x.
    *HEADER-PMNTTRMS = c_x.
    *HEADER-EXCH_RATE = c_x.
    *HEADER-EXCH_RATE = c_x.
    *POPULATE ITEM DATA.
      ITEM-PO_ITEM = ITEM_NUM.
      ITEM-QUANTITY = '1'.
    *ITEM-MATERIAL = material .
      ITEM-SHORT_TEXT = 'prueba bapi_po_create1'.
    *ITEM-TAX_CODE = ''.
      ITEM-ACCTASSCAT = 'K' .
    *ITEM-ITEM_CAT = 'D' .
      ITEM-MATL_GROUP = '817230000' .
      ITEM-PLANT = '3001' .
      ITEM-TRACKINGNO = '99999'.
      ITEM-PREQ_NAME = 'test'.
    *ITEM-AGREEMENT = '' .
    *ITEM-AGMT_ITEM = ''.
      ITEM-QUANTITY = '1' .
      ITEM-PO_UNIT = 'EA'.
    *ITEM-ORDERPR_UN = 'EA'.
      ITEM-CONV_NUM1 = '1'.
      ITEM-CONV_DEN1 = '1'.
      ITEM-NET_PRICE = '1000000' .
      ITEM-PRICE_UNIT = '1'.
      ITEM-GR_PR_TIME = '0'.
      ITEM-PRNT_PRICE = 'X'.
      ITEM-UNLIMITED_DLV = 'X'.
      ITEM-GR_IND = 'X' .
      ITEM-IR_IND = 'X' .
      ITEM-GR_BASEDIV = 'X'.
    *ITEM-PCKG_NO = '' .
      APPEND ITEM. CLEAR ITEM.
    *POPULATE ITEM FLAG TABLE
      ITEMX-PO_ITEM = ITEM_NUM.
      ITEMX-PO_ITEMX = C_X.
    *ITEMX-MATERIAL = C_X.
      ITEMX-SHORT_TEXT = C_X.
      ITEMX-QUANTITY = C_X.
    *ITEMX-TAX_CODE = C_X.
      ITEMX-ACCTASSCAT = C_X.
    *ITEMX-ITEM_CAT = c_x.
      ITEMX-MATL_GROUP = C_X.
      ITEMX-PLANT = C_X.
      ITEMX-TRACKINGNO = C_X.
      ITEMX-PREQ_NAME = C_X.
    *ITEMX-AGREEMENT = C_X.
    *ITEMX-AGMT_ITEM = c_x.
      ITEMX-STGE_LOC = C_X.
      ITEMX-QUANTITY = C_X.
      ITEMX-PO_UNIT = C_X.
    *ITEMX-ORDERPR_UN = C_X.
      ITEMX-CONV_NUM1 = C_X.
      ITEMX-CONV_DEN1 = C_X.
      ITEMX-NET_PRICE = C_X.
      ITEMX-PRICE_UNIT = C_X.
      ITEMX-GR_PR_TIME = C_X.
      ITEMX-PRNT_PRICE = C_X.
      ITEMX-UNLIMITED_DLV = C_X.
      ITEMX-GR_IND = C_X .
      ITEMX-IR_IND = C_X .
      ITEMX-GR_BASEDIV = C_X .
      APPEND ITEMX. CLEAR ITEMX.
    *POPULATE ACCOUNT DATA.
      ACCOUNT-PO_ITEM = ITEM_NUM.
      ACCOUNT-SERIAL_NO = SERIAL .
      ACCOUNT-CREAT_DATE = SY-DATUM .
      ACCOUNT-COSTCENTER = CENTRO .
      ACCOUNT-GL_ACCOUNT = CUENTA .
      ACCOUNT-GR_RCPT = 'tester'.
      APPEND ACCOUNT. CLEAR ACCOUNT.
    *POPULATE ACCOUNT FLAG TABLE.
      ACCOUNTX-PO_ITEM = ITEM_NUM .
      ACCOUNTX-PO_ITEMX = C_X .
      ACCOUNTX-SERIAL_NO = SERIAL .
      ACCOUNTX-SERIAL_NOX = C_X .
      ACCOUNTX-CREAT_DATE = C_X .
      ACCOUNTX-COSTCENTER = C_X .
      ACCOUNTX-GL_ACCOUNT = C_X .
      ACCOUNT-GR_RCPT = C_X.
      APPEND ACCOUNTX. CLEAR ACCOUNTX.
    *BAPI CALL
      CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.
      CALL FUNCTION 'BAPI_PO_CREATE1'
        EXPORTING
          POHEADER         = HEADER
          POHEADERX        = HEADERX
        IMPORTING
          EXPPURCHASEORDER = PURCHASEORDER
        TABLES
          RETURN           = RETURN
          POITEM           = ITEM
          POITEMX          = ITEMX
          POACCOUNT        = ACCOUNT
          POACCOUNTX       = ACCOUNTX.
    *Confirm the document creation by calling database COMMIT
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
      WAIT = 'X'
    * IMPORTING
    * RETURN =
    END-OF-SELECTION.
    *Output the messages returned from BAPI call
      LOOP AT RETURN.
        WRITE / RETURN-MESSAGE.
      ENDLOOP.
    Regards
    vijay

  • Screen variant for Create Sales order

    Friends,
    I intended to make one of the fileds mandatory for a sales doc type. For which I made a new screen variant wherein I changed a setting for the reqd field and then assigned to a new transaction variant. This transaction variant would be then assigned to the doc type.
    While testing for the screen variant it behaves perfect. While testing for the transaction variant (which has the screen variant as included) I am not getting the desired response.
    Request advise on where I am missing out. Thanks in advance.
    Regards,
    Tariq

    Hello Tariq,
    try to maintain "NO_VARIANT" for field "Variant" in transaction VOV8 for the used sales order type. Then it should work.
    Best regards,
    Joerg

  • Bapi for createing purchase order

    Hi,
    when i'm creating PO by BAPI        BAPI_PO_CREATE1
    given error message is comming
    No instance of object type PurchaseOrder has been created. External reference:
    PO header data still faulty
    can any body help me out.
    thanks
    mukesh

    Thanks for reply , pl. help me.
    THIS IS MY HEADER PARAMETER
    poheaderx-po_number = 'X'.
    POHEADERx-PURCH_ORG  = 'X' .
    POHEADERx-PUR_GROUP = 'X'.
    *POHEADER-CURRENCY =
    *POHEADER-CURRENCY_ISO
    *POHEADER-EXCH_RATE
    POHEADERX-ITEM_INTVL = 'X'.
    POHEADERx-DOC_DATE = 'X'.
    POHEADERx-DOC_TYPE = 'X' .
    POHEADERx-COMP_CODE = 'X'.
    POHEADERx-CREAT_DATE = 'X'.
    POHEADERx-VENDOR = 'X' .
    POHEADERx-CREATED_BY = 'X' .
    POHEADERx-PMNTTRMS = 'X'.
    POHEADERx-INCOTERMS1 = 'X' .
    POHEADERx-INCOTERMS2 = 'X' .
    POHEADERX-LANGU = 'X'.
    POHEADERX-EXCH_RATE = 'X'.
    POHEADERX-STATUS = 'X'.
    POHEADERX-SUPPL_VEND = 'X'.
    poheaderx-delete_ind = 'X'.
    poheaderx-our_ref   = 'X'.
    poheaderx-currency_iso = 'X'.
    poheaderx-dscnt1_to = 'X'.
    poheaderx-dscnt2_to = 'X'.
    poheaderx-dscnt3_to = 'X'.
    poheaderx-dsct_pct1 = 'X'.
    poheaderx-dsct_pct2 = 'X'.
    poheaderx-LANGU_ISO = 'X'.
    poheaderx-CURRENCY = 'X'.
    poheaderx-EX_RATE_FX = 'X'.
    poheaderx-VPER_START = 'X'.
    poheaderx-VPER_END = 'X'.
    poheaderx-WARRANTY = 'X'.
    poheaderx-QUOTATION = 'X'.
    poheaderx-QUOT_DATE = 'X'.
    poheaderx-REF_1 = 'X'.
    poheaderx-SALES_PERS = 'X'.
    poheaderx-LOGSYSTEM = 'X'.
    poheaderx-SUBITEMINT = 'X'.
    poheaderx-PO_REL_IND = 'X'.
    poheaderx-REL_STATUS = 'X'.
    poheaderx-VAT_CNTRY = 'X'.
    poheaderx-VAT_CNTRY_ISO = 'X'.
    poheaderx-REASON_CANCEL = 'X'.
    poheaderx-REASON_CODE = 'X'.
    POHEADER-PURCH_ORG  = 'DUPO' .
    POHEADER-PUR_GROUP = 'D01'.
    POHEADER-CURRENCY = 'AED'.
    *POHEADER-CURRENCY_ISO
    POHEADER-ITEM_INTVL = '00001'.
    POHEADER-DOC_DATE = SY-DATUM.
    POHEADER-DOC_TYPE = 'N10' .   "NB
    POHEADER-COMP_CODE = 'BSGL'.
    POHEADER-CREAT_DATE = SY-DATUM.
    POHEADER-VENDOR = '0000351466' .
    POHEADER-CREATED_BY = sy-uname.
    POHEADER-PMNTTRMS = '0001'.
    POHEADER-INCOTERMS1 = 'EXW' .
    POHEADER-INCOTERMS2 = 'PLANT' .
    POHEADER-LANGU =  sy-langu.
    POHEADER-EXCH_RATE = '1'.
    POHEADER-STATUS = '9'.
    POHEADERX-SUPPL_VEND = '0000351466'.
    poheader-our_ref   = 'REF'.
    ITEM LEVEL   PARAMETERS
    POITEM-EMATERIAL = WMATNR .
    POITEM-MATERIAL   = WMATNR .
      POITEM-PLANT = 'DUBI' .
      POITEM-QUANTITY = '1' .
    POITEM-PO_UNIT = 'MTS' .
      POITEM-NET_PRICE = '2500' .
      POITEM-TAX_CODE  = 'DT'.
      POITEM-BATCH = '0001331951'.
      POITEM-matl_group = '48200'.
    POITEM-PO_ITEM = '0001' .
    POITEM-stge_loc  = 'DU01'.
    POITEM-ITEM_CAT = '0'.
    APPEND POITEM.
    POITEMX-EMATERIAL = 'X'.
    POITEMX-MATERIAL   = 'X' .
      POITEMX-PLANT = 'X' .
      POITEMX-QUANTITY = 'X' .
      POITEMX-price_unit = 'X' .
      POITEMX-NET_PRICE = 'X' .
      POITEMX-TAX_CODE  = 'X'.
      POITEMX-BATCH = 'X'.
    POITEMX-PO_ITEM = '0001' .
    POITEMX-item_cat = 'X'.
    POITEMX-ITEM_CAT = 'X' .
    poitemx-matl_group = 'X' .
    APPEND POITEMX.

  • LSMW for Creating Purchase Orders

    Hi All
    I have looked and there is a standard program that can be used to create POs using LSMW.
    I am able to create the fields and structures and map them.
    However how do i create my 2 spreadsheets to work together.  Is there s specific format?
    Thanks
    Vinesh

    LSMW can take almost everything, if the source(s) are logical developed
    always think like having blinders. if you look at individual PO item table. do you have an identifier that allows you to  map an PO item to a header in the individual header table? This is usually the PO number. The header table would just have the PO number.
    the item table needs the PO number for any item that belongs to this PO.
    LSMW will then join the two tables based on the PO number field.
    alternative you can have one file with e.g. first line is header line, next lines are items, then again a header followed by its items.
    here you could have e.g. the PO number and PO item number as identifiers.
    Means you assign item number 0 to any header data. and the items itself have their well known item numbers.
    In LSMW you can then decide based on the item number if you write a header or an item record.

  • How to create purchase order using VA01 for BAPI?

    how to create purchase order using VA01 for BAPI?

    Hi Arun,
    Please check this link
    Example Program for BAPI_PO_CREATE1
    Re: BAPI_PO_CREATE1
    Questions in BAPI_PO_CREATE1
    Problem with BAPI_PO_CREATE1
    *& Report BAPI_PO_CREATE *
    REPORT bapi_po_create.
    Input File Declaration
    TYPES: BEGIN OF ty_input_file,
    column1 TYPE char50,
    column2 TYPE char50,
    column3 TYPE char50,
    column4 TYPE char50,
    column5 TYPE char50,
    column6 TYPE char50,
    column7 TYPE char50,
    column8 TYPE char50,
    column9 TYPE char50,
    column10 TYPE char50,
    column11 TYPE char50,
    column12 TYPE char50,
    column13 TYPE char50,
    column14 TYPE char50,
    column15 TYPE char50,
    column16 TYPE char50,
    column17 TYPE char50,
    column18 TYPE char50,
    END OF ty_input_file.
    DATA: i_input_file TYPE STANDARD TABLE OF ty_input_file,
    wa_input_file TYPE ty_input_file.
    CONSTANTS: c_path TYPE char20 VALUE 'C:\',
    c_mask TYPE char9 VALUE ',.,..',
    c_mode TYPE char1 VALUE 'O',
    c_filetype TYPE char10 VALUE 'ASC',
    c_x TYPE char01 VALUE 'X'.
    PARAMETERS : p_fname LIKE rlgrap-filename.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
    Browse Presentation Server
    PERFORM f4_presentation_file.
    START-OF-SELECTION..
    Read presentation server file
    PERFORM f1003_upload_file.
    IF NOT i_input_file[] IS INITIAL.
    PERFORM split_data.
    ENDIF.
    *& Form f4_presentation_file
    *& F4 Help for presentation server
    FORM f4_presentation_file .
    CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
    def_path = c_path
    mask = c_mask
    mode = c_mode
    title = text-001
    IMPORTING
    filename = p_fname
    EXCEPTIONS
    inv_winsys = 1
    no_batch = 2
    selection_cancel = 3
    selection_error = 4
    OTHERS = 5.
    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. " f4_presentation_file
    *& Form f1003_upload_file
    *& Upload File
    FORM f1003_upload_file .
    DATA: lcl_filename TYPE string.
    lcl_filename = p_fname.
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = lcl_filename
    filetype = c_filetype
    has_field_separator = c_x
    TABLES
    data_tab = i_input_file
    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.
    EXIT.
    ENDIF.
    ENDFORM. " f1003_upload_file
    *& Form split_data
    Collect data for creating Purchase Order
    FORM split_data .
    DATA: i_poitem TYPE STANDARD TABLE OF bapimepoitem,
    i_poitemx TYPE STANDARD TABLE OF bapimepoitemx,
    i_poitem_sch TYPE STANDARD TABLE OF bapimeposchedule,
    i_poitem_schx TYPE STANDARD TABLE OF bapimeposchedulx,
    i_acct_*** TYPE STANDARD TABLE OF bapimepoaccount,
    i_acct_assx TYPE STANDARD TABLE OF bapimepoaccountx,
    i_services TYPE STANDARD TABLE OF bapiesllc ,
    i_srvacc TYPE STANDARD TABLE OF bapiesklc,
    i_return TYPE STANDARD TABLE OF bapiret2,
    wa_header TYPE bapimepoheader,
    wa_headerx TYPE bapimepoheaderx,
    wa_poitem TYPE bapimepoitem,
    wa_poitemx TYPE bapimepoitemx,
    wa_poitem_sch TYPE bapimeposchedule,
    wa_poitem_schx TYPE bapimeposchedulx,
    wa_acct_*** TYPE bapimepoaccount,
    wa_acct_assx TYPE bapimepoaccountx,
    wa_services TYPE bapiesllc,
    wa_srvacc TYPE bapiesklc,
    wa_return TYPE bapiret2,
    ws_po TYPE bapimepoheader-po_number.
    break gbpra8.
    wa_services-pckg_no = 10.
    wa_services-line_no = 1.
    wa_services-outl_no = '0'.
    wa_services-outl_ind = c_x.
    wa_services-subpckg_no = 20.
    APPEND wa_services TO i_services.
    wa_srvacc-pckg_no = 10.
    wa_srvacc-line_no = 1.
    wa_srvacc-serno_line = 01.
    wa_srvacc-serial_no = 01.
    wa_srvacc-percentage = 100.
    APPEND wa_srvacc TO i_srvacc.
    LOOP AT i_input_file INTO wa_input_file.
    IF wa_input_file-column2 EQ 'HD'.
    wa_header-doc_type = wa_input_file-column3.
    wa_header-creat_date = sy-datum.
    wa_header-created_by = sy-uname.
    wa_header-vendor = wa_input_file-column4.
    PERFORM conversion_output USING wa_header-vendor
    CHANGING wa_header-vendor.
    wa_header-comp_code = 'DE03'.
    wa_header-purch_org = 'DE03'.
    wa_header-pur_group = 'DE1'.
    wa_header-vper_start = wa_input_file-column9.
    wa_header-vper_end = wa_input_file-column10.
    wa_headerx-comp_code = c_x.
    wa_headerx-doc_type = c_x.
    wa_headerx-creat_date = c_x.
    wa_headerx-created_by = c_x.
    wa_headerx-vendor = c_x.
    wa_headerx-purch_org = c_x.
    wa_headerx-pur_group = c_x.
    wa_headerx-vper_start = c_x.
    wa_headerx-vper_end = c_x.
    ENDIF.
    IF wa_input_file-column2 EQ 'IT'.
    wa_poitem-po_item = wa_input_file-column3.
    wa_poitem-short_text = wa_input_file-column6.
    wa_poitem-plant = wa_input_file-column8.
    wa_poitem-quantity = '1'.
    wa_poitem-tax_code = 'V0'.
    wa_poitem-item_cat = 'D'.
    wa_poitem-acctasscat = 'K'.
    wa_poitem-matl_group = wa_input_file-column7.
    wa_poitem-pckg_no = '10'.
    APPEND wa_poitem TO i_poitem .
    wa_poitemx-po_item = wa_input_file-column3.
    wa_poitemx-po_itemx = c_x.
    wa_poitemx-short_text = c_x.
    wa_poitemx-plant = c_x.
    wa_poitemx-quantity = c_x.
    wa_poitemx-tax_code = c_x.
    wa_poitemx-item_cat = c_x.
    wa_poitemx-acctasscat = c_x.
    wa_poitemx-matl_group = c_x.
    wa_poitemx-pckg_no = c_x.
    APPEND wa_poitemx TO i_poitemx.
    wa_poitem_sch-po_item = wa_input_file-column3.
    wa_poitem_sch-delivery_date = sy-datum.
    APPEND wa_poitem_sch TO i_poitem_sch.
    wa_poitem_schx-po_item = wa_input_file-column3.
    wa_poitem_schx-po_itemx = c_x.
    wa_poitem_schx-delivery_date = c_x.
    APPEND wa_poitem_schx TO i_poitem_schx.
    wa_acct_***-po_item = 10.
    wa_acct_***-serial_no = 01.
    wa_acct_***-gl_account = '0006360100'.
    wa_acct_***-co_area = '1000'.
    wa_acct_***-costcenter = 'KC010000'.
    APPEND wa_acct_*** TO i_acct_***.
    wa_acct_***-po_item = 10.
    wa_acct_***-serial_no = 02.
    wa_acct_***-gl_account = '0006360100'.
    wa_acct_***-co_area = '1000'.
    wa_acct_***-costcenter = 'KC010000'.
    APPEND wa_acct_*** TO i_acct_***.
    wa_acct_assx-po_item = 10.
    wa_acct_assx-serial_no = 01.
    wa_acct_assx-po_itemx = c_x.
    wa_acct_assx-serial_nox = c_x.
    wa_acct_assx-gl_account = c_x.
    wa_acct_assx-co_area = c_x.
    wa_acct_assx-costcenter = c_x.
    APPEND wa_acct_assx TO i_acct_assx.
    wa_acct_assx-po_item = 10.
    wa_acct_assx-serial_no = 02.
    wa_acct_assx-po_itemx = c_x.
    wa_acct_assx-serial_nox = c_x.
    wa_acct_assx-gl_account = c_x.
    wa_acct_assx-co_area = c_x.
    wa_acct_assx-costcenter = c_x.
    APPEND wa_acct_assx TO i_acct_assx.
    wa_services-pckg_no = 20.
    wa_services-line_no = 2.
    wa_services-service = wa_input_file-column9.
    wa_services-quantity = '100'.
    wa_services-gr_price = '100'.
    wa_services-userf1_txt = wa_input_file-column13.
    APPEND wa_services TO i_services.
    wa_srvacc-pckg_no = 20.
    wa_srvacc-line_no = 1.
    wa_srvacc-serno_line = 02.
    wa_srvacc-serial_no = 02.
    wa_srvacc-percentage = 100.
    APPEND wa_srvacc TO i_srvacc.
    ENDIF.
    ENDLOOP.
    CALL FUNCTION 'BAPI_PO_CREATE1'
    EXPORTING
    poheader = wa_header
    poheaderx = wa_headerx
    POADDRVENDOR =
    TESTRUN =
    MEMORY_UNCOMPLETE =
    MEMORY_COMPLETE =
    POEXPIMPHEADER =
    POEXPIMPHEADERX =
    VERSIONS =
    NO_MESSAGING =
    NO_MESSAGE_REQ =
    NO_AUTHORITY =
    NO_PRICE_FROM_PO =
    IMPORTING
    exppurchaseorder = ws_po
    EXPHEADER =
    EXPPOEXPIMPHEADER =
    TABLES
    return = i_return
    poitem = i_poitem
    poitemx = i_poitemx
    POADDRDELIVERY =
    poschedule = i_poitem_sch
    poschedulex = i_poitem_schx
    poaccount = i_acct_***
    POACCOUNTPROFITSEGMENT =
    poaccountx = i_acct_assx
    POCONDHEADER =
    POCONDHEADERX =
    POCOND =
    POCONDX =
    POLIMITS =
    POCONTRACTLIMITS =
    poservices = i_services
    posrvaccessvalues = i_srvacc
    POSERVICESTEXT =
    EXTENSIONIN =
    EXTENSIONOUT =
    POEXPIMPITEM =
    POEXPIMPITEMX =
    POTEXTHEADER =
    POTEXTITEM =
    ALLVERSIONS =
    POPARTNER =
    break gbpra8.
    LOOP AT i_return INTO wa_return.
    ENDLOOP.
    ENDFORM. " split_data
    *& Form conversion_output
    Conversion exit input
    FORM conversion_output USING p_ip
    CHANGING p_op.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    input = p_ip
    IMPORTING
    output = p_op.
    ENDFORM. " conversion_output
    Best regards,
    raam

  • BADI-User exit required for updating Purchase order header field -IHREZ

    Hello All,
    We have requirement in our business to update the purchase order header field "our reference" EKKO-IHREZ with some text field. We need a BADI/user exit that can be used for updating this field . We have checked the BADI ME_PROCESS_PO_CUST and unfortunately we are not able to use this BADI as it getting triggered in enjoy SAP transactions ME21N , ME22N etc. We are not creating the purchase order manually and we are using ME59N for creating Purchase order . Hence we are looking for some user exit/BADI that can be used in ME59N for updating the purchase order header field IHREZ.
    Thanks in advance for your immediate response .
    With regards,
    Joseph Anand B

    TRY using the exist u2022     EXIT_SAPLME59_001
    You can also later on add this field by BAPI_PO_CHANGE

  • "Create purchase order" doesn't work, trans. me21n

    hello all,
    in me21n (trans. for creating purchase order) I've got this message:
    Material not subj. to inventory mgmt. in plant 1302 (Pl. check your input)
    Message no. ME124
    Diagnosis
    There is no data for plant 1302 (plant/storage location stock view) in the material master record.
    Procedure
    Enter a different material or - if possible - a different plant.
    Or maintain the missing view in the material master record.
    Could you please let me where is problem???
    I'm trying to do "creating purchase order" for material 000000-1331-894 and plant 1302.
    For another plant 5600 "it" works OK. I' ve checked purchasing in mm03 and compared "right" and "wrong" plant but I didn't find difference in mm03 for both of materials :(((
    Any ideas???
    V.

    Dear Vladislav Rossa
    Just check in SPRO for Material types whether u have set Quantity ahd Value field as Tick mark for that particualr plant-1302
    After that just checked whether that material is extended for that plant
    Just Go in Create mode
    T code MM01 and  copy paste ur material 000000-1331-894
    in Copy from also mention the same material
    select the views u want
    in org structure: Copy from Plant-5600 and store location
    in copy to enter the plant 1302 and str loc
    Hope after that while creating u will not get any errors
    regds
    shailesh

  • How to trigger workflow for already created purchase order ?

    HELLO EXPERTS
    let me clear my scenario first . i have 1 purchase order whose workflow is not triggered . means it is showing me message no workflow that have already worked for this object.i have created 1 more purchase order taking reference of this purchase order means both are same same message for this po also. it was happening because event linkage for the business object bus2012 is not activated but now it is enabled and i have created third purchase order with reference to above po means this third po is also same as above 2 no change other than po number but for this workdflow is getting triggered . now i want to trigger workflow for orignal first po but for my first po it is showing me same message that no workflow that have already worked for this object. what i have to do to trigger workflow for this po. i have performed this steps in test system. i have workflow number

    Hello !
          You can trigger the workflow from SWUE.Enter bus2012 and created for object type and event respectively.
          Click object key button where enter the purchase order number which have been already created.
          But, why do you want to trigger the workflow again for already created purchase order ?
    Regards,
    S.Suresh

  • How to creat deadlock for the purchase order in SAP Workflow

    How to creat deadlock for the purchase order in SAP Workflow

    Hi Ben,
    Are you using FM "CONVERT_DATE_TO_EXTERNAL" before passing delivery date?  If not, use FM like this, before passing the date to BAPI_PO_CREATE1 and it might work
      DATA: vf_doc_date(10),
                 internal_date TYPE d.
         vf_doc_date = sy-datum.              "Document date.
         internal_date = vf_doc_date.
      CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
        EXPORTING
          date_internal            = internal_date
        IMPORTING
          date_external            = vf_doc_date
        EXCEPTIONS
          date_internal_is_invalid = 1
          OTHERS                   = 2.
    Regards,
    Vivek

Maybe you are looking for

  • ClassNotFoundException in my ejb.

    I created a EJB in Model project in my fusion web application. And then I create a method in this EJB, the parameter type is javax.faces.component.UIComponent. It's sure that I have added a jsf1.2 jar in Model project lib. But I got an error when dep

  • Exporting for color

    I want to prepare my film for export to put on a drive and bring to my colorists studio (he is using color). What kind of file (I'm assuming a quicktime) should I export for him so he won't have to notch every shot, meaning a file that breaks down in

  • Total pages in a form from the program

    Hi all      I have got a special situation, That I need  to know the total number pages that a sapscript will print with in a program. If i want it it it with in a form then I use &SAPSCRIPT-FORMPAGES&, what would be the opetion if i want to get the

  • Dropped my iphone in the lake, possible recovery

    So I was on the lake and happened to have my phone fall in, i grabbed it but it had already been completely submerged in the water. Is there anything that can be done to make this thing work again or is it a paperweight? I've dried it completely, eve

  • Regarding ad-hoc queries

    hi frndz, i juzz wanna know about ad-hoc queries.ibcoz i need to work on it.can u provide me any fms we have to use here.where exactly we use ad-hoc queries                         thanking u,