Order Management Useful Information
Order
Management is all about entering, booking,fulfilling the customer orders.
It is the customer orders. Typically an order
consists of a Order header and
order lines,with each line corresponding to an
inventory item.
To create the order lines, we need an
inventory item. let us choose a
standard item, ie. item with BOM type
Standard. Now we should also
choose item corresponding to the org_id that
we are in. Hence to find
such an item, go to the Oracle inventory and
choose the menu item
Organization Item , choose your organization
and a pick a particular item.
(Your organization is decided by what you
mention in the warehouse field
at the order header level. If you do not
mention any value for the
warehouse field, then all the items
corresponding to all the org's, can
be chosen in the line items).
Once you choose a particular item, navigate to
the order management tab,
and make sure it is customer orderable,
shippable i.e these check boxes
are enabled.
Also make sure this particular inventory item,
is part of the price list
that you mentioned at the ordered header. If
it is not, then you can always
include this item in that price list.*/
-- ORDER ENTRY
*****************
Make sure these profiles are set to null
TAX: Allow Override Of Of Customer
Exemptions
OM: Invoice Transaction Type
OM: Credit Memo Transaction Type
This will
allow us to enter the tax handling flag to 'Standard'
Also Make sure that the profile option
'Sequential Numbering' is set to
Always Used. Otherwise you may not be able to
create an order online. Use
the following query for that.
In Oracle Applications we can create a
sequence corresponding to a
specific application (like AP,AR, ONT etc) in
the "document sequences"
screen (using system administrator
responsibility)
(setup= > documents
=> define)
and assign that sequence to a specific order
type in the
"Sequence Assignments" form.
(setup= > documents
=> assign).
Once this is done, Oracle OM, will be able to
create sequential order
numbers for the order we create.
/*
While creating the order we mention the order
type as "Standard - US" .
If we look at the setup, transaction types
form we find that this order type
is associated with a particular workflow that
you have created using the
Oracle workflow builder. When we create a
transaction type in the setup,
the data in the backend goes to
select * from oe_transaction_types_all
/* For any particular order that we are
creating, we can see the workflow
nodes by looking at the
Tools=>Workflow status
and see what is the path for this particular
order.
As an ex, we can have workflows defined such
as OMShiponly, OMInvoiceOnly etc.
In the case of OMShipOonly, if you look at
the workflow, we will find
that there will not be any steps beyond
shipping. That is, there is no
invoice interface step in that flow.
In the case of OMInvoiceOnly, if you look at
the workflow, we will find
that there will not be any steps
corresponding to pick release,ship confirm
etc. Once the order is booked, the next step
would be the the invoice
interface step.
We have chosen a simplest item. That is this
is a standard BOM item type.
At the technical level the ato_line_id is
null or it does not have any
parent line id. This item is also called a
spare.
If we have put all the other fields properly,
like the payment terms,
bill to ,ship to, currency we should be able
to book the order successfully.
Once the order is booked, the status of the
order header and order line
will change to Booked.
*/
select profile_option_name,user_profile_option_name,
description, language
from fnd_profile_options_tl
where user_profile_option_name like
'Sequential Numbering'
/* Now we need to progress the order(lines).
Click on the Actions button
and choose the "progress order"
Starting now, the order will go thru
different phases and every time we
need to keep doing the same thing
i.e Actions =>Progress Order.
The different statuses that show up are
"Wait for OM Close"
"Dispatch Line".
(when we do the progress order it goes thru
the different nodes of the
workflow tree, until it hits either a end or
a notification is waiting.)*/
--Once an order is created, we can use the
following query to find that in the table,
select order_number,header_id,org_id,
flow_status_code,ordered_date
from oe_order_headers_all
where order_number = 1100026593
select org_id,header_id, line_id,
shipment_number,ship_set_id ,flow_status_code
from oe_order_lines_all
where header_id = 77469
/* An order can have many lines with each
line being shipped to a different
location. A ship set is a group of order
lines which are shipped to a same location */
/* Run the following query to get to know
what are all the statuses
each order line has gone thru. The key thing
here is that item_key in the
workflow tables records the statuses of each
line in the order.
Given a line item, we can get its statuses
from the query given below.
The wf(workflow) tables store for each kind
of item, flow statuses. In
this case, we have the item type as 'OEOL'.
Both the order header and
order line will have separate workflow
statuses,we can check both of them with
the item types as OEOH,OEOL.
*/
SELECT item_type, item_key, activity_status,
begin_date, end_date,
process_activity, activity_name -- *
--item_key
FROM wf_item_activity_statuses,
wf_process_activities
WHERE item_key = '77469' -- takes the id's not numbers
AND item_type = 'OEOH'
AND process_activity = instance_id
ORDER BY
begin_date, end_date
--The
following query gives the statuses of all the lines of a particular order given
an order number.
SELECT
a.header_id,
b.line_id,
e.segment1,
d.activity_name,
c.activity_status,
a.flow_status_code,
b.item_type_code,
b.inventory_item_id ,
DECODE (b.ato_line_id, NULL, 'Spare '),
c.begin_date,
c.end_date ,
a.ordered_date ,
b.ship_from_org_id
FROM
oe_order_headers_all a,
oe_order_lines_all b,
wf_item_activity_statuses c,
wf_process_activities d,
mtl_system_items e ,
oe_transaction_types_tl f -- oe_order_lines_all g
WHERE
a.header_id = b.header_id AND
c.item_key = to_char (b.line_id) AND
d.instance_id = c.process_activity AND
a.order_number = 1100026591 AND
b.ato_line_id IS NULL AND -- for a spare
b.inventory_item_id =
e.inventory_item_id AND
b.ship_from_org_id = e.organization_id AND
a.order_type_id = f.transaction_type_id AND
b.ship_from_org_id = 16 ORDER BY begin_date, end_date
--TAX
DEFAULTING IN OM :
/*In AR(look at the AR scripts), typically
there is an hierarchy of tax code
defaulting based on the settings at the
customer, site, item,system options
etc at the system options level. However in
the OM,when you enter an order
line, then the tax code is defaulted by the
api "oe_default_pvt.get_tax_code".
Typically this API also behaves identical to
the above logic. When there was
no tax code at the site level, it was
defaulting to location at the order line
level, however when I provided the tax code
at the site, then it is defaulting
that tax code(this is similar the AR tax code
hierarchy).
*/
/*ORDER
SCHEDULING :
********************
To schedule an order(from the sales order
form) means that to find out the
available date of a particular inventory item.
Usually when an item is scheduled
it would call the MRP API ,behind the scenes,
and come up with an availability for
that particular quantity and populates the
scheduled ship date in the sales
order form.
The different types of scheduling actions are
Schedule (& unschedule)
reserve (& unreserve)
Availability Inquires(ATP Inquiries)
Scheduling
Issues : BOM Calendar Building :
Occassionaly we might run into the BOM
calendar issue when we are trying to
schedule an order line. This could be because
the corresponding BOM calendar
is not built.
As mentioned before, a sales order can consist
of multiple items with each item
possibly sourcing from different inventory
organization.Now let us say for a particular
item, we have specified inventory organization
as M1.
A calendar is associated with every inventory
organization. And we need to make
sure that,that particular calendar is built
properly. First do this ,to find out
what is the calendar associated with your
inventory organization.
Pull up the organization from the inventory
application,and get the calendar name specified there.
Setup => Organizations => Parameters
Now go to the calendars form and pull up the
above calendar.
Setup => Organizations => Calendars
Here specify the correct calendar range, and
rebuild it by
Tools => Build
Now even
after the BOM calendar is built, if scheduling still fails in OM, then run the
Data collections with a
Complete Refresh.
To run the
data collection, do the following Steps,
First go to
the Order Management Responsibility, and define (or reuse) an instance,
Order Management > Scheduling >
Instances
(Make sure you select only the required
inventory organizations and not all)
Then, using
the responsibility, "Advanced Supply Chain Planner" go to the menu
Collections => Oracle Systems => Data
Collection.
(And in the parameter for the collection
Method give the value "Complete Refresh")
1) From Advanced Supply Chain Planner, run
Planning Data Pull - Purge Staging Tables with Validation = NO
2) From System Administrator, run Refresh
Collection Snapshots with Refresh Mode=Complete.
3) Refresh Collection Snapshots again with
Refresh Mode=Fast
4) Run Data collections.
/* ORDER
BOOKING :
******************
However
when an order is booked, it is automatically scheduled.
That is; if the scheduling fails that order
cannot be booked.
*/
/* Once the order has been booked, that is
the flow_status_code of the order header,
line changes to BOOKED, then that particular
order can be PICK RELEASED.
Pick Release is a process where we choose
that particular inventory item that we want to
ship. As
an ex, let us say we have an item of which we
have the quantity on hand as 100.
That is we have 100 units of that item.
# of Items on Hand : 100
# of Items to Reserve : 100
# of Items to Transact : 100
Now let us say we placed an order which has a
line item and the we ordered 2 units of that item, then
once the Pick release process has completed,
the following will be the scenario.
# of Items on Hand : 100
# of Items to Reserve : 98
# of Items to Transact : 98
We can see all this information in Inventory
using the menu option
On-hand,Availability =>
On-hand,Availability
*/
select * from mtl_onhand_quantities
where
inventory_item_id = 21967
and
organization_id = 45
select * from mtl_onhand_quantities_detail
where
inventory_item_id = 21967
and
organization_id = 45
/*Reservations :
If a reservation quantity is entered,let us
,say 14, then when the order is booked, immediately the quantity
is reduced,i.e the this is how it will be,
(Even before the Pick release process happens.
# of Items on Hand : 100
# of Items to Reserve : 86
# of Items to Transact : 86
*/
select
inventory_item_id,organization_id,demand_source_header_id,
demand_source_line_id,supply_source_header_id
from
mtl_reservations
where
inventory_item_id = 21967
and
organization_id = 45
/* PICK
RELEASE :
******************
The pick release is done from the menu
Shipping=> Release Sales
Orders.
/*Usually Pick Release is the process thru
which the item will be subinventory
transferred from a source subinventory to the
staging subinventory. (usually staging
subinventory is the location from where the
items are shipped). This is usually
done by a pick wave move order. What this
means is that during the pick release,
a move order will be created and transacted.
The staging subinventory is
specified here (for each inventory
Organization)
setup => shipping => shipping
Parameters =>pick release(tab)
/*When you do the pick release,if the picking
rule is not mentioned then it would
go by the order in which the picking rules are
defined. Picking Rules are
defined in the Inventory(not Order Management)
here
Setup => Rules =>Picking
Picking Rules are defined at the inventory
item level and basically the pikcing
rule defines the order in which the items are
picked for sales orders i.e.
revisions,lots, subinventories and locators.
Hence Oracle Shipping will submit the request
to the Inventory (by passing the
inventory item as parameter), then Inventory
will look what is the picking
rule for that item, and then subsequently what
are the rules like revisions,lotsetc.
So if a picking rule is specified at the time
of Pick release ,then Order Management
will use that picking rule.
So if a picking rule is not specified, &
let us say we are doing a pick release
and we have not mentioned any picking rule in
the pick release form,then it would go look for the picking
rules defined and choose the first picking
rule available (the inventory tracks
the order in which the picking rules are
defined).
Now it has found the picking rule, having
found the Pickign Rule,
Let us say the picking rule says the
ubinventory order as "subinventory",
then the system goes to all the subinventories
one by one specified by the
picking order and then picks the item from
that subinventory accordingly.
Let us say the picking rule says the
subinventory order as "receipt date",
then the system will pick the items which ahve
the earlies subinventory receipt date.
While defining a subinventory we provide the
picking order for each subinventory.
*/
Now in the Shipping Parameters setting, if the
Autoallocate is set to YES
(i.e if it is checked),then during the pick
release, a move order is created,
allocated and transacted.
If the Autoallocate is set to NO(i.e if it is
unchecked), then during the pick
release, a move order is created ,but not
allocted or transacted.
(Look in the inventory scripts for more
details on the move orders.)
The different steps that a Move order will go
thru are given below.
Move Order Creation.
Move Order Approval.
Move Order Allocation => At this stage, the
Inventory will use picking rules
defined to allocate the Material to this
particular Move order.At this point
the material reservation is made.
that is we can check the information in the
table mtl_reservations.
In this step, it will fill all the details
like the from and to subinventory,
but does not actually execute those steps.
Print Pick Slip (optional) => This is an
optional step to print the pick slip.
Move Order Transaction. => Typically each
Move order will consist of a header and
lines. Each line will correspond to an item.
We can transact one line at a
time or all together. Now at this point the
actual subinventory transfer will
happen. That is we can see the records in
the material transaction
mtl_material_transactions. Transacting a
Move Order is called Pick Confirmation.
So pick confirmation is moving the items to
the staging subinventory.
As a result of which subinventory transfer
will happen.
What I noticed is that let us say if an item
inv1 is stored in the subinventory S1,
then after pick release, a record is created
with the to_subinventory being S1
(while it is already in S1) and
from_subinventory being NULL.
Actually when the item is defined we can
specify the default shipping organization
(say SO1) in the OM tab.This is the shipping
organization and not the subinventory.
*/
select *
from mtl_txn_request_lines_v where header_id >= 9343
-- or the material trx
select *
from inv.mtl_material_transactions where inventory_item_id = 81
order by creation_date desc
/*Hence,once the Pick Release process
completes, the item quantity be reserved for
this particular order ,hence the reservable
quantity will go down and also the
material transactions are created.*/
/* Pick Release Errors :
1. Typically while doing a pick release we
might end up with
an error APP-WSH-231033,saying that pick
release is errored and check the log,which
does not exist at all. Usually this can happen
if a hold exists on that particular
order. A hold is usually created at the time
of Sales order creation. There are many
reasons why a hold can be created for ex, if
the customer credit rating is not good and
if you are using the credit management , then
it would automatically apply a credit hold.
Once the hold is removed we should be able to
pick release it succesfully.
2. Another error which we might encounter is
(which is more of a warning)
Latest dates are lesser than the earlier
dates.
3. If you are not able to pull up the order
in the pick release form, then
make sure that the item in that sales order is
shippable at the inventory item level.
Additionally, if the AutoCreate Deliveries
check box is checked in the shipping
parameters window, then once the pick release
process is succesfully completed,
a new delivery will be created.
*/
/*So once the order is booked, the delivery
details (& assigment records) are
created. The released_status value will be R
which will change to Y once pick released */
select a.released_status,a.mvt_stat_status,a.pickable_flag,a.*
from wsh_delivery_details a
where source_line_id in (select line_id from
oe_order_lines_all a, oe_order_headers_all b
where a.header_id = b.header_id and
b.order_number=56704)
select * from wsh_delivery_assignments where
delivery_detail_id in
(select delivery_detail_id from
wsh_delivery_details
where source_line_id in (select line_id from
oe_order_lines_all a, oe_order_headers_all b
where a.header_id = b.header_id and
b.order_number=56704)
)
/*However when we pick release the order, then
the actual deliveries are created and
then they are assigned to the delivery detail.
So the delivery assignments table will
get updated with the delivery id once the pick
release is completed(if the Shipping
Parameters option specifies Autocreate
Deliveries).
The way deliveries are created is based on the
grouping criteria that is specified
again in the Shippping Parameters.For ex, if
there are two lines which two different
shipping terms, then the sytem will create two
deliveries and not one delivery.*/
select * from wsh_new_deliveries
where source_header_id in (select header_id
from oe_order_headers_all b
where b.order_number=56704)
/*If in the Shipping Parameters
"Autocreate Deliveries" has not been checked, we will
have to go to the shipping transactions form
and manually create the deliveries. */
/*SHIP
CONFIRM :
****************
Having pick released the order line, it is now
ready to be ship confirmed.
Again in the Shipping parameters Form,if
the AutoCreate Deliveries is checked, once
the order is pick released, automatically the
delivery lines are created. And for those
delivery lines a delivery is also created
based on the Delivery Grouping attributes.
The delivery grouping attributes are set in
the shippping parameters window in the
Delivery tab.(usually the ship from and ship
to locations are always checked and hence
if the ship to location is same, then a single
delivery will be created for multiple
delivery lines). Hence typically here first
delivery lines are created and then the
deliveries are created.
Otherwise if the AutoCreate Deliveries is
not checked, then we have two options.
either comes to the delivery lines and do
a AutoCreate Delivery Or
Create a delivery and assign the delivery
lines to that delivery.
Either way,once the deliveries are
created,they are ready to be ship
confirmed.
You do the ship confirm on the Delivery tab.
Generally when we do the Ship confirm we
specify the Ship confirm rule.
A Ship confirm Rule basically specifies the
shipping method, and shipping documents
set etc. We can define any number of ship
confirm rules as we want. However we can
specify which one we want to use in the
Shipping parameters. So once we come to
the ship confirm Page, we can see that the
ship confirm rule (that is mentioned in the
parameters).
Think about Ship confirm in this way. When we do the ship confirm of a
delivery,
the system will perform the following steps
-- Create a trip (with two stops ,pickup
and drop off)
-- Assign the delivery to that trip. This is
probably done by the program
"Interface Trip Stop".
-- Sets the delivery status to
In-Transit/Closed and initiates the OM and
Inventory interfaces.(this is when the
on-hand qty redcues in inv)
-- Prints all the shipping documents
specified in the document set.
-- Change the status of the Order Line to
Shipped.
-- To change the status of the Order line to
closed, please run the
Workflow Background Process from Inventory
for "OM Order Line".
*/
/*Order Lines And Autoinvoice : Actually in
the SALES order workbench in the lines, we can
give the scheduled dates different for each
of the lines. This way we can close
the lines independent of one another. That is
if there are 2 lines in an order we
can progress one line and close it,while the
other is still 'Awaiting Shipping'.
Now we can try to push this order to AR as
long as the grouping rule that is
associated have the order line also as on the
attribute in the grouping criteria.
If order line is not a grouping criteria,
then we cannot even select this order
in the Autoinvoice request and hence we
cannot push this order to AR. So in
essence, we can progress even one line (of a
multi-line order) independently and
create an invoice for that.*/
/*IF UNABLE TO DO SHIP CONFIRM (or SHIP
CONFIRM BUTTON DISABLED) : DEFINE GRANTS AND ROLES :
Now in order to ship confirm(or do any major
operation in order management), the
user logged in should have sufficient
privileges to do so. In Oracle Apps in
Setup=> Shipping=> Grant
roles,
We can create a ROLE (which has the ability
to pick release, ship confirm etc).
Once that role is created, then GRANT that
role to this particular user. Having
done that, the user can ship confirm that
order.
Once ship confirmed, it can be seen from the
following table.
*/
select * from wsh_new_deliveries
where source_header_id in (select header_id
from oe_order_headers_all b
where
b.order_number=1100029996) -- 57516219
select * from wsh_delivery_details
where source_line_id in (select line_id
from oe_order_lines_all a,
oe_order_headers_all b
where a.header_id = b.header_id
and b.order_number=1100029996) --
57516219
/* However once the order is pick released,
then as mentioned above the
move order will be generated and a record is
also created with move order id
in the wsh delivery tables with the status
being OP,and also consists of the
initial pick location and the ultimate drop
off location,based on the customer's
ship to location.*/
select * from wsh_delivery_assignments
where delivery_detail_id = 35157
/*However once the ship confirm process is
completed, the status_code, column
in the wsh_new_deliveries table is updated to
'CL' from 'OP'. And released_status
in the delivery details table is also
updated.*/
/*WORKFLOW BACKGROUND PROCESS: Now after the
ship confirm process is completed,
the line status will be Shipped. After
this,the line status should go to 'Closed',
and then the Header status will be closed(if
that header only one line). Usually the
"Workflow Background Process" be
automatically running. However if it is not scheduled
to run, we can go to the System Administrator
responsibility and run explicilty
for both header and line. For Header,we have
to give the item type parameter as
"OM: Order Header" and For Line, we
have to give the item type parameter as
"OM: Order Line"
This will automatically close the line and
header and the interface the order
to AR. And we should see an order in */
select * from ra_interface_lines_all
where interface_line_attribute1 = '1100031634'
select * from wsh_picking_batches where order_header_id = 77462
-- PREPAYMENT SALES ORDERS :
/******************************
For more information about the prepayment
receipts, look at the AR Receipts
script. By definition, a prepayment is one
where the receipt is first created
even before the invoice. When the invoice is
created,this particular receipt
is applied to that invoice.
The first pre-requisite for the Prepayments
to work is to enable the payment
functionality. This can be done from the
System Parameters window.
Setup => System Parameters =>
Define.
Here for the parameter name is "Allow
Multiple Payments" (parameter code is
MULTIPLE_PAYMENTS), the enabled flag should be checked.
Once this is done, we should be able to see
the Payments menu option in the
Actions window of the Sales order pad.
-- DROP
SHIP ORDER :
/******************************************************************
In the case of the drop ship order, it
starts from the order management
for the item being ordered,we do not have
enough stock and ultimately it ends
up in generating a purchase order and gets
gets shipped directly from the
supplier to the customer.
To create a drop ship order, change the source
type of the line item on the
shipping tab to External.
Once a drop ship order is entered, and booked,
we cannot pull that order like
any other order type using the release sales
order form etc. The Purchase Release
concurrent program (which can be run manually
or mostly it is workflow enabled
and automatically runs) will pull these kind
of orders and creates records
in the PO requisition interface tables.
Usually what the Purchase release program
does is, it picks up all the lines of all the
eligible orders which have the
line type as External. (For regular orders,
this source type on the shipping
tab will be Internal). We can check these
records using the following query.
Just ensure that the items that are drop
shipped do have a unit price mentioned
in the Inventory in the purchasing tab.*/
select * -- look for the interface
_source_code which will be ORDER ENTRY.
from
po_requisitions_interface_all where interface_source_code like '%ORDER%'
/* the only reference that is found in the
above table is the item_id, but
could not find the sales order#).*/
/* At this point we can switch to the
Purchasing responsibility and run the
requisition import which will import the
interface records and creates the
purchase requisitions. */
select *
from
po_requisition_headers_all
where segment1 ='1100029999'
/*Usually for our testing purposes, the
purchase order we can create one,
and for approval we can use the following
query to make it work.Once the
po is approved, we will be able to receive
against that po.*/
SELECT
ph.segment1, ph.po_header_id, ph.type_lookup_code,
ph.displayed_field TYPE,
ph.vendor_name, ph.vendor_id, ph.full_name,
'Vendor'
FROM po_pos_val_v ph
WHERE (segment1 LIKE '1100028785')
AND (
EXISTS (
SELECT 'Valid PO Shipments'
FROM po_line_locations poll
WHERE ph.po_header_id =
poll.po_header_id
AND NVL
(poll.approved_flag, 'N') = 'Y'
AND NVL (poll.cancel_flag,
'N') = 'N'
AND poll.shipment_type IN
('STANDARD', 'BLANKET', 'SCHEDULED')
-- AND poll.ship_to_organization_id = :2
)
AND ROWNUM >= 1
)
/* Now we can run the AutoCreate process to
create the PO from this requisitions,
which will go thru the standard approval
process. Once the PO is approved,
then we can create a receiving transaction
from this PO. It is very important
to understand that the physically the item is
not shipped to us, but as mentioned
before, the item is shipped directly to the
customer. However in Oracle we
do a receiving transaction and ship it to the
customer,so that the quantity
of the item remains intact.
The important thing to note here is that, once
a PO is created from the
requisition,we can see that the shipment lines
for that particular PO will
have the customer address. This make sense,
and it means that this particular
PO will be directly shipped to the
customer.(ship-to address on the PO header
level might be different,but why??).
Another important thing to note here is that
from the Oracle standpoint, this
particular item will be received and
immediately shipped. That is the on-hand
quantity for this item will be the same as
before.Now for this to reflect,
just ensure that the interface managers are up
and running in Inventory.
Setup => Transactions =>
Interface Managers.
otherwise the items sometimes might be stuck
in the interface tables as in*/
select * from mtl_transactions_interface
/*So In any case, once a receiving transaction
happens, the Oracle Order
management will immediately close this order
and it will go thru the invoice
Interface (if it is enabled). There is no
further step involved to be done
from our side. */
/* Just a quick info regarding mentioning the
price. In case of purchase
requisitions, if we have the sourcing rule
setup, the requisition will always be
imported based on the price against the
blanket document or quotation.
Only in cases where in the corresponding item
was not found on quotation/BPO -
the requisition import program will look for
the list price defined at item level.
*/
/* I understand that the organization is a
logical org. But how will receiving
process know that it has to create 2 MTL
transactions (1 PO Receipt and the
other Sales Order Issue) for a Drop Ship PO
and only 1 MTL Transaction
(PO Receipt) for a Standard PO? */
select * from mtl_material_transactions
where inventory_item_id in
(select inventory_item_id from
mtl_system_items_b where segment1='Myitem' )
and creation_date >= trunc(sysdate)
Important Point : We can change the sales
order quantity as many times as
we want,and the purchase requisition will
automatically show the changed
quantity(or other attributes like ship to etc)
as long as the associated
purchase order is not approved,if there are NO
processing constraints.
We can change data elements after a purchase
order is approved,but they wont
be reflected in the requisition if there are
processing constraints.
-- BACK TO
BACK ORDER :
/**********************/
A Back to back order is basically very much
similar to a drop ship order
with the exception that in this case, we
receive the item from the supplier
and then we ship it to the customer.
-- INTERNAL
SALES ORDER :
/******************************************************************
In the case of Internal Sales Order, it
all starts with the PO requisition
and once the requisition is approved, then
these are the steps that are
involved in generating an Internal Sales
Order.
There are only two types of requisitions
that you are created.
One is Purchase Requisition thru which a
purchase order is created.
Another is Internal Requisition, thru which
an Internal Sales Order is created.
To create an Internal Requisition, navigate
thru the from
Requisitions => Requisitions
and ensure that the type has a value of
"Internal Requisition".
Here we need to set the profile optoin 'PO:
Legal Requisition Type' to Both, so
that we can see both the kinds of
requisitions.
*/
select
profile_option_name,user_profile_option_name, description, language
from fnd_profile_options_tl
where user_profile_option_name like 'PO: Legal
Requisition Type' --119033700
/* Oracle Purchasing uses Order Import to
transfer requisitions for
internally sourced products to Order
Management. Once imported, the internal
sales orders are processed similar to regular
sales orders.*/
/*These are steps that are required to create
an Internal Sales Order.
The most important thing here is that, a
customer needs to be created and
set that customer as Internal,associate an
internal inventory location to his
ship to address. This is the location that we
choose while we create an
internal requisition.This is very important
even before we start creating
an internal requisition.
/*To ensure that you are able to select the
source type as Inventory ,while
creating the internal requisition,do the
following.
0.
Identify an item and identify the two inventory organizations between
which
you want to transfer and ensure that enough
quantity is stocked in them i.e
Org A
=> Sub Inv B => Item I quantity = 250
Org X
=> Sub Inv Y => Item I
quantity = 350
Now we are trying to transfer a quantity of
100 from Org X to A. This is the
Problem Statement.
1. Internal ordered and internal order enabled
attributes are flagged to yes,
for the item that you are trying to do the
transfer.
Items => order Management tab
2. Inventory shipping networks are setup from
and to for destination org and
source org(As an ex,if a intransit inventory
is needed or not. Its very simple to do this)
Setup => Organizations => Shipping
Networks
3. In the Internal Requisition form you are
going to specify the source and
the destination organization and location.
On the Left hand side (Destination),
remember only when you specify a location
which has been associated with an internal
customer, then only you can see
in the source LOV (on right hand side) both
the values of Inventory and Supplier
Otherwise ,you will only see a defaulted
value of Supplier.
/*The way the customer is mapped in the sales
order is that,the system is looking
the location that was chosen when the
requisition was created and from there
it is mapping as to who is the ship to address
and who is the actual customer.
So what this effectively means is that you can
only associate one location
to one ship to customer. i.e
if a customer C1 => C1 ship to addresss
=> I1 location; means
we cannot do this
customer C2 => C2 ship to addresss
=> I1 location;
This makes sense because for a particular
inventory location we need not
have more one internal customer associated. It is not required.
*/
Ensure in the above setup, the Customer is
also set to Internal.
4. Ensure that the item on the requisition
line is assigned to both source and
destination organization and the attributes
are correctly set in both organizations.
5) Now create an internal requisition
Purchasing resp--->Requisitions.
And approve it.Now we should see a record
in the requisitions table.
(Please refer to the PO queries document to
approve the requisition.*/
Ensure that the item is PUrchasing enabled
and internal order enabled ,then
you will se the default value of Inventory
in the source field.
select *
from
po_requisition_headers_all poha
where segment1 ='119035046'
6) Secondly run "Create Internal
Orders" concurrent request.
Navigation: Purchasing resp=>Reports=>Run=>Create
Internal Orders=>OK=>Submit.
See that the request is completed
successfully, if not review the log file for errors.*/
/*After the above step is completed, we should
be able to see a record in
the order management interface tables. The
orig_sys_reference should give
the requisition header id.Interestingly we do
not see the customer information
here,but the ship to ,sold to information is
populated.*/
select sold_to_org_id,
ship_to_org_id,order_source_id,orig_sys_document_ref,
order_type_id
,order_category,customer_id, customer_name,creation_date
from
oe_headers_iface_all
7) Thirdly run "Order Import
Request"
Navigation: OM => Orders,returns=>Import
orders=>Order Import request.
Pass the parameters Order Source as
"Internal" and Order Ref as your Int. Req. No.
Submit it.*/
/*After successful completion of the Order
Import, we should see an order in
the Sales order OM table given below. The
orig_sys_document_reference refers
to requisition# */
select rowid,a.*
from
oe_order_headers_all a
where
orig_sys_document_ref = '119035046'
The Internal Sales Order will result in an
inter-org Transfer.
So once the order is created in OM,it will be
automatically booked (if everything
is fine). Also Internal SALES orders are never
invoiced. The status of booked
is the final status for the Internal SALES
Orders.To finally to complete the
loop,once the order is booked, what we need to
do is that for that particular
internal requisition,we need to go to the
purchasing and do receive against
that particular requisition in the source
inventory organization. So to repeat,
an internal requisition is basically an
transfer between two inventory
organizations.
-- So kinda, Internal sales order and drop
ship order are opposite in functionality. */
-- ALL
ABOUT ORDER IMPORT PROCESS.
/**************************************************************************/
The main
functions of the Order Import are
Validation
Defaulting ,
Inserting,Updating or Deleting of Orders.
Processing Constraint Checks
Scheduling of Shipments
Applying and Releasing Holds
/*
For the order import process, the files can
come either as flat files
(.csv files, .xls files).
Using the sql loader we import this data
into the temporary staging tables.
These staging tables are an identical copy
of the order import interface tables.
(The order import interface tables
are,namely oe_headers_iface_all, oe_lines_iface_all,
oe_order_actions_all,
oe_price_list_attributes, oe_sales_credits_iface_all etc).
Hence the staging tables also look
identical
to the above mentioned tables in terms of
column names etc. Having imported the
data into the staging tables we need to
write the custom pl/sql apis to pull the
order information from the staging tables
into the actual interface tables.
Now these pl/sql api will have logic to
validate different order information
like the order transaction types, order line
types ,customer info, currency
info etc ,before populating the orders into
the iface tables.
At this point, we run the Order Import concurrent
program from the oracle
applications, by providing the order source
parameter. The order import
concurrent program will in turn call the
process order api to do some
process and populate the orders into the
order management tables like
oe_order_headers_all, oe_order_lines_all
etc.
Another interesting point is that, when we
run the order import process, we can
run it in the Validate-only mode as well, in
which case the orders are validated
and they are present in the interface tables
only , but not moved into the base
OM tables. Order Import imports the order in
as Entered and attempts to book it.
If any of the required fields for a booked
order are not supplied, Order
Management retains the order in the Entered
status and notifies you of the error
Changes. You can import changes to orders
that have been imported by passing all
changed data through Order Import. You can
update or delete orders, order lines,
price adjustments, and SALES credits. You
can use change sequence numbers to
control the sequence of changes you want to
make to orders.
Process Order Interface (API)
The Process Order Interface is the central
application process interface (API)
provided by Order Management to perform all
common operations such as
inserting, updating, deleting, and
validating an order or order line. The API also
performs the scheduling and returns a
promise date.
Process order API is OE_ORDER_PUB : this is
the public interface which is
typically used from the backend.
However the Order Import which we kick off
from the Oracle Apps uses private
API oe_order_pvt.process_order. We can
provide different parameters for the same
procedure and call different procedures of
the same package
like (process line etc).
*/
This API is
called by Order Import.
If an Order
is successfully imported, it also gets deleted from the interface
tables. If
you attempt to re-query the window, you will not be able to view that
order in
the Order Import Corrections window.
select
unit_list_price,unit_selling_price,
order_quantity_uom,pricing_quantity
,pricing_quantity_uom,calculate_price_flag
from oe_lines_iface_all
*/
The
following are the Order Import Interface tables:
OE_HEADERS_IFACE_ALL -- stores the header information
OE_LINES_IFACE_ALL -- stores the line information.
OE_ACTIONS_IFACE_ALL -- This is a multi-org table for sales order
actions (holds, booking etc.) open interface
OE_CREDITS_IFACE_ALL -- This tables stores the sales credits
information for the orders.
OE_CUSTOMER_INFO_IFACE_ALL
OE_LOTSERIALS_IFACE_ALL
--(A lot/serial number is a batch number associated with an item)
OE_PRICE_ADJS_IFACE_ALL
-- This table stores the pricing attributes.
OE_PRICE_ATTS_IFACE_ALL
-- This table stores the pricing attributes.
OE_RESERVTNS_IFACE_ALL -- This once stores the reservations on the
items.
OE_UPGRADE_WSH_IFACE
-- Order
Management Tables.
OE_ORDER_HEADERS_ALL
OE_ORDER_LINES_ALL
OE_SETS
(contains sets could be either of the ship/line/attribute set)
OE_ORDER_HOLDS_ALL
(contains the holds that the order may have)
OE_SALES_CREDITS,
OE_SALES_CREDITS_TYPE, OE_SALES_CREDITS_HISTORY
(these tables correspond to the SALES
credits associated with the correpsonding order)
OE_DROP_SHIP_SOURCES
This table stores relationship between order
lines in oe_order_lines_all table and
associated oracle purchasing requisitions in
PO_REQUISITIONS_ALL and Oracle
purchasing purchase orders in PO_LINES_ALL.
OE_HOLD_AUTHORIZATIONS
Stores information about who has the authority to apply and release holds
OE_HOLD_DEFINITIONS
-- This table stores information about hold name and its validity period.
OE_HOLD_RELEASES
This tables stores information about all the holds that has been released
OE_HOLD_SOURCES_ALL
This table stores information of the hold source criteria.
--
PROCESSING
CONSTRAINTS :
Processing
Constraints are basically some security rules that you want the Order
Management
system to apply or execute whenever a new record is created or any
fields are
updated for an order header or line. They can be accessed by
Setup => Rules => Security =>
Processing Constraints.
Processing
constraints are applied for the orders entered online or for
the orders coming thru a batch.
Each
Processing constraint corresponds to a
* Specific Operation (Create, Update, Delete)
* For each operation ,there are conditions
with each condition corresponding
to a Validation template.
So as an
example of Processing constraint is this.
Whenever an update of a credit card has been
done by a user at the headerlevel,
execute a procedure and print a user-defined
message. So in the entity
Order Header do the following steps.
1. Then choose the operation as Update and
attribute as Credit Card Number
2. In the conditions provide the validation
entity and a validate template
which in turn maps to a procedure.
3. Provide the user-defined message, that
needs to be shown to the user when
he updates the credit card.
VALIDATION
TEMPLATE : A validation template basically corresponds to
a validation entity (like Order Header, Order
line, etc) &
a validation type (like a API, Table, or
Workflow activity)
If the
Validation type is Table, then you can provide some conditions on the
table columns like etc "Customer like
'XYZ%'" and this check is validated
for each record.
If the
Validation type is API, then you can provide a package.procedure, and
that procedure will be executed for each
record.
And finally once you define a Validation
template, we need to generate the
Constraints Validation Package. This can be
done using the menu
Tools => Create Validation Packages
RECORD SET
: A record set is what you are telling the system on how many records
you are
asking the system to act on.
If you
change the record set or the validation template you need to generate
the
Validation package again.
--------
VALIDATION
PROCESS :
Let us see
the sequence of steps that the Order Import validation process does :
---- ORDER
IMPORT PROCESS FLOW.
The Process
flow of the Order Import is classfied into
Pre Process Order API part
Process Order API part
Post Process Order API Part.
Pre-Process
Order API Part : (VALIDATION AND DEFAULTING)
----------------------------
-- Insert a request Id in the interface tables
-- Check the closed_flag in the oe_headers_iface_all
table.
if oe_headers_iface_all.closed_flag = 'Y'
then,
OE_CNCL_ORDER_IMPORT_PVT.Import_Order is called
if oe_headers_iface_all.closed_flag = 'N'
then,it is open order,
OE_ORDER_IMPORT_PVT.Import_Order is called.
--
Check the Operation Code
--
Validate Order source and the Orig_sys_document_ref
Check for the Order sold-to-org column,if
it is null, then create new Customer.
Header Level Record Validation (check for
required attributes ,conditionally
required attributes and cross-attribute
validation)
Line Level Record Validation (check for
required attributes ,conditionally
required attributes and cross-attribute
validation)
So basically the VALIDATION AND DEFAULTING
will happen in the Pre-process API.
Process
Order API Part : (PROCESSING
CONSTRAINTS)
------------------------
Process Header
Check Processing Constraints
Validate Attributes for the record
Validate Entity
check the operation codes or
insert,update,delete and do accordingly.
Process Header Adjustment
Process Price Attribute
Process Header Adjustment Attribute
Process Header Sales Credit
Process Lines
Check Processing Constraints
Validate Attributes for the record
Validate Entity
Check Schedule Status
check the operation codes or
insert,update,delete and do accordingly.
Process Line Adjustment
Process Line Sales Credit
Process Line Aattribute
Process Line Adjustment Attribute
Process Line Lot and Serial
Post-Process
Order API Part : (SCHEDULE SHIPMENT,
APPLY HOLDS)
----------------------------
Once the
orders are imported ,the Post process will try to do the following.
Price Comparison
Payment Term Comparison (check if the terms
on the line is diff from the
customer profile terms)
Reservations
Check Return Status (either delete interdace
records or update
the interface records status)
/*PRICE
COMPARISON :
If oe_lines_iface_all.calculate_price_flag =
'N' Then
we should provide unit_list_price and
unit_selling_price on the oe_line_iface_all
(And Order Import does not do any price
calculations).
If oe_lines_iface_all.calculate_price_flag
='P' Then
We should provide 'pricing_quantity' and
'pricing_quantity_uom' columns ,since
the OI will calculate the unit_list_price and
unit_selling_price.
If the oe_lines_iface_all.calculate_price_flag
'Y' and selling price is also
populated, then OI will compare and prompt
the user for any discrepancies in
the price. However for this, the
customer_item_net_price needs to be populated.
PAYMENT TERMS COMPARISON :
If the payment term mentioned in the
oe_lines_iface_all.payment_term_id does
not match with the system provided value(i.e
OI will determine from the profile
classes what is the payment term id), then the
OI will raise a warning,but still
would import the row and would put the
customer payment term id in the
column customer payment term id in the
oe_order_lines_all table.
RMA FUNCTIONALITY IN ORDER MANAGEMENT :
/***************************************************************************/
Order management supports a variety of methods
for returning the products.
The different RMA types are
RMA with Credit Only
RMA with Repair
RMA with Replacement
RMA with Receipt and No Credit
RMA with Receipt and Credit
Returned Item with Failed Inspection(its a
mixture of above).
Setup
Required for performing RMA's.
-- For each of the above RMA types, that you
want, you need to create a
return order workflow and assign it at the
order or line level.
-- Further if a credit memo in AR needs to
be generated ,then we need to
include an invoicing activity within the
workflow mentioned above.
-- The item that customer is returned should
be returnable, i.e
Returnable, Shippable, Transactable,
Stockable, Invoicable.
--
/******************************************************************/
/* RESERVATION :
A Reservation is a guaranteed allotment of
an item to a specific sales order.
A hold is placed on a certain quantity of an
item , which is made available
by a specific date. Once reserved the
product cannot be allocated to
another sales order.
*/
/* Little bit on the Inventory Item.
An item can be defined for multiple
organizations. if we defined the
same item for multiple organizations, then
we would find multiple records
in the mtl_system_items table one for each
organization id. In general when
we want to look at the item master, then it
would ask for the organization,
however for the item master, the org is not
significant and hence it would
show the org in the form as GLO (Global
organization). However when we look
at the organization items, then it would
show only the items corresonding
to that specific org.
The actual item code is stored in segment1
column,which is searchable from
the master or org items form. */
SELECT inventory_item_id inv_id,
organization_id org,segment1,
default_shipping_org,description
FROM
mtl_system_items_b
WHERE
segment1 = 'LD-FO='
-- We can also get the organization name
from the following query.
select organization_id,name from
hr_organization_units
where organization_id in (1,2,16,483)
/* You can only create items in Global
Organization and then assign those
items
to different organization by pressing the organization assignment
button. Having completed the important step of
creating a master item in
Global Organization, now we need to assign
this item to different
organizations as you want them to be. Each
inventory item also has something
called "ship from org id" ,i.e that
specific item can only be shipped from
that org. Mere assignment of this item to
different org's does not change
the ship_from_orgid's.
Hence even though the same inventory ITEM
which is built in different
organizations, it can only be shipped from one
org. */
--
Make sure the ship set id is given for every order line item.
/* For this specific inventory item id, we
can see what is the on_hand quantity
available and it can be seen from mtl_onhand_quantities_detail.However
this
info is striped by the date_received. Hence
if we have a total quantity available,
we need to sum up on
primary_transaction_quantity.*/
select
inventory_item_id,organization_id,primary_transaction_quantity
,organization_id org_id,
subinventory_code,transaction_quantity,onhand_quantities_id,
date_received
from mtl_onhand_quantities_detail
where
inventory_item_id = 21967852949
and
organization_id =16
and cost_group_id =1206
and owning_organization_id =16
and subinventory_code = 'JABIL2-OCC'
and organization_type =2
-- Try to
understand the difference between these two org ids' important.
select *
from mtl_parameters where organization_id =16 and organization_code ='JAB'
/* The concept of Sub-Inventory :
We have seen from the various modules that
for ex, the purchasing dept will
acquire the goods from the supplier which
are moved to the inventory.
The order management picks the inventory
items from the inventory(which is
called pick release process) and then ship
confirms that item for the customer.
Similary the manufacturing department gets the inventory from a
inventory
org(sub inventory) and gives the finished
manufactured item back to the inventory.
Now we can see that we can have different
sub-inventories each for a
particular department like
Inventory,Manufacturing and order management.
When defining an item, you can use the item
attribute Item Status to
control status attribute values. You
determine the list of values for the
Item Status attribute by defining Item
Status Codes.
An Item Status Code has a user defined set
of Yes/No values for the status
attributes. The values are applied to the
status attributes when you choose
an Item Status Code when defining an item.
For example, assume you define an
Item Status named Prototype with all status
attributes set to Yes except
for Customer Orders Enabled.
Next, you define another Item Status,
Active, with all status attributes
set to Yes. In the beginning of a product
development cycle, assign the
status code Prototype to an item so that you
cannot place the item on a sales order.
Later, assign the status code Active to
allow all functions for the item.
A key board is customer ordered item, but we
may choose to have to be non
"customer orderable" a service
item is not "customer ordered" item and hence
there is no meaning about "customer
orderable".
*/
SELECT
c.item_key, d.activity_name, c.activity_status, c.begin_date,
c.end_date
FROM wf_item_activity_statuses c,
wf_process_activities d
WHERE d.instance_id = c.process_activity AND
c.item_key = '343436'
ORDER BY 1, 3, 4
select * --line_id, ato_line_id
,inventory_item_id, ordered_item,tax_exempt_flag, rowid
from oe_order_lines_all
where line_id = 57739178 --header_id =
4314689--57725237
select * from oe_order_headers_all where
order_number = 53008567
select * from wsh_delivery_details where
source_header_number = 53008567
/*For getting an item for drop ship order,
first run this query and take that
item for org, because there are the kinds
of items which are eligible for
drop ship orders. A drop shipment order is one
where we dont have sufficient
stock of that item or we do not manufacture
that item at all. In that case
we raise a drop ship order (meaning the
order source is external). This sales
order will in turn raise a requisition , and
a purchase order is created
for that requisition. Once that purchase
order is fulfilled and the goods
arrive we have 3 options to either send them
directly to the customer, stock
them in the inventory or stock it and send
to the customer. Look at the .html
file giving complete description about the
drop ship order.
oe_drop_ship_sources
:
This table stores the relationship betweent
the order lines in oe_order_lines_all
and the
associated oracle purchasing requisitions in po_requisitions_all and
po_lines_all.
*/
SELECT
inventory_item_id,
segment1
FROM
mtl_system_items_b
WHERE
purchasing_enabled_flag ='Y'
and
purchasing_item_flag ='Y'
and
mtl_transactions_enabled_flag ='Y'
and
stock_enabled_flag ='Y'
and
reservable_type ='Y'
and
customer_order_flag ='Y'
and
customer_order_enabled_flag ='Y'
and
shippable_item_flag ='Y' and
rownum < 2
-- Creating internal orders
-- order import tables
/*Move Order 8308380 (Transact Move Orders
Form)
Its is possible to release an order line
independently of other order
lines and order header. */
/*TAX calcuation scenario for orders picked
up from shipping DC
We are using vertex and calculating tax
based on the ship to location of
customers. At times customer wants to pick up
the goods from shipping DC
instead of items being shipped to his
'Ship-to' location. Sales tax in this
scenario is calculated based his ship-to
location, and not based on the
location of shipping DC.
Possible Solutions :
We have two workarounds to handle this scenario,
First, one to setup tax codes with specific
tax rates and use defaulting
rules to default tax code based on shipping
method = PICKUP and shipping DC.
Second create internal customer and define
all shipping DC's as locations
and then use them as ship to locations to
calculate correct location based tax.
*/
================================================
/* ABOUT ORDER HOLDS
In the new
order management functionality, for any particular order (which has a
specific order or transaction type, and which
is associated with a specific
work flow), we can view the work flow
processes when we go to the
tools => workflow statuses
using a java applet. From that diagram we can
know what are the different nodes that particular order
is going
thru. We can correlate the same stages from the query which hits the order and
workflow tables.
Any hold
that you create will go into the table OE_HOLD_DEFINITIONS. Generally
once we
create a hold, we also tell that which responsibility can place this hold
and which
responsibility can release this hold. So this information will
go into the
OE_HOLD_AUTHORIZATIONS. Also we mention when this hold is for which
work flow
activity and for order header or line level.
Similarly
we can define the release (and codes) and when we release a hold we
can provide
this release code as the reason for releasing.
select *
from oe_hold_definitions where name like 'Internet Delivery' -- 1012
select *
from oe_hold_authorizations where hold_id = 1012
Now from
the order organizer window, we can choose a set of orders (and hence lines)
to be
retrieved and for all these set of lines, we can apply a hold source. Now
while
creating a hold source, we provide the above created hold and choose whether
the hold
source should be applied at the customer,order or product level. Here
we can also
mention upto what time this hold is valid.
Having done
that this information goes into the table, OE_HOLD_SOURCES_ALL with
the hold_id
and the corresponding hold_entity_id (i.e if the hold criteria is
Order, then
the hold entity_id is order header_id and if the hold criteria
is
customer, then the hold_entity_id is customer_id etc), with the corresponding
hold_entity_code
being C or O or I.
Hence a
sample query would look like
select *
from oe_hold_sources_all
where hold_source_id = :p_order_header_id
To place
any particular item in a order succesfully, do the following check list,
check to
see if the item is part of the price list that you mentioned at the haeder
level and
that the end date of that item in that price list is greater than sysdate ,
and it is
customer ordered and orderable, and last criteria is to run the concurrent
program
"Item
attribute Mapping " conc program which is typically run from the order
pricing
manager responsibility.
*/
select
header_id from oe_order_headers_all where order_number = 44131973
select * --
order_hold_id, hold_source_id , hold_release_id , header_id, line_id
from
oe_order_holds_all where header_id = 5132128 -- 1081522
____________________________________________________________________
select *
from oe_hold_sources_all
order by
creation_date desc
--where
hold_source_id = 1081522
-- Bill-To, Ship-To, Sold-To : Sold-To is the
top most company or the main parent company.
/* When
importing internal sales orders that contain order line items that require
serial numbers, Order Import
requires the associated items serial control
attribute be set to: Dynamic at Sales Order Issue.
You can create requisitions (with same number)
in two different operating units.
The Invoice Interface Workflow activity will
not interface internal sales order lines, even if the activity
is present within a workflow process. Internal
order lines are never interfaced to Oracle Receivables.
*/
If the item
is invoicable, then once the order is shipped/ship confirmed, the data is
populated
into
autoinvoice interface tables.
select * from mtl_material_transactions
--where transaction_type_id = 64
where
inventory_item_id = 22934
select * from mtl_transaction_accounts
--where transaction_id = 6953873
where inventory_item_id = 22934
--where
transaction_id = 6806418
select organization_id,
inventory_item_id,segment1
from
mtl_system_items_b
where
segment1 like 'MyAstItm' and organization_id=45
-- and
inventory_item_id = 22917
select
sysdate from dual
select * from gl_code_combinations where
code_combination_id = 1024
select max(creation_date) from
mtl_transaction_accounts
/*************************************************************************************/
reservation
time fence
APS :
Oracle Advanced Planning and Scheduling
GOP :
Global Order Promising
different
kinds of dates request date, available date.
OM:
Autoschedule
/****************************************************************************
But my requirement is I have a manual PO,
and this PO needs to be displayed
in the the Drop ship tab for one of the SO
line for reference purpose.
I created one entry in the
oe_drop_ship_sources table with all the required
information but still I am unable to link
the PO to SO line.
Here is the
query :
INSERT INTO
OE_DROP_SHIP_SOURCES
(
DROP_SHIP_SOURCE_ID,
HEADER_ID,
--Sales Order Header Identifier
LINE_ID,
--Sales Order Line Identifier
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
--LAST_UPDATE_LOGIN
ORG_ID,
DESTINATION_ORGANIZATION_ID,
--
REQUISITION_HEADER_ID
--
REQUISITION_LINE_ID
PO_HEADER_ID,
--Purchase Order Identifier
PO_LINE_ID)
--Purchase Order Line identifier
--
LINE_LOCATION_ID
--
PO_RELEASE_ID)
VALUES
(OE_DROP_SHIP_SOURCE_S.NEXTVAL,189896,251254,'23-Feb-07',5989,'23-Feb-07',5989,84,168,43167,287300);
****************************************************************************/
--
QUESTIONNAIRE :
/*****************
1) It is
possible to release an order line independently of other order lines
and order header.
Yes you can using the shipping transaction
form.(From pick release you can release
complete order and not independently the
lines).
Immediately after the order is booked, we can
come to the shipping
transaction form, pull up that order, and for
a specific line, we can
"Launch Pick Release". We can also
subsequently create a delivery for this
order line and then ship the order as well.
Hence we can ship an order line
independently of the other order lines.
Pick release can also be used to release lines
independently, by providing
conditional scheduled ship dates ,request
dates,in which case, it will release
those specific lines.
2) Once The
order is booked ,are the delivery details/lines created ??
Yes. immediately after the order is booked,
the delivery lines are created (not deliveries)
(which can be seen from the
wsh_delivery_details which reference the sales
order). However once the deliveries are
created (either automatically after
the pick release or manually based on the
system options), these deliveries
lines are asssigned to the delivery created.
Only after
the deliveries are created we can ship (or
ship confirm) them.
3) What is
Defer Interface?
There is a flag in global parameters setting
which is Defer Interface.
Typically once the order is ship confirmed,
then the
trip stop report is printed and the order is
ready for interfacing to AR.
However if the defer interface flag is set,
then even after the ship confirmation,
the trip stop process does not pick this up
and is subsequently not invoiced.
Defer Interface flag can also be set at the
ship confirm window level.
4)How do we
apply credit holds to Orders :
One way of applying a credit hold for an order
(based on the customer credit)
is to use the credit management. Another way
is to specify within the OM,
the credit limit at the customer or site level
as follows,
Customer => Profile : Amounts
We can specify both order credit limit
(which is specific to an order)or credit
limit(which is entire credit limit).
5).What are
Deliveries and Delivery Lines, and which one is created first?
Lets take an example. Let us say there is a
sales order which consists of
two lines. Once the order is booked, two
delivery lines are created automatically.
If there are two order lines, there will be
two delivery lines,so for each
order line, there is a delivery line. Then as a next step, we assign these
delivery lines to a delivery. And if the
autocreate is checked, then automatically
a delivery is created after pick relase and the two delivery lines are assigned
to the newly created delivery.
6) What are
Container Items :
Container Items are also inventory
items,which are flagged as "Container"
in the Physical Attributes tab. Usually they
are not Customer orderable,
customer ordered ,invoicable etc. ;
Items => Physical Attributes => Container Area.
We can also set the item as a Vehicle as
the case may be.
7) What is
packing the Items :
Usually we
Pack the Items, that is when we need to define the Container Item
Relationship,which is defined here,
Setup => Shipping => Container Load
Details.
Here you specify the relationship between the
regular items (like say Printer)
and the container items (like Box, Carton)and
the maximum quantity that can
be filled in that container etc.
Once that is done, we should be able to do the
packing.
8) What is partial cancelling of the order
line.
If you change the order quantity say from an
original value of 50 to ,say, 45,
then the orderline is said to be partially
cancelled.
write more about this
9) What is splitting the order lines and how
does pick release help in the case
of split lines ?
Let us say we have an order which requires
multiple shipments over time, then
you would split the order line, rather than
creating multiple order lines.
So in each split line, we specify the
quantity and the request data,warehouse
from where it should be shipped. Based on
this, the scheduled ship dates are
also populated accordingly for each split
line.
Once this is done, during the pick release
process, we can specify up to which
schedule date /request date we want the
lines to be released and then accordingly
the lines will be released.
10. What
are line sets,ship sets, arrival set, fulfillment sets?
Line set is a generic term,which you
specify at the order header level,
which can be a ship set, arrival set or
fulfillment set.
If you specify a ship set,say 1, for a
group of lines, then during pick
release we can release the lines based on
that ship set number.
Also a line can belong to a ship set or
arrival set,but not both.
13). What
are backflush transactions ?
Backflush transactions are those WIP (workin
process) transactions which pull
the inventory for the manufacturing operation.
It is an issue (outgoing from
inventory) operation and not a receipt
operation.
14) What
are the examples of ShipOnly and InvoiceOnly orders.
Ship only orders are those where we just
ship the item to the customer and do
not invoice them. Example of shiponly orders
are demo items, and sample
items,which the customer uses and probably
returns them after.
Invoice Only Orders are those where we just
invoice the customer,but we do not
ship any item.Example of Invoiceonly order
could be a subscription item
where we just invoice the customer for that
month,but we donot ship
any item.
15) What
are trips and stops and how they are related to deliveries.
A trip consists of atleast two stops, one
the pick-up point and one a drop-off
point. When we ship confirm a delivery,a
program called "Interface Trip Stop"
is automatically run which creates a trip
stop and the delivery is assigned
to that trip.
16)What are
the different kinds of Orders
Regular sales order, RMA, Drop ship,
Internal Sales order.
17) What
are the possible reasons the inventory quantity can be driven negative
for reservable items.
Usually when we pick release, a quantity is
reserved and if there is not enough
quantity then the reservation does not
happen, and the pick release will fail.
However after a successful reservation ,
when we come to the delivery lines,
we can change the shipped quantity on the
delivery lines as well. If that shipped
qauntity is more than the requested quantity
and if that quantity is more than
the available quantity, (and if negative
quantities are allowed) then the
inventory quantity can be made negative. if
negative quantities are allowed for
that inventory organization, then those
records might be stuck in the inventory
interface.
18) Can we
change an order after we book it ???
Yes, as long you dont violate any
processing constraints.
19) What is
the difference between Pick Release and Pick confirmation.
Pick release is the process that you do in
Order Management which will create a
move order and it goes thru approval,
allocation and transaction.
Pick Confirmation is an inventory operation
which is basically transacting a
move order which results in a subinventory
transfer of the material from the source
subinventory to staging subinventory.
Hence Pick Release will internally call
pick confirmation process.
20) What is
retroactive billing ??
21) what is
shipping document set??
A shipping document set is a set of shipping
documents,which you specify at the time
of ship confirm,so that Oracle shipping wil
print all those documents. And they are
Bill of Lading => A receipt given by
the carrier to the customer,acknowledging
the goods being shipped and specifying
terms of delivery.
Waybill =>it is identical to Bill of
Lading, but it is not a document of title.
Commercial Invoice=> prints all confirmed
shipped item in a delivery along with value.
Mailing Label => address label showing
where we are shipping.
Pack Slip
=> slip which shows the contents of the package.
Vehicle Load Sheet Summary =>specifies
the loading sequence of items in a delivery.
Please note that the document set need not
consist of all of the documents.
22) Is it
possible to book an order with out any line items ? What would be the
business scenario for this kind of order ??
Yes.
23) What is
packing slip ?
Let us say we have an order consisting of 10
items. A pack slip mentions all the
items. Basically it is just a confirmation
from our side ,what we are shipping.
A bill of lading is a document from the
carrier what we are shipping.
24) What is
pick slip?
A pick slip is a document printed by the
move order process in Inventory,which
tells what has been picked.
25) Does
the order header close immediately after all the order lines are closed??
26)What is
the backordered status in the delivery lines mean ?
The term "backorder" or
"backordered" is a status,which means that during
pick release, that item is not having enough
stock and hence the status of
the order line or shipping line changes to backorder.
Please remember that
backordered is just a status, it does not
initiate any kind of drop ship
process,to purchase that item from a supplier
etc. To resolve this issue ,you
will have to manually do a receipt for that
item and have enough quantity onhand.
27) What
are the different modules which Order Management will interact with ?
Order Management interaacts with different
modules based on different kinds
of items, pricing, type of shipping etc
Inventory (for pick release, shipconfirm)
Pricing,Advanced Pricing (for formula, attributes, qualifiers,
modifiers)
Shipping Execution (shipping transactions ex
delivery,trips,stops)
Manufacturing (for BOM Items, assemblies etc
before/after booking process)
Purchasing (for drop ship, internal sales
order, RMA receipts)
28) If
aline is stuck at Shipped status, and is not closed, then what is the
difference between running Workflow Background
Process in Inventory versus
Order management,coz running from Inventory is
pushing to AR ?
29) Does
Order Header close immediately once all the order lines statuses are closed?
No. The standard functionality of the Order
header closed an order header at
the month end even if all the lines are closed
in the middle of the month. So
even if we run the Workflow Background Process for Order Header,
the status
will not change to Closed for the Order
Header. However this does not stop
interfacing the lines to AR.
30) Can you
explain the difference between the Subinventory Transfer,Move Order,
Inter-org Transfer And Internal Sales Order?
31) Explain
the process of backorder during the ship confirm process.
We know that during the pick release process
,if there is not enough quantity
the delivery line status will automatically
change to backordered. Now even
during the ship confirm, we can do a back
order. During pick release the quantity
has moved from source to staging
subinventory.
Sometimes we may not ship the entire
quantity that is pick released. The business
reason for this could be that we need that
material for some urgent or important
customers and hence we might partially ship
the quantity. And this is done in
the following steps as follows.
-- In the delivery line, the requested qty(say
100) and shipped qty is null. Let
us say we want to ship only 60 and not the
remaining 40. So in the shipped qty
you enter 60, so the backordered quatity will
be 40
-- In the ship confirm window, in the unspecified
quantities list box change it
to "Backorder". Then the 60 will be
shipped and the remaning 40 will need to be
pick released.
-- Now come to the sales order and look at the
lines, the original line will be
split into two lines one with 60 ,having
status of shipped and one with 40 having
a status of "Awaiting shipping".
-- Do an explict subinventory transfer back
from staging to source subinventory as
this will not happen automatically.
Hence understand the status
"backordered" ,the quantity needs to be pick released
again.
32). what is the difference between bookings and
revenue ?
typically revenue is referred to as current
sales while booking is referred to
as the projected future revenue.
33) what is the difference between billing and
invoicing ?
Billing is a generic term used for AR
invoices, credit memos,debit memos etc,
while invoicing information specifically
refers to AR invoices.
34) what is item conversion and customer
conversion ?
Lets say we have Oracle ERP A and ERP B and we
are trying to convert items
from A to B. Then, when you bring an item X
from A to B system, then that
id/code will be preserved.
The other option is to create corresponding
new items in system B for each
item in system A and then try to reference the
items from system A.
35) What is customer conversion and how does it
affect order management ?
Basically when we are integrating two systems,
then we need to bring in the
customers of one system to another,so we can
transact in the new system
i.e we can create orders.
Hence if we are bringing open orders from
system A to B, then we need to
do the item/customer conversion, because the
open orders in the new system
will be referring to the old item numbers or
customer numbers. For new
orders, that means the orders themselves are
created in the new system.
36) what is business alignment ?
Business alignment is basically business
aligning with IT. For ex, IT might
implement a new version of oracle ERP with new
features ,then the business
should agree to the change and be able to
adapt to the changes.
37). What is a Managed Service Point :
Means some company XYZ takes care of a
particular functionality (like billing
invoice,check printing) in some other company
,say like Cisco. And for this
service, cisco pays them a flat usually
monthly payment. Usually the managed
services provider works remotely from the
company i.e managed services offerer.
38). What
are the checklist of items that happen while booking the order ?
Scheduling,
Credit check,
Checking Hold if they exists,
Repricing,
Process Price adjustments (apply modifiers),
Payments (Authorization of credit cards)
Sales credit verified,
Constraints are validated,
System parameters are validated,
tax calculation,
Configuration Validation,
Workflow progress based on the type of order,
Shipping data are populated,
IB(Install Base), CZ(Configurator) are
populated.
39). How do
you fulfill the software Orders versus tangible item orders ?
For
tangible items orders, fulfilment is shipping the order; and the IB instances
are
created
once the item is shipped. For software orders;
the two ways of fulfillment are
Ship the cd
box or fulfill it online (by downloading etc);
If it is fulfilled online, the IB
instance is immediately created with out the serial number;
And once the product is shipped, that
is when the IB instance can be updated
with the right serial#.(you cant put a serial#
on the box).
40). How do
you ship the orders which you frequently ship the items together ?
For ex, let
us say you very frequently ship the order consisiting of one cd, one hardware
token and
one user manual. Then it makes sense to group them into a BOM(bill of material)
Kit. That
is a BOM of the type of Kit. A kit is a group of components,but a kit itself is
not
shippable
although the component items are shippable. Also ensure that the on hand exists
for all the
component items so the pick release/ship confirm will not fail.
41). what
is defer interface (at ship confirm) in order management ?
Basically at the time of ship confirmation, if
the Defer interface is checked/enabled
then the Interface Trip Stop program is not
run. If the Defer interface is not
checked/enabled then the Interface Trip Stop
program is run. The interface trip stop
program basically updates the
inventory,reduces the on hand quantity and also updates
the order lines status to closed from shipped.
42). At
what point of time the onhand quantity gets decremented ?
So once the
ship confirm completes and if the defer interface is not set, that is when the
inventory interface happens and the onhand
quantity is decremented to reflect the
correct status in inventory.
43). Once
the order is shipped, how can we see the delivery lines ?
Once the
order is shipped, we can pull up that order in the shipping transactions find
form,
by selecting null from the line status field.
We can also run the report like "Shipped
Delivery Lines report" and provide the order number to
see the delivery# details etc.
Shipping => Interfaces => Run
=> Shipped Delivery Lines report
44) Profile option for seeing the output file ?
The profile
option to see the output file and the log file is starting with
"Viewer%"
45). you
can have an item which is not inventory item, but it could be a customer
orderable item?
Yes. for
ex, service item, which are not inventory items (because they are not
stockable/shippable) however a customer can order the service item.
46). What
are the different scenarios of ordering service from OM ?
Consider
these situations :
You can order
service from OM for an item
which the customer has on the same order
This is a simple case.
the customer already owns the item,
Then you should know that order
number,line#,shipment#,date of service start. Done on the service tab.
or the item should be there in Oracle
installed base.
Then you should know the item
instance# or item serial number,called reference number in the form. And if the
item does
not exist in the
Installedbase,then you should create it manually.
47). where
do you define a fulfillment flow. ??
Each order type will have a workflow for
header/line attached to it and the order lines
will flow those steps.
48). Does
defer interface defer OM/AR interface ?
No the defer Interface is basically defers the
shipping module writing the status
back to the OM/inventory interface. However
only after this writeback(interface trip stop
program completion), the line status at the
order level changes from shipped to closed and
at the shipping line status changes from
closed to Interfaced.
And only after the Orderline status is
closed, it can be interfaced to AR(if it is an invoicable
item).
49). How do
you fulfill a service item order ???
Lets us say there is a consulting service
order. Usually these kinds of orders
are fulfilled after the serviced is delivered.
the regular orders as fulfilled
once the item is shipped.while these orders
are fulfilled once the service is
performed and the timesheet is filled,approved
the appropriate authority and sent over.
50). Why is that in OM, once a sales order is
created for a customer, a credit hold is
automatically applied?
It may or may not be. It is decided by the
workflow process.
51). I understand that BOM's should be defined if
the warranty has to be automatically
created upon purchase of a product. What if
the customer does not implement BOM?
When you purchase OM, the basic functionality
of BOM is provided by default.
52). Does
the workflow background process need to be run with deferred processes yes?
Yes to clear the waiting processes,if any.
53). Can the delivery lines in Shipping module be
sourced from Other modules than OM?
The sources for the delivery lines are Order
Management,Project Contracts and Shipping.
54). What
is credit managment module and what is its functionality ?
Credit Management is a separate module which
basically checks whether the customer
credit is in good holding and if not,it will
put the customer order on hold.
Credit management can be hooked up to the
OM/AR/Collections as different touch points.
(just like ipayments module).
55). Is a
move order created for a non-reservable items ?
No, when you created a non-reservable item and
pick release a sales order for that item,
then there will not be a move order and hence
there will not be a reservation or
the item movement from the current
subinventory to the staging inventory.So the item
stays in the place where it is currently. This
is said to be looser inventory control.
55 a).What
is the difference between pick releasing a Reservable Item versus
Non-reservable Item?
Usually the inventory items are by default
reservable and when an order with
a reservable item is pick released , then
during the allocation and transaction
process, the material reservation is made
and move order is transacted.
However when a order with a non-reservable
item is pick released, then during
during the pick release process,then there
is no allocation required.
56) What
are the conditions under which the inventory quantity can be driven
negative(for non-reservable items)?
Usually when the items are non-reservable,
then the pick release process will
not check for the item quantity and there is
no reservation involved. Hence
when you shipconfirm ,there is a chance that
sufficient quantity might not be
there to ship.
So if there is insufficient quantity in an
inventory organization ,&
if negative quantities are allowed in that
organization , &
if the item and subinventory both are
reservable (if an item is reservable
but a subinventory is not, the item quantity
in that subinventory is not
reservable),
Then if the above conditions are satisifed,
the inventory quantity can be
driven negative.
57). What
are the consequences of allowing /disallowing negative balances in inventory?
If you do not allow negative balances in your
inventory it will block any shipment
(delivery) where a line is shipping more than
the quantity available in inventory.
The error is generally human. You accidentally
enter a larger Ship Quantity than you picked.
The whole delivery will be stuck in the
Inventory Open Interface.
To solve the problem either go through the
entire delivery and find out which line
was overshipped. Then move the required
quantity to the staging area and resubmit
all the lines in the Inventory Open Interface.
Now run the Interface Trip Stop - SRS
in Order Management. This should do the trick.
Otherwise, allow negative balances in your
inventory. And resubmit etc. When the
delivery has been processed there will be a
negative balance in the staging area.
Research
onthis. if the shipped quantity is more than the requested quantity for the
reservable vs non reservable items
do a
copmlete flow on this. ??
58). How to
create a Manual Delivery in OM ?
Navigate to Shipping Transaction Form
Ensure that radio button is on deliveries in
the top right corner (ie in "Search For" region)
Click On find button (You can enter a few
criteria to make the search faster)
Once the results screen opens, click on the
general create button green "+" icon at
the top left menu.
It will create a new record. Enter all
required details and save.
Now you can come to the shipping trx form
,find delivery lines for a sales order and
assign the manually created delivery above to
these delivery lines.
This can be understood in the way that when we
create a customer, the first thing
that comes up is the customer search screen,so
that we can find existing customers,so
that there are no duplicate customer entries.
59). what
is the difference betweeen manual delivery vs automatic delivery ?
Actually the difference is when you are
creating Automatically, the system will
create one delivery for the lines involved but
if you want to do it your way i.e.
either club deliveries or may be have a
delivery for each line seperately then it's of use.
To my knowledge if you don't have a seperate
Trip Planning or Delivery Planning department
it should be left to create aumoatically as
you won't be getting benefited much by that.
59). How do you fulfil an RMA order?
Standard tangible orders(with tangible items)
are fulfilled by physically shipping those
items.
However return orders(like return only, rma only, rma with credit etc) are
fulfilled
after we
receive that item into the inventory. So the steps would be
- First book the rma order and note that order
#.
- then go to purchasing/receipts and in the
customer tab, receive that item
into inventory. check to see if the onhand
has increased,ensure that the
receving transaction processor is running.
60). What
are the steps involved in shipping of an ATO Item ?
For ATO model you cannot ship the item
immediately after booking. Please
find the following steps.
Click the actions button and select progress
order. This will run a concurrent
program called autocreate final assembly. If
you see the output of the
request you will get the job no.
Query the job in discrete job window and check
whether it is released.
If not release it.
Transact the job in move transaction form.
Complete the job
Now query your sale order and check the line
status. It will be Awaiting
Shipping.
Now you can ship the order.
61). What
is lead time ?
The generic lead time definition suggests it
is the amount of time between the
placing of an order and the receipt of the
goods ordered.
Usually we can see it as the time difference.
So we can have different kinds of
lead times like Transit lead time &
Delivery Lead Time etc.
62). What is the difference between Operating Unit
Id and Inventory Org id?
As mentioned before, usually whenever we are
dealing with org id's in the
Purchasing,OM, we are referring to the
operating unit id, while in the
inventory we are referring to the inventory
org id.Now when we enter lines
in OM, we choose an inventory item id. Now
this inventory item is corresponding
to the inventory organization id that is
specified in the Warehouse id.
Actually the warehouse id corresponds to the
Inventory Organization Id.
Incidentally the warehouse id is present both
at the header level as well
as the line level. Also we can even mention what is the
subinventory from
which this item should come at the order line
level.
So what this effectively means is that we can
place sales orders having
two lines corresponding to the two different
inventory organization ids as the
warehouse id is present also at the line
level.
63). What
are defaulting rules in Order Management ?
Generally while we are creating an order
online/offline, certain information
defaults based on the defaulting rules. these
defaulting rules can be defined from the
setup => rules => defaulting.
One important point to note here is that when
we create a default rule for each
attribute, we mention what is called the
default sourcing rules. Here we specify
the sequence in which this attribute will be
sourcing. An an ex, consider
a bill to attribute, we specify the sequence
as
shipto. billto
customer.billto
blanketheader.billto
agreement.billto.
which means if the shipto entity does not have
the billto info,then it goes
to the customer and gets the billto, and if it
does not find there to
it goes to blanketheader and gets it etc.
64).
Explain the terms, Manufacturer, distributor,reseller, retailer?
A Manufacturer manufactures or produces the
goods etc.
A Distributor buys the goods from the
Manufacturer, stocks them and sells them
to the resellers or retailers(although he may
not stock them sometimes).
Reseller(also called Value Added
Resellers,VAR's) will get the goods from a distributor
and sells it to the consumers. Remember they
add value,rather than just selling like
that. For ex; they buy a computer and they can
add a one year ext warranty for that
for a price and then sell it.
Retailer is also a reseller,however they
usually dont add value,they just sell like that.
64a). What
is the difference in buy-stock-sell vs sell-source-ship model?
The traditional model of buy-stock-sell is
distributors will buy goods, stock and sell
them; in this model the lead time for the
order fulfilment is very less.
The new model is sell-source-ship ,where we
take the order and source those orders
from an external supplier (at that point of
time) and then ship, here the lead time
is more,however it results in cost savings.
This is typically the drop ship model.
65). How
does the receiving system recognize the difference between receipt of a regular
PO
versus drop ship PO???? i.e what is that
specific flag that recognizes the difference ?
I believe when an order line is marked as
with source type "External", then it make
an entry into a drop ship sources store(i.e
oe_drop ship sources which stores the
order header and line id info).
And when the receiving system looks for a
PO, it looks in this table if it is a drop
ship PO, and if it is then it does a logical
receipt of the goods.
66). What
is the logical receipt of goods in the system?
The logical receipt means the onhand quantity
does not go up in the inventory. Basically
the system increments and decrement in one
transaction and onhand remains same. This happens
in the case of drop ship PO receipt of goods.
67).How do
you do a drop ship order across operating units i.e you create an drop ship
order in US to ship a product from an
australia supplier to your australia customer?
Basically cross OU/ledger functionality is
available only in R12 and not in 11i.
The only difference is a couple of steps
First, set the receiving or in the sales order
line as cross OU,receiving org.
second, receive the PO in the desitination
OU/ledger and follow the same stepsfrom thereon.
Third, intercompany transactions for this
transfer.
good and detail insight, thank you so much
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteJava Training in Chennai Java Training in Chennai | Core Java Training in Chennai
ReplyDeleteJava Training Institutes
ReplyDeleteJava Training Institutes in Chennai Java Training in Chennai