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. If all lines within the set are fulfilled, the order line completes the fulfillment activity for all the lines within the fulfillment set.

o

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. If all the lines are fulfilled it completes the fulfillment activity for all the lines in the fulfillment set.

o

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 o

Arrival Set: status, Closed. 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.

Sign up to vote on this title
UsefulNot useful