Search from 700 + Posts

Oct 23, 2011

Oracle Order Management Fulfillment Set

This post is about how to implement fulfillment set in oracle order management.Oracle has offered fulfillment set to group all the lines that we want to fulfill together.

Test Case - lets's say we have sales order with 3 lines and as per business requirement we want to fulfill these lines together.
But there is a possibility

  1. one of the line in the order is already shipped and ready for fulfill.
  2. second line still not shippped and is in status Awaiting Shipping and 
  3. 3rd line got Back-ordered. status. With the above scenario it is very clear that these lines once fulfilled  goes to different Invoices.
Solution - But if we want to fulfilled and invoiced these lines together , this can be done with the help of FULFILMENT SET.If a line is part of fulfillment set , it will not progress beyond the fulfill  activity (Workflow activity - FULFILL_LINE) till all other lines in the same fulfillment set reach to FULFILL_LINE workflow activity. Once  last eligible line in the Set reached FULFILL_LINE activity it will progress all lines of the SET.

How to assign lines to Fulfillment Set (Same Set as Order header Fulfillment Set).
  1. Create an Order and check the Fulfillment Set check box.
  2. Create Order lines and all the lines in the order automatically added to same fulfillment set.
How to assign lines to Fulfillment Set (By System).
  1. Create an Order.
  2. Add Lines to Order.
  3. Select the lines that we want to add in the fulfillment set rt. click and  from MENU select “Sets >> New >> Fulfillment Sets”
  4. Enter a name in Set Name.
  5. To Assign a line to an existing set , Select the Line, rt. click and from MENU select “Sets >> Add to the Set >> Fulfillment Sets , and select the set name from list of values to which you want to assign the Line.If there is only one set exists , then no list of value appears.
Remove Line from Fulfillment Set.
Select line that you want to remove from the set, rt. click and  from MENU select “Sets >> Remove from Set >> Fulfillment Sets .Line will be removed from Set.

Technical Aspects

Fulfillment Set data is captured in the table OE_LINE_SETS.Following query will help to retrieve the data for Set.
SELECT s.set_id,s.set_name
, set_status, s.header_id
, ( select open_flag
from oe_order_lines_all lin
where lin.line_id = ls.line_id) line_open
, line_id
FROM oe_sets s,
oe_line_sets ls,
oe_order_headers_all oh
WHERE s.set_id = ls.set_id
AND s.set_type = 'FULFILLMENT_SET'
AND s.header_id = oh.header_id
AND oh.header_id = l_header_id
In case any of the line that is part of the set got stuck , then complete set will be stuck and system will not allow user to invoice any of the line in this Set. In such case best option is,  try to resolve the issue with the line that has Error/issue or remove the Line from FULFILLMNET set.


  1. Good Post ! If you look at closely ,The fulfillment SET does not ensure the lines to go to the same invoice .I think it is not correct to say if we need the lines to be in same invoice ,Put it in the fullfilment set For example ,Lets say my Invoice numbering method is set to delivery and if Line 1 and Line 2 are picked separately (One of the delivery grouping attribute is different ).The delivery will be different and invoice will be different even though they can be fulfilled togeather .

  2. oh thanks
    some time i was having prob to make quiry.
    but now it is easy.

  3. So if the shipments cross multiple GL periods-what will the invoice date be for the invoice?

    1. data from OM goes to AR after shipping , so say if order created in JAN and user performed shipping say in JULY , that data will interface to AR in JULY and invoice will be created with invoice data in JULY.

  4. Hi
    I want invoicing to group the sales order lines that are different line types. Some are standard lines, some are bill only. Will fullfillent sets help control this. Ship to, Bill to, and Customer PO are the same.