Total Pageviews

Monday, December 10, 2012


Procure to Pay Cycle By Avinash And Rahul


Procure to Pay Cycle


In this article, we will see the steps involved in Procure to Pay Cycle. Here is the diagrammatic representation:


1) Create Requisition:
Requisition is nothing but a formal request to buy something (like Inventory material, office supplies etc) needed for the enterprise. Only an employee can create one. There are two types of requisitions:

Internal Requisition: Internal requisitions provide the mechanism for requesting and transferring material from one inventory to other inventory.
Purchase requisition: Unlike Internal requisitions, Purchase requisitions are used for requesting material from suppliers.

Navigation:
Purchasing Vision Operations (USA) > Requisitions > Requisitions
Choose the requisition type and enter the Item, quantity, Price details in the Lines tab.




In Source Details tab, specify the Buyer name.




Click the Distributions button. Enter the Charge Account.




Save the work. The status of the requisition will now be “Incomplete”. And now the Approve button is highlighted. The requisition needs to be approved first before proceeding further by the concerned authority. Submit this requisition for Approval by clicking on the Approve button. The status will now be updated to “In Process” .The workflow then will send an Approval notification to the concerned person (derived based on hierarchy used—Position or Supervisor hierarchy) using which he can Approve or Reject the requisition.




At any time the status of requisition can be checked using the Requisition summary window.

Navigation:
Requisitions > Requisition Summary
Enter requisition number and click on the find button.





We can also check the Action History of requisition (it will show details about who has submitted, approved and cancelled the requisitions)
as below:

Navigation:
Tools menu > Action History.

Underlying Tables:

PO_REQUISITION_HEADERS_ALL
PO_REQUISITION_LINES_ALL
PO_REQ_DISTRIBUTIONS_ALL

2) Create Purchase Order:

There are 4 types of Purchase Orders:
1. Standard PO: A Standard PO is created for one–time purchase of various items
2. Planned PO: A Planned PO is a long–term agreement committing to buy items or services from a single source. You must specify tentative delivery schedules and all details for goods or services that you want to buy, including charge account, quantities, and estimated cost.
3. Blanket agreement: A Blanket PO is created when you know the detail of the goods or services you plan to buy from a specific supplier in a period, but you do not know the detail of your delivery schedules.
4. Contract agreement: Contract purchase agreements are created with your suppliers to agree
on specific terms and conditions without indicating the goods and services that you will be purchasing

Navigation for creating a standard PO:
Purchase Orders > Purchase Orders

Choose type as Standard Purchase Order. Enter the Supplier, Buyer. In the Lines tab, specify the line number, line type, Item, quantity, price etc.



Click Terms to enter terms, conditions, and control information for purchase orders.
Click Currency button to enter and change currency information for purchase orders, RFQs, and quotations.
Click Shipments button to enter multiple shipments for standard and planned purchase order lines Purchase order shipment specifies the quantity, ship–to organization and location, date you want your supplier to deliver the items on a purchase order line, and country of origin for the items. When you save, Purchasing creates distributions depending on the default information available.




To enter more shipment information, select the More tab.
  • Enter the Receipt Close Tolerance percent, Invoice Close Tolerance percent to set the receiving and invoice close point.
  • Select one of the following options for Match Approval Level:
Two–Way: Purchase order and invoice quantities must match within tolerance before the
corresponding invoice can be paid.
Three–Way: Purchase order, receipt, and invoice quantities must match within tolerance
before the corresponding invoice can be paid.
Four–Way: Purchase order, receipt, accepted, and invoice quantities must match within
tolerance before the corresponding invoice can be paid.
  • Select an Invoice Match Option:
Purchase Order: Payables must match the invoice to the purchase order.
Receipt: Payables must match the invoice to the receipt.
Save the work.




Click the Receiving Controls button to enter receiving control information for purchase orders.
- Enter the maximum acceptable number of Days Early and Days Late for receipts.
- Enter the Action for receipt date control.
- Enter the maximum acceptable over–receipt Tolerance percent (receipts that exceed the
quantity received tolerance).
- Enter the Action for Overreceipt Quantity.
- Select Allow Substitute Receipts to indicate that receivers can receive substitute items in place
of ordered items. 

- Enter the default Receipt Routing that you assign goods: Direct DeliveryInspection Required,
or Standard Receipt.
- Enter the Enforce Ship To location option to determine whether the receiving location must be
the same as the ship–to location.
Save the work.




Click Distributions button to enter distributions for the shipments.
Select more tab to enter more details and the requisition number (optional).
Save the work.



Click on the Approve button to initiate the Approval process.




Underlying Tables:

PO_HEADERS_ALL
PO_LINES_ALL
PO_DISTRIBUTIONS_ALL (REQ_HEADER_REFERENCE_NUM in Distributions table is the Requisition number for this PO)

3)Create Receipt:
Create a receipt to receive the items in the Purchase Order.

Navigation:
ReceivingàReceipts
Enter the PO Number and select find button.





Go to Lines, check the lines you want to receive in the PO.




Click on Header button and Save which creates the receipt.




Receipt Tables are:
RCV_SHIPMENT_HEADERS
RCV_SHIPMENT_LINES (Lines Table has PO_HEADER_ID)


4)Create Invoice in Payables:
Once the goods are received, it’s time to pay the vendor for the goods purchased and hence the invoices are created.

Navigation:
Payables, Vision Operations (USA) > InvoicesàEntryàInvoices
Enter type — Standard, supplier information and amount.




Click the Match button to match to either Purchase Order or Receipt (depending on the Invoice Match option specified on the PO) and avoid manually entering the invoice.
Enter the PO Number you want match to and click Find.




Select the lines required and click on Match button.



Click on Distribute button
to navigate to the Match to Purchase Order Distributions window.

This creates the invoice and you can see the status of the invoice as “Never Validated”. it has to be Validated and Accounted before you can pay it.

Validating the Invoice:
Click on Actions Button and Select “Validate”. Click on OK button.




Now you can see the status of the invoice as “Validated”, if there are no issues during validation.




Create Accounting Entries:

Click on Actions Button and Select “Create Accouting”. Click on OK button.




Now we can see the Accounted status as “Yes”.





You can see the Accounting Entries here:
Tools àView Accounting




Invoice Tables:
AP_INVOICES_ALL
AP_INVOICE_DISTRIBUTIONS_ALL

Accounting Entries Tables:
AP_ACCOUNTING_EVENTS_ALL
AP_AE_HEADERS_ALL
AP_AE_LINES_ALL

5)Making a Payment:
Go to the Invoice window and query the invoice you want to pay. You would see Amount paid as 0.00 before you make a payment.





Click Actions button. Select “Pay in full” and click “OK”.




Select the Bank Account and Document. Save the Work.



Now that the payment is made, when you query for the invoice in Invoice window, you will the Amount Paid as $4,000.00.

Create Accounting entries for payment.
Click Actions and select “Create Accounting”




Select the void checkbox to cancel the payment.

View Accounting Entries:
In the Payments window, query for the payment.
Tools menuàView Accounting




Payment Tables:
AP_INVOICE_PAYMENTS_ALL
AP_PAYMENT_SCHEDULES_ALL
AP_CHECKS_ALL
AP_CHECK_FORMATS
AP_BANK_ACCOUNTS_ALL
AP_BANK_BRANCHES
AP_TERMS

You can also pay the invoices using Payment Batch screen. Refer to the article “Make AP Payments through Payment Batches”

6)Transfer to General Ledger:
Navigation:
Payables Responsibility > View Requests
Run the concurrent program “Payables Transfer to General Ledger” with the required parameters.





Journal Import:
Refer to the Article “Order to Cash Cycle”.

Order to Cash Cycle Flow By Avinash And Rahul. 


Order to Cash Cycle

In this article, we will go through the Order to Cash cycle. The below are the steps in short:
  • Enter the Sales Order
  • Book the Sales Order
  • Launch Pick Release
  • Ship Confirm
  • Create Invoice
  • Create the Receipts either manually or using Auto Lockbox ( In this article we will concentrate on Manual creation)
  • Transfer to General Ledger
  • Journal Import
  • Posting
Let’s get into the details of each step mentioned above.

Enter the Sales Order:

Navigation:
Order Management Super User Operations (USA)>Orders Returns >Sales Orders

Enter the Customer details (Ship to and Bill to address), Order type.




Click on Lines Tab. Enter the Item to be ordered and the quantity required.



Line is scheduled automatically when the Line Item is saved.
Scheduling/unscheduling can be done manually by selecting Schedule/Un schedule from the Actions Menu.

You can check if the item to be ordered is available in the Inventory by clicking on Availability Button.



Save the work.

Underlying Tables affected:

In Oracle, Order information is maintained at the header and line level.
The header information is stored in OE_ORDER_HEADERS_ALL and the line information in OE_ORDER_LINES_ALL when the order is entered. The column called FLOW_STATUS_CODE is available in both the headers and lines tables which tell us the status of the order at each stage.

At this stage, the FLOW_STATUS_CODE in OE_ORDER_HEADERS_ALL is ‘Entered’


Book the Sales Order:

Book the Order by clicking on the Book Order button.



Now that the Order is BOOKED, the status on the header is change accordingly.



Underlying tables affected:

At this stage:
The FLOW_STATUS_CODE in the table OE_ORDER_HEADERS_ALL would be
‘BOOKED’
The FLOW_STATUS_CODE in OE_ORDER_LINES_ALL will be
‘AWAITING_SHIPPING’.
Record(s) will be created in the table WSH_DELIVERY_DETAILS with
RELEASED_STATUS=’R’ (Ready to Release)
Also Record(s) will be inserted into WSH_DELIVERY_ASSIGNMENTS.
At the same time DEMAND INTERFACE PROGRAM runs in the background and inserts
into MTL_DEMAND


Launch Pick Release:
Navigation:
Shipping > Release Sales Order > Release Sales Orders.

Key in Based on Rule and Order Number




In the Shipping Tab key in the below:
Auto Create Delivery: Yes
Auto Pick Confirm: Yes
Auto Pack Delivery: Yes




In the Inventory Tab:
Auto Allocate: Yes
Enter the Warehouse



Click on Execute Now Button.
On successful completion, the below message would pop up as shown below.






Pick Release process in turn will kick off several other requests like Pick Slip Report,
Shipping Exception Report and Auto Pack Report



Underlying Tables affected:

If Autocreate Delivery is set to ‘Yes’ then a new record is created in the table WSH_NEW_DELIVERIES.
DELIVERY_ID is populated in the table WSH_DELIVERY_ASSIGNMENTS.
The RELEASED_STATUS in WSH_DELIVERY_DETAILS would be now set to ‘Y’ (Pick Confirmed) if Auto Pick Confirm is set to Yes otherwise RELEASED_STATUS is ‘S’ (Release to Warehouse).

Pick Confirm the Order:
IF Auto Pick Confirm in the above step is set to NO, then the following should be done.
Navigation:
Inventory Super User > Move Order> Transact Move Order

In the HEADER tab, enter the BATCH NUMBER (from the above step) of the order. Click FIND. Click on VIEW/UPDATE Allocation, then Click TRANSACT button. Then Transact button will be deactivated then just close it and go to next step.


Ship Confirm the Order:

Navigation:

Order Management Super User>Shipping >Transactions.

Query with the Order Number.




Click On Delivery Tab



Click on Ship Confirm.









The Status in Shipping Transaction screen will now be closed.


This will kick off concurrent programs like.INTERFACE TRIP Stop, Commercial Invoice, Packing Slip Report, Bill of Lading

Underlying tables affected:

RELEASED_STATUS in WSH_DELIVERY_DETAILS would be ‘C’ (Ship Confirmed)

FLOW_STATUS_CODE in OE_ORDER_HEADERS_ALL would be “BOOKED
FLOW_STATUS_CODE in OE_ORDER_LINES_ALL would be SHIPPED


Create Invoice:

Run workflow background Process.

Navigation:
Order Management >view >Requests





Workflow Background Process inserts the records RA_INTERFACE_LINES_ALL with

INTERFACE_LINE_CONTEXT     =     ’ORDER ENTRY’
INTERFACE_LINE_ATTRIBUTE1=     Order_number
INTERFACE_LINE_ATTRIBUTE3=     Delivery_id


and spawns Auto invoice Master Program and Auto invoice import program which creates Invoice for that particular Order.



The Invoice created can be seen using the Receivables responsibility
Navigation:
Receivables Super User> Transactions> Transactions

Query with the Order Number as Reference.



Underlying tables:

RA_CUSTOMER_TRX_ALL will have the Invoice header information. The column INTERFACE_HEADER_ATTRIBUTE1 will have the Order Number.

RA_CUSTOMER_TRX_LINES_ALL will have the Invoice lines information. The column INTERFACE_LINE_ATTRIBUTE1 will have the Order Number.

Create receipt:
Navigation:
Receivables> Receipts> Receipts

Enter the information.


Click on Apply Button to apply it to the Invoice.








Underlying tables:
AR_CASH_RECEIPTS_ALL


Transfer to General Ledger:
To transfer the Receivables accounting information to general ledger, run General Ledger Transfer Program.

Navigation:
Receivables> View Requests

Parameters:

  • Give in the Start date and Post through date to specify the date range of the transactions to be transferred.
  • Specify the GL Posted Date, defaults to SYSDATE.
  • Post in summary: This controls how Receivables creates journal entries for your transactions in the interface table. If you select ‘No’, then the General Ledger Interface program creates at least one journal entry in the interface table for each transaction in your posting submission. If you select ‘Yes’, then the program creates one journal entry for each general ledger account.
  • If the Parameter Run Journal Import is set to ‘Yes’, the journal import program is kicked off automatically which transfers journal entries from the interface table to General Ledger, otherwise follow the topic Journal Import to import the journals to General Ledger manually.






.

Underlying tables:

This transfers data about your adjustments, chargeback, credit memos, commitments, debit memos, invoices, and receipts to the GL_INTERFACE table.


Journal Import:

To transfer the data from General Ledger Interface table to General Ledger, run the Journal Import program from Oracle General Ledger.


Navigation:
General Ledger > Journal> Import> Run

Parameters:

  • Select the appropriate Source.
  • Enter one of the following Selection Criteria:
    No Group ID: To import all data for that source that has no group ID. Use this option if you specified a NULL group ID for this source.
    All Group IDs: To import all data for that source that has a group ID. Use this option to import multiple journal batches for the same source with varying group IDs.
    Specific Group ID: To import data for a specific source/group ID combination. Choose a specific group ID from the List of Values for the Specific Value field.
    If you do not specify a Group ID, General Ledger imports all data from the specified journal entry source, where the Group_ID is null.
  • Define the Journal Import Run Options (optional)
    Choose Post Errors to Suspense if you have suspense posting enabled for your set of books to post the difference resulting from any unbalanced journals to your suspense account.
    Choose Create Summary Journals to have journal import create the following:
    • one journal line for all transactions that share the same account, period, and currency and that has a debit balance
    • one journal line for all transactions that share the same account, period, and currency and that has a credit balance.
  • Enter a Date Range to have General Ledger import only journals with accounting dates in that range. If you do not specify a date range, General Ledger imports all journals data.
  • Choose whether to Import Descriptive Flexfields, and whether to import them with validation.

Click on Import button.




Underlying tables:

GL_JE_BATCHES, GL_JE_HEADERS, GL_JE_LINES


Posting:

We have to Post journal batches that we have imported previously to update the account balances in General Ledger.

Navigation:

General Ledger> Journals > Enter

Query for the unposted journals for a specific period as shown below.




From the list of unposted journals displayed, select one journal at a time and click on Post button to post the journal.








If you know the batch name to be posted you can directly post using the Post window

Navigation:
General Ledger> Journals> Post



Underlying tables:

GL_BALANCES.

Interview Question For Oracle Apps Technical And Functional By Avinash Kumar


1)What is the Flow of AP module or Proceure to Pay ?
ANS
--Requisition
--RFQ
--Quotation
--PO
--Receipts
--Invoice & Payments
--Transfer to GL



2)How to transfer transactions from AP to GL?
ANS
-- Transfer TRansactions to GL
-- Journal Import
-- Posting



3)What are the Base tables we have in AP?
ANS
-- AP_INVOICES_ALL
--AP_INVOICE_DISTRIBUTIONS_ALL
--AP_PAYMENT_SCHEDULES_ALL
--AP_CHECKS_ALL
--AP_BANK_BRANCHES_ALL
--AP_BANK_ACCOUNTS_ALL
--AP_TAXES



4)What is Distriutions set?
ANS
--Distribution Set are used to automatically enter distributions for an invoice when you are not matching it to a purchase order.

6)What is Payment terms?
ANS
--  payment terms are used to define the payment schedule.Eg IMMEDIATE, 30days net,15days net.
--Payments Terms are assigned to an Invoice to automatically create scheduled payment when Payables Invoice Validation is submitted for the Invoice



7)What are the types Invoicess?
ANS
-- STANDARD
--Credit Memo
--Debit Memo
--Prepayment
--Quick
--Mixed


8)What is Credit memo and Debit Memo?
ANS
--In Oracle payables, both debit memo and credit memo are one
  and the same and are used to reduce the supplier's
  liability for the goods returned to him. The former will be
  prepared by us and the later will be prepared by the
  supplier and sent to us.


9)What are the types of Payments we have?
ANS

• bank account transfers
• credit cards
• PINless debit cards
• bills receivable remittances



10)What is diff between Supplier and Vendor?.

ANS
Supplier is the one who sells the goods material to vendors and vendors directly interacts with the customer
and sells the finished final product to them and they intern gets paid . So vendor is the point of contact for the warranty provided for a product.

but in some cases supplier can become a vendor and directly sell his product to customer
and similarly vendor can also become a supplier in getting the goods from manufacturer.



11)Where the Accounting entries will be stored?
ANS
-- ap_ae_headers_all,ap_ae_lines_all

12)What are the Interfces we have in AP module?
--
--Supplier Interface(Supplier,supplier site,supplier contacts)
--Payables open interface import(AP Invoices)


Query to Extract AR Invoice Details ...............

SELECT
     hca.cust_account_id,
     oha.HEADER_ID,
     ola.line_id,
     oha.org_id "Organization ID",
     hca.account_number "Account Number",
     hzps.party_site_number "Customer Site Number",
oha.attribute1 "Invoice Date",
     oha.attribute1 "GL Date",
     oha.order_number "Invoice Key",
( SELECT name FROM apps.ra_terms_tl
     WHERE term_id =oha.payment_term_id
     AND LANGUAGE = 'US' ) "Payment Term",
     oha.transactional_curr_code "Invoice Currency",
     'LINE ' "Line Type" ,
1 "Transaction Type",
    (SELECT name FROM apps.oe_transaction_types_tl
     WHERE transaction_type_id=oha.order_type_id
     AND LANGUAGE = 'US')  "Transaction Type",
    (ola.ordered_quantity*ola.unit_selling_price) "Total_Chg",
    ola.tax_code "Line Tax Code", --Still Open Point
    ola.tax_value "Line Tax Amount",
    msi.description "Memo Line Name",
 ola.line_id,
    ola.orig_sys_line_ref
FROM
   oe_order_headers_all oha,
   oe_order_lines_all ola,
   hz_cust_accounts_all hca,
   hz_cust_acct_sites_all hcas,
   hz_cust_site_uses_all hcsu,
   hz_parties  hzp,
   hz_party_sites hzps,
   mtl_system_items_b msi
WHERE
    oha.header_id          =  ola.header_id
AND hca.cust_account_id    =  oha.sold_to_org_id
AND hca.cust_account_id    =  hcas.cust_account_id
AND hcas.cust_acct_site_id =  hcsu.cust_acct_site_id
AND hcsu.site_use_id       =  oha.invoice_to_org_id
AND ola.inventory_item_id  =  msi.inventory_item_id
AND hcsu.org_id            =  hcas.org_id
AND hcsu.site_use_code     =  'BILL_TO'
AND hzp.party_id           =  hca.party_id
AND hzp.party_id           =  hzps.party_id
AND hzps.party_site_id     =  hcas.party_site_id
AND ola.ship_from_org_id   =  msi.organization_id
--AND 1= (SELECT 1 FROM ra_interface_lines_all WHERE interface_line_attribute1 = TO_CHAR(oha.order_number) AND ROWNUM = 1) ;
AND oha.header_id =10014
And oha.flow_status_code = 'CLOSED'

Regards
Avinash & Rahul

Tuesday, December 4, 2012


API  To Register Concurrent Program,Parameters,Request Group From Back end.

API’s To Register Concurrent Program:

FND_PROGRAM.EXECUTABLE: To Create executable and set the appropriate execution
method

Syntax:
FND_PROGRAM.EXECUTABLE(EXECUTABLE, APPLICATION, DESCRIPTION,
EXECUTION_METHOD, EXECUTION_FILE_NAME);

**********************************************************************
FND_PROGRAM.REGISTER: To create concurrent program

Syntax:
FND_PROGRAM.REGISTER(PROGRAM, APPLICATION, ENABLED, SHORT_NAME,
DESCRIPTION,….);

***********************************************************************
FND_PROGRAM.PARAMETERS: To set the parameter and to pass appropriate tokens
through the concurrent program

Syntax:

FND_PROGRAM.PARAMETER(PARAMETERNAME, VAlUESET, TOKEN, PROMPT,
SIZE);
************************************************************************

FND_PROGRAM.REQUEST_GROUP: To set the parameter and to pass appropriate
tokens through the concurrent program

Syntax:
FND_PROGRAM.REQUEST_GROUP(REQUEST_GROUP_NAME, APPLICATION,
CODE, DESCRIPTION,..);

**************************************************************************



Regards
Avinash & Rahul