Open Purchase Order quantity in SC PO

Hi,
Can anybody tell me open purchase order quantity in case of Subcontracting Purchase order.
what happen in case of subcontracting po with open quantity of po
Thanks and Regards
Anil Patil

Hi
Can you please more specific
1) Normally in subcontracting if ur PO is open then it means that still the assembly stock is with vendor
2) in some case if the vendor consumes more components/qty than the original BOM qty in the received
Finished Goods  then you need to do subsequent adjustments
3) If u dont have any assembly components in hand for issuing the same to vendor then adjust the PO qty and close it
Regards
Amuthan M

Similar Messages

  • Report including open purchase order quantity for one storage location

    Hello gurus,
    I am looking for a report giving me the total/available stock and the open purchase order quantity for all materials stored in a certain storage location.
    I.e. like this:
    Plant 0001, storage loc. 01
    Material        stock        open purchase order quantity
    100000        200 pcs.   50pcs.
    Is there such a report in SAP standard?
    Thanks
    Alicia

    hI
    U want the report like this ,
    MAterial stock availablein storage location and with Open PO quantity for the same material.???
    This report u can get in 2 different transaction . the n u can combine and create one custom transaction .
    One is for materil stock in storage location is MB52 or MB5B
    THen ME2N for open PO quantity for that material.

  • Report for open purchase order quantity

    Dear experts,
    Is there any report for showing open purchase order quantity for which goods are not yet received?
    Regards
    babu

    Hi
    ref the blw link which will have the complete sap std reports
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/erplo/sapStandardReports

  • Open Purchase Order Quantity

    Hi, All,
    Is there any way to know how many open purchase order quantity in the SAP system?
    If I want to differentiate different business unit open purchase order, how I can do?
    What's the T-code?
    Thanks

    Hi,
    You can use ME2M, ME2N, ME2L, in the field Selection Parameters on the initial screen specify WE101 & the reports will list out all PO's for which GR is pending (i.e. Open PO's). Now you can change layout add / remove fields as per your need. You can also sub-total on plant or purchasing org. thereby getting the data you require. Also in the selection screen in the field Scope of List you can specify ALV to get an alv listing.
    Hope the above answers your query.
    Regards,
    Vivek

  • Total open purchase order quantity fro a material

    Hi,
    Waht is the table that contain the total open purchase order quantity (on order quantity, not yet goods receipt) for a material number?

    hi,
    You can check the table EKPO, EKKO, and EKBE...
    also for delivery schedules use the table EKET...
    You also have a report ME2N for the same, use the proper selection parameter...
    regards
    Priyanka.P

  • Open Purchase Order table.

    Hi
    I want to prepare a report which should display open Purchase Order quantity according to latest delivery date.
    I explain with a example.
    Say a material has 3 Purchase Orders with delivery date as 1st June,15th June and 20th June.Then system should pick the Purchase Order with delivery date as 1st June and it should dislay the quantity which is yet to be delivered,means there is possibility that GR has already been done for some of the quantity.
    To summarize the report should pick the latest Purchase Quantity and display the quantity yet to be delivered.Can anybody let me kow the Tables to be refered fro the same.
    Regards
    Vaibhav Mahajan

    Hi Vaibhav
    You can go to report by ME2N. Here you have multiple options for your reoport. In selection parameters you can put OPEN PO nad put the delievery date. There are many combinations available in this report.
    Please let me know if it doesn't work.
    Regards
    SS

  • Table for On order quantiy (Purchase order quantity not yet goods reciept)

    Hi,
    In which SAP table that contain the information for open purchase order quantity for a material 444(quantity order but goods receipt not yet done).??
    best regards,

    Hi,
    Table EKET will show this, field WEMNG qty delivered.
    Useful to create query and link EKET, EKPO and EKKO. You can then search for PO's where qty delivered = 0 but have not been deleted etc.
    Thanks.

  • Open Purchase Order UPload Using the BAPI 's

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

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

  • OPEN PURCHASE ORDER

    DEAR ALL,
    WHETHER WE HAVE A STANDARD REPORT IN SAP TO GET QUANTITY AND VALUE DATA OF BACK DATED OPEN PURCHASE ORDER?
    PURCHASE ORDER HAS BEEN PREPARED IN JANUARY, DOWN PAYMENT IS MADE IN THE MONTH OF MARCH, MATERIAL IS RECEIVED (GRN MADE) IN AUGUST
    IN ABOVE CASE WHEN I GENERATE A OPEN PURCHASE ORDER REPORT AS ON 31.03.2008 IT IS NOT SHOWING ME THE QUANTITY & VALUE DETAILS OF OPEN PURCHASE ORDERS.
    PLEASE LET ME KNOW THE WORK AROUND.
    WAITING
    AMIT

    Dear,
    Enter ME2N, Select WE101 in selection parameter field.
    Then enter other required detail and click on execute button.
    So system give you list of open purchase order.
    Then click on change layout button.
    Transfer Still to be invoiced (qty) field Column Set to Display column set mode.
    And click on continua button.
    Duse to this field you can track for how many quantity good receipt is created of purchase order.
    Regards,
    Mahesh Wagh

  • Open Purchase Order report

    Hello All,
    Anyone know how I can get the list of Open Purchase orders?
    Currently we are pulling all those POs with the following characteristics:
    PO item where
            all schedules have received qty zero.
    Open Schedules (EKET) - Don’t want fully or partially received
         Received Quantity (wemng) = zero
    The performance is not the greatest.
    Just curious to know how others are arriving at the list of Open Purchase Orders.
    Ideas / Thoughts???
    Thanks for any input.

    Why not checking for Final Invoice indicator EKPO-EREKZ = 'X'
    or/and Delivery Completed Indicator EKPO-ELIKZ = 'X'.
    select *
    from ekpo
    into table it_ekpo
    where delkz ne space and (erekz = 'X'
       or elikz = 'X').
    Regards,
    ravi

  • Open Purchase Orders and Open Sales Orders

    Hi,
    Please let me know the table names for open purchase orders and sales orders.
    Regards,
    Prii

    HI Priti,
    EKPO-ELIKZ  "Delivery completed" indicator, This tell if the given PO line items has any open quantity or not.
    Logic to find out if a given PO has Open Quantity or not is do the following:
        " select the PO Qunatity.
        SELECT SINGLE MENGE FROM EKPO INTO PO_QTY WHERE
        EBELN = ITAB_PO_LN-EBELN AND
        EBELP = ITAB_PO_LN-EBELP.
        " select the GR qunatity which has been received.
        SELECT SUM( MENGE ) FROM EKBE INTO GR_QTY WHERE
        EBELN = ITAB_PO_LN-EBELN AND
        EBELP = ITAB_PO_LN-EBELP AND
        BWART = '101'.
        " select GR Quantity which has been reversed.
        SELECT SUM( MENGE ) FROM EKBE INTO GR_REV_QTY WHERE
        EBELN = ITAB_PO_LN-EBELN  AND
        EBELP = ITAB_PO_LN-EBELP AND
        BWART = '102'.
        POSTED_QTY =   GR_QTY - GR_REV_QTY .
        OPEN_QTY = PO_QTY - POSTED_QTY.
    Regards,
    -Venkat.

  • Open Purchase order - urgent please

    Hi Friends,
    How to find an open purchase order, in which table i
    need to check that.
    Please let me know.
    Thanks in advance.
    Regards,
    Roberts.K

    Hi Roberts,
    You have to consider the movement type along with the debit/credit indicator. A 101 movement type is for a Goods receipt for a PO and 102 is a reversal movement of the same. So to get all the GR quantity against a particular PO item, I would sum up all the 101(SHKZG = H) and subtract all the 102(SHKZG = S). The result is my total GR quantity. Line item quantity minus this GR quantity is my open quantity. The only exception to this is when the 'delivery complete' indicator is set, which means even though my GR quantity does not match my item ordered quantity, there are no more deliveries expected against this line item.
    You can get these kind of reports from standard SAP reports. There is some configuration required, but you should be able to get open POs easily.
    Hope this helps,
    Srinivas

  • Return nothing when run Open Purchase order report(by Buyer)

    We implement iPro/PO in Oracle. I finished the PO setup. But now user report that they are not able to generate any output for a particular Buyer when they run the Open Purchase Orders Report(by Buyer) report in the PO module. Even I leave the parameter wide open for the request, it also does not return any information.
    Does it relate to the PO setting in system? Anyone can kindly guide me how to check such problem?

    Hi Kyla,
    PO raised by the buyer is 'STANDARD','BLANKET','PLANNED' ? What is the PO Status..? It should be "OPEN"..
    Query used in this report is as below :
    Query - Company
    SELECT gsb.name c_company
    , fsp.inventory_organization_id c_organization_id
    , gsb.currency_code C_CURRENCY_BASE
    , gsb.chart_of_accounts_id STRUCTURE_ACC
    , mdv.structure_id STRUCTURE_CAT
    , mdv.category_set_id c_category_set_id
    , flo1.meaning c_yes
    , flo2.meaning c_no
    FROM gl_sets_of_books gsb
    , financials_system_parameters fsp
    , mtl_default_sets_view mdv
    , fnd_lookups flo1
    , fnd_lookups flo2
    WHERE gsb.set_of_books_id = fsp.set_of_books_id
    AND mdv.functional_area_id = 2
    AND flo1.lookup_type = 'YES_NO'
    AND flo1.lookup_code = 'Y'
    AND flo2.lookup_type = 'YES_NO'
    AND flo2.lookup_code = 'N'
    Query - Buyer
    SELECT distinct(pov.vendor_name||papf.full_name)
    , papf.full_name Buyer
    , pov.vendor_name Vendor
    , pov.vendor_id
    , papf. person_id employee_id
    FROM PER_ALL_PEOPLE_F PAPF
    , po_vendors pov
    , po_headers poh
    WHERE poh.agent_id = papf.person_id
    AND poh.vendor_id = pov.vendor_id
    AND poh.type_lookup_code in ('STANDARD','BLANKET','PLANNED')
    AND nvl(poh.closed_code,'OPEN') NOT IN ('FINALLY CLOSED', 'CLOSED')
    AND nvl(poh.cancel_flag,'N') = 'N'
    /* AND papf.full_name = nvl(:P_buyer,papf.full_name) */
    /* Bug#2453022 Commented out the above condition and replaced
    it as follows as the user parameter P_Buyer will now return the id and not the name */
    AND papf.person_id = nvl(:P_buyer,papf.person_id)
    AND pov.vendor_name BETWEEN nvl(:P_vendor_from,pov.vendor_name)
    AND nvl(:P_vendor_to,pov.vendor_name)
    AND EXISTS (select 'x'
    from po_lines pol
    , po_line_locations pll
    , po_releases por
    where pol.po_header_id = poh.po_header_id
    and pol.po_line_id = pll.po_line_id
    and nvl(pll.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    and nvl(pol.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    and nvl(por.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    and nvl(pll.cancel_flag,'N') = 'N'
    and nvl(pol.cancel_flag,'N') = 'N'
    and nvl(por.cancel_flag,'N') = 'N'
    and pll.shipment_type in ('STANDARD','BLANKET','SCHEDULED')
    and pll.po_release_id = por.po_release_id(+))
    AND PAPF.EMPLOYEE_NUMBER IS NOT NULL
    AND TRUNC(SYSDATE) BETWEEN PAPF.EFFECTIVE_START_DATE AND
    PAPF.EFFECTIVE_END_DATE
    AND DECODE(HR_SECURITY.VIEW_ALL ,'Y' , 'TRUE',
    HR_SECURITY.SHOW_RECORD('PER_ALL_PEOPLE_F',PAPF.PERSON_ID,
    PAPF.PERSON_TYPE_ID,
    PAPF.EMPLOYEE_NUMBER,PAPF.APPLICANT_NUMBER )) = 'TRUE'
    AND DECODE(HR_GENERAL.GET_XBG_PROFILE,'Y', PAPF.BUSINESS_GROUP_ID ,
    HR_GENERAL.GET_BUSINESS_GROUP_ID) = PAPF.BUSINESS_GROUP_ID
    ORDER BY papf.full_name
    , pov.vendor_name
    Query - PO
    SELECT distinct(pol.line_num) Line
    , poh.segment1 ||decode(por.release_num,null,'','-')|| por.release_num PO_Number_Release
    , poh.currency_code C_CURRENCY
    , plt.line_type Line_Type
    , &P_FLEX_CAT C_FLEX_CAT
    , &P_FLEX_ITEM C_FLEX_ITEM
    , pol.item_revision Rev
    , pol.item_description Description
    , pol.po_header_id
    , pol.po_line_id
    , poh.vendor_id
    , poh.agent_id
    , psp.manual_po_num_type
    , poh.segment1
    , por.release_num
    , nvl(por.po_release_id,-1) release_id
    FROM po_line_locations pll
    , mtl_system_items msi
    , mtl_categories mca
    , po_lines pol
    , po_releases por
    , po_headers poh
    , po_line_types plt
    , po_system_parameters psp
    WHERE poh.po_header_id = pol.po_header_id
    AND pol.po_line_id = pll.po_line_id
    AND pll.po_release_id = por.po_release_id(+)
    AND pol.line_type_id = plt.line_type_id
    AND pol.item_id = msi.inventory_item_id(+)
    AND msi.organization_id(+) = :c_organization_id
    AND pol.category_id = mca.category_id
    AND nvl(pll.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(pol.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(poh.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(por.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(pll.cancel_flag,'N') = 'N'
    AND nvl(pol.cancel_flag,'N') = 'N'
    AND nvl(poh.cancel_flag,'N') = 'N'
    AND nvl(por.cancel_flag,'N') = 'N'
    AND pll.shipment_type in ('STANDARD', 'BLANKET', 'SCHEDULED')
    ORDER BY decode(psp.manual_po_num_type,'NUMERIC',
    --bug#3614924
    decode(rtrim(poh.segment1,'0123456789'),NULL,to_number(poh.segment1))
    , null)
    , decode(psp.manual_po_num_type,'NUMERIC',null, poh.segment1)
    , por.release_num
    , pol.line_num
    Query - Shipment
    SELECT pll.shipment_num Shipment
    , nvl(pll.promised_date,pll.need_by_date) P_Date
    , pol.unit_meas_lookup_code Unit
    , DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', PLL.amount,
    'FIXED PRICE', PLL.amount,
    PLL.quantity) Ordered
    , DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', PLL.amount_received,
    'FIXED PRICE', PLL.amount_received,
    PLL.quantity_received) Received
    , DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', PLL.amount_billed,
    'FIXED PRICE', PLL.amount_billed,
    PLL.quantity_billed) Billed
    , pll.price_override Unit_Price
    , DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', (PLL.amount - NVL(PLL.amount_received, 0))/
    DECODE(NVL(PLL.amount, 0), 0, 1, PLL.amount),
    'FIXED PRICE', (PLL.amount - NVL(PLL.amount_received, 0))/
    DECODE(NVL(PLL.amount, 0), 0, 1, PLL.amount),
    (NVL(PLL.quantity, 0) - NVL(PLL.quantity_received, 0))/
    DECODE (NVL(PLL.quantity, 0), 0, 1, PLL.quantity)) * 100 Percent_Due
    , plc.displayed_field Open_For
    , pll.po_line_id
    , nvl(pll.po_release_id,-1) join_release_id
    FROM po_line_locations pll
    , po_lines pol
    , po_lookup_codes plc
    WHERE pol.po_line_id = pll.po_line_id
    AND nvl(pll.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(pol.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(pll.cancel_flag,'N') = 'N'
    AND nvl(pol.cancel_flag,'N') = 'N'
    AND plc.lookup_type = 'DOCUMENT STATE'
    AND plc.lookup_code = nvl(pll.closed_code, 'OPEN')
    AND pll.shipment_type in ('STANDARD', 'BLANKET', 'SCHEDULED')
    ORDER BY pll.shipment_num

  • Open purchase orders report

    Hello,
    I am trying to write an open purchase orders report.
    Is there any field that indicates that an purchase order item is closed or not? I tried with the EKPO-WEPOS (goods receipt indicator), but it is allwais filled.... , or EKPO-ELIKZ (delivery completed), but not working....

    In my case a PO item is opem if the order quantity is smaller than the goods receipt quantity.
    I solved the problem in this way:
    SELECT ekpomenge eketwemng FROM ekpo
        join eket on ekpoebeln = eketebeln and ekpoebelp = eketebelp
        INTO CORRESPONDING FIELDS OF TABLE t_comenzi
        WHERE ekpo~matnr = s_matnry-matnr
        AND ekpomenge < eketwemng
        AND ekpo~loekz = space
        AND ekpo~elikz <> 'X'
        AND ekpo~werks = p_plant.
        IF t_comenzi[] IS NOT INITIAL.
        data diferenta like count_com.
          LOOP AT t_comenzi INTO s_comenzi.
          diferenta = s_comenzi-menge - s_comenzi-wemng.
            count_com = count_com + diferenta.
          ENDLOOP.
          REFRESH t_comenzi.
        ENDIF.
    I hoped to find a better way, but so far is the only way...

  • Urgent :Doubt on open Purchase orders

    Hi friends,
    i will be more help full if anybody can help me on below issue how to find open PO and partially open PO.
    Only “open” purchase orders will be extracted for conversion into Destination Server. An “open” purchase order is defined as any unshipped, non-cancelled with “open quantities”. In regards to, partially “open” purchase orders, we will only convert “open” units (i.e. Original ordered qty was 300; 70 have shipped, 230 remain open…Target Server sales order will have an original order qty of 230).
    also where to find that Sub Contracting orders and Sample orders.
    • Orders not considered for migration because they will have either shipped in full or deleted prior to data migration as a part of data clean-up: ALL subcontracting orders; sample orders
    please help me on the above two issues.
    thanks and Regards,
    Gokul.

    Hi
    First take the ALL Po's from EKKO and EKPO tables and check for the different GR's and GI's qty's from MKPF and MSEG tables and you have to compare the PO qty with the total GR/GI qty's and to find the OPEN po's
    see the sample report
    *& Report  ZMM_PO_REPORT
    REPORT  ZMM_PO_REPORT message-Id yb
           NO STANDARD PAGE HEADING
           LINE-COUNT 60(1)
           LINE-SIZE 230.
           D A T A B A S E  T A B L E S   D E C L A R A T I O N
    TABLES: lfa1,           " Vendor Master
            t161,           " PO Doc Types
            t024,           " Purchase Groups
            ekko.           " PO Header
                   T Y P E S  D E C L A R A T I O N S
    Purchase Orders Main Structure
    TYPES: BEGIN OF s_po,
            ebeln TYPE ebeln,           " PO No.
            ebelp TYPE ebelp,           " PO Item
            bstyp TYPE bstyp,           " PO Category
            bukrs TYPE bukrs,           " Company Code
            bsart TYPE bbsrt,           " PO Type
            lifnr TYPE lifnr,           " Vendor No
            ekgrp TYPE bkgrp,           " Purchase Group
            waers TYPE waers,           " Currency
            bedat TYPE etbdt,           " PO Date
            txz01 TYPE txz01,           " Material Text
            werks TYPE ewerk,           " Plant
            lgort TYPE lgort_d,         " Storage Location
            matkl TYPE matkl,           " Material Group
            menge TYPE bamng,           " PR Quantity
            meins TYPE bamei,           " UOM
            bprme TYPE bbprm,           " Price Unit
            netpr TYPE netpr,           " Net price
            peinh TYPE peinh,           " Price Unit UOM
            pstyp TYPE pstyp,           " Item Category
            knttp TYPE knttp,           " Account Assignment Category
           END OF s_po.
    Purchase Orders History Structure
    TYPES: BEGIN OF s_account,
            ebeln TYPE ebeln,           " PO No.
            ebelp TYPE ebelp,           " PO Item
            gjahr TYPE mjahr,           " Fiscal Year
            belnr TYPE mblnr,           " PO Invoice No
            menge TYPE menge_d,         " PR Quantity
            wrbtr TYPE wrbtr,           " Price in Local Currency
            dmbtr TYPE dmbtr,           " Price in Foreign Currency
            waers TYPE waers,           " Currency
            shkzg TYPE shkzg,           " Dr/Cr Indicator
           END OF s_account.
    Purchase Orders History Structure(Item Sum)
    TYPES: BEGIN OF s_inv_sum,
            ebeln TYPE ebeln,           " PO No.
            ebelp TYPE ebelp,           " PO Item
            menge TYPE menge_d,         " PR Quantity
            wrbtr TYPE wrbtr,           " Price in Foreign Currency
            waers TYPE waers,           " Currency
           END OF s_inv_sum.
    Purchase Orders Main Structure
    TYPES: BEGIN OF s_rep,
            lifnr TYPE lifnr,           " Vendor No
            ebeln TYPE ebeln,           " PO No.
            ebelp TYPE ebelp,           " PO Item
            bstyp TYPE bstyp,           " PO Category
            bsart TYPE bbsrt,           " PO Type
            ekgrp TYPE bkgrp,           " Purchase Group
            waers TYPE waers,           " Currency
            bedat TYPE etbdt,           " PO Date
            txz01 TYPE txz01,           " Material Text
            werks TYPE ewerk,           " Plant
            lgort TYPE lgort_d,         " Storage Location
            matkl TYPE matkl,           " Material Group
            menge TYPE bamng,           " PR Quantity
            meins TYPE bamei,           " UOM
            bprme TYPE bbprm,           " Price Unit
            netpr TYPE netpr,           " Net price
            peinh TYPE peinh,           " Price Unit UOM
            pstyp TYPE pstyp,           " Item Category
            knttp TYPE knttp,           " Account Assignment Category
            name1 TYPE name1,           " Plant
            orewr TYPE netpr,           " To be Invoiced Price
            curr  TYPE waers,           " Inv Doc Currency
           END OF s_rep.
               D A T A  D E C L A R A T I O N S
    DATA: gv_title1 TYPE sylisel,            " Report title
          gv_dial.                           " Color flag
                C O N S T A N T S  D E C L A R A T I O N S
    CONSTANTS: c_x                VALUE 'X',   " Flag X
               c_h                VALUE 'H',   " Debit
               c_vgabe TYPE vgabe VALUE '2'.   " Transaction Type
         I N T E R N A L  T A B L E S  D E C L A R A T I O N S
    DATA: i_po    TYPE STANDARD TABLE OF s_po WITH HEADER LINE,
                                 " Purchase Order
          i_inv   TYPE STANDARD TABLE OF s_inv_sum WITH HEADER LINE,
                                         " PO Invoice Values
          i_rep   TYPE STANDARD TABLE OF s_rep WITH HEADER LINE,
                                     " PO Invoice Values
          i_ekbe  TYPE STANDARD TABLE OF s_account WITH HEADER LINE.
                               " PO Invoice Values
                     S E L E C T I O N  S C R E E N                      *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr MATCHCODE OBJECT kred,
                    s_ebeln FOR ekko-ebeln MATCHCODE OBJECT mekk,
                    s_bsart FOR t161-bsart,
                    s_ekgrp FOR t024-ekgrp,
                    s_bedat FOR ekko-bedat.
    SELECTION-SCREEN END OF BLOCK b1.
                      I N I T I A L I Z A T I O N                        *
    INITIALIZATION.
                  A T  S E L E C T I O N - S C R E E N                   *
    AT SELECTION-SCREEN.
    Validate the screen fields
      PERFORM validate_screen.
                   S T A R T - O F - S E L E C T I O N                   *
    START-OF-SELECTION.
    Fetch main data
      PERFORM fetch_data.
                   T O P - O F - P A G E                                 *
    TOP-OF-PAGE.
    Header of the List
      PERFORM header.
                   E N D - O F - P A G E                                 *
    Footer
    END-OF-PAGE.
      ULINE.
                   E N D - O F - S E L E C T I O N                       *
    END-OF-SELECTION.
    Display the Report Output data
      PERFORM display_data.
    At Line-Selection
    AT LINE-SELECTION.
    When double clicked on EBELN display the details of Purchase Doc
      PERFORM line_sel.
    *&      Form  validate_screen
    Validation of Selection Screen fields
    FORM validate_screen .
    Validation of Vendor Number
      CLEAR lfa1-lifnr.
      IF NOT s_lifnr[] IS INITIAL.
        SELECT lifnr UP TO 1 ROWS
            INTO lfa1-lifnr
            FROM lfa1
            WHERE lifnr IN s_lifnr.
        ENDSELECT.
        IF sy-subrc <> 0.
          MESSAGE e000 WITH 'Invalid Vendor'(002).
        ENDIF.
      ENDIF.
    Validation of PO Number
      CLEAR ekko-ebeln.
      IF NOT s_ebeln[] IS INITIAL.
        SELECT ebeln UP TO 1 ROWS
            INTO ekko-ebeln
            FROM ekko
            WHERE ebeln IN s_ebeln.
        ENDSELECT.
        IF sy-subrc <> 0.
          MESSAGE e000 WITH 'Invalid Document Number'(003).
        ENDIF.
      ENDIF.
    Validation of PO Document Type
      CLEAR t161-bsart.
      IF NOT s_bsart[] IS INITIAL.
        SELECT bsart UP TO 1 ROWS
            INTO t161-bsart
            FROM t161
            WHERE bsart IN s_bsart.
        ENDSELECT.
        IF sy-subrc <> 0.
          MESSAGE e000 WITH 'Invalid Purchase Document Type'(004).
        ENDIF.
      ENDIF.
    Validation of Purchasing Group
      CLEAR t024-ekgrp.
      IF NOT s_ekgrp[] IS INITIAL.
        SELECT ekgrp UP TO 1 ROWS
            INTO t024-ekgrp
            FROM t024
            WHERE ekgrp IN s_ekgrp.
        ENDSELECT.
        IF sy-subrc <> 0.
          MESSAGE e000 WITH 'Invalid Purchasing Group'(005).
        ENDIF.
      ENDIF.
    ENDFORM.                    " validate_screen
    *&      Form  fetch_data
    Fetching the PO related data from Database Tables
    FORM fetch_data .
      CLEAR i_po.
      REFRESH i_po.
      SELECT a~ebeln            " PO No.
             b~ebelp            " PO Item
             a~bstyp            " PO Category
             a~bukrs            " Company Code
             a~bsart            " PO Type
             a~lifnr            " Vendor No
             a~ekgrp            " Purchase Group
             a~waers            " Currency
             a~bedat            " PO Date
             b~txz01            " Material Text
             b~werks            " Plant
             b~lgort            " Storage Location
             b~matkl            " Material Group
             b~menge            " PR Quantity
             b~meins            " UOM
             b~bprme            " Price Unit
             b~netpr            " Net price
             b~peinh            " Price Unit UOM
             b~pstyp            " Item Category
             b~knttp            " Account Assignment Category
        INTO TABLE i_po
        FROM ekko AS a JOIN ekpo AS b
        ON a~ebeln = b~ebeln
        WHERE a~ebeln IN s_ebeln AND
              a~lifnr IN s_lifnr AND
              a~ekgrp IN s_ekgrp AND
              a~bsart IN s_bsart AND
              a~bedat IN s_bedat.
      SORT i_po BY ebeln ebelp.
      break-point.
      IF NOT i_po[] IS INITIAL.
    Fetch the PO History/Invoice Details from EKBE Table
        CLEAR i_ekbe.
        REFRESH i_ekbe.
        SELECT ebeln           " PO No.
               ebelp           " PO Item
               gjahr           " Fiscal Year
               belnr           " PO Invoice No
               menge           " PR Quantity
               wrbtr           " Price in Local Currency
               dmbtr           " Price in Foreign Currency
               waers           " Currency
               shkzg           " Dr/Cr Indicator
         INTO TABLE i_ekbe
         FROM ekbe
         FOR ALL ENTRIES IN i_po
         WHERE ebeln = i_po-ebeln AND
               ebelp = i_po-ebelp AND
               vgabe = c_vgabe.
      break-point.
        IF sy-subrc = 0.
          SORT i_ekbe BY ebeln ebelp.
          LOOP AT i_ekbe.
            IF i_ekbe-shkzg = c_h.
              i_ekbe-wrbtr = i_ekbe-wrbtr * -1.
            ENDIF.
            MODIFY i_ekbe.
          ENDLOOP.
      break-point.
    Sum up the Item wise Invoice totals
          LOOP AT i_ekbe.
            AT END OF ebelp.
              READ TABLE i_ekbe INDEX sy-tabix.
              SUM.
              MOVE-CORRESPONDING i_ekbe TO i_inv.
              APPEND i_inv.
            ENDAT.
            CLEAR i_inv.
          ENDLOOP.
          SORT i_inv BY ebeln ebelp.
            break-point.
        ENDIF.
      ENDIF.
    Move the Vendor Name and Invoice Values to I_rep Internal Table
      LOOP AT i_po.
        MOVE-CORRESPONDING i_po TO i_rep.
        CLEAR i_inv.
        READ TABLE i_inv WITH KEY ebeln = i_po-ebeln
                                  ebelp = i_po-ebelp.
        IF sy-subrc = 0.
          i_rep-orewr = ( i_po-menge - i_inv-menge ) * i_po-netpr.
          i_rep-curr  = i_inv-waers.
        ELSE.
          i_rep-orewr = i_po-menge * i_po-netpr.
          i_rep-curr  = i_po-waers.
        ENDIF.
      break-point.
    Get the Vendor Name
        CLEAR lfa1-name1.
        SELECT SINGLE name1 FROM lfa1 INTO lfa1-name1
          WHERE lifnr = i_po-lifnr.
        IF sy-subrc = 0.
          i_rep-name1  = lfa1-name1.
        ENDIF.
        APPEND i_rep.
        CLEAR  i_rep.
          break-point.
      ENDLOOP.
      SORT i_rep BY lifnr ebeln ebelp.
      DELETE i_rep WHERE orewr LE 0.
      break-point.
    ENDFORM.                    " fetch_data
    *&      Form  display_data
    Display the Report Output data
    FORM display_data .
      DATA: lv_flag,               " New Flag
            lv_rec TYPE i.         " No of Records
      CLEAR lv_rec.
      IF i_rep[] IS INITIAL.
        MESSAGE e000 WITH 'No Data found'(022).
      ELSE.
        LOOP AT i_rep.
    Toggle Color
          PERFORM toggle_color.
          IF lv_flag <> space.
            NEW-LINE.
          ENDIF.
    At New Purchase Document
          AT NEW ebeln.
            WRITE:/1 sy-vline, 2(10) i_rep-ebeln INTENSIFIED OFF.
            lv_flag = c_x.
            lv_rec = lv_rec + 1.
          ENDAT.
          WRITE: 1 sy-vline,
                12 sy-vline,13(4)   i_rep-bsart,
                17 sy-vline,18(10)  i_rep-lifnr,
                28 sy-vline,29(35)  i_rep-name1,
                64 sy-vline,65(4)   i_rep-ekgrp,
                69 sy-vline,70(10)  i_rep-bedat,
                80 sy-vline,81(5)   i_rep-ebelp,
                86 sy-vline,87(40)  i_rep-txz01,
               127 sy-vline,128(9)  i_rep-matkl,
               137 sy-vline,138(1)  i_rep-pstyp,
               139 sy-vline,140(1)  i_rep-knttp,
               141 sy-vline,142(4)  i_rep-werks,
               146 sy-vline,147(4)  i_rep-lgort,
               151 sy-vline,152(13) i_rep-menge UNIT i_rep-meins,
               165 sy-vline,166(3)  i_rep-meins,
               169 sy-vline,170(15) i_rep-netpr CURRENCY i_rep-waers,
               185 sy-vline,186(4)  i_rep-waers,
               190 sy-vline,191(5)  i_rep-peinh,
               196 sy-vline,197(4)  i_rep-bprme,
               201 sy-vline,202(15) i_rep-orewr CURRENCY i_rep-curr,
               217 sy-vline,218(4)  i_rep-curr,
               222 sy-vline,223(7)  i_rep-bstyp centered,
               230 sy-vline.
          NEW-LINE.
          hide: i_rep-ebeln.
        ENDLOOP.
        ULINE.
        FORMAT COLOR OFF.
        WRITE : /2 'Total Number of Purchasing Documents:'(025) COLOR 3,
                    lv_rec COLOR 3.
      ENDIF.
    ENDFORM.                    " display_data
    *&      Form  header
    Write the Report Header
    FORM header .
      FORMAT RESET.
    header
      WRITE:/1(230) 'LIST OF PURCHASE DOCUMENTS PER VENDOR'(006) CENTERED.
      SKIP.
      FORMAT COLOR COL_HEADING.
      ULINE.
      WRITE:/1 sy-vline,2(10)   'Pur.Doc.No'(006) CENTERED,
            12 sy-vline,13(4)   'Type'(007),
            17 sy-vline,18(10)  'Vendor'(008) CENTERED,
            28 sy-vline,29(35)  'Name'(009) CENTERED,
            64 sy-vline,65(4)   'PGrp'(010) CENTERED,
            69 sy-vline,70(10)  'Doc.Date'(012) CENTERED,
            80 sy-vline,81(5)   'Item'(011),
            86 sy-vline,87(40)  'Material Short Text'(024) CENTERED,
           127 sy-vline,128(9)  'Mat.Group'(013),
           137 sy-vline,138(1)  'I',
           139 sy-vline,140(1)  'A',
           141 sy-vline,142(4)  'Plnt'(014),
           146 sy-vline,147(4)  'SLoc'(015),
           151 sy-vline,152(13) 'Quantity'(016) CENTERED,
           165 sy-vline,166(3)  'UoM'(017),
           169 sy-vline,170(15) 'Net Value'(018) CENTERED,
           185 sy-vline,186(4)  'Curr'(019),
           190 sy-vline,191(5)  'Per'(020),
           196 sy-vline,197(4)  'Unit'(021),
           201 sy-vline,202(15) 'To be Invoiced'(023) CENTERED,
           217 sy-vline,218(4)  'Curr'(019),
           222 sy-vline,223(7)  'Doc.Cat'(026),
           230 sy-vline.
      ULINE.
    ENDFORM.                    " header
    *&      Form  toggle_color
    This routine alters the color of the records in the list
    FORM toggle_color.
      IF gv_dial = space.
        FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
        gv_dial = c_x.
      ELSE.
        FORMAT COLOR 1 INTENSIFIED OFF.
        CLEAR gv_dial.
      ENDIF.
    ENDFORM.                    " toggle_color
    *&      Form  LINE_SEL
    *When double clicked on EBELN field display the details of Purchase Doc
    FORM line_sel.
      CASE sy-lsind.
        WHEN '1'.
          DATA: lv_field(20),
                lv_value(10),
                lv_bstyp like i_rep-bstyp.
          clear: lv_bstyp,lv_value, lv_field.
          GET CURSOR FIELD lv_field VALUE lv_value.
          IF lv_field = 'I_REP-EBELN'.
            IF NOT lv_value IS INITIAL.
              READ LINE sy-index FIELD VALUE i_rep-bstyp
                                       INTO  lv_bstyp.
             READ CURRENT LINE FIELD VALUE i_rep-bstyp INTO lv_bstyp.
              if lv_bstyp = 'F'.
                SET PARAMETER ID 'BES' FIELD lv_value.
                CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
              elseif ( lv_bstyp = 'K' or lv_bstyp = 'L' ).
                SET PARAMETER ID 'VRT' FIELD lv_value.
                CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.
              elseif lv_bstyp = 'A'.
                SET PARAMETER ID 'ANF' FIELD lv_value.
                CALL TRANSACTION 'ME43' AND SKIP FIRST SCREEN.
              endif.
            ENDIF.
          ENDIF.
      ENDCASE.
    ENDFORM.                    " line_sel
    <b>Reward points for useful Answers</b>
    Regards
    Anji

Maybe you are looking for

  • How to create interface when target is a webservice

    Hi I have following requirement I want to sent data from a table to a web service.I have source as oracle database table and in the target end i have web service.Do i have to reverse engineer the webservice in this case.If so how i have make web serv

  • Video in Quiz Feedback?

    Hi, I am creating an e-learning course with a digital agent who guides the learner through the course. During the quizzes, I want to have the agent  deliver the feedback. I'm using Adobe Captivate 5, and the agent is being generated from another prog

  • Reading Classification data for material

    Hi all can anybody give me a FM or BAPI to read the classification data for a particular material.. Kindly help . apt points will be rewarded Regards N manjrekar

  • BME-00600: The UML Package ... could not be resolved - When opening diagram

    Hi everybody, when opening an existing activity diagram we are receiving the error below. The files are present on the filesystem. Other diagrams like database diagram could be opened with no problems. We are using JDeveloper version 10.1.3.0.3 (Earl

  • Why cant i activate my iphone?

    My iphone is not activating after i reset it