Showing posts with label Order Management. Show all posts
Showing posts with label Order Management. Show all posts

Tuesday, May 21, 2013

O2C

Following are the steps the process will go through from creating a Sales Order to Posting the details in GL.
  1. Enter the Sales Order
  2. Book the Sales Order
  3. Launch Pick Release
  4. Ship Confirm
  5. Create Invoice
  6. Create the Receipts either manually or using Auto Lockbox ( In this article we will concentrate on Manual creation)
  7. Transfer to General Ledger
  8. Journal Import
  9. Posting

Involved Modules
Order Management: Creating and shipping the Order
Inventory:  Onhand availability, Reservation
Receivables: For Receipt against invoice
General Ledger: Importing, entering and posting the journals



Enter the Sales Order:
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.

Tables Affected:
OE_ORDER_HEADERS_ALL
OE_ORDER_LINES_ALL
Columns used for identification of flow
FLOW_STATUS_CODE in both the tables which 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.

Tables affected:
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.
New records will be created in 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
Shipping > Release Sales Order > Release Sales Orders
Give the Sales Order and Rule details as required
Key in the details in Shipping Tab, Autocreate Delivery: Yes, Auto Pick Confirm: Yes, Autopack Delivery: Yes

Similarly key in the Subinventory, location and org details in Inventory tab as required

Then select Execute Now button.

On completion this will show below window
Pick Release process will in turn run few more concurrent requests like
Auto Pack Report, Pick Slip Report, Shipping Exceptions Report (These are what we have chosen in the shipping tab during Pick Release)

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 is set to Yes during Pick Release, then this process will happen systematically.
In other cases, need to do this by doing a move order transaction
Inventory Super User > Move Order> Transact Move Order
Take the Move Order Number form the Shipping Transaction Form and find that and transact.

Ship Confirm the Order:
Order Management Super User>Shipping >Transactions
Find by Order Number

Here you can find all the details

If the line status is Staged/Pick Confirmed, we can go for a shipment Then Click on the Delivery tab

Then Click Ship Confirm

Note: If Ship Confirm button is inactive, then please check to the user id you are logged in, whether Shipping Grant given or not. If not they add a shipping grant to the user id and try again.

Then OK.
The Status in Shipping Transaction form in Delivery tab should be closed

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

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“
Once all background process completes, the Shipping Transaction Status in Lines/LPNs tab becomes Interfaced


Create Invoice:
Run workflow background Process
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


Check the Invoice:
The Invoice created can be seen using the Receivables responsibility
Receivables Super User> Transactions> Transactions
Query with the Order Number as Reference

Affected 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: Receivables> Receipts> Receipts
Click Apply to apply this to an invoice and then select the invoice in next screen and then apply.

Tables affected:
AR_CASH_RECEIPTS_ALL

Transfer to General Ledger:
To transfer the Receivables accounting information to general ledger, run General Ledger Transfer Program
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.


Tables Affected:
GL_INTERFACE

Journal Import:
To transfer the data from General Ledger Interface table to General Ledger, run the Journal Import program from Oracle General Ledger.
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

Affected 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
General Ledger> Journals > Enter

Click Find
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


Monday, June 25, 2012

Internal Requisition/Internal Orders process

The Internal Requisition/Internal Orders process is used for requesting and transferring material from one inventory location to another. An Internal Requisition is initiated in Oracle Purchasing. Sourcing rules can automatically determine if the source type is to be Inventory or an external supplier. Order Management receives information from the Purchasing Application to create an Internal Sales Order. When the sales order is shipped (to indicate either intra or inter-organization movement of goods), the requisition can be received to record receipt of goods


To generate Internal Sales Order user has to follow the following process steps:
1.Enter Requisition in Oracle Purchasing & Approve the Internal Requisition
2.Run ‘Create Internal Sales Order’ Process for transferring requisitions to Order Management.
3.Run ‘Import Order’ Process in Order Management to create Sales order.
4.Release Sales Order
5.After Order Import completes successfully, book, pick and ship the internal order.
6.Receive against the Internal Requisition.

Source: http://www.oracleappshub.com/om/the-newbies-jump-start-guide-with-oracle-om/

Friday, April 27, 2012

Sales Order Line Cancellation

The system constraints forbid cancellation if:
    An order or line is closed.
    An order or line is already cancelled.
    A order line is shipped or invoiced.
    A return line quantity is received or credited
    A drop shipment has been received (receipt Generated in Oracle Purchasing) for the order line.
    A line is pick released.

At Sales Order line, after order booked, you see the line status became "Awaiting Export Screening" and not "Awaiting Shipping". Why?

It is caused by a extra Oracle module that we have integration with, GLOBAL TRADE MANAGEMENT (GTM). GTM will do the screening and feedback to EBS that whether this order line has passed the screening rule. If Yes, order line status will changed to "Awaiting Shipping". If Not, order line status will remained as "Awaiting Export Screening", and as a result, you cannot proceed with Pick Release.

Monday, December 19, 2011

Internal Requisitions and Internal Sales Orders

Internal Requisitions (IR) and Internal Sales Orders (ISO) are used to transfer material from one inventory organization or warehouse to another, within the same company.

The organization that requisitions the material should have an employee, who is authorized to enter an internal requisition in the system. This employee also needs to be assigned to an Approval Group where, by virtue of his position he is either able to approve the requisition himself or forward it to an approver who can approve the IR for him.

Material has to be requisitioned by an organization, called the Destination Organization. This is the organization that creates the IR. This material will be supplied by an organization called the Source Organization. This is the organization that ships the ISO.

These two organizations need to have a Shipping Network defined between them, which allows for movement of material between them through the use of IR only.
The IR should carry the destination location as a valid internal Ship To location defined within the destination organization.


Now, since the destination organization acts as a customer, it should be defined as an Internal Customer in Order Management. For the internal requisition process, an internal customer is one, which is associated to an internal location as the Ship To location.

So, if an order is raised for this customer, then the Ship To location on the order header would be the internal location assigned to this customer.


Source: http://www.oracle-apps-training-online.com/internal-requisitions.html

What is Backorder in OM

1. Pick release has processed the delivery line and cannot find the entire quantity.  This typically occurs when the Oracle Inventory indicates that there is not enough material (either because there is not enough material or because the inventory balance is incorrect). 

2. At ship confirm, you Enter Shipped Quantity that is less than Original Requested Quantity. Backorder the entire delivery quantity transfer a reservation to cycle count.
 
3. This typically occurs when the material that you want to ship:
a. Has become unavailable, for example, damaged, between picking and shipping.
b. Is available and you backorder material for specific business reasons. For example, all available material has  been allocated to a specific customer when you find out additional supply for other orders will be delayed.

What is Blanket Sales Agreement

Blanket Sales Agreements are used when you have specific characteristics related to a purchasing agreement between a customer and a supplier. These characteristics include the date range of the agreement, the items included, the price of the items, the quantity of each item that the parties committed to, as well as other attributes, like freight or payment terms.

Once a Blanket Sales Agreement is entered for a customer, multiple releases (shipments) against the Blanket Sales Agreement are processed over a period of time within Order Management. The order is fulfilled and billed according to the terms of the Blanket Sales Agreement. Tracking information will also be accumulated for Blanket Sales Agreements, such as, Blanket Sales Agreements quantity fulfilled, and dollar value fulfilled of released lines. This information is used to view status of orders executed against a Blanket Sales Agreement.

Source: http://www.oracleug.com/user-guide/order-management/blanket-sales-agreements

Shipping: Drop Shipment

In a depressed economy, companies are looking at any supply chain process where they can save time, money or resources. Drop shipping is a popular process where companies can reduce the need to keep inventory in their warehouse, lower their overall shipping costs and improve customer service.

The drop shipment process allows companies to collect sales orders information from customers and send that information to their manufacturers. Those manufacturers will then ship the items directly to the customers.



Source: http://logistics.about.com/od/operationalsupplychain/a/Dropship.htm

Saturday, May 7, 2011

Reservation Creation and Importance of MTL_SALES_ORDERS

We can use following Standard API to create reservation programatically.
INV_RESERVATION_PUB.CREATE_RESERVATION(
                               x_return_status             => x_return_status,
                               x_msg_count                 => x_msg_count,
                               x_msg_data                  => x_msg_data,
                               x_serial_number             => l_dummy_sn,
                               x_quantity_reserved       => l_quantity_reserved,
                               x_reservation_id             => l_reservation_id,
                               p_api_version_number     => 1.0,
                               p_init_msg_lst                => FND_API.G_FALSE,
                               p_rsv_rec                      => l_reservation_record,
                               p_partial_reservation_flag => FND_API.G_TRUE,
                               p_force_reservation_flag  => FND_API.G_TRUE,
                               p_serial_number              => l_dummy_sn,
                               p_validation_flag             => FND_API.G_TRUE);

Following are two important input parameters:
l_reservation_record.demand_source_header_id  :=  ??;
l_reservation_record.demand_source_line_id       :=  line_id;

While calling above procedure, one must pass SALES_ORDER_ID from MTL_SALES_ORDERS table instead of Order HEADER_ID from OE_ORDER_HEADERS_ALL for input parameter l_reservation_record.demand_source_header_id


About  MTL_SALES_ORDERS Table from Oracle ETRM:

MTL_SALES_ORDERS stores Inventory's local definition of sales orders.

Unlike account numbers which are stored as flexfields in GL_CODE_COMBINATIONS, or purchase orders which are stored in PO_HEADERS, sales orders are not assumed to originate in any particular application. MTL_SALES_ORDERS exists for the purpose of mapping sales orders between other applications and Inventory.

MTL_SALES_ORDERS is a key flexfield table with no structure defining column or set defining column. The flexfield code for this table is MKTS. Only one structure for the flexfield may be defined for any installation of Inventory. Inventory demand interface and demand manager will validate sales orders on segment values, and will create a new SALES_ORDER_ID when necessary.
Related Posts Plugin for WordPress, Blogger...