You are on page 1of 9

Fulfillment in Oracle Order Management

Overview

To fulfill an order line in Oracle Order Management means to satisfy the


requirements for completion. Order Management provides the functionality
required to recognize fulfillment of an order line, and to cause some order lines to
wait until other related order lines have been fulfilled before processing can
continue.
Order Management's fulfillment functionality provides a simple way to
synchronize line workflows for multiple order lines. It allows you to prevent
invoicing of lines within a fulfillment set until all lines are ready for invoicing.
Seeded 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.
Order Management allows you to group lines into a fulfillment set and to
establish a gate activity in your workflow process. Lines in a fulfillment set will
wait until all lines in the set have been fulfilled to proceed through the gate. This
gate is known as the fulfillment activity. The fulfillment feature is primarily
designed to allow the grouping of related lines and to keep any lines in the group
from being invoiced until all lines have been fulfilled. You may find additional
uses for the fulfillment functionality in your business.

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.

If the line is part of a fulfillment set, the fulfillment process performs an


additional check to verify if remaining lines within the set have been
fulfilled:

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

Update the fulfilled quantity for the lines

Enable you to use fulfillment sets.

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

You can have multiple fulfillment sets in a single order. If a line is a


member of two fulfillment sets then all lines from both fulfillment sets must
be fulfilled for any of the lines to complete the fulfillment activity.
If a line workflow process with a notification is in a fulfillment set, and the
notification is rejected, then the other lines will not progress in their flows.
You will have to delete or cancel the rejected line.

For example, assume that an organization is in the telecommunications


environment and some of their order lines are for local cable service.
Some order lines are fulfilled when a technician makes a connection at a
subscriber site. The organization terms making a connection an activity called
Provisioning, and they have a custom system for managing this service.
The organization can define a new workflow activity called Provisioning and
define it as the fulfillment method activity for the workflow process associated
with cable installation lines (order line for install).
The line for installation might be in a fulfillment set with the line for the first
monthly fee and the line for a shippable item, the cable box. When the technician
reports that the connection is complete, the custom system could update the
status of the Provisioning workflow activity. When the line progresses to the
fulfillment activity, the quantity fulfilled is updated with the quantity provisioned.
Remaining lines in the fulfillment set should already be waiting completion of the
fulfillment activity Provisioning. The completion of the fulfillment activity for the
installation would then complete the remaining lines in the fulfillment set, and the
installation, first monthly fee and cable box would all proceed to invoice interface
at the same time.

Goal

How can one have Automatic Fulfillment Set to Order Lines in release 11.5.9 and
prior to it?

Solution

Automatic fulfillment set is introduced from release 11.5.10 onwards.


One can use the defaulting rule setup at header level for the attribute 'Fulfillment
Set' and then select the 'Fulfillment Set' check box at Order type in Transaction
Definition Form to accomplish the desired functionality.
No such provision is available in 11.5.9 or prior releases and can be achieved by
customization only.

Fulfillment Sets
Background

Order Management provides the functionality required to recognize fulfillment of


an order or order line. One of the key features of fulfillment is to ensure order
lines are invoiced together, and not separately.

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.

For additional information on Fulfillment, see Fulfillment in Order Management.

Fulfillment Set Details

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.

Note: Partial fulfillment of a fulfillment set is not supported. If


partial fulfillment of an order line, which is part of a fulfillment
set, takes place, the split line will also be placed in the same
fulfillment set with the original line and the fulfillment set will
not be fulfilled until the newly created line is fulfilled.

You can have multiple fulfillment sets in a single order. If a line is a


member of two fulfillment sets then all lines from both fulfillment sets must
be fulfilled for any of the lines to complete the fulfillment activity.

If a order line workflow process with notification is in a fulfillment set and


the notification is rejected, then other lines within the set will not progress
within their respective flows. Manually delete or cancel the rejected line
unless a re-approval process has been incorporated into the order line
flow; in this case, either re-approve the notification or delete /cancel the
rejected line
To perform Fulfillment Set functions for an order line, see User Procedures for
Order Management Set Functions.

Automatically Assign All Lines Of An Order To One Fulfillment Set

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.

The default Fulfillment Set value can be manually overridden.

Note: Service line added to a fulfillment set are fulfilled once


the parent line is fulfilled.

o Arrival Set: status, Closed.

o Fulfillment Set: status, Closed (after Fulfill activity).

You can define a Transaction Type definition to determine whether the


lines should be added to fulfillment set automatically for a specific
transaction type.

o Lines can be added to multiple Fulfillment Sets

Default Line set (Ship or Arrival) is automatically defaulted for specific


Transaction type.

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.

o Fulfillment Set: status, Closed (after Fulfill activity)


Name Fulfillment Set On The Header

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

On 11.5.10, multiple invoices are generated when OM Fulfillment set entered on


all ATO/PTO order lines
On order header, all customers have a mandatory fulfillment set because a single
invoice is required.
After a first partial shipment, all non-shippable lines are sent to AR.
It seems that Fulfillment activity in line WF is not honored. Expect to be able to
send only one invoice.

The issue has the following business impact:


Too many invoices sent to customer. Expecting to send only one invoice per
order, since all lines are in a fulfillment set

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

To implement the solution, please execute the following steps:

1. Go into the responsibility: Order Management Super User

2. Navigate to Setup > Transaction Types > Define

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.

4. Please retest the issue.

5. If the issue is resolved, please migrate the solution as appropriate to other


environments.
FREQUENTLY ASKED QUESTIONS

1. With what seeded entities is Fulfillment associated?

Fulfillment comes seeded to work with ship line and return receipt. It is
seeded in a deferred and non-deferred version.

2. In the Sales Order form the Fulfillment Set is grayed out.


How do you enter a fulfillment set?

Order Management Responsibility


New Sales Orders
Go to line items tab
Right click on first line, click on sets -> New -> Fulfillment
Enter the name of your fulfillment set.

3. Seeded workflow called Line Flow - Generic, with Repricing at Fulfillment


has an attribute set to PRICE. What does this mean?

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.

You might also like