Functional Training  of Purchase Order Flow
What is flow of PO:

Step 1:We will be raising the Requisitions for the items which are needed.
Requisition is 2 types • Internal Requisition • Purchase
Internal Requisition is used when we are getting the items from one organization to another organization of the same business group.
Purchase Requisition is raised when we are getting the items from outside the business group.

Step 2:Once the Requisition has been approved, we will be sending (Request For Quotes) RFQ’s to different Suppliers. It contains the information regarding the type of RFQ, terms and conditions, shipments, currency.
RFQ is of 3 types
• Bid RFQ • Catalog • Standard
BID: Used for a fixed specific quantity, Location and date. This will be used for large or expensive price of equipments. That you have never order before. There won’t be price any breaks for a BID Quotation.
CATALOG: This will be used for high volume items for which your supplier sends information regularly. The CATALOG RFQ includes price breaks at different quantity levels.
STANDARD: It is used for items we need only once or not very often for a specific fixed quantity, location and date. It includes price breaks at different quantity levels.

Step 3:We will be receiving the quotations from different suppliers. Quotation is of 3 Types.
• Bid
• Catalog
• Standard

Step 4:Based on the quotations, we will be deciding the supplier and purchasing order is given to that supplier.
Purchasing is of 4 types
• Standard
• Planned
• Blanket
• Contract

Step 5:Once we receive the items from the Supplier we will issue the receipts to the Supplier. This is done in 3 ways.
• Two-Way: In 2-way we will compare PO and Invoice.• Three-Way: In 3-way we will compare the PO, Receipt and Invoice.• Four-Way: In 4-way we will compare PO, Receipt, Inspection and Invoice.

2-Way Matching verifies that Purchase order and invoice information match within your tolerances as follows:Quantity Billed <-Quantity Ordered Invoice Price <- Purchase Order Price (<- Sign is used because of tolerances)

3-Way Matching verifies that the receipt and invoice information match with the quantity tolerances defined:Quantity billed Quantity received

4-Way Matching verifies that acceptance documents and invoice information match within the quantity tolerances defined:Quantity billed <- Quantity accepted. (Acceptance is done at the time of Inspecting goods).Whether a PO shipment has 2-way, 3-way or 4-way matching can be setup in the Shipment Details zone of the Enter PO form (character).

RECEIPT REQUIRED INSPECTION REQUIRED MATCHING
Yes Yes 4-Way
Yes No 3-Way
No No 2-Way
In ‘More’ alternative region of Shipments block, you define the Invoice Matching option, where you can choose 2-way, 3-way or 4-way match.

Step 6:Because of these Transactions Inventory and Payables get affected.

Training  of Account Payables -> Account Payables Flow:
PO -> Receipt -> AP -> GL

Invoice ->; Payments->; Move Transactions from AP to GLIn AP there are 2 Thumb rules.

• Without supplier there is no invoice.
• Without invoice there is no payment.

How many types of Invoices and What are Invoice Types:
1. Standard: We will make all the payments based on the standard invoice. It will have the information of Invoice Number, Invoice Date, Invoice Amount, and Currency.
2. Credit Memo: We will create credit memo invoice whenever supplier is giving the discount and it will be adjusted in standard invoice. It is always negative amount.
3. Debit Memo: Sometimes Company will deduct some amount from the invoice amount. This will be adjusted in standard invoice. It is always negative amount.
4. With-Holding TAX: This type of invoice will be created to make the invoice tax to the Govt. on behalf of supplier.
5. Pre-Payment: If we want to make some payments to the supplier in advance then we create the Pre-Payment invoice.
6. PO Default: If we want to make the invoice as per the PO then we create PO default. We will give Po Number. System will pick up the complete PO information.
7. Mixed: Includes both positive and negative amount. We can match this invoice with PO’s and other invoices.
8. Expense Report: This will be applicable for the employees who are working in the Company where payables and internet expense and project account. Expense will be included.
9. Recurring invoice: We can enter invoice for periodic expense for which we may not receive. Invoice from supplier. To create a Recurring invoice first we will take template.
As per that we will create the invoice.Once the invoice is successfully completed, we can go for payments. It is of 3 types.

Manual Payment: Here we will be mentioning the Invoice Number, Bank Account, and Document Number, Payment Date and Currency.

Refund payment: This is used for Employee expenses and for adjusting the Supplier account,

Quick payment: In this payment, system will automatically generate checks. To print Checks there will be a concurrent program for each check format.Once the payment was done, we will move all the transactions to GL.

Wo is Suppliers:
Set up suppliers in the Suppliers window to record information about individuals and companies from whom you purchase goods and services. You can also enter employees whom you reimburse for expense reports. When you enter a supplier that does business from multiple locations, you store supplier information only once, and enter supplier sites for each location. You can designate supplier sites as pay sites, purchasing sites, RFQ only sites, or procurement card sites. For example, for a single supplier, you can buy from several different sites and send payments to several different sites. Most supplier information automatically defaults to all supplier sites to facilitate supplier site entry. However, you can override these defaults and have unique information for each site. The system uses information you enter for suppliers and supplier sites to enter default values when you later enter transactions for a supplier site. Most information you enter in the Suppliers window is used only to enter defaults in the Supplier Sites window. When the system enters that information in a later transaction, it only uses supplier site information as a default, even if the supplier site value is null and the supplier has a value. If you update information at the supplier level, existing supplier sites are not updated. When you enter a supplier, you can also record information for your own reference, such as names of contacts or the customer number your supplier has assigned to you.

What is Invoices:
Invoice Type (LOV): The type of invoice. Standard and Credit are the only invoice types you can enter in this window. If you do not enter a value for this field then a value will be assigned during import based on the amount of the invoice.

Standard: A trade invoice you receive from a supplier. The amount of a Standard invoice must be zero or greater.

Credit: Credit Memo. A negative amount invoice you receive from a supplier representing a credit for goods or services purchased. Note that in the Invoice Gateway you can match a credit memo to a purchase order to perform a price correction, but you cannot match a credit memo to an invoice. If you want to match to an invoice, then use the Invoice Workbench.

Debit Memo: Negative amount invoice created by you and sent to a supplier to notify the supplier of a credit you are recording. Usually send with a note explaining the debit memo. Purchase Order Matched Invoices: You can match Payables invoices to purchase orders to ensure that you pay only for the goods that you have ordered, or you can match to purchase order receipts to ensure that you pay only for goods that you have received. Purchase order matched invoices are invoices that you match to any of the following:
• Purchase order shipments
• Purchase order receipts
• Purchase order receipt lines
• Purchase order distributions

Foreign Currency Invoices: When you enter an invoice in a currency other than your functional currency, Payables uses an exchange rate to convert the invoice and invoice distributions into your functional currency for creating journal entries. You define your functional currency during setup for your set of books.
Mixed Invoices: Mixed Invoices are invoices or credit/debit memos for which you can perform both positive and negative matching to purchase orders and to other invoices. For example, you can enter an invoice for –$100 with Invoice Type Mixed. You can match to an invoice for $–200, and match to a purchase order for $100.

Prepayments:A prepayment is a type of invoice you enter to make an advance payment to a supplier or employee. For example, you need to pay a deposit on a lease, or pay an employee an advance for travel expenses. You can later apply the prepayment to one or more invoices or expense reports you receive from the supplier or employee to offset the amount paid to them. The supplier might send an invoice that references a prepayment. The supplier has reduced the invoice amount by the amount of the prepayment and associated tax. You can use the Prepayment on Invoice feature to enter the invoice.
You can enter two types of prepayments:
Temporary prepayments can be applied to invoices or expense reports you receive. For example, you use a Temporary prepayment to pay a hotel a catering deposit. When the hotel’s invoice arrives, apply the prepayment to the invoice to reduce the invoice amount you pay.
Permanent prepayments cannot be applied to invoices. For example you use a Permanent prepayment to pay a lease deposit for which you do not expect to be invoiced.

What are types of Matching? 

2–way matching: The process of verifying that purchase order and invoice information matches within accepted tolerance levels.
Payables use the following criteria to verify two–way matching:

Invoice price <= Order price
Quantity billed <= Quantity ordered

3–way matching: The process of verifying that purchase order, invoice, and receiving information matches within accepted tolerance levels. Payables use the following criteria to verify three–way matching:

Invoice price <= Purchase Order price
Quantity billed <= Quantity ordered
Quantity billed <= Quantity received

4–way matching: The process of verifying that purchase order, invoice, and receiving information matches within accepted tolerance levels. Payables use the following criteria to verify four–way matching:

Invoice price <= Order price
Quantity billed <= Quantity ordered
Quantity billed <= Quantity received
Quantity billed <= Quantity accepted

What is FOB (Free On Board): The point or location where the ownership title of goods is transferred from the seller to the buyer. This indicates that delivery of a shipment will be made on board or into a carrier by the shipper without charge, and is usually followed by a shipping point or destination (e.g. ’FOB Our warehouse in New York’). The FOB code is currently available only for reference purposes. Revenue and cost recognition is not currently determined by the value entered in this field. (Receivables Lookup)

What is Purge : An Oracle Receivables Process, where you identify a group of records for Receivables to delete from the database. Receivables purge each record and its related records. Receivables maintain summary data for each record it purges.

Following scripts used to test Payable open Interface for Invoices contains Project Data:

 Query for to get PO details:
 –select * from po_headers_all  where  PO_HEADER_ID=63845
–AND segment1=’NEX060378-002′
 –select * from po_lines_all where po_header_id=63845
–select * from po_vendors where vendor_id=11813
 –select * from po_line_locations_all where po_header_id=63845
  –select *  from PO_DISTRIBUTIONS_ALL
 –select * from ap_invoice_lines_interface
 –commit
Query to Set Org_id: 
–begin
–dbms_application_info.set_client_info(‘169’);
–end;

–select * from ap_invoices_interface where invoice_num like ‘COL%’
–select * from ap_invoice_lines_interface
— select * from  AP_TERMS
–select * from PO_DISTRIBUTIONS_ALL

DECLARE
    p_invoice_id       NUMBER;
    i                  NUMBER;
BEGIN

Query to Generate invoice_id —

    select AP_INVOICES_INTERFACE_S.nextval
    into p_invoice_id
    from dual;

Query to  Insert an invoice header —
 insert into ap_invoices_interface(INVOICE_ID,
                 INVOICE_NUM,
                   INVOICE_TYPE_LOOKUP_CODE,
                  INVOICE_DATE,
                 PO_NUMBER,
                 VENDOR_ID,
                 VENDOR_SITE_ID,
                   INVOICE_AMOUNT,
                 INVOICE_CURRENCY_CODE,
                  –TERMS_ID,
                   SOURCE,
                   GROUP_ID,
                PAYMENT_METHOD_LOOKUP_CODE,
                ORG_ID)
        VALUES  (p_invoice_id,         –INVOICE_ID,
                  ‘COL012’,              –INVOICE_NUM,
                  ‘STANDARD’,            –INVOICE_TYPE_LOOKUP_CODE,
                  sysdate,              –INVOICE_DATE,
                 ‘NEX060378-002’,                    –v_PO_NUMBER,
                11934,                 –v_VENDOR_ID, 11790
                14667,                 –v_VENDOR_SITE_ID, 14506
                10,                       –v_INVOICE_AMOUNT,  (Sanjiv Wrong Amt)10
               ‘USD’,                  — v_INVOICE_CURRENCY_CODE, usd
                –10011,                  –v_TERMS_ID, (Sanjiv)
                ‘CONVERSION’,–‘INVOICE GATEWAY’,       –v_SOURCE,
                 ‘USM’,                  — v_GROUP_ID,
               ”,                     — v_PAYMENT_METHOD_LOOKUP_CODE, CHECK
               169);                   –v_ORG_ID
    — Insert invoice line —

    for i in 1..1 loop
INSERT into ap_invoice_lines_interface (INVOICE_ID,
                                INVOICE_LINE_ID,
                                LINE_NUMBER,
                                LINE_TYPE_LOOKUP_CODE,
                                AMOUNT,
                                ACCOUNTING_DATE,
                                FINAL_MATCH_FLAG,
                                PO_HEADER_ID,
                                PO_NUMBER,
                                 PO_LINE_ID,
                                 PO_LINE_NUMBER,
                                PO_LINE_LOCATION_ID,
                                PO_SHIPMENT_NUM,
                                INVENTORY_ITEM_ID,
                                ITEM_DESCRIPTION,
                                QUANTITY_INVOICED,
                                SHIP_TO_LOCATION_CODE,
                                UNIT_PRICE,
                                PO_RELEASE_ID,
                                RELEASE_NUM,
                                PRICE_CORRECTION_FLAG,
                                RECEIPT_NUMBER,
                                MATCH_OPTION,
                                RCV_TRANSACTION_ID,
                                DIST_CODE_COMBINATION_ID,
                                PO_DISTRIBUTION_ID,
                                PO_DISTRIBUTION_NUM,
                                PROJECT_ID,
                                TASK_ID,
                                EXPENDITURE_TYPE,
                                EXPENDITURE_ORGANIZATION_ID,
                                PA_QUANTITY,
                                EXPENDITURE_ITEM_DATE
                                )
                        VALUES (
                                 p_invoice_id,     –v_INVOICE_ID,
                                 AP_INVOICE_LINES_INTERFACE_S.nextval,       –v_INVOICE_LINE_ID,
                                     i,               –v_LINE_NUMBER,  1
                                  ‘ITEM’,           — v_LINE_TYPE_LOOKUP_CODE,
                                   10,            –v_AMOUNT, (Sanjiv Wrong Amt, PO Line=82.27) 10
                                  sysdate,           — v_ACCOUNTING_DATE,
                                  ”,                –v_FINAL_MATCH_FLAG,
                                  63845,                –v_PO_HEADER_ID,
                                 ‘NEX060378-002’,             — v_PO_NUMBER,
                                 63846,              –v_PO_LINE_ID, (Sanjiv Wrong POLineID) 47245
                                  1,               –v_PO_LINE_NUMBER,
                                  63846,           –v_PO_LINE_LOCATION_ID, (Sanjiv Wrong POLineLocID)
                                    ”,                –v_PO_SHIPMENT_NUM,
                                  ”,                –v_INVENTORY_ITEM_ID,
                                  ”,                –v_ITEM_DESCRIPTION,
                                  1,                –v_QUANTITY_INVOICED,
                                  ”,                –v_SHIP_TO_LOCATION_CODE,
                                 ”,                 –v_UNIT_PRICE,
                                ”,                 –v_PO_RELEASE_ID,
                                ”,                 –v_RELEASE_NUM,
                                   ”,                 –v_PRICE_CORRECTION_FLAG,
                                ”,                 –v_RECEIPT_NUMBER,
                                   ”,                –v_MATCH_OPTION,
                                   ”,                 –v_RCV_TRANSACTION_ID
                                ”,           –v_DIST_CODE_COMBINATION_ID
                                64302,            –PO_DISTRIBUTION_ID = 64302
                                1,                  –PO_DISTRIBUTION_NUM
                                ”,–1087,               –PROJECT_ID, (Sanjiv Wrong ProjID) 1172 1087
                                ”,–1551,                –TASK_ID,
                                ”,–‘Awrd Ovation Point Redemption’,–EXPENDITURE_TYPE,
                                 ”,–169,                –EXPENDITURE_ORGANIZATION_ID,
                                 ”,–”,             –PA_QUANTITY, (Sanjiv Wrong Qty)10
                              ” );– sysdate );           –EXPENDITURE_ITEM_DATE
      end loop;

 commit;
END;

Queries to debugged and trace Interface errors: 

–select * from ap_invoices_interface where invoice_id=13634
–select * from ap_invoice_lines_interface where invoice_id=13634
–select * from user_errors where name like’USM%’;
— select * from pa_projects_all where project_id=1172 –1087
–select * from pa_projects_all where project_id in (select project_id from pa_tasks where task_number=’2.4′)
–10437
–select * from usm_po_codes
–select * from pa_projects_all where segment1 =’10437′

2.1. Intercompany Invoicing Cycle

When a sales order is entered in an operating unit, and if the shipping warehouse is part of a separate operating unit (may also belong to another SOB), then the goods can be shipped from the said shipping organization and the selling organization generates a customer invoice. Also the system automatically records an intercompany sale between the shipping organization and the selling organization by generating intercompany invoices. This is called Intercompany invoicing.

After entering the order in Selling operating unit, you can pick release and ship confirm the order from Shipping Operating unit. Then the following programs need to be run to ensure necessary Intercompany invoices are created ..

  1. Launch the Cost Manager in Inventory > Setup > Transactions > Interface Managers. If it is not active then go to Tools  and Launch Manager. Intercompany Invoices will not be generated unless this manager is active.
  2. In Shipping OU run ‘Create Intercompany AR Invoices’. Ensure that the items shipped have a price for ‘Internal Price List’.
  3. In Shipping OU run ‘Receivables AutoInvoice Program’
  4. In Selling OU run ‘Create Intercompany AP Invoices’. Ensure that the conversion rates between the functional currencies of above SOBs exist for the current date and GL period is open in both OUs.
  5. In selling OU run ‘Expense Report Import’ (Payables)

2.1.1. Transaction Steps

Create an Order in ‘Vision Operations’ OU and schedule it from D1 warehouse under ‘Singapore Distribution Centre’ OU as ..


After Pick release and shipconfirm the order, the delivery associated with the line is closed as ..

  • The Create Intercompany AR Invoices process creates invoice lines for order shipment transactions in Oracle Inventory where the shipping warehouse does not belong to the order entry operating unit.
  • The Oracle Receivables AutoInvoice program processes the records inserted into the interface tables by the Create Intercompany AR Invoices process.
  • Find the AR Invoice that has been generated in Shipping OU by querying for source ‘Intercompany’ and optionally by the Sales Order.

  • Create Intercompany AP Invoices process creates records in Payable invoices interface tables.
  • The Oracle Payables ‘Expense Report Import’ program processes the records inserted into the interface tables by the Create Intercompany AP Invoices process. All invoices created by the Create Intercompany AP Invoices program have Intercompany as their source.
  • Find the Payables Invoice that has been generated in Selling OU by querying for supplier and today’s date.

  • The customer invoice automatically gets created if the ‘Workflow background process’ is running. Find it in Selling OU by querying for the transaction source as ‘ORDER ENTRY’ and with a date range.

2.2. Set up steps

The below set-up steps are necessary for proper functioning of Intercompany invoicing cycle ..

  1. Define a customer and customer site in the selling operating unit.
  2. Define a supplier and supplier site in the shipping operating unit.
  3. Define Intercompany Relations
  4. Define price for the items in  ‘Internal Price list’

The organization itself is defined as a customer ‘Vision’, having a customer site in the selling operating unit as ..

The organization itself is defined as a supplier ‘Vision’, with a supplier site in the shipping operating unit as ..

Define Intercompany Relations as ..

Define price for the items in  ‘Internal Price list’ ..

SELECT DISTINCT pv.vendor_name vendor_name, pv.segment1 vendor_number,
                pvs.vendor_site_code vendor_site_code,
                aba.bank_account_name bank_account_name,
                aba.bank_account_num bank_account_num,
                aba.currency_code currency_code,
                abau.primary_flag primary_flag, abb.bank_name bank_name,
                abb.bank_number bank_number,
                abb.bank_branch_name bank_branch_name, abb.bank_num bank_num
           FROM ap_bank_account_uses_all abau,
                ap_bank_accounts_all aba,
                ap_bank_branches abb,
                po_vendors pv,
                po_vendor_sites_all pvs
          WHERE abau.external_bank_account_id = aba.bank_account_id
            AND aba.bank_branch_id = abb.bank_branch_id
            AND abau.vendor_id = pv.vendor_id
            AND abau.vendor_id = pvs.vendor_id(+)
            AND abau.vendor_site_id = pvs.vendor_site_id(+)