Professional Documents
Culture Documents
Fulfillment in Oracle Order Management
Fulfillment in Oracle Order Management
Overview
See:
Fulfillment Sets
How it Works
The fulfillment activity is a seeded workflow activity named FULFILL. This activity
is the synchronization point between the lines of a fulfillment set.
There are two activities which are considered fulfillment method activities
(workflow attribute) in seeded Order Management workflows.
For a standard shippable line the fulfillment method activity is the shipping
activity.
For a return line the fulfillment method activity is the receiving activity. You
may define any activity as the fulfillment method activity in a workflow
process.
The fulfillment activity must be between the fulfillment method activity and the
invoice interface activity in the respective workflows.
When a line workflow reaches the fulfillment activity, the activity checks to see if
the fulfillment method activity (for example, shipping or receiving) completed
successfully. If the line completed successfully, the fulfilled quantity for the order
line will be updated with the shipped or received quantity, and the order line
fulfilled flag is set to Yes. The fulfillment process then performs a check to verify
if the line is part of a fulfillment set:
If the line is not part of a fulfillment set, then the order line completes the
Fulfillment activity and continues with the next activity within its order line
workflow process.
o If any lines within the set are not fulfilled, the order line will wait at
the fulfillment activity.
o If all lines within the set are fulfilled, the order line completes the
fulfillment activity for all the lines within the fulfillment set.
Setup
No setup is required to use the fulfillment functionality with the seeded workflows.
If you create your own workflows, include the fulfillment activity before invoicing
in each process. This will provide two benefits
For each workflow process that you define, you will need to check the attributes
of the FULFILL activity. The FULFILLMENT_ACTIVITY attribute must be your
fulfillment method activity, which in the seeded flows is either the shipping activity
or the receiving activity. The COMPLETION_RESULT should be the result with
which the fulfillment method activity completes if it is successful. This allows you
to designate any activity as a fulfillment method activity.
If you have a workflow process with two separate branches, such as a single
workflow process with separate branches for ordered items and returned items,
then you should have one fulfillment activity for each branch which relates to the
fulfillment method activity for that branch.
Limitations
Goal
How can one have Automatic Fulfillment Set to Order Lines in release 11.5.9 and
prior to it?
Solution
Fulfillment Sets
Background
Overview
A Fulfillment set is a group of sales order lines with common attributes which
must be fulfilled together. Any order line which is part of a fulfillment set can not
progress past the Fulfil Activity within it's flow until all lines of the fulfillment set
have completed their respective Fulfill activities.
Order Management utilizes the Fulfill workflow activity to ensure order fulfillment.
Seeded Order Management workflow processes and activities can be used to
provide baseline functionality for sales order, drop ship and return lines. The
functionality is also designed to allow you the flexibility to define other activities
as fulfillment methods so that you can model your unique business processes.
Key Functions
A order or order line can be considered fulfilled based upon many different
events. Within Order Management fulfillment functionality is controlled by the
workflow activity Fulfill.
An order is considered fulfilled when the Fulfill workflow activity has successfully
completed.
Note: All lines within a fulfillment set must have the Fulfill workflow
activity included in its' order line flow.
There are two activities which are considered fulfillment method activities
(workflow item attribute) in the seeded Order Management workflow process. For
a standard shippable line, the fulfillment method activity is the Shipping activity.
For a return line the fulfillment method activity is the Receiving activity.
You may define any activity as the fulfillment method activity in a workflow
process. The fulfillment activity must be prior to the Fulfill workflow activity in
each respective workflow you define.
When a line workflow reaches the fulfillment activity, a call is made to determine
the fulfillment method activity (Shipping or Receiving) completed successfully. If
so, the fulfilled quantity on the line is updated to either the shipped, ordered, or
received quantity, and the fulfilled flag set to Yes. The workflow then checks to
see if the line is part of a fulfillment set.
If the line is not part of a fulfillment set, then it completes the fulfillment
activity and continues with the next activity in the workflow process.
If the line is part of a fulfillment set, it checks to see if the other lines in the
fulfillment set are fulfilled.
o If any lines are not fulfilled, the order line waits at the fulfillment
activity.
o If all the lines are fulfilled it completes the fulfillment activity for all
the lines in the fulfillment set.
You can remove a line from a fulfillment set. However, a line can not be
added to or removed from a fulfillment set if the line is fulfilled.
A line can not be added to a fulfillment set if any of the existing order lines
within the set has been fulfilled.
If there are two fulfillment sets defined for an order which have some lines
common between the sets, none of the lines will progress beyond
fulfillment until all the lines are fulfilled. Example If fulfillment set F1 has
lines 1, 2, and 3, and fulfillment set F2 has lines 3, 4 and 5. Any of the
lines 1,2,3,4 and 5 will not progress beyond fulfillment until all the lines 1,
2, 3, 4 and 5 are fulfilled
If a line is part of a fulfillment set and you have the Fulfill Activity with an
order line's process flow, no lines of the configuration process past the
fulfillment activity until all lines within the fulfillment set have been fulfilled.
You can have all lines of an order invoice at the same time. One way to achieve
this is through Fulfillment Sets. Instead of typing in the Fulfillment Set Name for
each line in the order, you can automatically assign all lines of an order to a
Fulfillment Set. You can control this at the order level as well as use Defaulting
Rules based on Customer, Ship To, Invoice To and Order Transaction Type. The
default at the header populates the value at the line level.
When a line is added to an existing order, that line is populated with the
default Fulfillment Set value unless the status of the existing Fulfillment
Set is Closed. If the status of the existing Fulfillment Set is Closed, then all
new lines added to the existing order will not be assigned to a Fulfillment
Set.
o An error message alerts you that the line cannot be added to the
existing Fulfillment Set because the Fulfillment Set is Closed.
Addition and Removal of Lines From Any Line Set Through Order Import
and Process Order API
Order Import and Process Order API support the removal of a line from a
Fulfillment set(s), and addition and removal at the same time to and from a
Fulfillment set.
You can specify a name for the system generated Fulfillment Set on the header.
The name cascades to the sales order lines. If a name is not specified, the
system populates the sales order lines with the set number.
If you select a Fulfillment set at the header level, order based service lines are
added into the Fulfillment set when the line it is associated with is already part of
the fulfillment set. This will be fulfilled only after the parent line is fulfilled.
User Procedures
Oracle Order Management has enhanced the choice of header level Ship/Arrival
Set functionality. The profile, OM: Assign new set for each line, provides two
alternatives:
Many businesses do not wish to create multiple shipments for a single order. The
default is set to N creating one Ship/Arrival Set per order. As an example, if the
header level choice is Ship, then all successfully scheduled lines, will
automatically go into one Ship Set when created.
It is important for other businesses that a single line ship complete and multiple
shipments are allowed per order. By setting the profile to Y, the system creates a
unique Ship/Arrival Set for each line in an order if the line can be scheduled.
EXPECTED BEHAVIOR
-----------------------
Expect fulfillment sets should be automatically created for both "EXTERNAL"
(drop
ship) and "INTERNAL" order lines, when the transaction type (i.e. order type)
that the order is being placed for is setup for allowing for this.
STEPS
-----------------------
1. Check the "Fulfillment Set" checkbox in the "Shipping" tab of the "(Define)
Transaction Types" form, for the particular transaction type (i.e. order type)
that we want fulfillment sets to be automatically created.
2. Create an order
3. Create an "EXTERNAL" (drop ship) order line for the above order.
4. A Fulfillment set should be automatically created for the order line.
However, it is not.
Symptoms
Cause
The issue is caused by the following setup: Incorrect workflow was being used at
the line level
When the incorrect workflow is used, the non-shippable lines will progress to
invoicing before the other lines in the fulfillment set, even though all lines are in
the fulfillment set. The correct line flow to use in this scenario is the seeded
workflow called "Line Flow - Generic with Wait to Fulfill." This line flow calls
package OE_FULFILL_WF procedure Check_Wait_To_Fulfill_Line.
There are comments from the code:
-- Do not Hold Service and Non Shippable lines part of configurations.
-- Do not hold services lines attached to lines with in the same order
-- Hold services lines attached to lines not in the same order otherwise it will
-- Hold Non Shippable Lines.
Solution
3. Add the seeded workflow: Line Flow - Generic with Wait to Fulfill to the Order
Level
Transaction Type used in the "Assign Line Flows" window.
Fulfillment comes seeded to work with ship line and return receipt. It is
seeded in a deferred and non-deferred version.
With the attribute set to PRICE, only the list price will be refetched at
time of fulfillment. With the attribute set to LINE, the list price and
discounts will be refetched at time of fulfillment.