Open Orders and COPA Cube

Hi,
I have a specific requirement, where we want to add open orders from sales to the existing COPA cube and also we want Existing Open order/sales pipeline reports in SAP to be moved into BI.
Can any one help me on how to go about this and what should be the best apporoach to achieve this task.
Any help technically and functionally will be very helpful
Regards
Vishwanath

Hi Viswanath,
You can evaluate Open orders using datasources 2LIS_11_V_ITM and 2LIS_11_V_SCL.
We extract COPA data by creating a datasource using trasaction KEB0. This datasource would be based on tables CE1**** to CE4****, where **** is the name of the operating concern. These tables get generated when the functional consultants create the operating concern in ECC. What data flows into these tables is controlled by the rules set by the functional folks. Unless the data that you need exists in these tables, you cannot get it otherwise using the datasource. You would need to check in the tables whether the data needed exists there.

Similar Messages

  • Report for open orders and amount of product confirmed

    Hi All,
    Can some one give me an idea on a report which shows open orders and also shows amount of product confirmed against these open orders?
    Thanks,
    Neelima.

    Hi Veni,
    Incomplete order are the order's in which some data is missing so that particular order can't be further processed, that is what you could check through "Incompletion Log". Whereas Open orders are the orders which are open for further processing viz. deliver billing(but open order is a complete order i.e. no data missing).
    Check this program:
    *& Report ZGM_OPENPO *
    REPORT ZGM_OPENPO NO STANDARD PAGE HEADING LINE-SIZE 132 LINE-COUNT 36(2).
    TABLES: t001w, "Plants/Branches
    ekko, "Purchasing Document Header
    ekpo, "Purchasing Document Item
    marc, "Plant Data for Material
    mara. "General Material Data
    DATA:
    BEGIN OF itab OCCURS 0,
    matnr LIKE marc-matnr,
    werks LIKE marc-werks,
    beskz LIKE marc-beskz,
    mmsta LIKE marc-mmsta,
    END OF itab.
    DATA: BEGIN OF iekpo OCCURS 0,
    ebeln LIKE ekpo-ebeln,
    menge LIKE ekpo-menge,
    aedat LIKE ekpo-aedat,
    wemng LIKE eket-wemng,
    END OF iekpo.
    DATA: BEGIN OF iekko OCCURS 0,
    ebeln LIKE ekko-ebeln,
    lifnr LIKE ekko-lifnr,
    bedat LIKE ekko-bedat,
    ekgrp LIKE ekko-ekgrp,
    END OF iekko.
    selection-screen:begin of block b1 with frame title text001.
    SELECT-OPTIONS werks FOR ekpo-werks OBLIGATORY.
    SELECT-OPTIONS matnr FOR ekpo-matnr.
    SELECT-OPTIONS beskz FOR marc-beskz.
    SELECT-OPTIONS bsart FOR ekko-bsart.
    selection-screen:end of block b1.
    INITIALIZATION.
    AT SELECTION-SCREEN ON werks. "Validate for werks
    SELECT SINGLE * FROM t001w WHERE werks IN werks.
    IF sy-subrc 0. MESSAGE e429(mo). ENDIF.
    AT SELECTION-SCREEN ON matnr.
    SELECT SINGLE * FROM mara WHERE matnr IN matnr.
    IF sy-subrc 0. MESSAGE e429(mo).ENDIF.
    START-OF-SELECTION.
    SELECT * FROM marc INTO CORRESPONDING FIELDS OF TABLE itab WHERE werks IN werks AND beskz IN beskz AND
    matnr IN matnr.
    SELECT ebeln FROM ekpo INTO CORRESPONDING FIELDS OF TABLE iekpo
    FOR ALL ENTRIES IN itab WHERE matnr = itab-matnr AND loekz EQ space.
    SELECT ebeln lifnr bedat ekgrp FROM ekko INTO CORRESPONDING FIELDS OF
    TABLE iekko
    FOR ALL ENTRIES IN iekpo WHERE ebeln = iekpo-ebeln AND bsart IN bsart.
    SELECT ebeln menge aedat FROM ekpo INTO CORRESPONDING FIELDS OF iekpo
    FOR ALL ENTRIES IN iekpo WHERE ebeln = iekpo-ebeln. MODIFY iekpo INDEX sy-dbcnt.
    ENDSELECT.
    SORT iekpo BY aedat.
    DELETE ADJACENT DUPLICATES FROM iekpo COMPARING ebeln.
    SELECT wemng FROM eket INTO CORRESPONDING FIELDS OF iekpo FOR ALL ENTRIES IN iekpo WHERE ebeln = iekpo-ebeln.
    MODIFY iekpo INDEX sy-dbcnt.
    ENDSELECT.
    END-OF-SELECTION.
    DATA : file_name TYPE string.
    file_name = 'c:\pay_det\open_po1.xls'.
    DATA : BEGIN OF it_join_fields OCCURS 0,
    field_name(20),
    END OF it_join_fields.
    CLEAR it_join_fields.
    it_join_fields-field_name = 'ebeln'.
    APPEND it_join_fields.
    CLEAR it_join_fields.
    it_join_fields-field_name = 'menge'.
    APPEND it_join_fields.
    CLEAR it_join_fields.
    it_join_fields-field_name = 'aedat'.
    APPEND it_join_fields.
    CLEAR it_join_fields.
    it_join_fields-field_name = 'wemng'.
    APPEND it_join_fields.
    CLEAR it_join_fields.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    BIN_FILESIZE =
    filename = file_name
    filetype = 'ASC'
    APPEND = 'X'
    write_field_separator = 'X'
    TABLES
    data_tab = iekpo
    FIELDNAMES = it_join_fields
    IF sy-subrc 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT iekpo.
    IF iekpo-menge NE iekpo-wemng.
    WRITE:/4 iekpo-ebeln,21 iekpo-menge ,46 iekpo-aedat, 56 iekpo-wemng.
    ENDIF.
    ENDLOOP.
    if sy-subrc 0. write / 'no data exist for this plant'. endif.
    TOP-OF-PAGE.
    uline 1(80).
    WRITE :/ sy-vline, 20 ' OPEN purchase ORDERs report' color 5,
    80 sy-vline.
    uline 1(80).
    WRITE:/ sy-vline , 4 'PURSCHASE ORDER' COLOR COL_HEADING,
    20 sy-vline, 21 'ORDER QUANTITY' COLOR COL_HEADING,
    45 sy-vline, 46 'item change' color col_heading, 55 sy-vline,
    56 'RECIEVED QUANTITY' COLOR COL_HEADING, 80 sy-vline.
    uline 1(80).
    END-OF-PAGE.
    WRITE :/ 'PAGE NUMBER' ,SY-PAGNO.
    Hope this helps you.
    Regards,
    Chandra Sekhar

  • Report to show open orders and valuation type

    Hi,
    Is there a report in SAP that shows the open orders and the valuation type of the materials in those orders?
    thanks

    Hi jay,
    What is the definition of Open orders according to your company?
    Is it Sales orders created but not delivered?  or
    Is it Delivery created for the Sales order but not done PGI?  or
    Is it Sales orders but not billed?
    Accordingly you must decide.  Just VA05 will give list of orders where you can take from the Status updation whether it is delivered or not.  But apart from that, if you need any report relating to Open orders, you need to develop a Z report which will help your company.  Just ask your business user how he wants.  Based on that you can decide.
    Thanks and regards.
    Augustine Ponraj

  • Calculation of open orders and shipped not billed orders amount

    Hi All,
    I have  a  requirement to arrive at the values of ‘Open Order’ and ‘Shipped not billed  ’ . 
    This is an interface program and the output will be sent to a target server.
    Input :  Company code,  Customer Code , Document date.
    Output Fields are:
    Customer Code
    Sum of all open orders value
    Sum of all shipped not billed orders  value
    To give an example
    A Customer has 50  orders and  the number of line items are  200 .
    Overall  order amount for 200 line items is 10,000.
    70 line items have been delivered (amounting to 5,000) and
    30 line items among the 70 delivered have been invoiced. (amounting to 3,000).
    I need to know the best way to get to:
    (1) Total "Open order" amount for the customer which is 5,000 in this example.
    (2) Total "Shipped not billed" amount for the customer which is 2,000 in this example.
    (3) Total "Invoiced" amount for the customer which is 3,000 in this example.
    We are looking for the tables to access and the sequence of access
    Since the interface is to be executed more than once in a day ,
    the execution time should be optimum
    Please suggest
    Thanks
    Venu

    check table VBUK
    GBSTK ne 'C'      "over all processing status
    and FKSTK ne 'C'  "open billing orders
    at header level
    and
    for item level check
    Vbup tbale
    make a join on Vbrk and VBuk in the where condition in addition to the selection criteria add the above two conditions and check the same.
    once you have all the open orders enable the items and do the subtotalling and grand total on the item loop.
    regards,
    vijay

  • Open order and Open delivery in Credit Exposure FD32

    Hello Guys,
    I am now trying to include Open order and Open delivery values in Credit Exposure FD32. I have configured the following settings, but the Open order and Open delivery values still cannot show in Sales value under Credit Exposure FD32. Can anyone here advise me what i missed?
    1) In OVA8 --> 01 Credit Group for Sales Order, I have selected Static Checks and includes Open Orders and Open deliveries.
    2) In V/08 --> Pricing Procedure --> Control , I also put "A" in PR00 Sub Total field.
    3) In OB45 --> Credit Control Area, I put Update = 000012.
    4) In OMO1 --> S066 , Period Split = Day and Updating = "Synchronous update (1)".
    Thank you,
    Benny

    Hello Mrunal and GSL, 
    Thanks for your paticipation. I found my configurations are correct. I just haven't trigger the update program to update the S066 (Sales value in FD32). To trigger the update program I need to try to create delivery. If I just create a Sales Order and press Save, the PR00 value will not go to S066.
    Hope that can help someone else .
    Benny

  • Report for open order and shipped qty  summary

    Dear Folks,
               Can any one please help me.
    Report for open order summary Vs shipped quantity
    what are the related programs to it.
    throw some light on it.

    >
    arpita b wrote:
    > Dear rohit
    >    
    >     Iam asking about any report which compares or give details of open order vs shipped qty.
    >
    > Any sis report is available for this?
    Hi Arpita,
    There is no such sis report available. You will have to configure and create two seperate reports and do the comparison.
    If you want, I will send you the list of all T.codes used to generate reports in SD.
    Revert back to me if you need the same.
    Regards,
    Swapna D.

  • Open orders and Shipped not billed orders

    Hi All,
                     What is the fastest way to calculate the open orders amount and shipped not billed amount for a given customer.
    Thanks
    Venugopal Reddy

    Can u try this option and see if this is increasin your performance.
    For the billing documents ...
    Goto table VBUK and check the fields LFSTK = 'C' " Delivery completed and
                                                            FKSTK NE 'C' . "billing open
    At header level check that GBSTK ne C "over all processing status is open .
    This will yield you the list of open Invoices ..
    You need to bring in the select query with a join on VBRK and VBUK ..
    once u get the list of open invoices  then calculate the open qty from VBRP and VBUP where VBUP-GBSTA ne 'C'.
    here pick the qty from vbrp and sum it up to check the open qty.
    just like this ..
    SELECT vbeln
             fkart
             kunag
             gbstk
             INTO TABLE it_billing_h
             FROM vbrkuk                       "VBRKUK is a DB view " VBAK+VBUK
             WHERE vkorg IN so_vkorg
             AND vtweg IN so_vtweg
              AND spart IN so_spart
             AND kunag IN so_kunnr
             AND gbstk NE 'C'.
        IF NOT it_billing_h[] IS INITIAL.
          SELECT c~vbeln
                 c~posnr
                 c~matnr
                 c~fkimg      "---->open qty
                 d~fksta
                 d~fksaa
                 d~uvfak
                 d~fkivp
                 d~fssta
                 d~gbsta
                 INTO TABLE it_billing_items
                 FROM vbrp AS c JOIN vbup AS d
                 ON dvbeln EQ cvbeln
                 AND dposnr EQ cposnr
                 FOR ALL ENTRIES IN it_billing_h
                 WHERE d~vbeln EQ it_billing_h-vbeln
                 AND d~gbsta NE 'C'.
    use control break and sum the qty ..
    hope this helps ,
    Regards,
    Vijay

  • Open Orders and blocked deliveries

    Hi,
    We have different blocks in Deliveries. The requirements is deliveries which are blocked i.e delivery created but no picking and PGI happened,should be visible as open orders as they will take the total quantity required for the open orders for  production planning and other reports.
    How to do this?
    If any customized report to be prepared, how can we check that the order will be going for a block due to credit?
    Regards,
    Ajit

    Dear Ajit
    You can see a standard report VL21 in which all deliveries created but not PGId will be displayed.  For the status of the delivery, you can check in LIKP table.
    thanks
    G. Lakshmipathi

  • Open Orders Data Sources & Cube

    Hello Experts. I want to know if I can use business content data(2lis_11 /12/13 etc.) sources for cube 0SD_C03 for calculating open orders?
    Also should I create a new cube or will I be able to get results from 0SD_C03?
    For my open orders, I want to see:
    1.sales orders or the deliveries, which are not billed
    2.deliveries which are not goods issued
    3.sales order which are confirmed, but not delivered
    4. Or any other type of open order.
    Thanks in advance.
    Points will be rewarded for all helpful answers.

    Hello Janet,
    just check this link, this SAP's BI content. You'll find here lots of SAP provided ready to use queries, some of them based on sales overview cube.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/17/cd5e407aa4c44ce10000000a1550b0/frameset.htm
    Sarhan.

  • BAPI or Function Module to get open orders and open quotation details

    Hi,
    I have requirement to get all the open orders(as in VA05) and all the open quotations( as in VA25) for a sold-to-party. Could you please let me know if there are any BAPIs or Function Modules for the same.
    Thanks,
    Surekha.

    Hi,
    Check if the below helps:
    1.  BAPI_SALESORDER_GETLIST for VA05
    2. BAPI_QUOTATION_GETDETAILBOS for VA25.
    Regards,
    Vivek

  • How to find open orders and open quantity

    Hi abap gurus,
    i want to find the open orders with the quantity  means those orders for which we don't have goods issues(and partial deliverys is also possible). i get this scenario but i don't know how to start.
      i think i should go to VBUP table and get all the orders
      which have overall status GBSTA = 'A' OR 'B'.
      So from this i will get all the open orders but i need to find open quantity also .
      please tell me how can i find out and  which table do i need to use.

    You need to check between delivery line item table as well sales order line item table.
    Sales order Line item table : VBAP
    Delivery line item table : LIPS
    if order qty and delivery qty are same then there is no open qty if not then there is open qty.
    Thanks
    Seshu

  • Open order  and open delivary should include in credit exposure

    hi expert,
    1-hi expert my client requirment is if there is open sales order or open delivery credit exposure should be updated.please help me on issue and  guide me to configure.for static .
    EX:if i create sales order and save it the net value of sales
    order should be added to credit exposure.
    2- if i have done all setting for credit management if suppose i
    have not maintainA in pricing procedure as subtotal.so please
    tell me which document system will not consider.or who system will behave just explain in detail.
    Regards
    Nisha A

    just goto automatic credit chek
    n ticked on open order n open delivery
    nw see what effect comes up?
    [email protected]

  • Refurbisment order and COPA

    Hi
    I would like to know when and how costs of refurbisment order are taken into account in COPA.
    Below our process :
    1/ Buyback of a machine X1 in plant FR02 (50ku20AC)
    2/ Transfer of X1 from FR02 to plant FR01 (50ku20AC)
    A refurbishment order is created in FR01 using X1, labor and materials costs are also added. A new machine X2 is generated with new costs (total 100ku20AC). Settlement rule of the refurbishment order is applied on 100% material X2.
    3/ Transaction KO88 of settlement is run. Some differences of costs can appear.
    4/ Transfer of X2 from FR01 to FR02
    What costs are considered in COPA (just costs of settlement rule or total costs of the refurbishment order) and at which time is it happened ? As settlement rule is applied on a material and not on a sales order, we cannot see any details in KE24. Is there a control means for that ?
    Thks

    Hi,
      Since settlement is to a material the total costs will be posted to the material. The variances (if any) could be posted to costing based COPA is customized in the settlement profile.
    regards
    Waman

  • Difference between COPA and COPA cube

    Hello,
    We have recently implemented COPA. There is a difference between COPA R3 and COPA BW. What can be the reason. Can it be internal orders if so how can we check and correct that.
    thanks

    Hi,
    Where can you find the difference ? In the data being pulled into BW ?
    First check for a sample data in R/3 RSA3 and see data for the same selections in BW PSA or any staging layers.
    Reconciliation Analysis in Financial Accounting
    http://help.sap.com/saphelp_46c/helpdata/en/03/fb58a20d9611d3b65e0000e82d962e/content.htm
    ECC FI and BW Reconciliation
    R/3 - BW reconcilation
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/968dab90-0201-0010-c093-9d2a326969f1
    Hope this helps.
    Thanks,
    JituK

  • Retrive open order and open delivery value x custome

    Hi,
    how can i obtain a list of open order value and open delivery value per customer?
    10x
    bye

    Check the following code which give details of pending orders & values and it can be modified as per ur requirement.
    REPORT  ZPEND_ORDER no standard page heading line-size 255.
    *& Purpose : Details of Sale order having pending deliveries           *
    *&           ( For Rake order handling )                               *
    tables : vbak, vbap, likp, lips, kna1, vbuk, vbpa, vepvg, vbfa, vbup.
    data : pend_qty like  vbap-kwmeng,
           dlv_qty like  vbap-kwmeng,
           ord_qty like vbap-kwmeng.
    data: begin of itab_vbak occurs 0,
          vbeln like vbak-vbeln,           "sales order no
          audat like vbak-audat,           " created date
          auart like vbak-auart,           " Sales Document Type
          vkorg like vbak-vkorg,           "Sales Organization
          vtweg like vbak-vtweg,           " distribution channel
          spart like vbak-spart,           " Division
          vkgrp like vbak-vkgrp,           " Sales group
          vkbur like vbak-vkbur,           " Sales office
          kunnr like vbak-kunnr,           " sold to party
          kunag like vbak-kunnr,           " ship to party
          cust like vbak-kunnr,            " sold to party
          ship like kna1-name1,            " ship to party
          city like kna1-ort01,            " ship to party location
          deliv like likp-vbeln,           " delivery
          matnr like vbap-matnr,
          arktx like vbap-arktx,           " mat description
          kwmeng like vbap-kwmeng,
          kbmeng like vbap-kbmeng,
          fkrel like vbap-matnr,
          vstel like vbap-vstel,
          route like vbap-route,
          chln_no like likp-xabln,
          grn_no like likp-bolnr,
          truck_no like likp-traid,
          dlv_dt like vbfa-erdat,           "dlvy date
          ord_qty like vbap-kwmeng,
          dlvd_qty like vbap-kwmeng,
          pend_qty like vbap-kwmeng,
          kzwi5 like vbap-kzwi5,
          posnr like vbap-posnr,
    end of itab_vbak.
    data  posnr like vbap-posnr.
    *FOR ALV DISPLAY
    type-pools: slis.
    constants: formname_top_of_page type slis_formname value 'TOP_OF_PAGE'.
    *Data Decelararion for alv display
    data: i_fieldtab type slis_t_fieldcat_alv,
          i_heading  type slis_t_listheader,
          i_layout   type slis_layout_alv,
          i_sort     type slis_t_sortinfo_alv,
          i_print    type slis_print_alv,
          i_events   type slis_t_event,
          i_repname  like sy-repid,
          f2code   like sy-ucomm value  '&ETA',
          i_save(1) type c,
          i_exit(1) type c,
          i_variant like disvariant,
          h_text(50).
    start-of-selection.
      selection-screen skip 1.
      selection-screen begin of block v1 with frame title text-001.
      selection-screen skip 1.
      select-options:
                     ord_no for vepvg-vbeln,
                     audat for vbak-audat obligatory,
                     matnr for vbap-matnr,
                     spart for vbap-spart obligatory,
                     vstel for vepvg-vstel obligatory,
                     sale_org for vbak-vkorg obligatory,
                     sale_off for vbak-vkbur.
      selection-screen skip 1.
    check box for ALV display
      parameters p_alv as checkbox.
      selection-screen end of block v1.
      selection-screen skip 1.
      data:   ftab(72) occurs 5 with header line.
      refresh ftab.
      ftab = 'VBELN'. append ftab.
      refresh itab_vbak.
    initialization.
      i_repname = sy-repid.
    start-of-selection.
      select vbeln audat vkorg vtweg spart vkbur kunnr from vbak
           into
           (itab_vbak-vbeln, itab_vbak-audat,
            vbak-vkorg, vbak-vtweg, vbak-spart,
            itab_vbak-vkbur, itab_vbak-kunnr)
           where vbeln in ord_no
           and audat in audat
           and vbtyp = 'C'
           and vkorg in sale_org
           and spart in spart
           and vkbur in sale_off.
        if sy-subrc = 0.
          select posnr kwmeng kbmeng matnr arktx  "added for mat description
                   fkrel vstel route kzwi5 spart
                   from vbap into corresponding fields of itab_vbak
                   where vbeln = itab_vbak-vbeln .
            check ( itab_vbak-fkrel = 'A' or  "Delivery-related billing document
                    itab_vbak-fkrel = 'D' )   "Relevant for pro forma
              and itab_vbak-vstel in vstel
              and itab_vbak-matnr in matnr
              and itab_vbak-spart in spart.
            select single * from vbup where vbeln = itab_vbak-vbeln
                                        and posnr = itab_vbak-posnr.
            check vbup-gbsta ne 'C'.
            dlv_qty = 0.
            select single kunnr from vbpa into itab_vbak-kunnr
                   where vbeln = itab_vbak-vbeln
                   and parvw = 'WE'.
            select single name1 ort01 from kna1 into
                   (itab_vbak-cust, itab_vbak-city)
                    where kunnr = itab_vbak-kunnr.
          in case of partially processed sale order get delivery details
            clear : dlv_qty, itab_vbak-dlv_dt, itab_vbak-dlvd_qty, itab_vbak-chln_no,
                    itab_vbak-grn_no, itab_vbak-truck_no.
            if vbup-gbsta eq 'B'. "partially processed
              dlv_qty = 0.
            get details from delivery
              select vbfavbeln vbfarfmng vbfavbtyp_n vbfaerdat
                 into (vbfa-vbeln, vbfa-rfmng, vbfa-vbtyp_n, vbfa-erdat)
                 from vbfa
                 where vbelv = itab_vbak-vbeln
                   and posnv = itab_vbak-posnr.
                check vbfa-vbtyp_n = 'J'.
                clear : dlv_qty, itab_vbak-dlv_dt, itab_vbak-dlvd_qty, itab_vbak-chln_no,
                        itab_vbak-grn_no, itab_vbak-truck_no.
                select single erdat xabln bolnr traid kunag
                   into (itab_vbak-dlv_dt, itab_vbak-chln_no, itab_vbak-grn_no,
                         itab_vbak-truck_no, itab_vbak-kunag)
                   from likp
                   where vbeln = vbfa-vbeln.
                if sy-subrc = 0.
                  dlv_qty = dlv_qty + vbfa-rfmng.
                  itab_vbak-dlv_dt = vbfa-erdat.
                  itab_vbak-dlvd_qty = dlv_qty.
                  itab_vbak-deliv = vbfa-vbeln.
                endif.
                append itab_vbak.
              endselect.
            elseif vbup-gbsta eq 'A'.
            for unprocessed sale order
            ship to party details
              itab_vbak-kunag = itab_vbak-kunnr.
              itab_vbak-ship = itab_vbak-cust.
              append itab_vbak.
            endif.
          endselect.
        endif.
        clear itab_vbak.
      endselect.
      loop at itab_vbak.
      clear with change in document / item no
        on change of itab_vbak-vbeln or itab_vbak-posnr.
          clear: dlv_qty,ord_qty,pend_qty.
        endon.
        at new posnr.
        In case full qty not delivered
          if itab_vbak-kwmeng > itab_vbak-dlvd_qty.
            select single vbpa~kunnr into vbpa-kunnr
               from vbpa
               where vbeln = itab_vbak-vbeln
                and  posnr = itab_vbak-posnr
                and  parvw = 'WE'.
            if sy-subrc eq 0.
              itab_vbak-kunag = vbpa-kunnr.
              select single name1 ort01 from kna1 into
                    (itab_vbak-ship, itab_vbak-city)
                     where kunnr = itab_vbak-kunag.
              if sy-subrc ne 0.
                select single vbpa~kunnr into vbpa-kunnr
                   from vbpa
                   where vbeln = itab_vbak-vbeln
                   and parvw = 'WE'.
                itab_vbak-kunag = vbpa-kunnr.
                if sy-subrc ne 0 and p_alv ne 'X'.
                  write :/ 'vbpadetls' , itab_vbak-vbeln, itab_vbak-posnr, itab_vbak-vbeln.
                endif.
              endif.
            endif.
          endif.
          itab_vbak-ord_qty = itab_vbak-kwmeng.
        Delivered Qty & Pending qty
          dlv_qty = dlv_qty + itab_vbak-dlvd_qty.
          itab_vbak-pend_qty = itab_vbak-kwmeng - dlv_qty.
          modify itab_vbak transporting kunag ship city dlvd_qty ord_qty pend_qty .
        endat.
      endloop.
    end-of-selection.
      sort itab_vbak by vbeln posnr audat kunnr matnr.
      if p_alv ne 'X'.
        loop at itab_vbak.
          select single kna1name1 kna1ort01
                 into
                 (kna1-name1, kna1-ort01)
                 from kna1
                 where kunnr = itab_vbak-kunnr.
          pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
          format color col_normal.
          write : /01(10) itab_vbak-vbeln,
                  12(10)  itab_vbak-audat,
                  24(8)  itab_vbak-kunag no-zero,
                  34(6)  itab_vbak-posnr no-zero,
                  42(10) itab_vbak-matnr no-zero,
                  54(15) itab_vbak-arktx,
                  72(25) itab_vbak-ship,
                  100(15) itab_vbak-city,
                  118(8)  itab_vbak-ord_qty,
                  128(10) itab_vbak-route,
                  140(10) itab_vbak-dlv_dt,
                  152(10) itab_vbak-dlvd_qty,
                  164(10)  itab_vbak-chln_no,
                  176(10)  itab_vbak-grn_no,
                  188(10)  itab_vbak-truck_no,
                  200(10) itab_vbak-pend_qty,
                  218(15) itab_vbak-kzwi5 left-justified.
          format reset.
          at end of audat.
            sum.
            pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
            format color col_background.
            write: /118(8) itab_vbak-ord_qty,
                   152(10) itab_vbak-dlvd_qty,
                   200(10) pend_qty,
                   218 itab_vbak-kzwi5 left-justified.
            format reset.
          endat.
          at last.
            sum.
            pend_qty = itab_vbak-ord_qty - itab_vbak-dlvd_qty.
            format color col_total.
            write : /5 'Grand Total : '.
            write: /118(8) itab_vbak-ord_qty,
                  152(10) itab_vbak-dlvd_qty,
                  200(10) pend_qty,
                  218 itab_vbak-kzwi5 left-justified.
            format reset.
          endat.
        endloop.
      else.
      for ALV Display
        i_repname = sy-repid.
        perform fieldcat using i_fieldtab[].
        perform eventtab using i_events[].
        perform comment using i_heading[].
        perform call_alv.
        perform build_layout using i_layout.
      endif.
    top-of-page.
      if p_alv ne 'X'.
        format color col_heading.
        write: /01 'Ord No',
                12 'Ord Date',
                24 'Sold to Party',
                34 'Item No',
                42 'Mat No',
                54 'Mat Descp',
                72 'Ship to Party',
                100 'City',
                118 'Qty',
                128 'Route',
                140 'Dlv Date',
                152 'Dlv Qty',
                164 'Challan No',
                176 'GRN No',
                188 'Truck No',
                200 'Pend Qty',
                218 'Total Value'.
        format reset.
      endif.
    *&      Form  fieldcat
          text
         -->P_I_FIELDTAB[]  text
    form fieldcat using p_fieldtab type slis_t_fieldcat_alv.
      data: l_fieldcat type slis_fieldcat_alv.
      clear l_fieldcat.
      l_fieldcat-tabname    = 'ITAB_VBAK'.
      l_fieldcat-fix_column = 'X'.
      l_fieldcat-no_out     = ' '.
      l_fieldcat-fieldname  = 'VKBUR'.
      l_fieldcat-outputlen  = 6.
      l_fieldcat-seltext_l  = 'Sales Office'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'VSTEL'.
      l_fieldcat-outputlen  = 5.
      l_fieldcat-seltext_l  = 'Shipping Point'.
      l_fieldcat-no_zero = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'VBELN'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Order No.'.
      l_fieldcat-no_zero = 'X'.
      l_fieldcat-hotspot = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'AUDAT'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Doc Date'.
      l_fieldcat-hotspot = ''.
      l_fieldcat-no_zero = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'POSNR'.
      l_fieldcat-outputlen  = 5.
      l_fieldcat-seltext_l  = 'Item'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'MATNR'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Material No'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'ARKTX'.
      l_fieldcat-outputlen  = 15.
      l_fieldcat-seltext_l  = 'Mat. Description'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'KUNNR'.
      l_fieldcat-outputlen  = 8.
      l_fieldcat-seltext_l  = 'Sold to Party'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'CUST'.
      l_fieldcat-outputlen  = 15.
      l_fieldcat-seltext_l  = 'Sold to Party Descp.'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'KUNAG'.
      l_fieldcat-outputlen  = 8.
      l_fieldcat-seltext_l  = 'Ship to Party'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'SHIP'.
      l_fieldcat-outputlen  = 15.
      l_fieldcat-seltext_l  = 'Ship to Party Descp'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'CITY'.
      l_fieldcat-outputlen  = 13.
      l_fieldcat-seltext_l  = 'City'.
      l_fieldcat-no_zero = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'DELIV'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Delivery No.'.
      l_fieldcat-no_zero = 'X'.
      l_fieldcat-hotspot = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'ORD_QTY'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Qty'.
      l_fieldcat-no_zero = ' '.
      l_fieldcat-hotspot = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'ROUTE'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Route'.
      l_fieldcat-no_zero = 'X'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'DLV_DT'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Delivered date'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'DLVD_QTY'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Delivered Qty'.
      l_fieldcat-no_zero = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'CHLN_NO'.
      l_fieldcat-outputlen  = 15.
      l_fieldcat-seltext_l  = 'Challan No'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'GRN_NO'.
      l_fieldcat-outputlen  = 15.
      l_fieldcat-seltext_l  = 'GR Number'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'TRUCK_NO'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Truck No'.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'PEND_QTY'.
      l_fieldcat-outputlen  = 10.
      l_fieldcat-seltext_l  = 'Pending Qty'.
      l_fieldcat-no_zero = ' '.
      append l_fieldcat to p_fieldtab.
      l_fieldcat-fieldname  = 'KZWI5'.
      l_fieldcat-outputlen  = 13.
      l_fieldcat-seltext_l  = 'Value'.
      append l_fieldcat to p_fieldtab.
      clear l_fieldcat.
    endform.                    " FIELDCAT
    *&      Form  EVENTTAB
          text
         -->P_I_EVENTS[]  text
    form eventtab using p_events type slis_t_event.
      data: ls_event type slis_alv_event.
      call function 'REUSE_ALV_EVENTS_GET'
        exporting
          i_list_type = 0
        importing
          et_events   = p_events.
      read table p_events with key name = slis_ev_top_of_page
                               into ls_event.
      if sy-subrc = 0.
        move formname_top_of_page to ls_event-form.
        append ls_event to p_events.
      endif.
    endform.                    " EVENTTAB
    *&      Form  BUILD_LAYOUT
          text
         -->P_LAYOUT   text
    form build_layout using p_layout type slis_layout_alv.
      p_layout-f2code       = f2code.
      p_layout-zebra        = 'X'.
      p_layout-detail_popup = 'X'.
    endform.                    " BUILD_LAYOUT
    *&      Form  COMMENT
          text
         -->P_I_HEADING[]  text
    form comment  using    p_i_heading type slis_t_listheader.
      data: hline type slis_listheader,
            text(60) type c,
            sep(20) type c.
      clear: hline, text.
      hline-typ  = 'H'.
      write : 'Pending Sale Order Details' to hline-info.
      append hline to i_heading.
    endform.                    " COMMENT
    *&      Form  TOP_OF_PAGE
          text
    form top_of_page.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
        exporting
          it_list_commentary = i_heading
          i_logo             = 'ALV_REPORT'.
    endform.                    " TOP_OF_PAGE
    *&      Form  call_alv
          text
    -->  p1        text
    <--  p2        text
    form call_alv .
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          i_interface_check        = ' '
          i_buffer_active          = ' '
          i_callback_program       = i_repname
          i_callback_pf_status_set = ' '
          i_callback_user_command  = 'FRM_ALV_USER_COMMAND'
          i_structure_name         = 'ITAB_VBAK'
          i_background_id          = ' '
          is_layout                = i_layout
          it_fieldcat              = i_fieldtab
          it_sort                  = i_sort[]
          i_default                = 'X'
          i_save                   = 'A'
          is_variant               = i_variant
          it_events                = i_events[]
          is_print                 = i_print
        tables
          t_outtab                 = itab_vbak.
      if sy-subrc <> 0.
        write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
      endif.
    endform.                    " call_alv
    *&      Form  frm_alv_user_command
          text
         -->UCOMM      text
         -->SELFIELD   text
    form frm_alv_user_command using ucomm like sy-ucomm
                  selfield type slis_selfield.
      case ucomm.
        when '&IC1'.
          if selfield-tabname = 'ITAB_VBAK'.
            if selfield-fieldname = 'VBELN'.
              read table itab_vbak index selfield-tabindex.
              if sy-subrc = 0.
                set parameter id 'AUN' field itab_vbak-vbeln.
                call transaction 'VA03' and skip first screen.
              endif.
            elseif selfield-fieldname = 'DELIV'.
              read table itab_vbak index selfield-tabindex.
              if sy-subrc = 0.
                set parameter id 'VL' field itab_vbak-deliv.
                call transaction 'VL03N' and skip first screen.
              endif.
            endif.
          endif.
      endcase.
    endform.                    "frm_alv_user_command

Maybe you are looking for

  • Digital Signatures and Email Encryption on iPhone

    One of our clients has implemented a policy whereby all email communications with vendors must be digitally signed and encrypted. I know SSL allows the iPhone to create an encrypted connection to the email server. However, is there a way to actually

  • Export and import in alv grid

    Hi all,         I am going thru a code in oops alv where when i click in any of the record in the output list then it shuld go to a transaction where it shuld dump all the field values with respect to the clicked field. frnds i have used EXPORT AND I

  • Touch driver blocked due to failed logo requirements

    I have the HP Envy m6 Win8 laptop which is not a touch screen laptop. My laptop, sinc January, has been repeatedly freezing requiring hard restarts. I have taken it into GeekSquad 4 times now and had the motherboard replaced, my hard drive replaced,

  • Send multiple rows to database from a dynamic table.

    I'm using JSP for my application. I have a table that changes in size depending on a value a user selects in a drop down list. They can then enter some values into the table and click the submit button. I know for whatever reason Dreamweaver only sen

  • How to migrate a SAP Oracle 9i to Oracle 10g (on a new machine) ?

    Hello, Do you know the proper procedure of such a migration : Migrate a SAP Oracle 9i to a new machine : HP-UNIX, Oracle 10g. My understanding : (1) Setup the new machine (2) Install the latest version of HP-UX (3) Install Oracle 10g database program