P2P and O2C: Procure to Pay and Order to Cash Cycles

June 20, 2008 ² Atif Siddiqui

5 Votes

Oracle has developed this ERP solution which truly covers these both cycles as well as many others. Oracle EBS comprises of the Standard Core Business Management applications like General Ledger, Payables, Receivables, Purchasing, Order Management, Inventory, Discrete Manufacturing, Process Manufacturing , HRMS and many more. The application I¶ve mentioned are so integratedthat it handles the beginning to end of both Assets and Liabilities. When I say Assets I am referring to applications like Order Management and Receivables, and when I say Liabilities I am referring to Purchasing and Payables and both of these Assets and Liabilities are finally pushed and calculated in Oracle General Ledger. The base or the heart of Oracle EBS is Oracle General Ledger. Let me call GL an intrinsic.

Procure to Pay:
First let¶s see what the heading itself means? Procure to Pay means Procuring Raw Materialsrequired to manufacture the final or finished Goods to Paying the Supplier from whom the material was purchased. But this is not just two steps. It involves many steps. Let¶s see the steps and Oracle Application involved in performing those steps. 1. Oracle Purchasing: You enter Suppliers of different materials and products you want to purchase to manufacture a finished good that your organization plans to sell. 2. Oracle Purchasing: You prepare a Request for Quotation (RFQ) and send it to different suppliers to get the best and/or economical price for the product. 3. Oracle Purchasing: Suppliers sends their quotations and you upload those quotations in Oracle Purchasing to get the best three quotes and further to get the one best quote. 4. Oracle Purchasing: You prepare a Purchase Order(PO) against the best RFQ to buy the goods from the supplier who quoted the suitable price and sends the PO to that supplier 5. Oracle Purchasing: The supplier receives the confirmation of purchase from PO and ships the ordered goods. You receive the goods enter a Goods Received Note (GRN) in Oracle Purchasing. 6. Oracle Inventory / Oracle Assets: It¶s up to you whether you want to receive the goods at your head office or you Inventory directly. In either case you move the received goods to your different Raw Material Inventory from Oracle Purchasing to Oracle Inventory and the Item Count increases. If the item is Asset Type then it will move to Oracle Assets at the time of Invoice creation in Oracle Payables.

you market it. Oracle Payables: You pay the invoice and settle the Liability. 7. Both OPM or ODM requests the different raw materials from you inventory organizations and manufactures a finished good. 8. 6.7. 9. 10. Oracle Inventory: As the raw materials are issued to OPM and ODM the inventory sends the issuing material accounting to General Ledger and decreases the Item Count from the Raw Material Store. 13. Oracle General Ledger: Once you move the goods to Oracle Inventory. Oracle Order Management: Customer places the order. Oracle General Ledger: Your cash at bank is updated with actual balance. Order to Cash Cycle: Order to Cash means Customer¶s Order Placing to Vendor¶s Cash Receiving. Oracle Cash Management: Oracle Receivables sends the customer receipt for Bank Reconciliation. The customer gets fascinated with the marketing campaign and decides to buy your product and from here starts the O2C cycle. After reconciliation. it sends the Material Accounting to Oracle General Ledger. Oracle Payables sends the invoice accounting to Oracle General Ledger. Oracle Cash Management send the actual bank balance or Oracle General Ledger. Oracle General Ledger: When you enter the invoice it means that you have created a Liability against that supplier and also you have recorded the expense incurred or asset purchased. Oracle Order Management: You ship the product to customer site and decreases the Finished Goods inventory. Oracle Order Management: You enter the customer order 3. 9. Oracle Receivables: The customer pays and you receive the cash/check. As the finished good is prepared. if the item is Asset in nature then it will move to Oracle Asset. 1. Oracle Inventory receives the finished good in Finished Good Store and increase the Item Count. Oracle General Ledger: The liability is settled and your cash movement account is updated. 2. 8. . As said before. 12. Oracle General Ledger: You record your revenue and receivables. Oracle Cash Management: As you pay the invoice Oracle Payables sends the payment information to Oracle Cash Management for Bank Reconciliation. Oracle Receivables: The customer receives the product and you invoice the customer. Oracle Process Manufacturing(OPM) / Oracle Discrete Manufacturing(ODM): You start the manufacturing of your final product. 5. Oracle Cash Management sends the updated Bank/Cash accounting entry to Oracle General Ledger. When your final product is ready to be sold. Now the final product is ready to be sold in the market and from here the O2C cycle starts. 4. Oracle Inventory: Check the available unit and the quantity ordered by the customer. 11. Once reconciled. 15. Oracle Payables: After this the supplier sends you the invoice for the purchased goods and you Enter or Match the invoice against the PO from Oracle Purchasing in Oracle Payables. Oracle General Ledger: You have the actual bank balance. 14.

Create a Standard Purchase order. This is one of them. but this is not the only way. 2. Give Distributions .This is how the P2P and O2C cycle works. Give Shipments 3. obviously there are many other applications with different cycles. Procure To Pay Cycle Process 1.

. Give the sub inv and stock locator where you want store the goods.4. Go to the ReceivingàReceipts 7. 6. See the status of the PO In The header level: It is approved. Approve PO 5. And Save.

(Which Generate Invoice Automatically) 10. Run the Program Pay on receipt auto invoice. .8. View the request status and refresh If not Completed. View the Status of the program and refresh if not completed. 9.

Validate the Invoice . Go to Payables: InvoiceàEntry àInvoice Query with the Invoice Num ERS% 12.See The Account .After Validate Enable the creating Accounting check box.11. 13.

Select the Bank and Go to Actions 16. And Pres ok.14. Enable the check box Pay in full. 15. Enable the check box Create Accounting and press ok. .

See the Account Created. àClear Transactions Find the Bank Account.17. 18. . accounted and amount paid. 19. Go to Cash Management: Bank Statementsà Manual clearing. Now see the invoice status validated.

.20. Enable the Transaction and press Clear Transaction Button. Go to Payables: PaymentàEntryàPayment Query with Payment Date 22. 21. Go to actions. enable Create Accounting and press ok.

View the Request status and refers if not completed. 25. See the Account created.23. . 24. Run: Payables Transfer to General Ledger.

28.Got to GL:JournalàImportàRun 27.View the request status and refers if not completed.26.Find with Source as Payables. . Go to JournalsàEnter .

Now We can Post the journals. Invoice Number.c WITH OUT RECEIPTS -.29. GL Transfer flag e.t. Purchase Order Number. Procure To Pay Cycle Query Includes two scripts to fetch all the transactions information related with in a procure to pay cycle.procure to pay cycle query select distinct reqh. Two scripts are provided to use one with receipts and other when receipts are not created.segment1 REQ_NUM.AUTHORIZATION_STATUS REQ_STATUS. . Customer Number. Few important fields that were included in the script are Requisition Number. reqh. Invoice Amount.WITH OUT RECEIPTS -.

po_headers_all poh. ap_invoice_distributions_all invd. h.-- poh. i.check_number.check_id.vendor_id. i.segment1 PO_NUM.po_header_id.AUTHORIZATION_STATUS PO_STATUS.invoice_id. poh. poh.line_num. -- p.invoice_num. -- i. h.vendor_name. i.invoice_amount.period_name from ap_invoices_all i.gl_transfer_flag. -- v. .amount_paid. i. c. pol.

vendor_id and c.invoice_id = i.invoice_id and poh. po_requisition_lines_all reql.po_lines_all pol. po_vendors v.REQUISITION_LINE_ID = reql. ap_ae_headers_all h.check_id and p. ap_invoice_payments_all p. po_req_distributions_all reqd. po_requisition_headers_all reqh.REQUISITION_HEADER_ID and reqd.check_id = p.REQUISITION_LINE_ID .REQUISITION_HEADER_ID = reql.PO_HEADER_ID and reqh. po_distributions_all pod. ap_ae_lines_all l where 1=1 and i.vendor_id = v. ap_checks_all c.PO_HEADER_ID = pol.

PROCURE TO PAY CYCLE QUERY WITH RECEIPTS SELECT DISTINCT reqh.ae_header_id and l.SOURCE_ID = i.CHECK NUMBER --and vendor_id = -.authorization_status req_status.segment1 req_num.PO_DISTRIBUTION_ID = invd.invoice_id --and poh.INVOICE NUMBER --and c.invoice_num = 3114 -.INVOICE_ID = i.segment1 = 4033816 -.PO_HEADER_ID = poh.REQ NUMBER --and i.INVOICE_ID and h. reqh.PO NUMBER and reqh.SOURCE_TABLE = 'AP_INVOICES' AND l.PO_DISTRIBUTION_ID and invd.DISTRIBUTION_ID and pod.ae_header_id = l.and pod.PO_HEADER_ID and pod.check_number = -.REQ_DISTRIBUTION_ID = reqd. .segment1 = '501' -.VENDOR ID Click here to copy script to clipboard WITH RECEIPTS -.

authorization_status po_status. po_vendors v. c. h. i. rcv.CHECK_ID.line_num.-- POH.PO_HEADER_ID. rcvh.segment1 po_num. po_lines_all pol.check_number. poh. i. -- V.vendor_id. i. po_headers_all poh. h. .VENDOR_NAME.amount_paid.invoice_num. ap_invoice_distributions_all invd.gl_transfer_flag.INVOICE_ID. i.period_name FROM ap_invoices_all i.inspection_status_code. pol. -- I. po_distributions_all pod.receipt_num. -- P.invoice_amount. poh.

rcv_shipment_headers rcvh.vendor_id AND c. ap_invoice_payments_all p.check_id AND p.po_header_id AND reqh.invoice_id = i.po_header_id = pol.check_id = p. rcv_shipment_lines rcvl. ap_ae_headers_all h.requisition_line_id = reql.vendor_id = v. ap_ae_lines_all l WHERE 1 = 1 AND i. rcv_transactions rcv.requisition_header_id AND reqd.requisition_header_id = reql.requisition_line_id .po_requisition_headers_all reqh. ap_checks_all c. po_requisition_lines_all reql. po_req_distributions_all reqd.invoice_id AND poh.

SHIPMENT_HEADER_ID --AND RCV.PO_DISTRIBUTION_ID AND pod.SHIPMENT_HEADER_ID = RCVL.source_table = 'AP_INVOICES' AND l.ae_header_id = l.PO_DISTRIBUTION_ID = RCV.PO NUMBER AND reqh.invoice_id = i.SEGMENT1 = 36420 -.AND pod.PO_LINE_ID = RCV.req_distribution_id = reqd.shipment_header_id(+) --AND RCVH.invoice_id --AND POH.INVOICE NUMBER .po_distribution_id AND invd.TRANSACTION_TYPE = 'RECEIVE' --AND RCV.REQ NUMBER --AND I.PO_HEADER_ID AND rcvh.po_distribution_id = invd.distribution_id AND pod.PO_LINE_ID --AND POD.source_id = i.po_header_id --AND POH.PO_HEADER_ID = RCV.shipment_header_id = rcv.ae_header_id AND l.po_header_id = poh.segment1 = '501' -.INVOICE_NUM = 3114 -.invoice_id AND h.SOURCE_DOCUMENT_CODE = 'PO' --AND POL.

VENDOR ID --AND RECEIPT_NUM = 692237 Click here to copy script to clipboard .--AND C.CHECK NUMBER --AND VENDOR_ID = -.CHECK_NUMBER = -.

Sign up to vote on this title
UsefulNot useful