About the Fulfillment Engine
The Fulfillment Engine automatically finds and allocates (or reserves) the products for a selected order, and creates pick tickets for the order. The engine uses the following information to find a product:
The distances from the source inventory locations to the order address.
The priority of an order. Priority can influence fulfillment relationships. For more information about the Order Priority field, see Defining Relationships Between Inventory Locations (End User).
The types of inventory locations.
The preferred inventory location for the customer. Each account has a default inventory location.
The relationships between inventory locations. The engine uses relationships to determine the next location to query if it does not find a product at a location.
The product information (for example, available substitutes).
The engine can run from the Siebel Field Service user interface, from Siebel Business Process Designer, or in batch mode using a repeat interval. As a batch process, you can initiate fulfillment at regular intervals (for example, twice a day for pending high-priority orders, or once a day for other orders) or according to conditions (for example, immediately for high-priority orders).
The engine uses the information in Siebel Field Service to fulfill an order. For example, the engine uses account information to select the default source inventory location if the order and the order line items have no source inventory location. If necessary, the engine uses the substitutes for a product. If the product is out of stock at the warehouse of first choice, then the engine evaluates the fulfillment relationships between inventory locations to determine another warehouse to fulfill the order. For more information, see Inventory Relationships.
The Fulfillment Engine produces the following information:
Allocated (or reserved) products for the order.
Pick tickets for the products in the order. Employees use pick tickets to pick, pack, and ship the order.
Inventory transactions for product allocation.
The following figure shows the process flow for the Fulfillment Engine.

For each order line item to fulfill, the Fulfillment Engine completes the following steps:
Sets the source as the default source for the line item or the customer site.
Generates a prioritized list of inventory locations by using the distance to the order address, order priority, and warehouse type.
If the prioritized list of inventory locations is not empty, then populates inventory from the list and sets the source as the inventory location.
Allocates the lesser of the quantity available for the product and the pending order quantity.
If the allocated quantity does not equal the pending quantity, then reviews possible substitute products and allocates as appropriate.
If the allocated quantity still does not equal the pending quantity, then sets the source as the next source for the order priority.
If there is a next source, then repeats Step 2 through Step 6. If there is no next source, then starts again at Step 1.
When no line items remain for fulfillment, generates a pick ticket for each selected inventory location.