Export Purchase Order

Hi
I have a scenario in which Export Purchase order to be created ? I like to know what are the condition types  & Taxes will be included for Exporting PO ?
Please help me on this issue
Thanks & Regards,
Pioneersap.

hi
if it is PURCHASE ORDER then it have to be IMPORT PO and bot export as export comes in SALES
now if it is IMPORT then check following
in ur pricing u have to create following
JCDB IN: Basic Custom Duty
JCV1 IN : CVD
JECV IN : Ed Cess on CVD
J1CV IN : H&SECess on CVD
JEDB IN : Ed Cess on BCD
JSDB IN : H&SECess on BCD
JADC Additional Duty of Custom
JCV1, JECV, J1CV and JADC will go to Excise MODVAT Accounts and JCDB, JEDB and JSDB will get loaded on inventory.
In M/06, for all above conditions, keep following controls;
Cond. class A (Discount or surcharge) Plus/minus A (Positive)
Calculat.type A (Percentage)
Cond.category B (Delivery costs)
Activate "Currency Conversion" and "Accrual"
Now for setoff
maintain the following conditions in excise default settings.
JCV1, JECV, JADC
path: spro>logistic general >tax on goods movements>India >basic settings>determination of excise duty >maintain excise defaults >
along with ur tax procedure maintain these conditions in the specified fields
JCV1 in CVD condition field.
JECV in ECS condition field.
JADC in ACD condition field.
in case of SECess on CVD, no need to maintain.
it is hardcode in the standard
Vendor in GR 2 (Entry always possible)
Import scenario
1.Create material master of import goods.
2. Create vendor master record of import vendor and Customs clearing vendor.
3. Maintain CIN settings.
4. Maintain J1id.
5. Maintain Pricing procedure SAP standard JIMPOR.., maintain required conditions..JCDB, JCV1...
6.Assign the schema to respective import vendor in purchasing view of VMR.
7. Create import PO, check in conditions of JCDB, JCV1 the customs clearing vendor(Indian vendor) and percentage is assigned. This can be done by In condition tab select condtion then click on display, then enter.
Save the PO.
8. MIRO --Capture Bill Of Entry.(Commercial Invoice No.,).Customs clearing first .Here CVD will b converted to BED.
9. Capture Excises invoice--j1iex.
10.MIGO.
12.Post Excise Invoice.
13.MIRO...Payment to vendor(import vendor)

Similar Messages

  • How to export purchase order dtd from SRM 5.5

    In earlier versions of SRM one could export an XML DTD based on the corresponding IDoc. However, in 5.5 there is no purchase order IDoc.
    I need to send a vendor the DTD for the XML purchase order we are going to send to them electronically.
    Where can I find and download the XML DTD for purchase orders in SRM 5.5?

    Stuart,
    we were doing this to transmit XML orders to a Market Place but we had to use our PI server.
    If you have no PI server then I am not sure the option exists.
    If you have a PI server, I suggest you ask the PI person as I know nothing about PI.  The config for XML output in SRM is in SPRO > SRM Server > Cross Application Basic Settings > Set Output actions and Output Format
    Regards
    Allen

  • Total purchase order value

    sir,
    is there any std report available wherein i can get total purchase order value inclusive of all taxes(excise,vat,octroi). pl tell me any possible source to get the same.

    HI
    RM06EBWA     Report for Analysis of Purchase Order Values
    RM06EESF     Analysis of Exported Purchase Orders
    Check these it may help you.
    Reward if useful
    Thanks n Best Regards,
    Kiran

  • Purchase Order Data Transfer

    Hi,
    I'm a consultant working for a company that has as one of its customers, a company that has recently implemented SAP Retail.
    My client receives Purchase Orders from the SAP Retail company.  Under their old system, they used to be via Excel, which we developed a program to read automatically.  Now my client gets a SAP-generated PDF.
    I'm trying to find out if SAP Retail can export purchase orders in a data-transferable medium (XML, Excel, ...) rather than PDF.  We have not been able to reach anyone on their implementation team.  If necessary, we will implement a system around the PDF files, but it seems insane that a new SAP system implementation takes a step backwards in this regard.
    If someone can confirm if this is possible, and any pointers on what they need to do set it up, or how we can access it, that will be much appreciated.  We can then push harder to get this happening.  If on the other hand, the PDFs are the only option then at least we know we need to concentrate on that.
    Thank you for your time.
    Michael Brettell

    Hi Michael,
    SAP is designed to send a XML file from a purchase order or any other document type (delivery, sales order, transportation, etc) with very little effort. This means, that SAP delivers already a solution for that which the customer needs to set up.
    To create a PDF file actually requires quite a lot of custom development, specially to comply to the layout the customer requires. This is usually a task that goes from the testing team to the development team back and forth a few times before it is accepted.
    Regards

  • Error in Bapi_GoodsMvt_Create using Purchase order

    Hi Friends,
    I am using Bapi_goodsmvt_create for Goods Receipts against Purchase order.
    The below code i have given for Goods receipts
    It shows the error like
    ID : 8J
    Err No.:182
    Message : Entry 4500000344 00040 0000 not valid; correct entry
    Please help me to correct this error.
    Thanks
    Shankar
    ===================================
    Heading Structure
    st_gm_code-gm_code          = '01'.
    st_gm_header-pstng_date = '20070930'.
    st_gm_header-doc_date = '20070930'.
    st_gm_header-gr_gi_slip_no = '970015'.
    st_gm_header-bill_of_lading = '527213'.
    st_gm_header-header_txt = 'AIR'.
    st_gm_header-ref_doc_no = '4500000344'.
    Tables - ITEM CREATE.
    itab_afs_gm_itemx-plant = '2000'.
    itab_afs_gm_itemx-deliv_numb = '80100121'.
    itab_afs_gm_itemx-stge_loc = '2110'.
    itab_afs_gm_itemx-move_stloc = '2110'.
    itab_afs_gm_itemx-po_number = '4500000344'.
    itab_afs_gm_itemx-po_item = '00040'.
    itab_afs_gm_itemx-vendor = '0000650003'.
    itab_afs_gm_itemx-vendrbatch = 'ABC123'.
    itab_afs_gm_itemx-move_type = '101'.
    itab_afs_gm_itemx-mvt_ind = 'B'.
    itab_afs_gm_itemx-material = '000000000030000227'.
    itab_afs_gm_itemx-entry_qnt = 10.
    APPEND itab_afs_gm_itemx .
    ****&& Grid values
    gr_afs-matdoc_itm     = '0001'.
    gr_afs-grid_value = '205'.
    gr_afs-withdrawn_sku = 'X'. "Final issue at sku level
    gr_afs-stock_cat = '0000000001000366'.
    APPEND gr_afs.
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
      EXPORTING
        goodsmvt_header           = st_gm_header
        goodsmvt_code             = st_gm_code
      TESTRUN                     = ' '
    IMPORTING
       goodsmvt_headret           = st_gm_headret
       materialdocument            = mat_doc
       matdocumentyear             =  doc_year
      TABLES
        goodsmvt_item             = itab_afs_gm_itemx
       afs_goodsmvt_sku           = gr_afs
        return                    = bapi_return.
    IF sy-subrc = 0.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.
    ENDIF.
    CLEAR itab_afs_gm_itemx.
    REFRESH itab_afs_gm_itemx.
    CLEAR gr_afs.
    REFRESH gr_afs.

    Hi,
    Here is some sample code from one of my programs, which does a 551 movement type. This should get you started. Just check the RETURN table for messages, they should tell you what you are missing.
    code
    Structures for BAPI
    data: gm_header type bapi2017_gm_head_01.
    data: gm_code type bapi2017_gm_code.
    data: gm_headret type bapi2017_gm_head_ret.
    data: gm_item type table of
    bapi2017_gm_item_create with header line.
    data: gm_return type bapiret2 occurs 0.
    data: gm_retmtd type bapi2017_gm_head_ret-mat_doc.
    clear: gm_return, gm_retmtd. refresh gm_return.
    Setup BAPI header data.
    gm_header-pstng_date = sy-datum.
    gm_header-doc_date = sy-datum.
    gm_code-gm_code = '06'. " MB11
    Write 551 movement to table
    clear gm_item.
    move '551' to gm_item-move_type .
    move '000000000040001234' to gm_item-material.
    move '1' to gm_item-entry_qnt.
    move 'EA' to gm_item-entry_uom.
    move '0004' to gm_item-plant.
    move '4000' to gm_item-stge_loc.
    move '201' to gm_item-move_reas.
    Determine cost center per plant
    case xresb-werks.
    when '0004'.
    move '0000041430' to gm_item-costcenter.
    when '0006'.
    move '0000041630' to gm_item-costcenter.
    when '0007'.
    move '0000041731' to gm_item-costcenter.
    when '0008'.
    move '0000041830' to gm_item-costcenter.
    endcase.
    append gm_item.
    Call goods movement BAPI
    call function 'BAPI_GOODSMVT_CREATE'
    exporting
    goodsmvt_header = gm_header
    goodsmvt_code = gm_code
    importing
    goodsmvt_headret = gm_headret
    materialdocument = gm_retmtd
    tables
    goodsmvt_item = gm_item
    return = gm_return.
    call function 'BAPI_TRANSACTION_COMMIT'
    exporting
    wait = 'X'.
    [/code]
    Welcome to SDN! Please remember to award points for helpful answers and mark you post as solved when solved completely. Thanks.
    REgards,
    Raj.

  • Error in : Purchase order Creation using BAPI_PO_CREATE1

    Hell  guys,
    I am trying to create a PO using a BAPI - BAPI_PO_CREATE1
    I want the new PO to have all the characteristics of an existing PO. whose PO # is  stored in wa_order_split_create-docnr and for the new PO, i want the quantity from wa_order_split_create-qty_acptd and the delivery data to be wa_order_split_create-dly_date. But this process and code below gives a short dump in the std FM - MEPO_DOC_ITEM_GET . It raises an exception of failure. I am trying to create many new PO's in the loop below. If there is just one row, sometimes, it creates the PO even with the exception failure ( which is pretty weird).
    Am i making any mistake while filling the header or item or schedule lines for the BAPI_PO_CREATE1 ? Any tips or clues why I am getting a dump ?
    DATA: i_insert,
            i_create_order,
            i_cycle     TYPE cycle,
            i_qty_acpt  TYPE dzmeng,
            i_dly_date  TYPE vbak-vdatu,
            i_item      TYPE roijnomiio .
      DATA: i_order TYPE symsgv,
            i_return TYPE swd_return .
      DATA: i_vbak      TYPE vbak,
            i_vbap      TYPE vbap,
            i_ekko      TYPE ekko,
            i_ekpo      TYPE ekpo,
            i_bsoh      TYPE bapisdhd1,
            i_bsohx     TYPE bapisdhd1x,
            i_bpoh      TYPE bapimepoheader,
            i_bpohx     TYPE bapimepoheaderx,
            i_vbeln     TYPE vbeln_va,
            i_posnr     TYPE posnr_va,
            i_contr     TYPE vbeln_va,
            i_conit     TYPE posnr_va,
            i_ebeln     TYPE ebeln,
            i_ebelp     TYPE ebelp,
            i_pargr     TYPE pargr,
            i_thead     TYPE thead,
            i_line      TYPE tline,
            i_note      TYPE txw_note,
            i_new_vbeln TYPE vbeln_va,
            i_new_ebeln TYPE ebeln,
            i_wa_bsoi   TYPE bapisditm,
            i_wa_bsoix  TYPE bapisditmx,
            i_wa_bsop   TYPE bapiparnr,
            i_wa_bsos   TYPE bapischdl,
            i_wa_bsosx  TYPE bapischdlx,
            i_wa_vbpa   TYPE vbpa,
            i_wa_vbkd   TYPE vbkd,
            i_wa_bpoi   TYPE bapimepoitem,
            i_wa_bpoix  TYPE bapimepoitemx,
            i_wa_bpos   TYPE bapimeposchedule,
            i_wa_bposx  TYPE bapimeposchedulx,
            i_wa_bpop   TYPE bapiekkop,
            i_wa_ekpa   TYPE ekpa,
            i_message   TYPE char72,
            i_bapiretn  TYPE bapiret2,
            i_bapiret2  TYPE TABLE OF bapiret2 INITIAL SIZE 1,
            i_vbpa      TYPE TABLE OF vbpa INITIAL SIZE 1,
            i_vbkd      TYPE TABLE OF vbkd INITIAL SIZE 1,
            i_ekpa      TYPE TABLE OF ekpa INITIAL SIZE 1,
            i_bsoi      TYPE TABLE OF bapisditm INITIAL SIZE 1,
            i_bsoix     TYPE TABLE OF bapisditmx INITIAL SIZE 1,
            i_bsos      TYPE TABLE OF bapischdl INITIAL SIZE 1,
            i_bsosx     TYPE TABLE OF bapischdlx INITIAL SIZE 1,
            i_bsop      TYPE TABLE OF bapiparnr INITIAL SIZE 1,
            i_bpoi      TYPE TABLE OF bapimepoitem INITIAL SIZE 1,
            i_bpoix     TYPE TABLE OF bapimepoitemx INITIAL SIZE 1,
            i_bpos      TYPE TABLE OF bapimeposchedule INITIAL SIZE 1,
            i_bposx     TYPE TABLE OF bapimeposchedulx INITIAL SIZE 1,
            i_bpop      TYPE TABLE OF bapiekkop INITIAL SIZE 1,
            i_text_tab  TYPE TABLE OF tline INITIAL SIZE 1,
            i_line_tab  TYPE TABLE OF tline INITIAL SIZE 1,
            i_txw_note  TYPE TABLE OF txw_note INITIAL SIZE 1,
            i_oij_el_doc_mot TYPE oij_el_doc_mot .
      CONSTANTS: c_char_c VALUE 'C',
                 c_char_e VALUE 'E',
                 c_char_p VALUE 'P',
                 c_char_g VALUE 'G',
                 c_char_i VALUE 'I',
                 c_char_s VALUE 'S',
                 c_char_x VALUE 'X',
                 c_zsw(3) VALUE 'ZSW',
                 c_nomit_stat(4) VALUE 'ZDNY' .
      DATA : lv_nomtk_split        TYPE oij_nomtk.
      DATA : i_order_split_create  TYPE TABLE OF zsws_order_split.
      DATA : wa_order_split_create TYPE zsws_order_split.
      LOOP AT i_order_split_create INTO wa_order_split_create.
        IF NOT i_create_order IS INITIAL .
          CLEAR: i_create_order .
              MOVE: wa_order_split_create-docnr  TO i_ebeln,
                    wa_order_split_create-docitm TO i_ebelp .
              CALL FUNCTION 'ME_EKKO_SINGLE_READ'
                   EXPORTING
                        pi_ebeln         = i_ebeln
                   IMPORTING
                        po_ekko          = i_ekko
                   EXCEPTIONS
                        no_records_found = 1
                        OTHERS           = 2.
              IF sy-subrc <> 0 .
              ENDIF .
    * Fill PO Header
              i_bpoh-comp_code   = i_ekko-bukrs .
              i_bpoh-doc_type    = i_ekko-bsart .
              i_bpoh-vendor      = i_ekko-lifnr .
              i_bpoh-langu       = i_ekko-spras .
              i_bpoh-pmnttrms    = i_ekko-zterm .
              i_bpoh-purch_org   = i_ekko-ekorg .
              i_bpoh-pur_group   = i_ekko-ekgrp .
              i_bpoh-currency    = i_ekko-waers .
              i_bpoh-agreement   = i_ekko-konnr .
              i_bpoh-incoterms1  = i_ekko-inco1 .
              i_bpoh-incoterms2  = i_ekko-inco2 .
    * Fill PO update indicator 'X'
              i_bpohx-comp_code  = c_char_x .
              i_bpohx-doc_type   = c_char_x .
              i_bpohx-vendor     = c_char_x .
              i_bpohx-langu      = c_char_x .
              i_bpohx-pmnttrms   = c_char_x .
              i_bpohx-purch_org  = c_char_x .
              i_bpohx-pur_group  = c_char_x .
              i_bpohx-currency   = c_char_x .
              i_bpohx-agreement  = c_char_x .
              i_bpohx-incoterms1 = c_char_x .
              i_bpohx-incoterms2 = c_char_x .
              CALL FUNCTION 'ME_EKPO_SINGLE_READ'
                   EXPORTING
                        pi_ebeln         = i_ebeln
                        pi_ebelp         = i_ebelp
                   IMPORTING
                        po_ekpo          = i_ekpo
                   EXCEPTIONS
                        no_records_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 .
    * Fill PO Item
              i_wa_bpoi-po_item    = i_ekpo-ebelp .
              i_wa_bpoi-material   = i_ekpo-matnr .
              i_wa_bpoi-plant      = i_ekpo-werks .
              i_wa_bpoi-stge_loc   = i_ekpo-lgort .
              i_wa_bpoi-quantity   = wa_order_split_create-qty_acptd .
              i_wa_bpoi-po_unit    = i_ekpo-meins .
              i_wa_bpoi-tax_code   = i_ekpo-mwskz .
              i_wa_bpoi-val_type   = i_ekpo-bwtar .
              i_wa_bpoi-item_cat   = i_ekpo-pstyp .
              i_wa_bpoi-acctasscat = i_ekpo-knttp .
              i_wa_bpoi-agreement  = i_ekpo-konnr .
              i_wa_bpoi-agmt_item  = i_ekpo-ktpnr .
              APPEND i_wa_bpoi TO i_bpoi .
    * Fill PO Item update indicator 'X'
              i_wa_bpoix-po_item    = i_ekpo-ebelp .
              i_wa_bpoix-po_itemx   = c_char_x .
              i_wa_bpoix-material   = c_char_x .
              i_wa_bpoix-plant      = c_char_x .
              i_wa_bpoix-stge_loc   = c_char_x .
              i_wa_bpoix-quantity   = c_char_x .
              i_wa_bpoix-po_unit    = c_char_x .
              i_wa_bpoix-tax_code   = c_char_x .
              i_wa_bpoix-val_type   = c_char_x .
              i_wa_bpoix-item_cat   = c_char_x .
              i_wa_bpoix-acctasscat = c_char_x .
              i_wa_bpoix-agreement  = c_char_x .
              i_wa_bpoix-agmt_item  = c_char_x .
              APPEND i_wa_bpoix TO i_bpoix .
    * Fill PO Item Schedule
              i_wa_bpos-po_item       = i_ekpo-ebelp .
              i_wa_bpos-sched_line    = '0001' .
              i_wa_bpos-delivery_date = wa_order_split_create-dly_date .
              i_wa_bpos-quantity      = wa_order_split_create-qty_acptd .
              APPEND i_wa_bpos TO i_bpos .
    * Fill PO Item schedule update indicator 'X'
              i_wa_bposx-po_item       = i_ekpo-ebelp .
              i_wa_bposx-sched_line    = '0001' .
              i_wa_bposx-delivery_date = c_char_x .
              i_wa_bposx-quantity      = c_char_x .
              APPEND i_wa_bposx TO i_bposx .
              CLEAR: i_pargr .
              SELECT SINGLE pargr
                INTO i_pargr
                FROM t161
               WHERE bstyp = i_ekko-bstyp
                 AND bsart = i_ekko-bsart .
              CLEAR i_ekpa[].
              CALL FUNCTION 'MM_READ_PARTNERS'
                   EXPORTING
                        application = c_char_p
                        ebeln       = i_ebeln
                        bstyp       = i_ekko-bstyp
                        pargr       = i_pargr
                   TABLES
                        x_ekpa      = i_ekpa[].
              LOOP AT i_ekpa INTO i_wa_ekpa .
                i_wa_bpop-partnerdesc = i_wa_ekpa-parvw .
                i_wa_bpop-langu = sy-langu .
                IF NOT i_wa_ekpa-lifn2 IS INITIAL .
                  i_wa_bpop-buspartno = i_wa_ekpa-lifn2 .
                ELSE .
                  i_wa_bpop-buspartno = i_wa_ekpa-parnr .
                ENDIF .
                APPEND i_wa_bpop TO i_bpop .
                CLEAR: i_wa_ekpa, i_wa_bpop .
              ENDLOOP .
              CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.
              CALL FUNCTION 'BAPI_PO_CREATE1'
                   EXPORTING
                        poheader         = i_bpoh
                        poheaderx        = i_bpohx
                   IMPORTING
                        exppurchaseorder = i_new_ebeln
                   TABLES
                        return           = i_bapiret2
                        poitem           = i_bpoi[]
                        poitemx          = i_bpoix[]
                        poschedule       = i_bpos[]
                        poschedulex      = i_bposx[].
              i_order = i_new_ebeln .
              SHIFT i_order LEFT DELETING LEADING '0' .
              i_return-errortype = c_char_i .
              i_return-workarea  = c_zsw .
              i_return-message   = '064' .
              i_return-variable1 = i_order .
            loop at i_bapiret2 into i_bapiretn where type ca 'EAX' .
            append i_bapiretn to t_bapi_return .
          endloop .
          if t_bapi_return[] is initial .
             i_create_order = c_char_x .
               CALL FUNCTION 'SWD_POPUP_MESSAGE_SEND'
                   EXPORTING
                        act_return = i_return. "Popup with new PO no.
          ENDCASE .                                     " Docind
        ENDIF .
      ENDLOOP.

    Hi Shareen,
    I think in the following parts of the code,
              CALL FUNCTION 'MM_READ_PARTNERS'
                   EXPORTING
                        application = c_char_p
                        ebeln       = i_ebeln
                        bstyp       = i_ekko-bstyp
                        pargr       = i_pargr
                   TABLES
                        x_ekpa      = i_ekpa[].
    Error in : Purchase order Creation using BAPI_PO_CREATE1
    Posted: Mar 20, 2006 7:39 PM      Reply      E-mail this post 
    Hell guys,
    I am trying to create a PO using a BAPI - BAPI_PO_CREATE1
    I want the new PO to have all the characteristics of an existing PO. whose PO # is stored in wa_order_split_create-docnr and for the new PO, i want the quantity from wa_order_split_create-qty_acptd and the delivery data to be wa_order_split_create-dly_date. But this process and code below gives a short dump in the std FM - MEPO_DOC_ITEM_GET . It raises an exception of failure. I am trying to create many new PO's in the loop below. If there is just one row, sometimes, it creates the PO even with the exception failure ( which is pretty weird).
    Am i making any mistake while filling the header or item or schedule lines for the BAPI_PO_CREATE1 ? Any tips or clues why I am getting a dump ?
    DATA: i_insert,
            i_create_order,
            i_cycle     TYPE cycle,
            i_qty_acpt  TYPE dzmeng,
            i_dly_date  TYPE vbak-vdatu,
            i_item      TYPE roijnomiio .
      DATA: i_order TYPE symsgv,
            i_return TYPE swd_return .
      DATA: i_vbak      TYPE vbak,
            i_vbap      TYPE vbap,
            i_ekko      TYPE ekko,
            i_ekpo      TYPE ekpo,
            i_bsoh      TYPE bapisdhd1,
            i_bsohx     TYPE bapisdhd1x,
            i_bpoh      TYPE bapimepoheader,
            i_bpohx     TYPE bapimepoheaderx,
            i_vbeln     TYPE vbeln_va,
            i_posnr     TYPE posnr_va,
            i_contr     TYPE vbeln_va,
            i_conit     TYPE posnr_va,
            i_ebeln     TYPE ebeln,
            i_ebelp     TYPE ebelp,
            i_pargr     TYPE pargr,
            i_thead     TYPE thead,
            i_line      TYPE tline,
            i_note      TYPE txw_note,
            i_new_vbeln TYPE vbeln_va,
            i_new_ebeln TYPE ebeln,
            i_wa_bsoi   TYPE bapisditm,
            i_wa_bsoix  TYPE bapisditmx,
            i_wa_bsop   TYPE bapiparnr,
            i_wa_bsos   TYPE bapischdl,
            i_wa_bsosx  TYPE bapischdlx,
            i_wa_vbpa   TYPE vbpa,
            i_wa_vbkd   TYPE vbkd,
            i_wa_bpoi   TYPE bapimepoitem,
            i_wa_bpoix  TYPE bapimepoitemx,
            i_wa_bpos   TYPE bapimeposchedule,
            i_wa_bposx  TYPE bapimeposchedulx,
            i_wa_bpop   TYPE bapiekkop,
            i_wa_ekpa   TYPE ekpa,
            i_message   TYPE char72,
            i_bapiretn  TYPE bapiret2,
            i_bapiret2  TYPE TABLE OF bapiret2 INITIAL SIZE 1,
            i_vbpa      TYPE TABLE OF vbpa INITIAL SIZE 1,
            i_vbkd      TYPE TABLE OF vbkd INITIAL SIZE 1,
            i_ekpa      TYPE TABLE OF ekpa INITIAL SIZE 1,
            i_bsoi      TYPE TABLE OF bapisditm INITIAL SIZE 1,
            i_bsoix     TYPE TABLE OF bapisditmx INITIAL SIZE 1,
            i_bsos      TYPE TABLE OF bapischdl INITIAL SIZE 1,
            i_bsosx     TYPE TABLE OF bapischdlx INITIAL SIZE 1,
            i_bsop      TYPE TABLE OF bapiparnr INITIAL SIZE 1,
            i_bpoi      TYPE TABLE OF bapimepoitem INITIAL SIZE 1,
            i_bpoix     TYPE TABLE OF bapimepoitemx INITIAL SIZE 1,
            i_bpos      TYPE TABLE OF bapimeposchedule INITIAL SIZE 1,
            i_bposx     TYPE TABLE OF bapimeposchedulx INITIAL SIZE 1,
            i_bpop      TYPE TABLE OF bapiekkop INITIAL SIZE 1,
            i_text_tab  TYPE TABLE OF tline INITIAL SIZE 1,
            i_line_tab  TYPE TABLE OF tline INITIAL SIZE 1,
            i_txw_note  TYPE TABLE OF txw_note INITIAL SIZE 1,
            i_oij_el_doc_mot TYPE oij_el_doc_mot .
      CONSTANTS: c_char_c VALUE 'C',
                 c_char_e VALUE 'E',
                 c_char_p VALUE 'P',
                 c_char_g VALUE 'G',
                 c_char_i VALUE 'I',
                 c_char_s VALUE 'S',
                 c_char_x VALUE 'X',
                 c_zsw(3) VALUE 'ZSW',
                 c_nomit_stat(4) VALUE 'ZDNY' .
      DATA : lv_nomtk_split        TYPE oij_nomtk.
      DATA : i_order_split_create  TYPE TABLE OF zsws_order_split.
      DATA : wa_order_split_create TYPE zsws_order_split.
      LOOP AT i_order_split_create INTO wa_order_split_create.
        IF NOT i_create_order IS INITIAL .
          CLEAR: i_create_order .
              MOVE: wa_order_split_create-docnr  TO i_ebeln,
                    wa_order_split_create-docitm TO i_ebelp .
              CALL FUNCTION 'ME_EKKO_SINGLE_READ'
                   EXPORTING
                        pi_ebeln         = i_ebeln
                   IMPORTING
                        po_ekko          = i_ekko
                   EXCEPTIONS
                        no_records_found = 1
                        OTHERS           = 2.
              IF sy-subrc <> 0 .
              ENDIF .
    Fill PO Header
              i_bpoh-comp_code   = i_ekko-bukrs .
              i_bpoh-doc_type    = i_ekko-bsart .
              i_bpoh-vendor      = i_ekko-lifnr .
              i_bpoh-langu       = i_ekko-spras .
              i_bpoh-pmnttrms    = i_ekko-zterm .
              i_bpoh-purch_org   = i_ekko-ekorg .
              i_bpoh-pur_group   = i_ekko-ekgrp .
              i_bpoh-currency    = i_ekko-waers .
              i_bpoh-agreement   = i_ekko-konnr .
              i_bpoh-incoterms1  = i_ekko-inco1 .
              i_bpoh-incoterms2  = i_ekko-inco2 .
    Fill PO update indicator 'X'
              i_bpohx-comp_code  = c_char_x .
              i_bpohx-doc_type   = c_char_x .
              i_bpohx-vendor     = c_char_x .
              i_bpohx-langu      = c_char_x .
              i_bpohx-pmnttrms   = c_char_x .
              i_bpohx-purch_org  = c_char_x .
              i_bpohx-pur_group  = c_char_x .
              i_bpohx-currency   = c_char_x .
              i_bpohx-agreement  = c_char_x .
              i_bpohx-incoterms1 = c_char_x .
              i_bpohx-incoterms2 = c_char_x .
              CALL FUNCTION 'ME_EKPO_SINGLE_READ'
                   EXPORTING
                        pi_ebeln         = i_ebeln
                        pi_ebelp         = i_ebelp
                   IMPORTING
                        po_ekpo          = i_ekpo
                   EXCEPTIONS
                        no_records_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 .
    Fill PO Item
              i_wa_bpoi-po_item    = i_ekpo-ebelp .
              i_wa_bpoi-material   = i_ekpo-matnr .
              i_wa_bpoi-plant      = i_ekpo-werks .
              i_wa_bpoi-stge_loc   = i_ekpo-lgort .
              i_wa_bpoi-quantity   = wa_order_split_create-qty_acptd .
              i_wa_bpoi-po_unit    = i_ekpo-meins .
              i_wa_bpoi-tax_code   = i_ekpo-mwskz .
              i_wa_bpoi-val_type   = i_ekpo-bwtar .
              i_wa_bpoi-item_cat   = i_ekpo-pstyp .
              i_wa_bpoi-acctasscat = i_ekpo-knttp .
              i_wa_bpoi-agreement  = i_ekpo-konnr .
              i_wa_bpoi-agmt_item  = i_ekpo-ktpnr .
              APPEND i_wa_bpoi TO i_bpoi .
    Fill PO Item update indicator 'X'
              i_wa_bpoix-po_item    = i_ekpo-ebelp .
              i_wa_bpoix-po_itemx   = c_char_x .
              i_wa_bpoix-material   = c_char_x .
              i_wa_bpoix-plant      = c_char_x .
              i_wa_bpoix-stge_loc   = c_char_x .
              i_wa_bpoix-quantity   = c_char_x .
              i_wa_bpoix-po_unit    = c_char_x .
              i_wa_bpoix-tax_code   = c_char_x .
              i_wa_bpoix-val_type   = c_char_x .
              i_wa_bpoix-item_cat   = c_char_x .
              i_wa_bpoix-acctasscat = c_char_x .
              i_wa_bpoix-agreement  = c_char_x .
              i_wa_bpoix-agmt_item  = c_char_x .
              APPEND i_wa_bpoix TO i_bpoix .
    Fill PO Item Schedule
              i_wa_bpos-po_item       = i_ekpo-ebelp .
              i_wa_bpos-sched_line    = '0001' .
              i_wa_bpos-delivery_date = wa_order_split_create-dly_date .
              i_wa_bpos-quantity      = wa_order_split_create-qty_acptd .
              APPEND i_wa_bpos TO i_bpos .
    Fill PO Item schedule update indicator 'X'
              i_wa_bposx-po_item       = i_ekpo-ebelp .
              i_wa_bposx-sched_line    = '0001' .
              i_wa_bposx-delivery_date = c_char_x .
              i_wa_bposx-quantity      = c_char_x .
              APPEND i_wa_bposx TO i_bposx .
              CLEAR: i_pargr .
              SELECT SINGLE pargr
                INTO i_pargr
                FROM t161
               WHERE bstyp = i_ekko-bstyp
                 AND bsart = i_ekko-bsart .
              CLEAR i_ekpa[].
              CALL FUNCTION 'MM_READ_PARTNERS'
                   EXPORTING
                        application = c_char_p
                        ebeln       = i_ebeln
                        bstyp       = i_ekko-bstyp
                        pargr       = i_pargr
                   TABLES
                        x_ekpa      = <b>i_ekpa[].</b>
              LOOP AT i_ekpa INTO i_wa_ekpa .
                i_wa_bpop-partnerdesc = i_wa_ekpa-parvw .
                i_wa_bpop-langu = sy-langu .
                IF NOT i_wa_ekpa-lifn2 IS INITIAL .
                  i_wa_bpop-buspartno = i_wa_ekpa-lifn2 .
                ELSE .
                  i_wa_bpop-buspartno = i_wa_ekpa-parnr .
                ENDIF .
                APPEND i_wa_bpop TO i_bpop .
                CLEAR: i_wa_ekpa, i_wa_bpop .
              ENDLOOP .
              CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.
              CALL FUNCTION 'BAPI_PO_CREATE1'
                   EXPORTING
                        poheader         = i_bpoh
                        poheaderx        = i_bpohx
                   IMPORTING
                        exppurchaseorder = i_new_ebeln
                   TABLES
                        return           = i_bapiret2
                    <b>    poitem           = i_bpoi[]
                        poitemx          = i_bpoix[]
                        poschedule       = i_bpos[]
                        poschedulex      = i_bposx[].</b>
    it should be only i_bpoi, i_bpoix, i_bpos, i_bposx but not  i_bpoi[], i_bpoix[], i_bpos[], i_bposx[].
    CHange the code as follows:
    DATA: i_insert,
            i_create_order,
            i_cycle     TYPE cycle,
            i_qty_acpt  TYPE dzmeng,
            i_dly_date  TYPE vbak-vdatu,
            i_item      TYPE roijnomiio .
      DATA: i_order TYPE symsgv,
            i_return TYPE swd_return .
      DATA: i_vbak      TYPE vbak,
            i_vbap      TYPE vbap,
            i_ekko      TYPE ekko,
            i_ekpo      TYPE ekpo,
            i_bsoh      TYPE bapisdhd1,
            i_bsohx     TYPE bapisdhd1x,
            i_bpoh      TYPE bapimepoheader,
            i_bpohx     TYPE bapimepoheaderx,
            i_vbeln     TYPE vbeln_va,
            i_posnr     TYPE posnr_va,
            i_contr     TYPE vbeln_va,
            i_conit     TYPE posnr_va,
            i_ebeln     TYPE ebeln,
            i_ebelp     TYPE ebelp,
            i_pargr     TYPE pargr,
            i_thead     TYPE thead,
            i_line      TYPE tline,
            i_note      TYPE txw_note,
            i_new_vbeln TYPE vbeln_va,
            i_new_ebeln TYPE ebeln,
            i_wa_bsoi   TYPE bapisditm,
            i_wa_bsoix  TYPE bapisditmx,
            i_wa_bsop   TYPE bapiparnr,
            i_wa_bsos   TYPE bapischdl,
            i_wa_bsosx  TYPE bapischdlx,
            i_wa_vbpa   TYPE vbpa,
            i_wa_vbkd   TYPE vbkd,
            i_wa_bpoi   TYPE bapimepoitem,
            i_wa_bpoix  TYPE bapimepoitemx,
            i_wa_bpos   TYPE bapimeposchedule,
            i_wa_bposx  TYPE bapimeposchedulx,
            i_wa_bpop   TYPE bapiekkop,
            i_wa_ekpa   TYPE ekpa,
            i_message   TYPE char72,
            i_bapiretn  TYPE bapiret2,
            i_bapiret2  TYPE TABLE OF bapiret2 INITIAL SIZE 1,
            i_vbpa      TYPE TABLE OF vbpa INITIAL SIZE 1,
            i_vbkd      TYPE TABLE OF vbkd INITIAL SIZE 1,
            i_ekpa      TYPE TABLE OF ekpa INITIAL SIZE 1,
            i_bsoi      TYPE TABLE OF bapisditm INITIAL SIZE 1,
            i_bsoix     TYPE TABLE OF bapisditmx INITIAL SIZE 1,
            i_bsos      TYPE TABLE OF bapischdl INITIAL SIZE 1,
            i_bsosx     TYPE TABLE OF bapischdlx INITIAL SIZE 1,
            i_bsop      TYPE TABLE OF bapiparnr INITIAL SIZE 1,
            i_bpoi      TYPE TABLE OF bapimepoitem INITIAL SIZE 1,
            i_bpoix     TYPE TABLE OF bapimepoitemx INITIAL SIZE 1,
            i_bpos      TYPE TABLE OF bapimeposchedule INITIAL SIZE 1,
            i_bposx     TYPE TABLE OF bapimeposchedulx INITIAL SIZE 1,
            i_bpop      TYPE TABLE OF bapiekkop INITIAL SIZE 1,
            i_text_tab  TYPE TABLE OF tline INITIAL SIZE 1,
            i_line_tab  TYPE TABLE OF tline INITIAL SIZE 1,
            i_txw_note  TYPE TABLE OF txw_note INITIAL SIZE 1,
            i_oij_el_doc_mot TYPE oij_el_doc_mot .
      CONSTANTS: c_char_c VALUE 'C',
                 c_char_e VALUE 'E',
                 c_char_p VALUE 'P',
                 c_char_g VALUE 'G',
                 c_char_i VALUE 'I',
                 c_char_s VALUE 'S',
                 c_char_x VALUE 'X',
                 c_zsw(3) VALUE 'ZSW',
                 c_nomit_stat(4) VALUE 'ZDNY' .
      DATA : lv_nomtk_split        TYPE oij_nomtk.
      DATA : i_order_split_create  TYPE TABLE OF zsws_order_split.
      DATA : wa_order_split_create TYPE zsws_order_split.
      LOOP AT i_order_split_create INTO wa_order_split_create.
        IF NOT i_create_order IS INITIAL .
          CLEAR: i_create_order .
              MOVE: wa_order_split_create-docnr  TO i_ebeln,
                    wa_order_split_create-docitm TO i_ebelp .
              CALL FUNCTION 'ME_EKKO_SINGLE_READ'
                   EXPORTING
                        pi_ebeln         = i_ebeln
                   IMPORTING
                        po_ekko          = i_ekko
                   EXCEPTIONS
                        no_records_found = 1
                        OTHERS           = 2.
              IF sy-subrc <> 0 .
              ENDIF .
    Fill PO Header
              i_bpoh-comp_code   = i_ekko-bukrs .
              i_bpoh-doc_type    = i_ekko-bsart .
              i_bpoh-vendor      = i_ekko-lifnr .
              i_bpoh-langu       = i_ekko-spras .
              i_bpoh-pmnttrms    = i_ekko-zterm .
              i_bpoh-purch_org   = i_ekko-ekorg .
              i_bpoh-pur_group   = i_ekko-ekgrp .
              i_bpoh-currency    = i_ekko-waers .
              i_bpoh-agreement   = i_ekko-konnr .
              i_bpoh-incoterms1  = i_ekko-inco1 .
              i_bpoh-incoterms2  = i_ekko-inco2 .
    Fill PO update indicator 'X'
              i_bpohx-comp_code  = c_char_x .
              i_bpohx-doc_type   = c_char_x .
              i_bpohx-vendor     = c_char_x .
              i_bpohx-langu      = c_char_x .
              i_bpohx-pmnttrms   = c_char_x .
              i_bpohx-purch_org  = c_char_x .
              i_bpohx-pur_group  = c_char_x .
              i_bpohx-currency   = c_char_x .
              i_bpohx-agreement  = c_char_x .
              i_bpohx-incoterms1 = c_char_x .
              i_bpohx-incoterms2 = c_char_x .
              CALL FUNCTION 'ME_EKPO_SINGLE_READ'
                   EXPORTING
                        pi_ebeln         = i_ebeln
                        pi_ebelp         = i_ebelp
                   IMPORTING
                        po_ekpo          = i_ekpo
                   EXCEPTIONS
                        no_records_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 .
    Fill PO Item
              i_wa_bpoi-po_item    = i_ekpo-ebelp .
              i_wa_bpoi-material   = i_ekpo-matnr .
              i_wa_bpoi-plant      = i_ekpo-werks .
              i_wa_bpoi-stge_loc   = i_ekpo-lgort .
              i_wa_bpoi-quantity   = wa_order_split_create-qty_acptd .
              i_wa_bpoi-po_unit    = i_ekpo-meins .
              i_wa_bpoi-tax_code   = i_ekpo-mwskz .
              i_wa_bpoi-val_type   = i_ekpo-bwtar .
              i_wa_bpoi-item_cat   = i_ekpo-pstyp .
              i_wa_bpoi-acctasscat = i_ekpo-knttp .
              i_wa_bpoi-agreement  = i_ekpo-konnr .
              i_wa_bpoi-agmt_item  = i_ekpo-ktpnr .
              APPEND i_wa_bpoi TO i_bpoi .
    Fill PO Item update indicator 'X'
              i_wa_bpoix-po_item    = i_ekpo-ebelp .
              i_wa_bpoix-po_itemx   = c_char_x .
              i_wa_bpoix-material   = c_char_x .
              i_wa_bpoix-plant      = c_char_x .
              i_wa_bpoix-stge_loc   = c_char_x .
              i_wa_bpoix-quantity   = c_char_x .
              i_wa_bpoix-po_unit    = c_char_x .
              i_wa_bpoix-tax_code   = c_char_x .
              i_wa_bpoix-val_type   = c_char_x .
              i_wa_bpoix-item_cat   = c_char_x .
              i_wa_bpoix-acctasscat = c_char_x .
              i_wa_bpoix-agreement  = c_char_x .
              i_wa_bpoix-agmt_item  = c_char_x .
              APPEND i_wa_bpoix TO i_bpoix .
    Fill PO Item Schedule
              i_wa_bpos-po_item       = i_ekpo-ebelp .
              i_wa_bpos-sched_line    = '0001' .
              i_wa_bpos-delivery_date = wa_order_split_create-dly_date .
              i_wa_bpos-quantity      = wa_order_split_create-qty_acptd .
              APPEND i_wa_bpos TO i_bpos .
    Fill PO Item schedule update indicator 'X'
              i_wa_bposx-po_item       = i_ekpo-ebelp .
              i_wa_bposx-sched_line    = '0001' .
              i_wa_bposx-delivery_date = c_char_x .
              i_wa_bposx-quantity      = c_char_x .
              APPEND i_wa_bposx TO i_bposx .
              CLEAR: i_pargr .
              SELECT SINGLE pargr
                INTO i_pargr
                FROM t161
               WHERE bstyp = i_ekko-bstyp
                 AND bsart = i_ekko-bsart .
              CLEAR i_ekpa[].
              CALL FUNCTION 'MM_READ_PARTNERS'
                   EXPORTING
                        application = c_char_p
                        ebeln       = i_ebeln
                        bstyp       = i_ekko-bstyp
                        pargr       = i_pargr
                   TABLES
                        x_ekpa      = i_ekpa.
              LOOP AT i_ekpa INTO i_wa_ekpa .
                i_wa_bpop-partnerdesc = i_wa_ekpa-parvw .
                i_wa_bpop-langu = sy-langu .
                IF NOT i_wa_ekpa-lifn2 IS INITIAL .
                  i_wa_bpop-buspartno = i_wa_ekpa-lifn2 .
                ELSE .
                  i_wa_bpop-buspartno = i_wa_ekpa-parnr .
                ENDIF .
                APPEND i_wa_bpop TO i_bpop .
                CLEAR: i_wa_ekpa, i_wa_bpop .
              ENDLOOP .
              CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.
              CALL FUNCTION 'BAPI_PO_CREATE1'
                   EXPORTING
                        poheader         = i_bpoh
                        poheaderx        = i_bpohx
                   IMPORTING
                        exppurchaseorder = i_new_ebeln
                   TABLES
                        return           = i_bapiret2
                        poitem           = i_bpoi
                        poitemx          = i_bpoix
                        poschedule       = i_bpos
                        poschedulex      = i_bposx.
              i_order = i_new_ebeln .
              SHIFT i_order LEFT DELETING LEADING '0' .
              i_return-errortype = c_char_i .
              i_return-workarea  = c_zsw .
              i_return-message   = '064' .
              i_return-variable1 = i_order .
            loop at i_bapiret2 into i_bapiretn where type ca 'EAX' .
            append i_bapiretn to t_bapi_return .
          endloop .
          if t_bapi_return[] is initial .
             i_create_order = c_char_x .
               CALL FUNCTION 'SWD_POPUP_MESSAGE_SEND'
                   EXPORTING
                        act_return = i_return. "Popup with new PO no.
          ENDCASE .                                     " Docind
        ENDIF .
      ENDLOOP.

  • Purchase Order

    Hi all,
    i have two doubts related to the purchase order.
    1. How to know the Status of the purchase order
    ex: Open , Closed
    2. How to get the Purchasing Quantity (KOMV-KAWRT)
    Please Advice me..
    Many thanks for all of your help.
    Regards,
    Lakshma.

    Hi
    Here is the code to find out the open purchase order.
    List of open purchase orders for a given plant/delivery period      *
      A purchase order is open when the delivery completed indicator = ' '*(field elikz.ekpo = space)
    Tables
    TABLES: EKKO,                          "Purchase order - header"
            EKPO,                          "Purchase order - lines"
            EKET,                          "Purchase order - delivery date"
            EKBE,                          "Purchase order - history
            LFA1,                          "Supplier - general info"
            STXH,                          "Text table - header info"
            T001W,                         "Plant description table
            MARA,                          "Material master
            MAKT,                          "Material description table
            T163X.
    DATA: BEGIN OF TXTF_HEADER.            "Purchase order header texts
            INCLUDE STRUCTURE THEAD.
    DATA: END OF TXTF_HEADER.
    DATA: BEGIN OF TXTF_LINES OCCURS 2.    "Purchase order header texts
            INCLUDE STRUCTURE TLINE.
    DATA: END OF TXTF_LINES.
    DATA: WNAME(70),
          WLPEIN(1),
          WEINDT(10),
          WMENGE LIKE EKET-MENGE,
          WBISMT LIKE MARA-BISMT,
          W_HISTORY(1).
    SELECT-OPTIONS : S-EINDT FOR EKET-EINDT.
    SELECT-OPTIONS : S-WAERS FOR EKKO-WAERS.
    FIELD-GROUPS : HEADER, GROUP1.
    INSERT EKPO-WERKS
           EKET-LPEIN
           EKET-EINDT
           EKPO-EBELN
           EKPO-EBELP
           EKPO-MATNR
           EKKO-WAERS
           EKKO-WKURS
           EKKO-KUFIX
           EKKO-BEDAT INTO HEADER.
    INSERT EKKO-SPRAS
           EKKO-EKGRP
           T163X-EPSTP
           EKPO-TXZ01
           EKPO-KONNR
           EKPO-KTPNR
           EKET-MENGE
           EKPO-MEINS
           EKPO-LGORT
           EKET-WEMNG
           EKPO-NETPR
           EKPO-PEINH
           EKPO-BPRME
           EKPO-NETWR
           EKKO-LIFNR
           W_HISTORY  INTO GROUP1.
    General data
    INITIALIZATION.
    EM_SELKB = 'X'.
    EM_SELKK = ' '.
    EM_SELKL = ' '.
    EM_SELKA = ' '.
    Start of program
    START-OF-SELECTION.
    Read purchase order items for this plant with delivery completed
    indicator = space
    GET EKPO.
      SELECT * FROM T163X WHERE SPRAS EQ SY-LANGU
                          AND   PSTYP EQ EKPO-PSTYP.
        EXIT.
      ENDSELECT.
      IF SY-SUBRC NE 0.
        T163X-EPSTP = EKPO-PSTYP.
      ENDIF.
      CHECK S-WAERS.
    GET EKET.
      CHECK S-EINDT.
      IF EKPO-ELIKZ = ' ' AND EKPO-LOEKZ = ' '.
       if eket-wemng = 0 and eket-wamng = 0.
            CLEAR : W_HISTORY.
            SELECT * FROM EKBE WHERE EBELN = EKPO-EBELN
                               AND   EBELP = EKPO-EBELP.
               EXIT.
            ENDSELECT.
            IF SY-SUBRC = 0.
               MOVE '*' TO W_HISTORY.
            ENDIF.
            EXTRACT GROUP1.
       endif.
      ENDIF.
    END-OF-SELECTION.
    Sort by plant - delivery date
      SORT.
      FORMAT INTENSIFIED OFF.                      "PPL26041995
      LOOP.
      read vendor
        SELECT SINGLE * FROM  LFA1
               WHERE  LIFNR       = EKKO-LIFNR.
        IF SY-SUBRC <> 0.
          MOVE '???' TO LFA1-NAME1.
        ENDIF.
      search old materialnumber if needed
        SELECT SINGLE * FROM  MARA
               WHERE  MATNR       = EKPO-MATNR.
        IF SY-SUBRC <> 0.
          MOVE '???' TO WBISMT.
        ELSE.
          MOVE MARA-BISMT TO WBISMT.
        ENDIF.
      read purchase order header text - first 2 lines of delivery text
        CLEAR TXTF_LINES.
        CLEAR TXTF_HEADER.
        REFRESH TXTF_LINES.
        MOVE EKPO-EBELN TO WNAME.
        MOVE EKPO-EBELP TO WNAME+10.
        SELECT SINGLE * FROM STXH
             WHERE TDID     = 'F04' AND
                   TDOBJECT = 'EKPO' AND
                   TDNAME   = WNAME AND
                   TDSPRAS  = EKKO-SPRAS.
        IF SY-SUBRC = 0.
          CALL FUNCTION 'READ_TEXT'
               EXPORTING
                    ID              = 'F04 '
                    LANGUAGE        = EKKO-SPRAS
                    OBJECT          = 'EKPO      '
                    NAME            = WNAME
               IMPORTING
                    HEADER          = TXTF_HEADER
               TABLES
                    LINES           = TXTF_LINES
               EXCEPTIONS
                    ID              = 01
                    LANGUAGE        = 02
                    NAME            = 03
                    NOT_FOUND       = 04
                    OBJECT          = 05
                    REFERENCE_CHECK = 06.
        ENDIF.
        READ TABLE TXTF_LINES INDEX 1.
    print list
        RESERVE 3 LINES.
        AT NEW EKPO-WERKS.
          SELECT SINGLE * FROM T001W WHERE WERKS = EKPO-WERKS.
          IF SY-SUBRC NE 0. CLEAR T001W. ENDIF.
          NEW-PAGE.
        ENDAT.
        CLEAR WEINDT.
        CLEAR WLPEIN.
        AT NEW EKET-EINDT.
          CALL FUNCTION 'PERIOD_AND_DATE_CONVERT_OUTPUT'
               EXPORTING
                    INTERNAL_DATE   = EKET-EINDT
                    INTERNAL_PERIOD = EKET-LPEIN
               IMPORTING
                    EXTERNAL_DATE   = WEINDT
                    EXTERNAL_PERIOD = WLPEIN.
        ENDAT.
        WRITE: /    WLPEIN,
                  3 WEINDT,
                 13 SY-VLINE(1),
                 14 EKPO-EBELN,
                 25 EKPO-EBELP+3(2),
                 28 T163X-EPSTP,
                 31 EKPO-MATNR,
    add old material number
               52 wbismt,
                 62 EKET-MENGE,
                 80 EKPO-MEINS,
                 85 EKKO-LIFNR,
                116 SY-VLINE(1),
              127 txtf_lines-tdline(40),
                118 EKKO-WAERS,
                122 EKPO-NETPR,
                142 EKPO-PEINH,
                152 EKPO-BPRME,
                157 EKPO-NETWR,
                177 EKKO-WKURS,
                190 EKKO-KUFIX,
                193 EKKO-BEDAT,
                206 EKKO-EKGRP,
                211 SY-VLINE,
                216 W_HISTORY.
    add storage location
              171 sy-vline, ekpo-lgort,
              178 sy-vline.
        READ TABLE TXTF_LINES INDEX 2.
        SELECT SINGLE * FROM MAKT WHERE MATNR = EKPO-MATNR
                                  AND   SPRAS = SY-LANGU.
        IF SY-SUBRC NE 0.
          MOVE EKPO-TXZ01 TO MAKT-MAKTX.
        ENDIF.
        WMENGE = EKET-MENGE - EKET-WEMNG.
        IF EKPO-KONNR = SPACE.
          WRITE:/13 SY-VLINE(1),
                  MAKT-MAKTX(30) UNDER EKPO-MATNR,
                  WMENGE     UNDER EKET-MENGE,
                  LFA1-NAME1 UNDER EKKO-LIFNR,
            126 sy-vline(1),
                txtf_lines-tdline(40) under txtf_lines-tdline,
              116 SY-VLINE(1),
            171 sy-vline(1),
              211 SY-VLINE(1).
        ELSE.
          WRITE:/13 SY-VLINE(1),
                ekpo-konnr under ekpo-ebeln,
                ekpo-ktpnr+3(2) under ekpo-ebelp,
                  MAKT-MAKTX(30) UNDER EKPO-MATNR,
                  WMENGE     UNDER EKET-MENGE,
                  LFA1-NAME1 UNDER EKKO-LIFNR,
            126 sy-vline(1),
                txtf_lines-tdline(40) under txtf_lines-tdline,
            167 sy-vline(1),
              116 SY-VLINE(1),
              211 SY-VLINE(1).
        ENDIF.
        ULINE /13(207).
        AT END OF EKET-EINDT.
           ULINE 1(12).
        ENDAT.
      ENDLOOP.
    print delivery date with first line.
    TOP-OF-PAGE.
       CALL FUNCTION 'PERIOD_AND_DATE_CONVERT_OUTPUT'
            EXPORTING
                 INTERNAL_DATE   = EKET-EINDT
                 INTERNAL_PERIOD = EKET-LPEIN
            IMPORTING
                 EXTERNAL_DATE   = WEINDT
                 EXTERNAL_PERIOD = WLPEIN.
      CALL FUNCTION 'Z_PRINT_TITEL'               "PPL24041995
           EXPORTING PROGNAME = 'ZMCH0089'         "PPL24041995
                     TEXTTYPE = 'T'                "PPL24041995
                     ORG_PROGNAME = ' '
                     PARAM_1  = EKPO-WERKS                "PPL24041995
                     PARAM_2  = T001W-NAME2                "PPL24041995
                     PARAM_3  = ' '                "PPL24041995
                     PARAM_4  = ' '                "PPL24041995
                     PARAM_5  = ' '.               "PPL24041995
    Reward if helpful.
    Chandralekha

  • Purchase Order Report with Me22n.....Kindly help its

    Hi Friends
      Here is my requirement.
    I have developed a purchase order alv report, and it is working perfectly.Now i want to give a provision to the user to view the desired purchase order from the report itself by taking him to ME22n transaction.
    any kind of solution is welcom.
    Thanks a lot to all.
    Mrutyun
    Edited by: Vijay Babu Dudla on Dec 3, 2008 12:20 AM

    Hi Tripathy,
    this is simple. when you double click you need to capture the clicked record and then set the parameter ID and then call transaction.
    REPORT  ZTEST_ALV_CHECK                         .
    TYPE-POOLS: SLIS.
    DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
          IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          L_LAYOUT type slis_layout_alv,
          x_events type slis_alv_event,
          it_events type SLIS_T_EVENT.
    DATA: BEGIN OF ITAB OCCURS 0,
          VBELN LIKE VBAK-VBELN,
          POSNR LIKE VBAP-POSNR,
          CHK(1),
         END OF ITAB.
    SELECT VBELN
           POSNR
           FROM VBAP
           UP TO 20 ROWS
           INTO TABLE ITAB.
    X_FIELDCAT-FIELDNAME = 'CHK'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS = 1.
    X_FIELDCAT-INPUT = 'X'.
    X_FIELDCAT-EDIT = 'X'.
    X_FIELDCAT-CHECKBOX = 'X'.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'VBELN'.
    X_FIELDCAT-SELTEXT_L = 'VBELN'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS = 2.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'POSNR'.
    X_FIELDCAT-SELTEXT_L = 'POSNR'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS = 3.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    L_LAYOUT-window_titlebar = 'Popup window'.
      x_events-NAME = SLIS_EV_END_OF_PAGE.
      x_events-FORM = 'END_OF_PAGE'.
      APPEND x_events  TO iT_EVENTS.
      CLEAR x_events .
      x_events-NAME = SLIS_EV_TOP_OF_PAGE.
      x_events-FORM = 'TOP_OF_PAGE'.
      APPEND x_events  TO iT_EVENTS.
      CLEAR x_events .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM       = SY-REPID
        IS_LAYOUT                = L_LAYOUT
    <b>    I_CALLBACK_PF_STATUS_SET = 'STATUS'
        I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'</b>
        IT_FIELDCAT              = IT_FIELDCAT
        it_events                = it_events
    *    I_SCREEN_START_COLUMN    = 10
    *    I_SCREEN_START_LINE      = 1
    *    I_SCREEN_END_COLUMN      = 50
    *    I_SCREEN_END_LINE        = 20
      TABLES
        T_OUTTAB                 = ITAB
      EXCEPTIONS
        PROGRAM_ERROR            = 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.
    FORM TOP_OF_PAGE.
    * BREAK-POINT.
      WRITE: / 'TOP_OF_PAGE'.
    ENDFORM.
    FORM END_OF_PAGE.
    * BREAK-POINT.
      WRITE: / 'END_OF_PAGE'.
    ENDFORM.
    *&      Form  STATUS
    *       text
    *      -->P_EXTAB    text
    FORM STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.
    *- Pf status
      SET PF-STATUS 'STATUS'.
    ENDFORM.                 " STATUS
    *&      Form  USER_COMMAND
    *       text
    *      -->R_UCOMM      text
    *      -->RS_SELFIELD  text
    FORM USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                                   RS_SELFIELD TYPE SLIS_SELFIELD.
      case r_ucomm.
        when 'BACK' or 'CANC' or 'EXIT'.
          leave to screen 0.
        when '&IC1'.
          set parameter id 'AUN' field rs_selfield-value.
          call transaction 'VA03' and skip first screen.
      endcase.
    ENDFORM.                    "USER_COMMAND
    the above code takes you to Sales order Display VA03 similarly you should code,
    don't forget to set the pf-satus and user-command. and enable F2 key with &IC1.
    Regards
    vijay

  • Purchase Order History as a Report?

    Hi,
    I would like to follow the amounts of purchase orders, relevant goods receipt amounts and so on as shown in purchase order history on PO. But I need it as a report which could be seen as ALV type, and easily exported to excel.
    Is there such a standart report that I could follow purchase order-goods receipt quantities?
    Thanks in advance
    Irem

    hi,
    use MC$G - Puchasing values
    And MC$I - Puchasing quantities
    Or use ME87 - Aggregate PO history
    Regards
    Priyanka.P
    Edited by: Priyanka Paltanwale on May 13, 2009 12:57 PM

  • Upload purchase order

    Hai,
    how to upload the purchase order when one PO has three line items,
    another has 100 line items, and so on.
    can i use BAPI_PO_Create FM for this ?
    if it possible ,how to use ?
    Thanks & regards,
    Manikandan

    Check the following ex:
    Data Declaration for BAPI *****************
    data: begin of pohead occurs 10.
            include structure BAPIMEPOHEADER.
    data: end of pohead.
    data: begin of poheadx occurs 10.
            include structure BAPIMEPOHEADERX.
    data: end of poheadx.
    *EXPPURCHASEORDER
    data: BEGIN OF ponum.
            include structure BAPIMEPOHEADER.
    data: end of ponum.
    data: begin of poitem occurs 100.
            include structure BAPIMEPOITEM.
    data: end of poitem.
    data: begin of poitemx occurs 100.
            include structure BAPIMEPOITEMX.
    data: end of poitemx.
    data: begin of errmsg occurs 10.
            include structure bapiret2.
    data: end of errmsg.
    data : errflag.
    START-OF-SELECTION.
    PERFORM UPLOAD_DATA.
    *&      Form  UPLOAD_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM UPLOAD_DATA .
      data: p_fdir(200) type c .
      p_fdir = gfile.
      data: begin of it_filedir occurs 10.
              include structure salfldir.
      data: end of it_filedir.
    Get Current Directory Listing for OUT Dir
      call function 'RZL_READ_DIR_LOCAL'
        EXPORTING
          name     = p_fdir
        TABLES
          file_tbl = it_filedir.
      data: it_filedir1 like it_filedir occurs 0 with header line.
      loop at it_filedir.
        if it_filedir-name(4) = 'CPOR' or it_filedir-name(4) = 'cpor'.
          move it_filedir-name to it_filedir1-name.
          append it_filedir1.
        endif.
      endloop.
      IF IT_FILEDIR1[] IS INITIAL.
        STOP.
      ENDIF.
      REFRESH I_MSG1.
      CLEAR I_MSG1.
      loop at it_filedir1.
        REFRESH I_TAB.
        REFRESH I_TAB2.
        REFRESH I_TAB1.
        data: g_file(100) type c .
        name = it_filedir1-name.
        concatenate: gfile '\' name into g_file.
        data : i_tab1(200).
        OPEN DATASET g_file FOR INPUT IN TEXT MODE
                                         ENCODING DEFAULT
                                         IGNORING CONVERSION ERRORS.
        IF SY-SUBRC EQ 0.
          DO.
            READ DATASET g_file INTO i_tab1.
            if sy-subrc = 0.
              split i_tab1 at ',' into i_tab-verkf i_tab-verkf1 i_tab-lifnr
                        i_tab-ebelp1 i_tab-werks
                     i_tab-matnr i_tab-idnlf
                     i_tab-menge i_tab-bprme i_tab-lewed i_tab-netpr.
            else.
              exit.
            endif.
            APPEND i_tab.
            clear i_tab.
          ENDDO.
        ENDIF.
    *************** error testing*******************
        LOOP AT i_tab.
          MOVE-CORRESPONDING i_tab TO etab1.
          append etab1.
          clear etab1.
        ENDLOOP.
    *************** end error testing*******************
       DELETE DATASET g_file.
        CLOSE DATASET g_file.
        concatenate:
                    hfile '\' date1 '\' name into h_file.
        OPEN DATASET h_file FOR OUTPUT IN TEXT MODE
                                         ENCODING DEFAULT
                                         IGNORING CONVERSION ERRORS.
        IF SY-SUBRC EQ 0.
          LOOP AT I_TAB.
            CONCATENATE I_TAB-VERKF ',' I_TAB-VERKF1 ',' I_TAB-LIFNR ','
                        I_TAB-EBELP1 ',' I_TAB-WERKS ','  I_TAB-MATNR ','
                        I_TAB-IDNLF ',' I_TAB-MENGE ',' I_TAB-BPRME ','
                        I_TAB-LEWED ',' I_TAB-NETPR INTO I_TAB2.
            TRANSFER i_tab2 TO h_file.
          ENDLOOP.
        ENDIF.
        CLOSE DATASET h_file.
      MOVE I_TAB[] TO I_TAB3[].
      DELETE ADJACENT DUPLICATES FROM I_TAB COMPARING VERKF.
      loop at i_tab.
        refresh pohead.
        refresh poheadx.
        refresh poitem.
        refresh poitemX.
        pohead-DOC_TYPE = i_tab-bsart.
        pohead-VENDOR = i_tab-lifnr.
        pohead-PURCH_ORG = c_ekorg.
        pohead-CREAT_DATE = i_tab-verkf1.
        pohead-PUR_GROUP = c_ekgrp.
        pohead-COMP_CODE = c_bukrs.
        pohead-SALES_PERS = I_TAB-VERKF2.
        pohead-doc_date = sy-datum.
        pohead-langu = sy-langu.
        append pohead.
        poheadx-DOC_TYPE = c_x.
        poheadx-VENDOR = c_x.
        poheadx-PURCH_ORG = c_x.
        poheadx-PUR_GROUP = c_x.
        poheadx-COMP_CODE = c_x.
        poheadx-SALES_PERS = c_x.
        poheadx-doc_date = c_x.
        poheadx-langu = c_x.
        append poheadx.
        loop at i_tab3 WHERE VERKF = I_TAB-VERKF.
          poitem-PO_ITEM = i_tab3-ebelp1.
          poitem-MATERIAL = i_tab3-MATNR.
          poitem-QUANTITY = i_tab3-MENGE.
          poitem-PO_UNIT = i_tab3-BPRME.
          poitem-NET_PRICE = i_tab3-NETPR.
          poitem-PLANT = i_tab3-WERKS.
          poitem-GR_TO_DATE = i_tab3-LEWED.
         poitem-tax_code = c_x.
         poitem-item_cat = c_x.
         POITEM-ACCTASSCAT = c_x.
         poitem-AGREEMENT = i_tab3-ebeln.
         poitem-AGMT_ITEM = i_tab3-ebelp1.
          poitem-VEND_MAT = i_tab3-IDNLF.
          append poitem.
          poitemx-PO_ITEM = i_tab3-ebelp1.
          poitemx-MATERIAL = c_x.
          poitemx-QUANTITY = c_x.
          poitemx-PO_UNIT = c_x.
          poitemx-NET_PRICE = c_x.
          poitemx-PLANT = c_x.
          poitemx-GR_TO_DATE = c_x.
          poitemx-tax_code = c_x.
          poitemx-item_cat = c_x.
        POITEMx-ACCTASSCAT = c_x.
         poitemx-AGREEMENT = 'X'.
         poitemx-AGMT_ITEM = 'X'.
          poitemx-VEND_MAT = c_x.
          append poitemx.
        endloop.
        CALL FUNCTION 'BAPI_PO_CREATE1'
          EXPORTING
            POHEADER                    = pohead
       POHEADERX                    = poheadx
      POADDRVENDOR                 =
      TESTRUN                      =
      MEMORY_UNCOMPLETE            =
      MEMORY_COMPLETE              =
      POEXPIMPHEADER               =
      POEXPIMPHEADERX              =
      VERSIONS                     =
      NO_MESSAGING                 =
      NO_MESSAGE_REQ               =
      NO_AUTHORITY                 =
      NO_PRICE_FROM_PO             =
         IMPORTING
      EXPPURCHASEORDER             =
           EXPHEADER                    = ponum
      EXPPOEXPIMPHEADER            =
         TABLES
           RETURN                       = errmsg
           POITEM                       = poitem
       POITEMX                      = poitemx
      POADDRDELIVERY               =
      POSCHEDULE                   =
      POSCHEDULEX                  =
      POACCOUNT                    =
      POACCOUNTPROFITSEGMENT       =
      POACCOUNTX                   =
      POCONDHEADER                 =
      POCONDHEADERX                =
      POCOND                       =
      POCONDX                      =
      POLIMITS                     =
      POCONTRACTLIMITS             =
      POSERVICES                   =
      POSRVACCESSVALUES            =
      POSERVICESTEXT               =
      EXTENSIONIN                  =
      EXTENSIONOUT                 =
      POEXPIMPITEM                 =
      POEXPIMPITEMX                =
      POTEXTHEADER                 =
      POTEXTITEM                   =
      ALLVERSIONS                  =
      POPARTNER                    =
        clear errflag.
        loop at errmsg.
          if errmsg-type eq 'E'.
            write:/'Error in function', errmsg-message.
            errflag = 'X'.
          else.
            write:/ errmsg-message.
          endif.
        endloop.
        if errflag is initial.
          commit work and wait.
          if sy-subrc ne 0.
            write:/ 'Error in updating'.
            exit.
          else.
            write:/ ponum-PO_NUMBER, ponum-comp_code.
          endif.
        endif.
      endloop.
    ENDFORM.                    " UPLOAD_DATA

  • Developed a report which gives PO(Purchase Order) Pricing details.

    hi experts,
    please give me tables and fields for following report, and also exlain me briefly,
    Developed a report which gives PO(Purchase Order) Pricing details.
    thanks in advance,
    radhakrishna

    Hello Radhakrishna,
    you can use the function module
          CALL FUNCTION 'RV_PRICE_PRINT_HEAD'
            EXPORTING
              comm_head_i       = wa_komk
         LANGUAGE          = ' '
       IMPORTING
         COMM_HEAD_E       =
         COMM_MWSKZ        =
            TABLES
              tkomv             = gi_komv
              tkomvd            = gi_komvd.
    in wa_komk pass the condition record number.
    this you will get from your vbak table
    reward  points if helpful

  • Open items for purchase order its very urgent

    hi
    my requirement is to write extract program for purchase order(me21) to extract only open items.
    please provide sample code its very urgent.
    thanks in advance.
    points will be rewarded.
    thanks
    hari prasad reddy

    check the below report :
    REPORT ZMM_OPEN_PO_REPORT no standard page heading
                              line-size 255
                              message-id zwave.
    ======================================================================
    Program Name : ZMM_OPEN_PO_REPORT                                    *
    Description  : This report displays all Open PO Items and output     *
                   would be PO Number,Material number and so on          *
    Author       : Seshu                                                 *
    Date         : 01/24/2007                                            *
    MODIFICATION HISTORY                                                 *
    DATE    | AUTHOR   | CHANGE #   | DESCRIPTION OF MODIFICATION        *
    --|||--
    01/24/07| Seshu    | DEVK921979 | Initial                            *
    D A T A  D E C L A R A T I O N   P A R T                         ***
    type-pools
    type-pools : slis.
    Tables
    tables : ekko, " Purchase order Header
             ekpo, " Purchase order Item
             marc. " Material with Plant data
    Internal table for output.
    data : begin of i_output occurs 0,
           ebeln like ekko-ebeln,
           matnr like ekpo-matnr,
           end of i_output.
    ALV Data declaration.
    data : v_repid like sy-repid.
      ALV Function Module Variables
    DATA: gs_layout type slis_layout_alv,
          g_exit_caused_by_caller,
          gs_exit_caused_by_user type slis_exit_by_user.
    DATA: gt_fieldcat    type slis_t_fieldcat_alv,
          gs_print       type slis_print_alv,
          gt_events      type slis_t_event,
          gt_list_top_of_page type slis_t_listheader,
          g_status_set   type slis_formname value 'PF_STATUS_SET',
          g_user_command type slis_formname value 'USER_COMMAND',
          g_top_of_page  type slis_formname value 'TOP_OF_PAGE',
          g_top_of_list  type slis_formname value 'TOP_OF_LIST',
          g_end_of_list  type slis_formname value 'END_OF_LIST',
          g_variant LIKE disvariant,
          g_save(1) TYPE c,
          g_tabname_header TYPE slis_tabname,
          g_tabname_item   TYPE slis_tabname,
          g_exit(1) TYPE c,
          gx_variant LIKE disvariant.
    data : gr_layout_bck type slis_layout_alv.
    Ranges
    ranges r_eindt for eket-eindt.
    initialization.
    v_repid = sy-repid.
    start-of-selection.
    Get the data from EKKO ,EKPO and MARC Table
    perform get_data_tables.
    end-of-selection.
    display the data in the form of ALV
    perform display_data.
    *&      Form  get_data_tables
          Get the data from EKKO,EKPO and MARC Table
    FORM get_data_tables.
    clear : i_output.
    refresh : i_output.
    fill the dates in ranges
    r_eindt-low = sy-datum - 7.
    r_eindt-high = sy-datum + 14.
    r_eindt-option = 'BT'.
    r_eindt-sign = 'I'.
    append r_eindt.
    Get the data from EKKO,EKPO and EKET Tables
    select aebeln bmatnr into table i_output
                           from ekko as a inner join
                                ekpo as b on aebeln = bebeln
                                inner join marc as c on cmatnr = bmatnr
                                inner join mara as d on dmatnr = bmatnr
                                inner join eket as e on eebeln = aebeln
                                               and   eebelp = bebelp
                                where c~beskz = 'E'
                                and   c~werks = '1000'
                                and   d~mtart = 'FERT'
                                and   b~loekz = space
                                and   b~elikz = space
                                and   e~eindt in r_eindt.
    if sy-subrc ne 0.
    message e000(zwave) with 'No open purchase order found'.
    endif.
    ENDFORM.                    " get_data_tables
    *&      Form  display_data
          text
    FORM display_data.
    Fill the Fiedlcat
      PERFORM fieldcat_init  using gt_fieldcat[].
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
       I_INTERFACE_CHECK                 = ' '
       I_BYPASSING_BUFFER                =
       I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = v_repid
       I_CALLBACK_PF_STATUS_SET          = ' '
        I_CALLBACK_USER_COMMAND           = g_user_command
       I_CALLBACK_TOP_OF_PAGE            = ' '
       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
       I_CALLBACK_HTML_END_OF_LIST       = ' '
       I_STRUCTURE_NAME                  =
       I_BACKGROUND_ID                   = ' '
       I_GRID_TITLE                      =
       I_GRID_SETTINGS                   =
       IS_LAYOUT                         = gr_layout_bck
          IT_FIELDCAT                       = gt_fieldcat[]
       IT_EXCLUDING                      =
       IT_SPECIAL_GROUPS                 =
       IT_SORT                           =
       IT_FILTER                         =
       IS_SEL_HIDE                       =
       I_DEFAULT                         = 'X'
        I_SAVE                            = g_save
        IS_VARIANT                        =
       IT_EVENTS                         =
       IT_EVENT_EXIT                     =
       IS_PRINT                          =
       IS_REPREP_ID                      =
       I_SCREEN_START_COLUMN             = 0
       I_SCREEN_START_LINE               = 0
       I_SCREEN_END_COLUMN               = 0
       I_SCREEN_END_LINE                 = 0
       IT_ALV_GRAPHICS                   =
       IT_ADD_FIELDCAT                   =
       IT_HYPERLINK                      =
       I_HTML_HEIGHT_TOP                 =
       I_HTML_HEIGHT_END                 =
       IT_EXCEPT_QINFO                   =
    IMPORTING
       E_EXIT_CAUSED_BY_CALLER           =
       ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = i_output
       EXCEPTIONS
         PROGRAM_ERROR                     = 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.
    ENDFORM.                    " display_data
    *&      Form  fieldcat_init
          text
         -->P_GT_FIELDCAT[]  text
    FORM fieldcat_init USING  e01_lt_fieldcat type slis_t_fieldcat_alv.
      DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    Purchase order number
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'EBELN'.
      LS_FIELDCAT-ref_fieldname = 'EBELN'.
      LS_FIELDCAT-ref_tabname = 'EKKO'.
      LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.
      ls_fieldcat-seltext_L = 'Purchase Order'.
      ls_fieldcat-seltext_M = 'Purchase Order'.
      ls_fieldcat-seltext_S = 'Purchase Order'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Material #
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MATNR'.
      LS_FIELDCAT-ref_fieldname = 'MATNR'.
      LS_FIELDCAT-ref_tabname = 'EKPO'.
      LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.
      ls_fieldcat-seltext_L = 'Material'.
      ls_fieldcat-seltext_M = 'Material'.
      ls_fieldcat-seltext_S = 'Material'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    ENDFORM.                    " fieldcat_init

  • Can we create purchase order through report programming?

    hi experts.....
    can we create purchase order through report programming?If yes plz give me the thread details?

    Hi,
    Use this code in a program by using a BAPI function module
    Anothe rway is using classical/ALV report using call transaction from a report for changing the PO
    loop at i_header.
        header-ref_1         = i_header-legacy.
        headerx-ref_1        = c_x.
        header-doc_type      = i_header-bsart.
        headerx-doc_type     = c_x.
        header-comp_code     = i_header-bukrs.
        headerx-comp_code    = c_x.
        header-purch_org     = i_header-ekorg.
        headerx-purch_org    = c_x.
        header-pur_group     = i_header-ekgrp.
        headerx-pur_group    = c_x.
        header-vendor        = i_header-lifnr.
        headerx-vendor       = c_x.
        concatenate i_header-bedat+4(4)
                    i_header-bedat+0(2)
                    i_header-bedat+2(2)
                    into header-doc_date.
        headerx-doc_date     = c_x.
        header-created_by    = i_header-ernam.
        headerx-created_by   = c_x.
        header-currency      = i_header-waers.
        headerx-currency     = c_x.
        concatenate i_header-kdatb+4(4)
                    i_header-kdatb+0(2)
                    i_header-kdatb+2(2)
                    into header-vper_start.
        headerx-vper_start   = c_x.
        loop at i_items where legacy = i_header-legacy.
          item-po_item            =  i_items-ebelp.
          itemx-po_item           =  i_items-ebelp.
          itemx-po_itemx          =  c_x.
          if i_header-bsart = 'NB'.
            item-material            =  i_items-ematn.
            itemx-material           =  c_x.
            schedule-quantity        =  i_items-menge * 1000.
            schedulex-quantity       =  c_x.
          else.
            item-short_text          = i_items-ematn.
            itemx-short_text         = c_x.
            item-matl_group          = '1000'.
            itemx-matl_group         = c_x.
            schedule-quantity        =  '1'.
            schedulex-quantity       =  c_x.
          endif.
          item-plant               =  i_items-werks.
          itemx-plant              =  c_x.
          schedule-po_item         = i_items-ebelp.
          schedule-sched_line      = '1'.
          schedulex-po_item        = i_items-ebelp.
          schedulex-sched_line     = '1'.
          schedulex-po_itemx       = c_x.
          schedulex-sched_linex    = c_x.
          concatenate  i_items-eildt+0(2)
                       i_items-eildt+2(2)
                       i_items-eildt+4(4)
                       into schedule-delivery_date.
          schedulex-delivery_date  =  c_x.
          item-price_unit          =  i_items-peinh * 100.
          itemx-price_unit         =  c_x.
          item-tax_code            =  i_items-mwskz.
          itemx-tax_code           =  c_x.
          item-shipping            =  i_items-evers.
          itemx-shipping           =  c_x.
          account-po_item          = i_items-ebelp.
          accountx-po_item         = i_items-ebelp.
          accountx-po_itemx        = c_x.
          if i_header-bsart = 'FO'.
            item-pckg_no  = sy-tabix.
            itemx-pckg_no = 'X'.
            limits-pckg_no        = sy-tabix.
            limits-limit          = i_items-overalllimit.
            limits-exp_value      = i_items-expectedoverall.
            posrvaccessvalues-pckg_no    = sy-tabix.
            posrvaccessvalues-line_no    = '0'.
            posrvaccessvalues-serno_line = '00'.
            posrvaccessvalues-percentage = '100.0'.
            posrvaccessvalues-serial_no  = '01'.
            account-serial_no     = '1'.
            accountx-serial_no    = '1'.
            accountx-serial_nox   = c_x.
            account-quantity  = '1'.
            accountx-quantity = c_x.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = i_items-kostl
              importing
                output = account-costcenter.
            accountx-costcenter   = c_x.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = i_items-sakto
              importing
                output = account-gl_account.
            accountx-gl_account   = c_x.
            item-acctasscat       = i_items-knttp.
            itemx-acctasscat      = c_x.
            item-item_cat         = i_items-epstp.
            itemx-item_cat        = c_x.
          endif.
          append:item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
          clear :item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
        endloop.
        call function 'BAPI_PO_CREATE1'
          exporting
            poheader                     = header
            poheaderx                    = headerx
    *   POADDRVENDOR                 =
    *   TESTRUN                      =
    *   MEMORY_UNCOMPLETE            =
    *   MEMORY_COMPLETE              =
    *   POEXPIMPHEADER               =
    *   POEXPIMPHEADERX              =
    *   VERSIONS                     =
    *   NO_MESSAGING                 =
    *   NO_MESSAGE_REQ               =
    *   NO_AUTHORITY                 =
    *   NO_PRICE_FROM_PO             =
            importing
            exppurchaseorder             = ponumber
    *   EXPHEADER                    =
    *   EXPPOEXPIMPHEADER            =
            tables
            return                       = return
            poitem                       = item
            poitemx                      = itemx
    *   POADDRDELIVERY               =
            poschedule                   = schedule
            poschedulex                  = schedulex
            poaccount                    = account
    *   POACCOUNTPROFITSEGMENT       =
            poaccountx                   = accountx
    *   POCONDHEADER                 =
    *   POCONDHEADERX                =
    *   POCOND                       =
    *   POCONDX                      =
            polimits                     = limits
    *   POCONTRACTLIMITS             =
    *   POSERVICES                   =
       posrvaccessvalues            = posrvaccessvalues.
    *   POSERVICESTEXT               =
    *   EXTENSIONIN                  =
    *   EXTENSIONOUT                 =
    *   POEXPIMPITEM                 =
    *   POEXPIMPITEMX                =
    *   POTEXTHEADER                 =
    *   POTEXTITEM                   =
    *   ALLVERSIONS                  =
    *   POPARTNER                    =
        if ponumber eq space.
          loop at return where type = 'E'.
            clear buffer.
            move-corresponding return to e_return.
            concatenate i_header-legacy e_return into buffer.
            transfer buffer to p2_file.
          endloop.
          move-corresponding i_header to i_eheader.
          transfer i_eheader to p3_file.
          loop at i_items where legacy = i_header-legacy.
            move-corresponding i_items to i_eitems.
            transfer i_eitems to p4_file.
          endloop.
        else.
          commit work and wait.
        endif.
        clear:ponumber,header,headerx,item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
        refresh:item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
      endloop.
      close dataset p2_file.
      close dataset p3_file.
      close dataset p4_file.
    Regards
    Krishna

  • Displaying Purchase order in report

    Hi Expert
    I am modifing a report for Mangement , They want to display purchase order in the report .....So I did the following modification but when I run the report all the fields are displaying and purchase order is showing empty, though I have added the po in the table and if you see my coding for adding po
    data:  vbkd-bstkd.
      clear po_number.
      select single bstkd into po_number
        from vbkd
        where vbeln = s903-vgbel.
          call function 'RSAQRT_TEXTFIELD_CONTEXT'
               exporting name  = 'S903'
                         struc = S903.
          call function 'RSAQRT_TEXTFIELD_CALL'
               exporting struc = S903
                         name  = 'S903'
                         fname = 'MATNR'
               importing text  = TEXT_S903_MATNR.
    Can anyone help me please ....................it is very urgent
       include /1BCDWB/IQ000000000226DAT
    *{   INSERT                                                           2
    constants:
      begin of %iqid,"type aqliqid
        workspace type aql_wsid   value ' ',
        usergroup type aql_ugroup value 'SALES',
        query     type aql_query  value 'BILL_DEL',
        lid       type aql_lid    value 'G00',
        struct    type aql_tname  value '/1BCDWB/IQ000000000226',
        infoset   type aql_iset   value 'S903',
      end of %iqid.
    data %runmode type aqlimode.
    data %seloptions type table of rsparams with header line.
    field-symbols <%selopt> type rsparams_tt.
    data TEXT_S903_FKART like TVFKT-VTEXT.
    data TEXT_S903_FKSTO like DD07D-DDTEXT.
    data TEXT_S903_GEWEI like T006A-MSEHL.
    data TEXT_S903_KDKG1 like TVKGGT-VTEXT.
    data TEXT_S903_KDKG2 like TVKGGT-VTEXT.
    data TEXT_S903_KDKG3 like TVKGGT-VTEXT.
    data TEXT_S903_MATNR like MAKT-MAKTX.
    data TEXT_S903_MATNR_01 like MAKT-MAKTX.
    data TEXT_S903_PERIV like T009T-LTEXT.
    data TEXT_S903_PKUNAG like KNA1-NAME1.
    data TEXT_S903_PKUNAG_07 like KNA1-NAME1.
    data TEXT_S903_PKUNWE_01 like KNA1-NAME1.
    data TEXT_S903_PMATN like MAKT-MAKTX.
    data TEXT_S903_SPART like TSPAT-VTEXT.
    data TEXT_S903_VKBUR like TVKBT-BEZEI.
    data TEXT_S903_VKBUR_05 like TVKBT-BEZEI.
    data TEXT_S903_VKORG like TVKOT-VTEXT.
    data TEXT_S903_VKORG_03 like TVKOT-VTEXT.
    data TEXT_S903_VOLEH like T006A-MSEHL.
    data TEXT_S903_VRKME like T006A-MSEHL.
    data TEXT_S903_VSTEL like TVSTT-VTEXT.
    data TEXT_S903_VTWEG like TVTWT-VTEXT.
    data TEXT_S903_VTWEG_04 like TVTWT-VTEXT.
    data TEXT_S903_WAERK like TCURT-LTEXT.
    data TEXT_S903_WERKS like T001W-NAME1.
    data TEXT_S903_WERKS_01 like T001W-NAME1.
    data TEXT_S903_ZZ_MGN like DD07D-DDTEXT.
    data SP_ADD like VBPA-ADRNR.
    data CUST_NAME like KNA1-NAME1.
    data SHADD like VBPA-ADRNR.
    data SHNAME like KNA1-NAME1.
    data ADDRS like ADRC-STREET.
    data MANDCK like LIKP-BOLNR.
    data CMDDOC like LIKP-XABLN.
    data EXT_DEL like LIKP-LIFEX.
    *****ADD BY PIROZ
    data PO_NUMBER like VBKD-BSTKD.
    *data TEXT_S903_MATNR like MAKT-MAKTX.
    TOTAL
    data %Z_0001 like S903-NETWR.
    CON_MARG
    data %Z_0004 like %Z_0001.
    CON_MRG_PC
    data %Z_0005 like %Z_0001.
    tables S903.
    Function----
    FUNCTION /1BCDWB/IQ000000000226EXTR.
    ""Local interface:
    *"       TABLES
    *"              %SELOPT STRUCTURE  RSPARAMS
    *"              %DTAB STRUCTURE  /1BCDWB/IQ000000000226
    *"       CHANGING
    *"             VALUE(%RTMODE) TYPE  AQLIMODE
    *"       EXCEPTIONS
    *"              NO_DATA
    *"              NO_AUTHORIZATION
    *"              ILLEGAL_PACKAGE
    *"              CURSOR_NOT_OPEN
      call function 'RSAQRT_SET_IDENTIFICATION'
           exporting iqid        = %iqid
                     sscr_report = sy-repid
           changing  rtmode      = %rtmode.
      if %rtmode-pack_on = space or %rtmode-first_call = 'X'.
        call function 'RSAQRT_FILL_SELECTIONS'
             tables   selopt = %selopt
             changing rtmode = %rtmode.
      endif.
      call function 'RSAQRT_INIT_TEXTHANDLING'
           exporting class   = 'CL_TEXT_IDENTIFIER'
                     wsid    = ' '
                     infoset = 'S903'.
      if %rtmode-no_authchk = space
         and ( %rtmode-pack_on = space or %rtmode-first_call = 'X' ).
        refresh %auth_tabs.
        append 'S903' to %auth_tabs.
        call function 'RSAQRT_AUTHORITY_CHECK'
             exporting
                auth_tabs         = %auth_tabs
             changing
                rtmode            = %rtmode
             exceptions
                NO_AUTHORIZATION  = 1.
        if sy-subrc = 1.
          raise no_authorization.
        endif.
      endif.
      data: %l_no_further_fetch type flag, " stop fetching
            %l_hits_cnt         type i.    " cnt for %dbtab entries
      if %rtmode-pack_abort = 'X'.
        if not %dbcursor is initial.
          close cursor %dbcursor.
        endif.
        exit.
      endif.
      if %rtmode-pack_on = space or %rtmode-first_call = 'X'.
        if not %dbcursor is initial.
          close cursor %dbcursor.
        endif.
        open cursor with hold %dbcursor for
        select FKDAT VBELN FKART VKORG PKUNAG PKUNWE_01 MATNR VKBUR FKIMG VRKME FKSTO WERKS NETWR WAERK MWSBP VGBEL VGPOS ERNAM POSNR
               VSTEL AUBEL KZWI1 KZWI2 ZZ_CART ZZ_MINCAR ZZ_WKND ZZ_FUEL UMSMNG KZWI4 KZWI3 ZZ_MGN WAVWR SPTAG
               from S903
               where SPTAG in SP$00001
                 and ERNAM in SP$00012
                 and WERKS in SP$00008
                 and MATNR in SP$00006
                 and PKUNAG in SP$00004
                 and VKORG in SP$00005
                 and FKART in SP$00007
                 and VBELN in SP$00002
                 and FKDAT in SP$00003.
      endif.
      if %dbcursor is initial.
        raise cursor_not_open.
      endif.
      while %l_no_further_fetch = space.
        fetch next cursor %dbcursor
              into corresponding fields of S903.
        if ( ( %rtmode-acc_check = 'X' and
               sy-dbcnt > %rtmode-acc_number )
            or sy-subrc <> 0 ).
          %l_no_further_fetch = 'X'.
        else.
          call function 'RSAQRT_TEXTFIELD_REFRESH'.
    additional coding:
      data:  vbpa-kunnr,
             vbpa-parvw,
             vbpa-adrnr.
      clear sP_add.
      select single adrnr into SP_ADD
         from vbpa
         where vbeln = s903-vbeln and
               kunnr = s903-pkunag and
               parvw = 'AG'.
    additional coding:
      select single name1 into cust_name
         from adrc
         where addrnumber = sp_add.
    additional coding:
      data:  adrc-name1,
             adrc-addrnumber.
      clear shadd.
      select single adrnr into SHADD
         from vbpa
         where vbeln = s903-vbeln and
               kunnr = s903-pkunwe_01 and
               parvw = 'WE'.
    additional coding:
      clear shname.
      select single name1 into shname
         from adrc
         where addrnumber = shadd.
    additional coding:
    *{   REPLACE                                                          1
    \ data:  adrc-street.
    \ select single street into addrs
    \   from adrc
    \    where addrnumber = shadd.
    data:  adrc-street.
    select single street into addrs
       from adrc
        where addrnumber = shadd.
    *}   REPLACE
    additional coding:
      data:  likp-bolnr.
      clear mandck.
      if s903-vgbel ne space.
        select single bolnr into mandck
          from likp
          where vbeln = s903-vgbel.
      endif.
          check SP$00009.
    additional coding:
      data:  likp-xabln.
      clear cmddoc.
      select single xabln into cmddoc
        from likp
        where vbeln = s903-vgbel.
          check SP$00010.
    additional coding:
      data:  likp-lifex.
      clear ext_del.
      select single lifex into ext_del
        from likp
        where vbeln = s903-vgbel.
          check SP$00011.
    additional coding:
      data:  vbkd-bstkd.
      clear po_number.
      select single bstkd into po_number
        from vbkd
        where vbeln = s903-vgbel.
          call function 'RSAQRT_TEXTFIELD_CONTEXT'
               exporting name  = 'S903'
                         struc = S903.
          call function 'RSAQRT_TEXTFIELD_CALL'
               exporting struc = S903
                         name  = 'S903'
                         fname = 'MATNR'
               importing text  = TEXT_S903_MATNR.
    additional coding:
       %Z_0001 = S903-NETWR + S903-MWSBP .
          %dtab-FKDAT = S903-FKDAT .
          %dtab-VBELN = S903-VBELN .
          %dtab-FKART = S903-FKART .
          %dtab-VKORG = S903-VKORG .
          %dtab-PKUNAG = S903-PKUNAG .
          %dtab-CUST_NAME = CUST_NAME .
          %dtab-PKUNWE_01 = S903-PKUNWE_01 .
          %dtab-SHNAME = SHNAME .
          %dtab-ADDRS = ADDRS .
          %dtab-MATNR = S903-MATNR .
          %dtab-TEXT_S903_MATNR = TEXT_S903_MATNR .
          %dtab-VKBUR = S903-VKBUR .
          %dtab-FKIMG = S903-FKIMG .
          %dtab-VRKME = S903-VRKME .
          %dtab-FKSTO = S903-FKSTO .
          %dtab-WERKS = S903-WERKS .
          %dtab-NETWR = S903-NETWR .
          %dtab-WAERK = S903-WAERK .
          %dtab-MWSBP = S903-MWSBP .
          %dtab-WAERK001 = S903-WAERK .
          %dtab-VGBEL = S903-VGBEL .
          %dtab-VGPOS = S903-VGPOS .
          %dtab-MANDCK = MANDCK .
          %dtab-CMDDOC = CMDDOC .
          %dtab-EXT_DEL = EXT_DEL .
          %dtab-ERNAM = S903-ERNAM .
          %dtab-%Z_0001 = %Z_0001 .
          %dtab-WAERK002 = S903-WAERK .
          %dtab-POSNR = S903-POSNR .
          %dtab-VSTEL = S903-VSTEL .
          %dtab-AUBEL = S903-AUBEL .
          %dtab-KZWI1 = S903-KZWI1 .
          %dtab-WAERK003 = S903-WAERK .
          %dtab-KZWI2 = S903-KZWI2 .
          %dtab-WAERK004 = S903-WAERK .
          %dtab-ZZ_CART = S903-ZZ_CART .
          %dtab-WAERK005 = S903-WAERK .
          %dtab-ZZ_MINCAR = S903-ZZ_MINCAR .
          %dtab-WAERK006 = S903-WAERK .
          %dtab-ZZ_WKND = S903-ZZ_WKND .
          %dtab-WAERK007 = S903-WAERK .
          %dtab-ZZ_FUEL = S903-ZZ_FUEL .
          %dtab-WAERK008 = S903-WAERK .
          %dtab-UMSMNG = S903-UMSMNG .
          %dtab-VRKME001 = S903-VRKME .
          %dtab-KZWI4 = S903-KZWI4 .
          %dtab-WAERK009 = S903-WAERK .
          %dtab-KZWI3 = S903-KZWI3 .
          %dtab-WAERK010 = S903-WAERK .
          %dtab-ZZ_MGN = S903-ZZ_MGN .
          %dtab-WAVWR = S903-WAVWR .
          %dtab-WAERK011 = S903-WAERK .
          %dtab-PO_NUMBER = PO_NUMBER .
          append %dtab.
          %l_hits_cnt = %l_hits_cnt + 1.
          if %rtmode-pack_on = 'X'
             and %l_hits_cnt >= %rtmode-pack_size.
            %l_no_further_fetch = 'X'.
          endif.
        endif.
      endwhile.
      if %l_hits_cnt = 0.
        if not %dbcursor is initial.
          close cursor %dbcursor.
        endif.
        raise no_data.
      endif.
      if %rtmode-pack_on <> 'X'.
        close cursor %dbcursor.
      endif.
      read table %dtab index 1 transporting no fields.
      if sy-subrc ne 0.
        raise no_data.
      endif.
    endfunction.

    I had Done Like this All comments are as they are i.e. this code gives error (for endselect there is no select) so i commented the endselect statement.
    read below code and plz do some improvement in it.
    SELECT ekkoebeln ekkobedat ekpo~werks into CORRESPONDING FIELDS OF TABLE it_so    FROM EKKO
                      INNER JOIN EKPO ON EKKOEBELN = EKPOEBELN
                      WHERE ekko~EBELN IN S_EBELN
                      AND   BEDAT IN S_BEDAT
                      AND   WERKS IN S_WERKS.
      "SELECT hEBELN hMATNR hWERKS e FROM EKPO INTO CORRESPONDING FIELDS OF TABLE it_so
          "                 WHERE EBELN IN S_EBELN
          "                 AND WERKS IN S_WERKS.
    MOVE EKKO-EBELN TO TNAME.
    CALL FUNCTION 'READ_TEXT'
    EXPORTING
    CLIENT = SY-MANDT
    ID = 'F02'
    LANGUAGE = 'E'
    NAME = TNAME
    OBJECT = 'EKKO'
    ARCHIVE_HANDLE = 0
    "IMPORTING
    " HEADER = HTEXT
    TABLES
    LINES = LTEXT
    EXCEPTIONS
    ID = 1
    LANGUAGE = 2
    NAME = 3
    NOT_FOUND = 4
    OBJECT = 5
    REFERENCE_CHECK = 6
    WRONG_ACCESS_TO_ARCHIVE = 7
    OTHERS = 8.
    LOOP AT LTEXT.
    IF LTEXT-TDLINE NE ''.
    MOVE LTEXT-TDLINE TO IT_SO-TDLINE. " Header Note Selected.
    MOVE EKKO-EBELN TO IT_SO-EBELN.
    APPEND IT_SO.
    endif.
    ENDLOOP.
    clear it_so.
    "ENDSELECT.

  • Use of SAVE_TEXT in customer exits / BADI for purchase order

    Hi All,
    I am trying to save some long text by using SAVE_TEXT function module in a badi implementation for purchase order header text. The same is working fine if i try to update the PO header text via a report. But if i try using badi (the code is written in a PAI event for the BADI), then though the text transfer and save is successful during the code excution, but for the first time when i add any text its not visible in ME22N tcode. Since its an online event. But when i double click on that editor and the sap script editor gets opened. then i press back button, the text is appearing on the same small screen edtor . after this any number of time i edit or delete text, the save_text function module works fine.
    My issue is why for the first time always i have to double click on the editor to open the sap script editor. I have also included commit_text in this case after save_text FM.
    the requirement here goes like this. in one tab for PO header the user will enter some number (This is a customizing screen implemented through badi.) and the corresponsing discription should appear when user clicks on text tab in po header screen (me21n / me22n).
    Kindly help.
    Thanks
    Mamata

    Hi  mamata rath
    I have solve the problem which similar to yours.  the code which is as the following
    DATA: textline TYPE tdline,
            name TYPE c LENGTH 70,
            glines TYPE TABLE OF tline,
            gline  LIKE LINE OF glines,
            ls_header TYPE thead.
         CONCATENATE ch_eban-banfn ch_eban-bnfpo INTO name.
             ls_header-tdobject = 'EBAN'.
             ls_header-tdname = name.
             ls_header-tdid = 'B01'.
             ls_header-tdspras = sy-langu.
             CALL FUNCTION 'SAVE_TEXT'
               EXPORTING
    *           CLIENT                = SY-MANDT
                 header                = ls_header
    *           INSERT                = ' '
    *           SAVEMODE_DIRECT       = ' '
    *           OWNER_SPECIFIED       = ' '
    *           LOCAL_CAT             = ' '
    *         IMPORTING
    *           FUNCTION              =
    *           NEWHEADER             =
               tables
                 lines                 = glines
               EXCEPTIONS
                 ID                    = 1
                 LANGUAGE              = 2
                 NAME                  = 3
                 OBJECT                = 4
                 OTHERS                = 5
              IF sy-subrc = 0.
                  CALL FUNCTION 'COMMIT_TEXT'
                    EXPORTING
                      OBJECT                = 'EBAN'
                      NAME                  = name
    *                ID                    = '*'
    *                LANGUAGE              = '*'
    *                SAVEMODE_DIRECT       = ' '
    *                KEEP                  = ' '
    *                LOCAL_CAT             = ' '
    *              IMPORTING
    *                COMMIT_COUNT          =
    *              TABLES
    *                T_OBJECT              =
    *                T_NAME                =
    *                T_ID                  =
    *                T_LANGUAGE            =
              ENDIF.

Maybe you are looking for