Anda di halaman 1dari 59

Oracle Warehouse Management

Rules Engine Examples


An Oracle Topical Essay
October 2002; updated October 2004
Oracle Warehouse Management
Rules Engine Examples

RULES ENGINE EXAMPLES


This document is a tool to assist implementation of Oracle Warehouse Management, by documenting
the seeded rules and strategies and additional rules and strategies that might be helpful for both simple
and complex operational requirements. All types of rules are documented, including picking,
putaway, cost group, label type, and task type assignment rules. In addition, picking and putaway
strategies are documented.
The most difficult part of setting up the Rules Engine is not defining the rules in the application, but
rather, defining the business logic that needs to be modeled. The rules and strategies contained here
can help an implementation team ask the right questions in beginning to define the requirements for
the Rules Engine.
This document assumes familiarity with the Rules Engine and does not go into the specifics of how to
translate the rules and strategies documented here to the system. Please refer to the Oracle Warehouse
Management Guide for assistance understanding the basic user interface. Please refer to the Rules
Engine chapter of the Oracle Warehouse Management Implementation Guide for detailed explanations
of how the Rules Engine functions, including performance and implementation considerations,
customization details, and debugging and trouble shooting assistance.

Seeded Rules & Strategies


No two warehouses are alike. However, some warehouses have very simple needs that can be
modeled by generic rules and strategies that do not refer to any entities defined specifically for that
warehouse. For instance, a FIFO/FEFO rule that ensures stock rotation is used by many warehouses,
and requires no references to warehouse-specific data. Whenever possible, simple generic
requirements have been provided for with seeded rules and strategies. Common picking and putaway
rules and strategies have been seeded in the application.
To use the seeded strategies, no changes need be made, but rather, all that need be done is define the
strategy search order and make the strategy assignments. As these common picking strategies are
often applicable for the entire organization, the strategy search order may only require the Source
Organization for the picking search order, and the Destination Organization for the putaway search
order.
Of course, the putaway search order must also include the transaction type object and an assignment
of a putaway strategy without any restrictions in the rules to the staging transfer transaction type to
indicate that sales order staging transfers are always valid. This assignment must be made for both
Internal and Sales Order Pick if both internal sales orders and external sales orders are used. Details

1
on this requirement can be found in the Rules Engine chapter of the Oracle Warehouse Management
Implementation Guide.
To use the seeded rules, no changes need be made to the rules, but they must be assigned to user-
defined strategies, and in turn, these strategies assigned to objects defined in the strategy search order.
Seeded rules can also be copied, and the copies modified, to provide even greater flexibility.

Additional Examples
Many of the more complex rules that can be used require multiple warehouse-specific restrictions, or
additional flexfield or data setup. These will be documented in this guide, with detailed explanations
of what the rule does, why each object was used, how the rule could behave differently with slightly
different parameters, and what additional setup, if any, is required to make the scenario work.
Almost none of these rules and strategies will be able to be used as-is in any given warehouse.
However, they will describe some complex scenarios that the Rules Engine can be used to model,
many of which at first glance might not appear possible to do without customization. Therefore, these
additional examples should prove very helpful to complex implementations where customization is
being considered.

Performance
All of these rules have been tested functionally, but only some of them have been tested for
performance considerations. Therefore, some of the complex rules may provide the correct results
and may be fast in a demo environment, but may be unusable in a production environment.
Nonetheless, the examples in this document should be helpful in understanding how various complex
requirements can be modeled and the different questions that need to be answered when building
rules.
Whenever performance problems crop up, review the performance section of the Rules Engine chapter
in the WMS Implementation Guide.

Format
Rather than providing screenshots of the rules and strategies, the rules and strategies will be defined in
tabular format.

Rules

Rules will be specified in the following format, where LOG is either AND or OR, and OP is the
connecting operator such as =, <=, IS NULL, or LIKE. The sequence number is not specified, but is
implied by the order of the rows. The first column indicates whether the row is a restriction, a sort
criteria, or in the case of picking rules, a consistency requirement.
Rule Name
Rule Description
Allocation mode (for picking rules)
R LOG ( Object Attribute OP Object Attribute Val )
S Object Attribute Sort order
C Object Attribute

Strategies

Strategies will be specified in the following format, where DTYPE is the date type used for the rule,
as well as the from and to dates.

2
Strategy Name
Strategy Description
Allocation mode (for picking rules)
Rule Name: DTYPE (from - to)
R LOG ( Object Attribute OP Object Attribute Val )
S Object Attribute Sort order
C Object Attribute
Allocation mode (for picking rules)
Rule Name: DTYPE (from - to)
R LOG ( Object Attribute OP Object Attribute Val )
S Object Attribute Sort order
C Object Attribute

3
Seeded Putaway Rules................................................................................................................................ 6
Empty Locator ........................................................................................................................................ 6
Like Material Status Code for Lots ........................................................................................................ 6
Minimize Fragmentation ........................................................................................................................ 6
Prevent lot or item commingling ............................................................................................................ 6
Seeded Default putaway rule.................................................................................................................. 6
Single Location....................................................................................................................................... 7
Seeded Putaway Strategies ......................................................................................................................... 8
Empty locator ......................................................................................................................................... 8
Minimize fragmentation ......................................................................................................................... 8
Same material status code....................................................................................................................... 8
Additional Putaway Rules .......................................................................................................................... 9
Category based putaway......................................................................................................................... 9
Closest empty locator ............................................................................................................................. 9
Dedicated item storage ......................................................................................................................... 10
Dynamic slotting putaway .................................................................................................................... 11
Ensure item dimensions defined........................................................................................................... 13
Ensure locator dimensions large enough .............................................................................................. 14
Freight carrier based staging lane selection.......................................................................................... 15
Job completion locator.......................................................................................................................... 17
License plate number based putaway ................................................................................................... 18
Limited quantities of hazardous items stored inside............................................................................. 19
Lot commingling prevented.................................................................................................................. 21
Maximize fragmentation across subinventories ................................................................................... 22
Minimize splitting putaway across locators.......................................................................................... 23
Rejected material to MRB subinventory .............................................................................................. 25
Stacking pallets within single locator ................................................................................................... 25
Stacking single item across multiple racks ........................................................................................... 26
Supplier based putaway ........................................................................................................................ 28
Transaction unit-of-measure putaway .................................................................................................. 28
Volume of container item ..................................................................................................................... 29
Seeded Picking Rules ............................................................................................................................... 32
30-day range FEFO min pick task ........................................................................................................ 32
Absolute LIFO...................................................................................................................................... 32
Pick Common Stock ............................................................................................................................. 32
Rotate Stock ......................................................................................................................................... 32
Rotate stock pick UOM ........................................................................................................................ 33
Same Planning Group........................................................................................................................... 33
Same Project......................................................................................................................................... 33
Same Project, Same Task ..................................................................................................................... 33
Seeded Default pick rule....................................................................................................................... 33
Serial order ........................................................................................................................................... 33
Single lot, pick UOM ........................................................................................................................... 34
Seeded Picking Strategies......................................................................................................................... 35
30-day range FEFO .............................................................................................................................. 35
Prefer single lot..................................................................................................................................... 35
Project Manufacturing Allocation Preferences..................................................................................... 35
Rotate stock .......................................................................................................................................... 36
Rotate stock, pick UOM ....................................................................................................................... 36
Additional Picking Rules.......................................................................................................................... 37
30-days minimum life remaining.......................................................................................................... 37
Avoid nested license plates................................................................................................................... 37
Best fit lot selection .............................................................................................................................. 38
Clean near-empty locators .................................................................................................................... 39
Customer specific packaging selection................................................................................................. 40

4
Dynamic slotting picking...................................................................................................................... 40
Eliminate locator congestion ................................................................................................................ 42
Integer quantities only .......................................................................................................................... 43
Latest revision ...................................................................................................................................... 43
Lot attribute picking ............................................................................................................................. 45
Prevent weekend shipments of perishable goods.................................................................................. 47
Serial for sales order ............................................................................................................................. 47
Single locator........................................................................................................................................ 48
Task Type Rules ....................................................................................................................................... 49
High reach forklift ................................................................................................................................ 49
Subinventory based task types.............................................................................................................. 49
Weight based task types ....................................................................................................................... 49
Cost Group Rules ..................................................................................................................................... 51
Account alias based assignment ........................................................................................................... 51
Category based cost group assignment................................................................................................. 51
Non-standard job completion ............................................................................................................... 51
Rejected material assigned special cost group...................................................................................... 52
Status based cost group assignment...................................................................................................... 52
Subinventory based cost group assignment .......................................................................................... 53
Label Format Rules .................................................................................................................................. 54
Carrier specific rule .............................................................................................................................. 54
Consolidation required after cartonization ........................................................................................... 54
Customer compliant labels based on LPN reservations........................................................................ 54
Customer compliant shipping label ...................................................................................................... 56
Inspection-based label format selection................................................................................................ 56
Ship-to country specific rule................................................................................................................. 57

5
Seeded Putaway Rules
These rules can be used as-is within a user-defined strategy. No modifications are necessary to make
these rules behave as documented. All seeded putaway rules use the quantity function that calculates
the minimum available capacity by units, volume, and weight, so any combination of locator capacity
that is defined will be taken into consideration.

Empty Locator

This rule puts material away to a locator that is completely empty. All empty locators are considered
equally valid, so an empty locator is chosen at random.
Rule Empty Locator
Description Empty Locator
R Subinventory/Locator On-hand quantity = Constant Number 0
Note that the attribute referred to in this rule, “On-hand quantity”, comes in from the base data and
thus this rule is able to perform very quickly, even on large warehouses.

Like Material Status Code for Lots

This rule puts lot controlled items away to locators or subinventories with the same material status.
Rule Like Material Status Code for Lots
Description Lot item in locator or sub with same status
R Item Lot Status Enabled = Constant Character Y
R AN ( Destination Locator Status Identifier = Lot Status Identifier
D
R OR Destination Status Identifier = Lot Status Identifier )
Subinventory

Minimize Fragmentation

This rule minimizes item fragmentation in the warehouse of a given item by putting that item away to
locators where the most of that item is already on-hand.
Rule Minimize Fragmentation
Description Order by actual item on-hand quantity
S Subinventory/Locator Item on-hand quantity Descending

Prevent lot or item commingling

This rule ensures that different items, or different lots of the same item, are putaway to different
locators. However, if both the item, and if applicable, lot, are the same, then the system attempts to
minimize fragmentation by storing the material in locators where the most of that same item / lot is
currently located.
Rule Prevent lot or item commingling
Description No lot or item commingling, minimize fragmentation
R Destination Locator Number Of Other = Constant Number 0
Lots In The Location
R AN Destination Locator Number Of Other = Constant Number 0
D Items In The
Location
S Subinventory/Locator Item on-hand quantity Descending
in txn UOM

Seeded Default putaway rule

This rule has no restrictions and no sort criteria and is automatically assigned as the default
organization putaway rule when the organization is first enabled for WMS.
Rule Seeded Default putaway rule
Description Putaway rule with no restrictions

6
Single Location

This rule only considers locators where the entire quantity on the putaway can be put away to a single
locator. Of those locators that can store the entire quantity, preference is given to locators with the
most on-hand of that item already to minimize fragmentation.
Rule Single Location
Description Location must have capacity for entire putaway, minimize fragmentation
R Subinventory/Locator Minimum Available >= Actual Transaction Transaction Primary
Capacity by Units, Quantity
Volume and Weight
S Subinventory/Locator Item on-hand quantity Descending
in txn UOM

7
Seeded Putaway Strategies
These strategies can be used as-is within a strategy assignment. No modifications are necessary to
make these strategies behave as documented. As the seeded putaway strategies refer to seeded
putaway rules, the strategies also determine available locator capacity by the minimum of units,
volume, and weight. All seeded strategies allow partial success within the rules.

Empty locator

This strategy references a single seeded putaway rule, Empty Locator. The rule puts material away to
a locator that is completely empty. All empty locators are considered equally valid, so an empty
locator is chosen at random.
Strategy Empty Locator
Description Any empty locator
Rule Empty Locator: Always
R Subinventory/Locator Item on-hand quantity = Constant Number 0
This strategy will perform poorly in large warehouses. A strategy that uses a slightly different rule
that performs much more quickly can be defined using the Empty Flag parameter on the locator.
However, because the rule requires a periodic concurrent program to run to maintain the Empty Flag
parameter, it will be discussed as an additional putaway rule.

Minimize fragmentation

This strategy references a single seeded putaway rule, Minimize fragmentation. This rule minimizes
fragmentation in the warehouse of a given item by putting that item away to locators where the most
of that item is already on-hand.
Strategy Minimize fragmentation
Description Store like items together
Rule Minimize fragmentation: Always
S Subinventory/Locator Item on-hand quantity Descending

Same material status code

This strategy references one seeded putaway rule that puts lot controlled material to a locator or
subinventory with the same material status the lot.
Strategy Same material status code
Description Select sub or loc with same material status as lot
Rule Like material status code for lots: Always
R Item Lot Status Enabled = Constant Character Y
R AN ( Destination Locator Status Identifier = Lot Status Identifier
D
R OR Destination Status Identifier = Lot Status Identifier )
Subinventory

8
Additional Putaway Rules
More complex putaway rules are documented here. Also, variations of the seeded rules that may not
be immediately obvious are also documented. Some of these rules may also require additional setup
beyond simply defining the item, such as locator flexfields or lot contexts. The examples documented
here should be used as guidelines in defining new rules, and can be particularly helpful in modeling
complex requirements.
Because these rules are not seeded, specifics that may differ from warehouse to warehouse can be
indicated in the rule restrictions. For instance, a subinventory name or item category may be used to
make the rule more concrete and easier to understand. Please be sure to use data specific to the
warehouse when defining rules.

Category based putaway

Specific subinventories or locators may be dedicated to storing particular categories of items.


Putaway rules can be built based on the category code that an item is assigned to. For instance, items
assigned to the category code MISC may be stored in the BULK subinventory. The following rule
models this scenario.
Rule Store items with category MISC is subinventory BULK
Description Putaway items with category SEGMENT1 of MISC to subinventory BULK
R Category Segment1 = Constant Character MISC
R AN Destination Subinventory Name = Constant Character BULK
D Subinventory
This rule is basing the putaway location on the category code name only, with the assumption that that
category code is not used in multiple category sets.
Alternatively, strategies can be assigned to particular category / category set combinations if category
is included in the strategy search order. Using the strategy search order, rather than rule restrictions, is
suggested if a category belongs to more than one category set. This will also minimize the number of
rules in a strategy and thus will help improve performance.

Closest empty locator

This rule ensures that the closest empty locator to where the material is already stored is used to store
an additional putaway of the material. This rule helps store items in close proximity to other locations
where that item is stored, without refilling locations that may be almost empty so that a more accurate
FIFO picking can be ensured.
Either Cartesian coordinates or locator picking order can define proximity, though Cartesian
coordinates will ignore walls and other physical barriers when finding the closest locator. Picking
order, however, will sort the locators based on locator picking order only, excluding subinventory
picking order. Therefore, if the item is to be stored in multiple subinventories, and proximity by
picking order needs to be used, the picking order should be defined so that locator picking order is
unique for all locators in an organization, not just for all locators in a subinventory.
For instance, suppose there are two subinventories in your warehouse, PICK1 and PICK2. PICK1
comes before PICK2 in the subinventory picking order. Each subinventory has three locators that are
sequenced as indicated in the table below. Then the following subinventory and locator picking order
should be defined on the subinventory and locator definitions:

Subinventory Sub Locator Locator

9
Picking Picking
Order Order
1.1 1
1.2 2
PICK1 1 1.3 3
2.1 4
2.2 5
PICK2 2 2.3 6
Note that in this definition, PICK1 1.3 is considered equally far away from locator 2.1 in subinventory
PICK1, and from locator 1.2 in subinventory PICK2. If locators in different subinventories should not
be treated as equidistant, then the picking order can be manipulated by leaving gaps. The size of the
gap, in comparison to the range of a picking order within a subinventory, will control at which point
the Rules Engine will consider locators in other subinventories prior to considering distant locators in
the same subinventory. For instance, the locator picking order defined below will ensure that all
locators within PICK1 be filled with an item before moving to subinventory PICK2, and vice versa,
for a particular item.

Sub Locator
Picking Picking
Subinventory Order Locator Order
1.1 1
1.2 2
PICK1 1 1.3 3
2.1 101
2.2 102
PICK2 2 2.3 103
The restriction enforces that the locator is empty.
Rule Closest empty locator by picking order
Description Putaway to closest empty locator by picking order
R Subinventory/Locator On-hand Quantity = Constant Number 0
S Destination Locator Proximity To Locator Ascending
With Item By Picking
Order
Additional restrictions that ensure that the entire load can be put away to that single locator by weight,
volume, units, and even dimensions, may also be helpful and can be added.

Dedicated item storage

Some warehouses may have dedicated item storage for select items due to user training or historical
reasons, or perhaps to capture some type of logic that the Rules Engine cannot easily model. These
dedicated locators are defined using the standard Item Subinventory form available from the
organization item definition.
The Rules Engine will always honor these relationships if the Restrict Subinventories or Restrict
Locators flags are checked on the Inventory tab. However, this may be overly restrictive in that user
directed moves are not allowed and the staging lanes must be explicitly defined for each item that
needs to be shipped. If these flags are left unchecked, then material movement is allowed anywhere in
the warehouse, but a rule that suggests putaway to these specific locators can be built.
Rule Dedicated item storage

10
Description Putaway to locator defined on item subinventory relationships
R Destination Locator Locator Identifier = Item Locator Locator Identifier
This rule can be combined with additional restrictions or sort criteria to minimize fragmentation,
require empty locators, or restrict to a specific subinventory, for instance.

Dynamic slotting putaway

Dynamic slotting selects the best locator for an item based on its current or forecasted usage. Fast
moving items are placed in more quickly accessed locators, such as the lower racks near the staging
lanes, and slower moving items are placed in less easily accessed locators. Several in-between
classifications can also be used so that a warehouse or section of a warehouse can be segmented into
many different types of locators. With a combination of putaway strategies based on this rule, and
picking strategies based on a similar rule, items can be dynamically re-slotted as their classifications
change.
The dynamic slotting rule takes advantage of ABC compiles and ABC assignment groups to
determine the classification of the item, and a descriptive flexfield to determine the classification of
the locator. ABC compiles can be made based on forecasted demand, MRP demand, historical usage,
current on-hand, or several other criterion. An ABC assignment group is defined by associating a
group name with ABC classes. Note that the classes need not necessarily be named A, B, and C; they
could be named FAST, MED, SLOW, or H, M, L, or A, B, C, D, and X, for instance. Numeric
values, such as 1, 2, and 3, can also be used, and can provide some additional flexibility as described
below. Items are then assigned to the classes in the groups based on the ranking the items received in
the compile, as controlled by user-indicated breakpoints. Exceptions to the ranking established by the
compile can also be made.
A locator descriptive flexfield should be given corresponding values, so that, for instance, an A item
will be put in an A locator, and a B item will be put in a B locator. For instance, if A items / locators
are for high demand items, then perhaps the first two racks of each row would be A locators. Or the
bins that are at the end of each aisle, closest to the pickers traveling path, would be A locators, and the
locators in the center of each locator would be assigned a value of C, for slow moving items. An
experienced warehouse manager should perform this assignment because it requires intimate
knowledge of the warehouse layout, problem spots, and sweet spots.
Several different options need to be discussed to get a rule that most accurately matches the
warehouse requirements. The rule developed below will assume that a locator can hold only one item,
but different lots and revisions can be commingled in that locator. As long as an item’s classification
has not changed, additional receipts of that item will be putaway to the same locator to minimize
fragmentation, capacity permitting. If the locator is full, nearby locators will be selected.
However, the item’s classification may change as demand patterns change. These changes would be
reflected by periodically updating the item assignments by re-building the ABC compile. This rule
will put items away based on the current classification only. Picking rules will be used to clean up
items stored incorrectly based on the new classifications. For instance, an item may have been
classified as an A item last month, and thus is stored in several A locators. Due to seasonal demand,
the item may now be a B item, and so any newly received material will be directed to B locators. The
material still residing in the A locators can be allocated for manually created mass moves, or sales
order transfers, but will not automatically be moved when the item assignments are updated. Refer to
the dynamic slotting picking rule to better understand how this incorrectly stored material can be best
allocated.

11
If there are no more locators available with the matching classification for the item, the closest
matching locator based on classification will be used. This can more easily be done if numeric
classifications, such as 1 to 5, have been used. For instance, if there are no more 1 locators available
for items classified as a 1 item, the system will next search for available 2 locators, and so forth. An
item will be kept close to other occurrences of it in the warehouse by putting away based on proximity
to other locators with the same item.
The ABC Assignment Group identifier must be known to build this rule. In the example below, the
identifier used is 23. The identifier can be found in MTL_ABC_ASSIGNMENT_GROUPS_V.
The second and third restrictions together enforce that the locator is either empty, or contains no other
items. The parameter Only Item in Locator is null when the locator is empty or when the locator has
mixed contents, but stores the item identifier when there is exactly one item in that locator.
This flag is updated on every receipt, but is not updated on issue transactions automatically.
Therefore, to keep the parameter up to date in an efficient fashion, the concurrent program Update
Locator Capacity should be run periodically. Note that because of the way the parameter is updated,
this may occasionally cause the rule to exclude locators do not contain other items, but will not allow
the rule to include locators that would violate the rule restriction. The frequency in which the Update
Locator Capacity concurrent program should run depends on how often locators get emptied of items
and the accuracy required in choosing the best locators, weighed against the system resources that are
available.
These two restrictions could be replaced by a single restriction using the parameter Number of Other
Items in Location, produce the same results, and not require that the concurrent program be scheduled
periodically. However, the two restrictions below will make the rule perform several orders of
magnitude faster on a large instance because they refer to database columns, while Number of Other
Items in Location requires an expensive API call.
Rule Putaway items to locators that with same dynamic slotting classification
Description Minimize fragmentation, no item commingling, store items in locators with same ABC classification from group id 23
R Destination Locator ATTRIBUTE1 = Expression Select
abc_class_name from
mtl_abc_classes mac,
mtl_abc_assignments
maa where
maa.abc_class_id =
mac.abc_class_id and
maa.inventory_item_i
d=
base.inventory_item_
id and
maa.assignment_grou
p_id = 23
R AN ( Destination Locator Only Item in Locator = Item Item ID
D
R OR Subinventory/Locator On-hand quantity = Constant Number 0 )
S Subinventory/Locator Item on-hand quantity Descending
S Destination Locator Proximity To Locator Ascending
With Item By Picking
Order
Of course, sort criteria and restrictions can be modified or added to in order to achieve the exact rule
needed for the warehouse, but the bulk of the logic is contained in the first restriction.
The rule above will put away only to locators with the identical ABC classification. If there are no
locators available with the required classification, however, additional rules in a strategy are necessary
to putaway to other locators with similar (but not identical) classifications. The following rule will put

12
away to locators within a range of 1 of the required classification. That is, if the item is classified as
2, this rule will putaway to locators with a classification of 1 or 3. Note that this type of rule requires
that the ABC classifications be consecutive integers; alphanumeric classifications cannot be used.
Additional rules, expanding the search criteria even further, or perhaps putting away to a different
overstock area in the warehouse, can be added to the strategy.
Rule Putaway items to locators with dynamic slotting classification within 1 of required classification
Description Minimize fragmentation, no item commingling, store items in locators with ABC classification from group id 23 within 1
R Destination Locator ATTRIBUTE1 <= Expression Select
(abc_class_name+1)
from mtl_abc_classes
mac,
mtl_abc_assignments
maa where
maa.abc_class_id =
mac.abc_class_id and
maa.inventory_item_i
d=
base.inventory_item_
id and
maa.assignment_grou
p_id = 23
R AN Destination Locator ATTRIBUTE1 >= Expression Select
D (abc_class_name-1)
from mtl_abc_classes
mac,
mtl_abc_assignments
maa where
maa.abc_class_id =
mac.abc_class_id and
maa.inventory_item_i
d=
base.inventory_item_
id and
maa.assignment_grou
p_id = 23
R AN ( Destination Locator Only Item in Locator = Item Item ID
D
R OR Subinventory/Locator On-hand quantity = Constant Number 0 )
S Subinventory/Locator Item on-hand quantity Descending
S Destination Locator Proximity To Locator Ascending
With Item By Picking
Order
Again, this rule would likely be used with some variation of the Dynamic Slotting Picking rule to
ensure that when items are reclassified, the material stored in old classifications is allocated first to
empty out those locators, or perhaps only picked for requisition move orders, but not for sales order
staging.
Note that any locator with a null value for the descriptive flexfield attribute will not be selected for
putaway. If locators with null values are to be selected by a version of this rule, then a restriction that
uses the operator IS NULL must be added.

Ensure item dimensions defined

Oftentimes, an items’ dimensions will not be defined at the same time the item is defined, either
because they are not known with any degree of certainty, or the physical data is not available to the
person performing the initial item definition. However, prior to storage in the warehouse, these
dimensions may need to be captured. A putaway rule can direct material without dimensions to a
specially defined sizing area. A material handler will measure all material in this area, populating the

13
dimensions in the item definition. Dimensioned material can then be putaway from this sizing area to
a properly sized locator.
This rule will suggest putaway of material without a length, width, and height to the subinventory
SIZING.
Rule Ensure item dimensions entered prior to put away to storage
Description Putaway to SIZING if length, width, or height is not populated
R Destination Subinventory Name = Constant Character SIZING
Subinventory
R AN ( Item Length IS
D NUL
L
R OR Item Width IS
NUL
L
R OR Item Height IS )
NUL
L
Additional restrictions can be added to ensure that the dimension unit-of-measure, weight, weight
unit-of-measure, volume, and volume unit-of-measure are all populated as well.

Ensure locator dimensions large enough

Putaway of some items, such as pipes, require locators of specific sizes, beyond verification of the
item weight and volume in comparison to that of the locator. The Rules Engine does not explicitly
check the dimensions of the item in comparison with those of the locator when allocating space for a
putaway. However, these sizing restrictions can be modeled the Rules Engine if necessary.
This rule verifies that the dimensions of the item can fit within the dimensions of the locator.
Rule Locator dimensions must be large enough for item, no rotation, assuming same UOM
Description Restrict putaway to locators large enough by width, height, and length
R Destination Locator Width >= Item Width
R AN Destination Locator Length >= Item Length
D
R AN Destination Locator Height >= Item Height
D
Of course, sort criteria can be added, choosing the smallest locator by width, length, height, or total
volume that is still large enough for the entire load to achieve a best-fit putaway.
Note that no unit-of-measure conversion is performed, so the dimensions of the locator must be in the
same unit-of-measure as that of the item. Also, this does not consider rotating the item. Suppose that
the item can be rotated horizontally, so that the width and length are interchangeable. Perhaps the
item is a large ATM that is sitting on a pallet that can be entered from the front or the side. However,
the item cannot be rotated vertically. Then the following set of restrictions will ensure the dimensions
of the locator are large enough, while still allowing this rotation:
Rule Locator dimensions must be large enough for item, rotating horizontally, assuming same UOM
Description Restrict putaway to locators large enough by width, height, and length, while allowing width and length to be switched
R ( Destination Locator Width >= Item Width
R AN Destination Locator Length >= Item Length )
D
R OR ( Destination Locator Width >= Item Length
R AN Destination Locator Length >= Item Width )
D
R AN Destination Locator Height >= Item Height
D
Of course, the rule can also be defined to allow vertical rotation only, or both vertical and horizontal
rotation, by adding additional clauses. Furthermore, perhaps only the width of the item in comparison

14
to the locator is important; the rule can be simplified by removing the restrictions that are not
necessary or relevant.
If it cannot be assured that the dimensions of the locator and the dimensions of the item are not in the
same unit-of-measure, explicit conversions can be made. The following rule does not attempt to rotate
the item, but checks all three linear dimensions. The last restriction is necessary so that the rule will
compile. Please refer to the Rules Engine chapter of the WMS Implementation Guide for more details
on this requirement.
Rule Locator dimensions must be large enough for item, no rotation
Description Restrict putaway to locators large enough by width, height, and length
R Destination Locator Width >= Expression inv_convert.inv_um_
convert(null, null,
unit_width,
msi.dimension_uom_
code,
base.dimension_uom
_code, null, null)
R AN Destination Locator Length >= Expression inv_convert.inv_um_
D convert(null, null,
unit_length,
msi.dimension_uom_
code,
base.dimension_uom
_code, null, null)
R AN Destination Locator Height >= Expression inv_convert.inv_um_
D convert(null, null,
unit_height,
msi.dimension_uom_
code,
base.dimension_uom
_code, null, null)
R AN Item Item Identifier = Item Item Identifier
D
These types of rule would most typically be used when either only a single dimension is important,
such as length for piping, or when only a single unit of an item can fit in a locator at a time and the
best fitting locator should be selected, such as an ATM. The Rules Engine tracks locator capacity by
total volume, total weight, and total units (or any combination thereof). The Rules Engine does not
cube out the space, however. Therefore, these types of rules may not work well for selecting the best
locator when multiple different sized items are to be stored in the same locator.

Freight carrier based staging lane selection

Sales order picking tasks can be directed to different staging lanes based on the freight carrier /
shipment method on the order line, or based on any number of other order attributes such as customer
name or shipment priority code.
The staging subinventory must be provided in the Shipping Parameters form. However, the staging
lane (or rather, locator within that staging subinventory) need not be specified in that form or during
pick release. If the staging lane is left blank in the Shipping Parameters form and in the Pick Release
rule, and if trip/dock door appointments are not being used to automatically select the correct staging
lane, then the Rules Engine can select any staging lane within the staging subinventory.
Suppose two parcel carriers are used by the warehouse: DHL and UPS, three staging lanes, named
STAGE.DHL, STAGE.UPS, and STAGE.OTHER have been set up, and the second segment of the
locator key flexfield is called Rack. Then the following rule can be used to ensure that sales order
lines get staged in the lane corresponding to the line shipping method code. Lines with different
shipment methods, or without shipment methods, will get staged in STAGE.OTHER.

15
Rule Stage material in lanes DHL, UPS, and OTHER based on sales order line shipping method
Description Sales orders lines with shipping method DHL and UPS go into lanes with Rack named same; others to OTHER lane
R Destination Locator Rack = Sales Order Line Shipping Method
Code
R OR ( Destination Locator Rack = Constant Character OTHER
R AN Sales Order Line Shipping Method <> Constant Character DHL
D Code
R AN Sales Order Line Shipping Method <> Constant Character UPS )
D Code
The exact same logic can be defined using one fewer restrictions taking advantage of the database
operator IN / NOT IN, as follows:
Rule Stage material in lanes DHL, UPS, and OTHER based on sales order line shipping method
Description Sales orders lines with shipping method DHL and UPS go into lanes with Rack named same; others to OTHER lane
R Destination Locator Rack = Sales Order Line Shipping Method
Code
R OR ( Destination Locator Rack = Constant Character OTHER
R AN Sales Order Line Shipping Method NOT Expression ‘DHL’,’UPS’ )
D Code IN
Note that the first restriction requires that the value for Rack in each staging lane correspond exactly
to the Shipping Method Code indicated on the sales order line, and that the Rack segment on the
locator key flexfield be defined as a varchar. Because different groups may be responsible for
defining and maintaining this data, and because relationships with carriers may change over time,
more generic staging lanes can be set up, as in the following example. Suppose that instead of the
three lanes defined above, there are three lanes named STAGE.1 – STAGE.3 that are used for DHL,
UPS, and other shipping methods, respectively. Then the following rule will ensure that sales order
lines get staged in the lane corresponding to the line shipping method code.
Rule Stage material in lanes 1, 2, and 3 based on sales order line shipping method
Description Sales orders lines with shipping method DHL to lane 1, UPS to lane 2, other to lane 3
R ( Destination Locator Rack = Constant Number 1
R AN Sales Order Line Shipping Method = Constant Character DHL )
D Code
R OR ( Destination Locator Rack = Constant Number 2
R AN Sales Order Line Shipping Method = Constant Character UPS )
D Code
R OR ( Destination Locator Rack = Constant Number 3
R AN Sales Order Line Shipping Method <> Constant Character DHL
D Code
R AN Sales Order Line Shipping Method <> Constant Character UPS )
D Code
These rules need not specify the subinventory name, because the staging subinventory name will
always be stamped on the move order by the pick release process prior to the Rules Engine selecting a
staging lane. This means that the subinventory that is indicated on the pick release rule, or on the
Shipping Parameters form if left blank during pick release, must be the subinventory with these
staging lanes; otherwise, sales order lines will backorder because the Rules Engine will be unable to
find a putaway location acceptable to both the pick release process and the rule logic. Similarly, the
locator must not be indicated on the pick release process, either as part of the pick release rule or on
the Shipping Parameters form.
These rules used the shipping method code on the sales order line. The shipping method code might
be indicated on the sales order header instead, or perhaps on both. Variations of the rule can be
defined that honor one or the other, or perhaps check for a shipping method code at the line level first,
and only then check at the header level only if none is provided on the line. For instance, in the
following rule, the shipping method on the header is used only if the shipping method on the line is
null. This rule would be combined with other rules for UPS and the miscellaneous staging lane in a
multi-rule strategy.

16
Rule Stage material in lane 1 if shipping method code is DHL on sales order line or header, using more specific value
Description Stage material in lane 1 if shipping method code is DHL on the sales order line, or if not on line, on header
R Destination Locator Rack = Constant Number 1
R AN ( Sales Order Line Shipping Method = Constant Character DHL
D Code
R OR ( Sales Order Line Shipping Method IS
Code NUL
L
R AN Sales Order Header Shipping Method = Constant Character DHL )
D Code )
These rules could also be broken up into multiple rules within a strategy without any change in
behavior because the different clauses in the rule are mutually exclusive; an order line has only one
shipping method. If one scenario occurs much more frequently than the other, then the Rules Engine
will perform faster if the more common scenario is listed first as a separate rule. Even if the scenarios
occur with roughly the same frequency, or the frequency of the different scenarios is not known, the
rule should still be broken up into multiple rules in a strategy to reduce the complexity of the query
required by the database. For instance, the rule above should be rewritten as a three-rule strategy as
follows:
Strategy Name Stage material in lanes 1, 2, and 3 based on sales order line shipping method
Strategy Description Sales orders lines with shipping method DHL to lane 1, UPS to lane 2, other to lane 3
Rule Name Stage material in lane 1 for DHL (Always)
R Destination Locator Rack = Constant Number 1
R AN Sales Order Line Shipping Method = Constant Character DHL
D Code
Rule Name Stage material in lane 2 for UPS (Always)
R Destination Locator Rack = Constant Number 2
R AN Sales Order Line Shipping Method = Constant Character UPS
D Code
Rule Name Stage material in lane 3 if shipping method code is neither DHL nor UPS (Always)
R Destination Locator Rack = Constant Number 3
R AN Sales Order Line Shipping Method <> Constant Character DHL
D Code
R AN Sales Order Line Shipping Method <> Constant Character UPS
D Code
Other common scenarios that can be modeled with these types of rule might be based on the shipping
priority code, order type, or any of the flexfields, defined on the sales order header or sales order line.
Of course, the above putaway rules, as well as any other putaway rule based on the sales order header
or sales order line will only produce suggestions when the putaway is for a sales order, but not during
putaway during receiving or replenishment putaway.

Job completion locator

With tight integration between Oracle Work in Process and Oracle Warehouse Management,
completions can be performed directly into LPNs and the Rules Engine can be used to determine
where to put the newly completed material away to. Oftentimes, a completion subinventory and
locator is defined on the routing, and the putaway should be directed to this locator first.
The following rule will direct putaway of LPNs from a job to the completion subinventory and locator
defined on that job. Note that although this information is taken from the job, it is defaulted on the job
from the routing when the job is first defined. Therefore, if the operator has altered the completion
subinventory or locator for some jobs for a particular reason, this latest up-to-date data will be used
for the putaway.
Rule Put completed assemblies to completion sub / loc defined on job
Description LPNs created via LPN-based completions are directed to the completion sub / loc on the job, defaulted from routing
R WIP Job Completion Locator = Destination Locator Locator Identifier
Identifier

17
This rule would then typically be assigned to a strategy. The strategy could then be assigned to the
transaction type of WIP Assembly Completion, assuming that transaction type is an object in the
putaway strategy search order. By using this object in the strategy search order, different putaway
strategies could be used for putaway from purchase order receipt, putaway from manufacturing
completion, and putaway for sales order staging transfer.
If a capacity is defined for the locator, or the locator is otherwise not available because it is assigned
to a material status that places it on hold, then the system will not be able to suggest a putaway
location and thus the operator will be unable to put away the LPN, which is still in WIP, to inventory.
To circumvent this problem, the strategy may have a second rule that directs the material to a special
subinventory.
In addition, the Rules Engine provides flexibility beyond simply putting completed LPNs to the
defined completion locator. For instance, if each completion is pallet and requires its own locator, a
rule can be built that can direct completions to empty locators, but only within the subinventory
defined on the routing / job as the completion subinventory. Again, this would typically be used in a
strategy that includes additional rules to determine where to put the LPN if no locators in the expected
subinventory are available.
Rule Put completed assemblies to completion sub / loc defined on job
Description LPNs created via LPN-based completions are directed to the completion sub / loc on the job, defaulted from routing
R WIP Job Completion = Destination Subinventory Name
Subinventory Subinventory
R AN Subinventory/Locator On-hand Quantity = Constant Number 0
D
The second restriction enforces that the locator is empty.

License plate number based putaway

Different pallets may be required to be directed to different areas based on some logic not easily
modeled by the Rules Engine, but which the receiver can accurately capture. Several series of pre-
generated LPNs can be created and labels can be pre-printed. The putaway logic can be based on
attributes of these LPNs, such as LPN prefix, LPN suffix, or LPN volume or weight.
For instance, suppose that some pallets are sealed with shrink-wrap, while other pallets are strapped
and enclosed in a large corrugated cardboard box. Because the wrap is easier to break, the warehouse
may wish to direct the shrink wrapped pallet to a case area or a forward picking area to be broken
down, while the strapped and boxed pallet should be directed to a bulk storage area where it might be
able to be sold without performing any repackaging.
The system has no way to recognize that these different pallets are packed differently because they
may contain the same quantity, be from the same supplier, and be identical in all other aspects.
Therefore, two rolls of LPN labels can be pre-generated via the desktop concurrent request. One roll
will have the suffix B on the license plate number, indicating bulk storage, while the other roll will
have the suffix C to indicate case storage. The receiver, knowing that the label used will control
where the material is directed, will label the pallets with pre-generated label from one of the two rolls
based on the packing configuration.
The following rule will put LPNs with the suffix B to a subinventory named BULK. A similar rule
can be defined for C and CASE.
Rule LPNs with suffix B putaway to BULK
Description LPNs with name like %B are putaway to subinventory BULK
R License Plate License Plate Number LIK Constant Character %B

18
E
R AN Destination Subinventory Name = Constant Character BULK
D Subinventory
These restrictions would probably be combined with additional restrictions or sort criteria that
minimize fragmentation, or perform other optimizations. Similarly, putaway logic can be based on a
combination of the prefix and suffix. Note, however, that because this uses the database operator
LIKE, there is no way to recognize that the suffix B is different from, say, the suffix EB; both suffixes
would match %B. Therefore, make sure that any suffixes or prefixes you use are distinct.

Limited quantities of hazardous items stored inside

Some organizations may have policies that prevent storage of large quantities of hazardous materials
within the warehouse.
For instance, due to safety requirements, no more than 1000 gallons of chlorine can be stored in
various subinventories throughout the warehouse. Any receipts that will drive on-hand over that limit
must be stored outside the warehouse in an overstock subinventory. This requirement is surprisingly
complex, so the rule to model the requirement as stated will be built in stages.
The following rule comes close to modeling the stated requirement.
Rule Store any excess of 1000 of item in subinventory OVERSTOCK
Description If more than 1000 (primary UOM) units of item are in organization, store additional quantity in sub OVERSTOCK
R Destination Quantity On-Hand >= Constant Number 1000
Organization
R AN Destination Subinventory Name = Constant Character OVERSTOCK
D Subinventory
Whenever the organization has more than 1000 on-hand, any additional material will be directed to
the OVERSTOCK subinventory. Note that the quantity on-hand that is used in the calculation is the
current quantity, prior to the suggestion. Therefore, if there are 900 gallons currently on-hand, a
putaway of 200 gallons will be not be directed to OVERSTOCK by this rule. After those additional
200 have been received, the on-hand quantity will be 1100, and any subsequent putaways will be
directed to OVERSTOCK.
Furthermore, as this rule is based on the total on-hand quantity in the warehouse, it includes the
quantity stored outside in OVERSTOCK. Therefore, even if the subinventories inside the warehouse
are emptied, material will continue to be sent to OVERSTOCK so long as the total on-hand in the
warehouse is greater than 1000.
Suppose that, instead of being stored in multiple subinventories within the warehouse, the item can
only be stored in one subinventory, HAZMAT, inside the warehouse, and one subinventory,
OVERSTOCK, outside the warehouse. Then the following putaway strategy will direct to HAZMAT
until a putaway places HAZMAT above 1000 gallons, regardless of the quantity already stored in
OVERSTOCK.
Strategy Direct all additional receipts to OVERSTOCK once HAZMAT has quantity on-hand greater than 1000
Description As soon as HAZMAT has over 1000 units, direct additional material to OVERSTOCK
Rule Direct material to HAZMAT as long as current HAZMAT on-hand is less than 1000: Always
R Destination Quantity On-Hand < Constant Number 1000
Subinventory
R AN Destination Subinventory Name = Constant Character HAZMAT
D Subinventory
Rule Direct material to OVERSTOCK: Always
R Destination Subinventory Name = Constant Character OVERSTOCK
Subinventory
A strategy is required here because there is a strict preference to placing new material to HAZMAT
before OVERSTOCK, so long as HAZMAT has less than 1000 units presently on-hand.

19
A variation of the above rule using a SQL expression can prevent the quantity in the HAZMAT
locator from ever exceeding 1000 gallons, including the suggested quantity. That is, in the example
above, 200 gallons were be directed to HAZMAT when the current on-hand quantity is 900. The
following strategy would direct all 200 to OVERSTOCK because the total on-hand after the
suggestion would exceed the limit of 1000.
Strategy Direct all additional receipts to OVERSTOCK if they would force HAZMAT over 1000 units
Description All receipts that will put HAZMAT above 1000 units directed to OVERSTOCK
Rule Direct material to HAZMAT as long as this putaway will not force HAZMAT above 1000 units: Always
R Destination Quantity On-Hand <= Expression 1000-
Subinventory mptdtv.transaction_q
uantity
R AN Destination Subinventory Name = Constant Character HAZMAT
D Subinventory
Rule Direct material to OVERSTOCK: Always
R Destination Subinventory Name = Constant Character OVERSTOCK
Subinventory
The tables and columns that are available for use within a SQL expression can be understood by
viewing the rule body. While this requires some basic knowledge of the Oracle data model, very
powerful rules can be built using this feature.
By including the quantity of 1000 and the two subinventory names in the rule restrictions, the rule has
been made specific for the chlorine example described above. As the item is not mentioned in the rule
bodies, it is assumed that the rule (or strategy) will be assigned directly to the item. Alternatively, the
rule can be made more generic, perhaps for an entire category of hazardous items, by placing the
preferred subinventory, the quantity limit on that subinventory, and the overstock subinventory in
flexfields on the item definition.
The Quantity On-Hand parameter of the Destination Subinventory and Destination Organization
object return the quantity in the transaction unit-of-measure, rather than the primary unit-of-measure.
This can pose a problem if the receiver receives in, say, drums, rather than gallons. Therefore, the
expression should explicitly convert the quantity of 1000 (assuming it is expressed in gallons) to the
transaction unit-of-measure. Assuming that the unit-of-measure code GAL is gallon, the following
strategy corrects for this difference.
Strategy Direct all additional receipts to OVERSTOCK if they would force HAZMAT over 1000 gallons
Description All receipts that will put HAZMAT above 1000 units directed to OVERSTOCK
Rule Direct material to HAZMAT as long as this putaway will not force HAZMAT above 1000 gallons: Always
R Destination Quantity On-Hand <= Expression inv_convert.inv_um_
Subinventory convert(mptdtv.inven
tory_item_id,null,100
0,'GAL',mptdtv.transa
ction_uom, null,
null)-
mptdtv.transaction_q
uantity
R AN Destination Subinventory Name = Constant Character HAZMAT
D Subinventory
Rule Direct material to OVERSTOCK: Always
R Destination Subinventory Name = Constant Character OVERSTOCK
Subinventory
The original requirement was that any receipt that will drive the on-hand quantity in the
subinventories inside the warehouse over 1000 gallons should be directed outside to OVERSTOCK;
all other receipts can be directed to any other subinventory inside the warehouse. The rule above
limited putaway inside the warehouse to HAZMAT. The following rule loosens this restriction by
calculating the total on-hand in all subinventories, excluding OVERSTOCK, which is outside the four
walls of the warehouse.

20
Strategy Direct all additional receipts to OVERSTOCK if they would force organization on-hand over 1000 excluding OVERSTOCK
Description All receipts that will put total quantity in all inside subinventories above 1000 units directed to OVERSTOCK outside
Rule Direct material to inside sub as long as this putaway will not force total inside quantity above 1000 gallons: Always
R Destination Quantity On-Hand <= Expression inv_convert.inv_um_
Organization convert(mptdtv.inven
tory_item_id, null,
1000, 'GAL',
mptdtv.transaction_u
om, null, null) -
mptdtv.transaction_q
uantity + select
inv_convert.inv_um_
convert(mptdtv.inven
tory_item_id, null,
sum(primary_transact
ion_quantity),
msi.primary_uom_co
de,
mptdtv.transaction_u
om) from
mtl_onhand_quantitie
s_detail where
organization_id =
mptdtv.organization_i
d and
inventory_item_id =
mptdtv.inventory_ite
m_id and
subinventory_code =
'OVERSTOCK'
R AN Destination Subinventory Name <> Constant Character OVERSTOCK
D Subinventory
Rule Direct material to OVERSTOCK: Always
R Destination Subinventory Name = Constant Character OVERSTOCK
Subinventory
All the rules documented in this section only limit the putaway by specifying at most, a particular
subinventory. These rules would likely include additional restrictions or sort criteria to select the best
location. For instance, hazardous material would generally be stored only on the bottom racks, or
fragmentation of items can be limited.
Note that the Rules Engine is only used for transactions that are driven by a move order, so that
miscellaneous receipts and subinventory transfers could still be performed that drive on-hand of the
hazardous item above the acceptable limit. Furthermore, note that any material in the staging
subinventory is included in the organization on-hand calculations. If an organization is already at its
limit for an item, sales order lines may be partially backordered because at most 1000 gallons can be
putaway to all subinventories excluding OVERSTOCK. If appropriate, the staging lane can also be
excluded when the on-hand quantity is summed.

Lot commingling prevented

Different items may be allowed to be stored together, but different lots of the same item may not be
stored together. This might help increase picking accuracy if customer restrictions or other logic is
based on attributes of a lot, and different items are easily distinguishable, but different lots of the same
item are difficult to distinguish.
This restriction in this rule avoids commingling lots in the same locator. The sort criteria ensures that
lot fragmentation is minimized by placing additional receipts of the same lot to the locator where that
lot is already present, assuming sufficient capacity is available.
Rule Lot commingling prevented within in item while minimizing lot fragmentation
Description Different items, but not different lots of same item, can be stored in single locator

21
R Destination Locator Number of Other = Constant Number 0
Lots
S Subinventory/locator Item on-hand quantity Descending

Maximize fragmentation across subinventories

In some warehouses, certain high velocity items may be stored in multiple subinventories, or zones, so
that different operators can pick that item without leaving their assigned zone. For instance, a
seasonal item, in the peak of its demand, may be stored in each of four picking areas, so that four
different operators can access it. This configuration allows for items with very high velocities to be
more readily picked. However, within a zone, the organization may wish to minimize fragmentation,
so that empty locators are not needlessly filled.
The Rules Engine can maximize fragmentation across these zones in one of two ways, depending on if
these zones correspond directly to subinventories.
If the zones correspond directly to subinventories, then a simple rule based on the quantity on-hand in
a subinventory can be used to putaway to subinventories with the smallest on-hand quantity. Within a
subinventory, the material should be stored where on-hand of that item already exists. Suppose four
subinventories, PICK1 – PICK4, store this high velocity material. Then the rule will appear as
follows.
Rule Maximize fragmentation across subinventories PICK1 – PICK4 based on subinventory on-hand quantity
Description Max frag across subs and min frag within subs
R Destination Subinventory Name LIK Constant Character PICK%
Subinventory E
S Destination Quantity On-Hand Ascending
Subinventory
S Subinventory/Locator Item on-hand quantity Descending
If the zones do not correspond to subinventories, the Rules Engine can still model the scenario, but the
setup required is slightly more complex. The Rules Engine can take advantage of a parameter that is
based on the distance of the locator currently being considered to the closest locator with the same
item. When the parameter is used in a sort criteria in ascending sequence, then fragmentation is
minimized. When the parameter is used in a sort criteria in descending sequence, then fragmentation
is maximized. Two parameters are provided in the Rules Engine: one can sort based on proximity to
the same item in picking order, while the other can sort based on proximity to the same item in
Cartesian distance defined by the x, y, and z coordinates indicated on the locator.
This rule requires that the Cartesian coordinates be used. The data that is entered for the x, y, and z
coordinates of the locators will not map to the actual physical location of the locators. Therefore, this
rule cannot be used if any other functionality based on the true locator coordinates is required.
For this example, suppose there is one subinventory in the warehouse where this type of fragmentation
must happen, named PICK. Suppose PICK has locators 1.1 – 4.3, for a total of 12 locators. The first
segment of the locator differentiates the zone, while the second segment is the bin within that zone.
That is, fragmentation should be minimized within 1.1 – 1.3, and within 2.1 – 2.3, and so forth, but
maximized across each of those four groups. Then the x, y, and z coordinates for each of the locators
should be populated as follows:

Locator X Y Z
1.1 1 0 0
1.2 1 0 0
1.3 1 0 0
2.1 2 0 0

22
2.2 2 0 0
2.3 2 0 0
3.1 3 0 0
3.2 3 0 0
3.3 3 0 0
4.1 4 0 0
4.2 4 0 0
4.3 4 0 0
Suppose a rule with the following sort criteria were used:
S Destination Locator Proximity To Locator Descending
With Item By
Coordinates
Suppose an item that is not located anywhere in the warehouse is received and putaway. Because the
item is not yet in any locator, each of the locators are considered equal by the sort criteria, and so
suppose the Rules Engine selects 1.1 first. The item is received again on another purchase order, and
put away. The Rules Engine now selects the furthest locator from where the material is already
stored. Locators 4.1 – 4.3 are equally far away, so suppose material is putaway to 4.1. Similarly, on
subsequent putaways, locators 3.1 and 2.1 may be filled.
With the fifth putaway, however, because there is material in each of the four zones, each of the
twelve locators has a distance of 0 from a locator with the material. The Rules Engine could suggest
any locator, even one that does not already have that item. To minimize fragmentation of items within
a zone, a second sort criteria is necessary, so that the sort criteria of the rule appears as follows:
S Destination Locator Proximity To Locator Descending
With Item By
Coordinates
S Subinventory/Locator Item on-hand quantity Descending
Finally, a restriction that ensures that material is put away only to this subinventory is required, so that
the final version of the rule appears as follows:
Rule Maximize fragmentation across four zones in sub PICK based on Cartesian coordinates
Description Max frag across zones within PICK and min frag within zones
R Destination Subinventory Name = Constant Character PICK
Subinventory
S Destination Locator Proximity To Locator Descending
With Item By
Coordinates
S Subinventory/Locator Item on-hand quantity Descending
Additional refinements to this rule are also possible. For instance, the rule as defined minimizes
fragmentation by putting an item away to locators that are most full, up to each locator’s capacity.
Instead, locators that are most empty can be used to maximize the chance that the entire load can be
put away to a single locator. Or perhaps restrictions that ensure that different items, or different lots
of the same item, are not commingled in a single locator may be important.
This rule would most likely be used in a strategy that is assigned to an item category that defines this
item as a high velocity item. Then, by simply assigning items to certain categories as they are defined,
they can be stored using this special methodology. In addition, date effectivity can be used in
combination with several category assignments, so that seasonal items can be automatically and
systematically rotated in and out of these high velocity picking areas.

Minimize splitting putaway across locators

23
Several elements can be optimized during the putaway process to maximize warehouse efficiency.
Two common requirements are to minimize fragmentation of items across a warehouse so that items
are stored wherever that item is already located up to the maximum capacity of the locator, and to
minimize breaking up a putaway task so that it can be dropped in a single operation and in a single
destination locator, if possible. The former is addressed by seeded rules, while the latter is addressed
here.
There are several ways this can be modeled, depending on whether the capacity on the locator is
defined by units, weight, or volume. To restrict putaway to only locators that have enough available
capacity by units, use the following rule:

Rule Locator must have enough capacity by units for entire load
Description Restrict putaway to locators with sufficient capacity by units for entire putaway
R Subinventory/Locator Available Capacity >= Actual Transaction Transaction Primary
by Units Quantity
Alternatively, a sort criteria can be used so that the largest locators are considered first, in case there is
no single locator with sufficient capacity. Or a combination of restrictions and sort criteria can be
used so that of those locators with sufficient capacity, the locator that best fits the load, in terms of
being the smallest locator that is still large enough, is selected. This rule would appear as follows:
Rule Smallest locator with enough available capacity for entire load by units
Description Restrict putaway to locators with sufficient capacity by units, order by smallest locator by units
R Subinventory/Locator Available Capacity >= Actual Transaction Transaction Primary
by Units Quantity
S Subinventory/Locator Available Capacity Ascending
by Units
Of course, additional restrictions may be warranted to ensure that different items, or lots of the same
item, are not commingled in the same locator. These could be added to the rule.
The two examples above base capacity on the number of units. However, capacity can also be based
on weight or volume, as follows.
Rule Locator must have enough capacity by weight and volume for entire load
Description Restrict putaway to locators with sufficient capacity by weight and volume for entire putaway
R Subinventory/locator Minimum Available >= Actual Transaction Txn Primary Qty
Capacity by Volume
and Weight
Finally, a single restriction rule can be used that bases capacity on weight, volume, and units, as
follows:
Rule Locator must have enough capacity by weight, volume, and units for entire load
Description Restrict putaway to locators with sufficient capacity by weight, volume, and units for entire putaway
R Subinventory/locator Minimum Available >= Actual Transaction Txn Primary Qty
Capacity by Units,
Volume and Weight
As before, these restrictions can be expressed as a sort criteria instead, or as a combination of
restriction and sort criteria to achieve a best fit. They may also be combined with other restrictions to
ensure that different lots or items are not commingled, or that putaways are directed only to particular
subinventories.
The actual transaction object contains information relevant to the transaction at hand. Two attributes
return the quantity of the transaction: transaction primary quantity, and transaction quantity. The
primary quantity attribute gives the transaction quantity in the default (or primary) unit-of-measure
defined for the item on the item master. The quantity attribute gives the transaction quantity in the
unit-of-measure entered at the transaction time. The minimum available capacity attributes, however,
return the available capacity in terms of the primary unit-of-measure of the item.

24
Rejected material to MRB subinventory

Inspection is an optional process during receiving, and is controlled by the receipt routing. WMS
requires that material that fails inspection be split into a different LPN then the material that passes
inspection. Rejected material can then be putaway to different places in the warehouse for further
action.
Rejected material should be directed to a special MRB (material review board) subinventory.
Rule Rejected material to MRB subinventory
Description Direct material that fails receiving inspection to the MRB subinventory
R Actual Transaction Inspection Status = Constant Number 3
R AN Destination Subinventory Name = Constant Character MRB
D Subinventory
Of course, the rest of the putaway rules should be built so that material that is not rejected is not
putaway to the MRB subinventory.
Three values are used for the Inspection Status as follows:

Status Meaning
1 Awaiting inspection
2 Accepted
3 Rejected

The rule can be based on either a value of 2 or 3; a value of 1 is not applicable in that the system will
not allow putaway of an LPN that is still awaiting inspection until that inspection has been completed.
If the item does not require inspection, then the inspection status will be left null. Also, note that this
inspection status is applicable only to the standard inspection process performed via the inspection
routing receipt. If Mobile Quality is used for inspection to collect a quality plan, then different objects
or customer expressions are necessary.

Stacking pallets within single locator

A particular locator may be able to fit several pallets or loads of an item, but can be stacked on top of
other pallets of the item only if those other pallets provide a level surface. That is, only if the pallets
in the locator have not yet been used, or perhaps if the pallets have been used but the top layer of the
pallet provides a flat surface.
For instance, a pallet of sand bags may be stacked so that there are 7 bags per layer on each pallet, and
6 layers in a pallet for a total of 42 bags. Additional pallets can be stacked on top of any pallet, so
long as the top layer of the pallet is a complete layer. That is, as long as there is a multiple of 7 bags
in the locator, another pallet can be placed there as well. Or perhaps new pallets can only be stacked
on top of other full pallets, so that a locator with this item can be used only if there are a multiple of
42 bags in the locator.
The following rule places a pallet of an item into a locator only when that locator contains an even
multiple of the item. The quantity to use as the multiple is defined as a flexfield on the item
definition. This rule ensures that the entire load, based on volume, weight, and unit capacity, can be
put away to this single locator to maximize the operator efficiency. It also ensures that the locator
contains no other items other than that which is being put away. The sort criteria also means that the
load will be put away to empty locators, if necessary.

25
The second and third restrictions together enforce that the locator is either empty, or contains no other
items. The parameter Only Item in Locator is null when the locator is empty or when the locator has
mixed contents, but stores the item identifier when there is exactly one item in that locator.
This flag is updated on every receipt, but is not updated on issue transactions automatically.
Therefore, to keep the parameter up to date in an efficient fashion, the concurrent program Update
Locator Capacity should be run periodically. Note that because of the way the parameter is updated,
this may occasionally cause the rule to exclude locators that do not contain other items, but will not
allow the rule to include locators that would violate the rule restriction. The frequency in which the
Update Locator Capacity concurrent program should run depends on how often locators get emptied
of items and the accuracy required in choosing the best locators, weighed against the system resources
that are available.
These two restrictions could be replaced by a single restriction using the parameter Number of Other
Items in Location to produce the same results, and not require that the concurrent program be
scheduled periodically. However, the two restrictions below will perform several orders of magnitude
faster on a large instance because they refer to database columns, while Number of Other Items in
Location requires an expensive API call.
Rule Must be able to stack pallet on top of existing material in the warehouse
Description Restrict putaway to locators with an even multiple of the item based on an item attribute
R Subinventory/locator Minimum Available >= Actual Transaction Txn Primary Qty
Capacity by Units,
Volume and Weight
R AN ( Destination Locator Only Item in Locator = Item Item ID
D
R OR Subinventory/Locator Quantity on-hand = Constant Number 0 )
R AN Subinventory/locator Item on-hand quantity = Expression inv_convert.inv_um_
D convert(
mptdtv.inventory_ite
m_id, null, floor (
WMS_Parameter_PV
T.GetItemOnHand (
base.ORGANIZATI
ON_ID,
mptdtv.INVENTOR
Y_ITEM_ID,
base.SUBINVENTO
RY_CODE,
base.LOCATOR_ID,
msi.PRIMARY_UO
M_CODE,
msi.PRIMARY_UO
M_CODE ) /
msi.attribute1 ) *
msi.attribute1,
msi.PRIMARY_UO
M_CODE,
mptdtv.transaction_u
om, null, null)
S Subinventory/locator Item on-hand quantity Descending
This rule would typically be used as part of strategy with additional rules that direct the material to
other locators or empty locators if a locator that can be stacked cannot be found.

Stacking single item across multiple racks

Warehouse locations are often defined by a three segment row / rack / bin designation. In some
subinventories, it may be important to stack an item in a single row and bin, but across multiple racks,
so that overstock can be easily found in a vertical “stripe”. For instance, the first time an item is

26
received into a subinventory, it should be placed in the lowest empty rack. The next time it is received
(assuming the first pallet is still on-hand), it should be placed in a rack directly above the first pallet.
Similarly, the third receipt should be directed to the third rack in the some row and bin.
This can be accomplished by using the locator Cartesian coordinates to represent locator proximity.
The x, y, and z coordinates must be defined so that all locators within a single row and bin, but across
multiple racks, should be considered by the system to be in exactly the same physical location. For
instance, suppose this putaway logic is to be used within a single subinventory, PICK. There are three
racks, two aisles, and two bins, for a total of twelve locators, as follows:

Locator X Y Z
1.1.1 1 0 1
1.2.1 1 0 1
1.3.1 1 0 1
2.1.1 2 0 1
2.2.1 2 0 1
2.3.1 2 0 1
1.1.2 1 0 2
1.2.2 1 0 2
1.3.2 1 0 2
2.1.2 2 0 2
2.2.2 2 0 2
2.3.2 2 0 2
Note that the x-coordinate is equal to the row, the z-coordinate is equal to the bin, but the y-coordinate
is always zero. Therefore, all three locators in the first row / bin are a distance of zero between each
other, as calculated by the Rules Engine when Cartesian coordinates are used.
The rule needs restrictions to ensure that only subinventory PICK gets picked up, and only empty
locators are selected. A sort criteria ensures that the racks are filled in ascending order. The
restriction that proximity by Cartesian coordinates equals 0 ensures that material is stored in a single
rack. However, if the material is not yet stored in the warehouse, the parameter Proximity To Locator
With Item By Coordinates cannot calculate a value (it will return a value of 999,999,999).
Additionally, if the item is stored elsewhere in the warehouse, the system will calculate the distance to
that other location, and that value may be neither 0 nor 999,999,999. Therefore, the rule must also
check if the on-hand quantity of the item in the subinventory is 0, and if so, start at the first rack.
Rule Stacking single item across multiple racks in subinventory PICK
Description Putaway item to single row / bin combination but multiple racks
R ( Destination Locator Proximity To Locator = Constant Number 0
With Item By
Coordinates
R OR ( Destination Quantity On-Hand = Constant Number 0
Subinventory
R AN Destination Locator Rack = Constant Number 1 )
D )
R AN Subinventory/Locator On-hand quantity = Constant Number 0
D
R AN Destination Subinventory Name = Constant Character PICK
D Subinventory
S Destination Locator Rack Ascending
Note that this rule takes advantage of nested parentheses. Parentheses can be nested several levels
deep in a rule definition to model complex logic.

27
Note that if an item is not already on-hand in the subinventory, then the first rack will be used to store
the item. Therefore, if all the racks at the first level are full, then this rule will not put any additional
material in that subinventory. However, if the upper racks, but not the first rack, have material in
them, then a new item can be placed in that first rack. Therefore, material should be consumed from
highest rack down to lowest rack in order to ensure that only one item at a time can be placed in a
vertical stripe.
Also, this rule will only allow an item to be placed in a single vertical; once all three racks in a single
row / bin have that item in it, all other locators will fail the restrictions. Therefore, this rule would
typically be part of a multi-rule strategy that designates where additional material should be stocked.
Subsequent rules might be less restrictive on proximity in that subinventory, including proximity as a
sort criteria rather than a restriction.
Variations of this rule can segment subinventories further, so that, for instance, only the upper racks
are used for this type of overstock storage and different items are stored in the lowest racks.
Modifying the way the Cartesian coordinates have been set up can also create other types of striping.

Supplier based putaway

Material from some suppliers may need to be putaway separately, or at least temporarily directed to a
different subinventory than other suppliers’ material due to quality, inspection requirements, or other
business processes. Putaway rules based on suppliers can be built to model this requirement.
Note that this type of requirement can only be modeled during the initial putaway from receiving; as
Oracle does not store the supplier with the on-hand material after it is received into inventory,
subsequent material movements cannot be based on the supplier.
This rule puts material received from supplier Acme Industries to a quality control area, QC STAGE,
where it will wait for additional action.
Rule Material from supplier Acme Industries to QC STAGE
Description Putaway material received from supplier Acme Industries to subinventory QC STAGE
R Supplier Vendor Name = Constant Character Acme Industries
R AN Destination Subinventory Name = Constant Character QC STAGE
D Subinventory
Putaway logic can be based on different attributes of the supplier, as well as attributes of the supplier
site. For instance, perhaps all material received from a particular country must be putaway separately,
or perhaps suppliers in another country use a different pallet type and their material must be re-
palletized in a special packaging area prior to putaway to final storage.

Transaction unit-of-measure putaway

An item may be received in different units-of-measure. The receiver may perform the receipt
transaction indicating eaches, cases, or pallets depending on how the material has been packed
(assuming that conversions to the item’s primary unit-of-measure for all the units-of-measure have
been defined already). The transaction unit-of-measure can determine where the material is put away
from the initial receipt transaction.
Note that once the material is in inventory, the on-hand quantity is always stored in the primary unit-
of-measure of the item, so transaction unit-of-measure based putaway will only work for putaway
from receiving.

28
Suppose a CS unit-of-measure has been set up and defined for an item. CS receipts are to be directed
to the CASE subinventory. Other rules in the strategy may be defined to direct material received in Ea
to the EACH subinventory, or material received in PAL to the BULK subinventory. This rule models
the scenario for CS and CASE:
Rule Direct CS receipts to CASE subinventory for putaway from receipt
Description Direct material to CASE based on transaction UOM of CS
R UOM Transaction UOM = Constant Character CS
Code
R AN Destination Subinventory Name = Constant Character CASE
D Subinventory

Volume of container item

The available volume on the locator is kept current on every transaction with the volume of the items
that reside in that locator, not the volume of the container item. For instance, if a pallet of 20 items,
each sized 1 ft3 were put away to a locator, the available volume in that locator would decrease by 20
ft3. However, the pallet’s volume is not considered in the available capacity of the locator. So if the
footprint of the pallet consumed, say, 30 ft3, there would be a discrepancy between the volume truly
available, and the volume the system believes is available.
If the container items have non-trivial sizes, this can be addressed in one of several ways, all via
custom rule restrictions. Alternate approaches that address this limitation via a custom quantity
function are also possible.
But first, several assumptioms must be defined. The volume that will be considered as the volume of
consumed by the material could be the volume of the items (as is currently the case), the volume of
the container items, or a maximum of the volume of the container item and the contents. The latter,
though the most complicated, may also be the most accurate for two reasons: if a container item is not
assigned to an LPN, then there is no volume to fall back on other than the volume of the contents, and
the volume of the container item may be defined as a container on which you stack items (i.e.: a
wooden pallet) or a container into which you pack items (i.e.: a drum).
Also, in the first approach below, the volume that will be considered is the liquid volume, in that the
space will not be “cubed out”. For instance, a 3x3x3 locator can hold 3 2x2x2 items by liquid volume
(33/23>3), yet only one of those 23 items can fit in there if it is, in fact, a solid item.
The following rule with a custom restriction puts away an LPN to a locator if the volume capacity of
the locator is sufficient for the container item being put away, taking into consideration only the
volumes of the container items already in the locator.
Rule Direct Consider LPN container item volume when putting away
Description Only put away into locator where available volume considering current container items & this container item is sufficient
R License Plate License Plate Number = Expression select
wlpn.license_plate_n
umber from
mtl_system_items
msilpn,
mtl_item_locations
millpn
where
msilpn.inventory_ite
m_id =
wlpn.inventory_item_
id and
msilpn.organization_i
d=
wlpn.organization_id
and

29
decode(mptdtv.type_
code,1,NVL(mptdtv.t
o_locator_id,base.loc
ator_id),2,base.locato
r_id) =
millpn.inventory_loca
tion_id and
mil.max_cubic_area
>
nvl(msilpn.unit_volu
me,0) + (select
nvl(sum(nvl(msiall.u
nit_volume,0)),0)
from
mtl_system_items
msiall,
wms_license_plate_n
umbers wlpnall where
wlpnall.lpn_id in
(select distinct
wlpnall.lpn_id
from
mtl_onhand_quantitie
s_detail moqdall,
wms_license_plate_n
umbers wlpnall where
moqdall.locator_id =
decode(mptdtv.type_
code,1,NVL(mptdtv.t
o_locator_id,base.loc
ator_id),2,base.locato
r_id) and
moqdall.lpn_id =
wlpnall.lpn_id) and
wlpnall.inventory_ite
m_id =
msiall.inventory_item
_id and
wlpnall.organization_
id =
msiall.organization_i
d)
Note that this restriction is incomplete, in that it does not yet handle the following common scenarios,
though it should provide a framework for a complete restriction:
• Does not handle UOM conversions, in that the locator capacity or container item volume may
be stored in different UOMs
• Does not handle if the LPN container item is null, or the container item volume is null or 0,
other than treating it as a 0 volume
• Does not handle pending putaways that are already suggested, or loaded tasks for which a
container item may have been removed but not yet dropped to the destination locator
All these limitations can be addressed by a more complete custom rule restriction.
Alternatively, a much simpler custom rule restriction can be used if the restriction is instead based on
just the number of LPNs in the locator under consideration, which would be reasonable if the locators
(for which the rule applies) are all roughly similar in size, and the container items are similarly
roughly equivalent in size.
If, instead, there are several different LPN container item sizes, with different combinations of each
possible in any given locator among a group of similarly sized locators, a custom user-defined table
can be pre-defined to enumerate all possible combinations of container items that can fit in that

30
locator, and a custom rule restriction – or even a custom PL/SQL function called by such a rule
restriction – can be defined to compare the LPN and locator under consideration with the current
contents of the locator.

31
Seeded Picking Rules
These rules can be used as-is within a user-defined strategy. No modifications are necessary to make
these rules behave as documented.

30-day range FEFO min pick task

This rule attempts to deplete locators that are almost empty, but only selecting lots with less than 30
days of life left before expiration. Because the allocation mode honors the pick unit-of-measure, the
full units-of-measure of a given lot will be allocated first. The restriction on the Shelf Life Control
Code ensures that this rule will only allocate items that are expiration date controlled.
Note that this rule restriction ensures that only lots with at most 30 days of life remaining are
allocated; implicit is the restriction that only lots that have not yet expired should be allocated. The
Rules Engine will never allocate an expired lot, even if other restrictions point to only that lot.
Rule 30-day range FEFO min pick task
Description Lots with less than 30 days life order to deplete locators, use pick UOM
Allocation Mode: No LPN Allocation, Prioritize Pick UOM
R Lot Expiration Date <= Date Current Date +30
R AN Item Shelf Life Control <> Constant Number 1
D
S Subinventory/Locator Item on-hand quantity Ascending

Absolute LIFO

This rule allocates the newest material first to obtain a last-in first-out allocation. Please refer to the
Rules Engine chapter of the WMS Implementation Guide to understand how receipt date of an item in
a locator is determined.
Rule Absolute LIFO
Description Order by descending date received
Allocation Mode: No LPN Allocation
S Stock on-hand Receipt Date Descending

Pick Common Stock

This rule is applicable for project manufacturing organizations only. It will ensure that only material
that is not stored in a project locator, or “common stock”, is allocated.
Rule Pick Common Stock
Description Pick from non project material
Allocation Mode: No LPN Allocation
R Source Locator Project Identifier IS
NUL
L

Rotate Stock

This rule ensures stock rotation by ordering on-hand material first by the expiration date, and then by
the receipt date of that item. Note that if the item is lot controlled but not expiration date controlled,
then the expiration date for all the lots will be null, and thus the second sort criteria will determine the
allocation. If the item is not lot controlled, then the first sort criteria will not even be considered. If
the item is lot expiration date controlled, and if a single lot is stored in multiple locators, then the
second sort criteria will determine which of those locators of a given lot will be allocated first. Please
refer to the Rules Engine chapter of the WMS Implementation Guide to understand how receipt date
of an item in a locator is determined.
Rule Rotate Stock
Description Order by expiration date and earliest date received
Allocation Mode: No LPN Allocation

32
S Lot Expiration Date Ascending
S Stock on-hand Receipt Date Ascending

Rotate stock pick UOM

This rule is identical to the Rotate stock rule, with the exception that the allocation mode is set to
honor the pick unit-of-measure before the sort criteria. Therefore, stock that can be allocated in full
units-of-measure will be allocated even if it expires after (or is older than) other available material.
Please refer to the Rules Engine chapter of the WMS Implementation Guide to understand how receipt
date of an item in a locator is determined.
Rule Rotate stock pick UOM
Description Order by expiration date and earliest date received, pick UOM
Allocation Mode: No LPN Allocation, Prioritize Pick UOM
S Lot Expiration Date Ascending
S Stock on-hand Receipt Date Ascending

Same Planning Group

This rule is applicable for project manufacturing organizations only. It will ensure that only material
that is in a project locator of the same planning group as the planning group on the move order request
is allocated.
Rule Same Planning Group
Description Pick from the Same Planning Group as Order's Project
Allocation Mode: No LPN Allocation
R Source Project Planning Group = Project stock on-hand Planning Group

Same Project

This rule is applicable for project manufacturing organizations only. It will ensure that only material
that is for the same project as that on the move order line is allocated.
Rule Same Project
Description Pick from Same Project as on the Sales Order Line
Allocation Mode: No LPN Allocation
R Source Locator Project Identifier = Source Project Project Identifier

Same Project, Same Task

This rule is applicable for project manufacturing organizations only. It will ensure that only material
that is for the same project and task as that on the move order line is allocated.
Rule Same Project, Same Task
Description Pick from Same Project & Task as Sales Order Line
Allocation Mode: No LPN Allocation, Prioritize Pick UOM
R Source Locator Project Identifier = Source Project Project Identifier
R Source Locator Task Identifier = Source Project Task Identifier

Seeded Default pick rule

This rule has no restrictions and no sort criteria and is automatically assigned as the default
organization picking rule when the organization is first enabled for WMS.
Rule Seeded Default pick rule
Description Pick rule with no restrictions and LPN allocation disabled
Allocation Mode: No LPN Allocation

Serial order

This rule allocates serials in ascending alphabetical sequence. This is particularly helpful to maintain
a strict FIFO order on serials, assuming that the serials were generated in this sequence. The
restriction on the Serial Generation Code ensures that this rule will only allocate items that are serial

33
controlled. Note that for this rule to allocate particular serials, serial allocation must be enabled for
the organization.
Rule Serial order
Description Order by ascending alphabetical order on serials
Allocation Mode: No LPN Allocation
R Item Serial Generation = Constant Number 2
Code
R OR Item Serial Generation = Constant Number 5
Code
S Serial Number Serial Number Ascending

Single lot, pick UOM

This rule ensures that only a single lot is allocated for the entire allocation. If no single lot has enough
quantity available, then no allocation will be made. The allocation mode indicates that pick unit-of-
measure should be honored before sort criteria, so ff all the lots that are available to be allocated, those
that can be allocated in complete units of measure will be allocated first. If there are multiple lots that
can meet the entire allocation, and be allocated honoring pick unit-of-measure, then those that expire
first or have the oldest receipt date will be allocated first. Please refer to the Rules Engine chapter of
the WMS Implementation Guide to understand how receipt date of an item in a locator is determined.
Rule Single lot, pick UOM
Description Consistent lot, FEFO/FIFO pick UOM
Allocation Mode: No LPN Allocation, Prioritize Pick UOM
S Lot Expiration Date Ascending
S Stock on-hand Receipt Date Ascending
C Lot Lot Number

34
Seeded Picking Strategies
These strategies can be used as-is within a strategy assignment. No modifications are necessary to
make these strategies behave as documented. All seeded strategies allow partial success within the
rules.

30-day range FEFO

This strategy uses a single seeded rule that attempts to deplete locators that are almost empty, but only
selecting lots with less than 30 days of life left before expiration. Because the allocation mode honors
the pick unit-of-measure, the full units-of-measure of a given lot will be allocated first. The restriction
on the Shelf Life Control Code ensures that this rule will only allocate items that are expiration date
controlled.
Strategy 30-day range FEFO
Description Lots with less than 30 days life
Rule 30-day range FEFO min pick task: Always
Allocation Mode: No LPN Allocation, Prioritize Pick UOM

R Lot Expiration Date <= Date Current Date +30


R AN Item Shelf Life Control <> Constant Number 1
D
S Subinventory/Locator Item on-hand quantity Ascending

Prefer single lot

This strategy uses two seeded picking rules, both with the allocation mode set to honor pick UOM
above sort criteria. This strategy could be used for customers that prefer, but do not require, that an
order be fulfilled from a single lot. Because pick UOM is enabled for both rules, this will additionally
minimize the number of picks, assuming that material is stored in standard pack sizes across locators.
Note that pick UOM always groups on-hand quantities by locator, revision, and lot before determining
if entire units-of-measure are available to allocate. That means that if an entire UOM is available only
after aggregating the quantity across lots, that quantity will not be considered a full unit. If mixed lots
are common, and the material is stored in an LPN, a more efficient (in terms of warehouse operations)
allocation might result if the allocation mode were set to “Allocate Entire LPN Only” instead of “No
LPN Allocation, Prioritize Pick UOM”.
Strategy Prefer single lot
Description Allocate single lot if possible, multiple lots if necessary, pick UOM
Rule Single lot, pick UOM: Always
Allocation Mode: No LPN Allocation, Prioritize Pick UOM
S Lot Expiration Date Ascending
S Stock on-hand Receipt Date Ascending
C Lot Lot Number
Rule Rotate stock pick UOM: Always
Allocation Mode: No LPN Allocation, Prioritize Pick UOM
S Lot Expiration Date Ascending
S Stock on-hand Receipt Date Ascending

Project Manufacturing Allocation Preferences

This strategy uses five seeded picking rules to model common requirements of a project
manufacturing organization. The strategy is automatically assigned to the organization when an
organization is enabled for both WMS and PJM. Note that this means that a picking strategy search
order, with the source organization as the only object, is also defined when an organization is both
WMS and PJM enabled. The strategy attempts to allocate first the most specific material for a

35
particular project and task, gradually loosening the restrictions, finally allocating any material if
necessary. It behaves as follows:
1. Allocate material from the same project and task
2. Allocate material from the same project
3. Allocate material that is not stocked for any particular project (“Common” stock)
4. Allocate material from the same planning group
5. Allocate any material
The last rules may be too generic for some organizations, but a copy of the strategy can be made, and
then that copy modified by removing or modifying the last rule. The rule is defined as follows.
Strategy Project Manufacturing Allocation Preferences
Description Prefer same task, then project, then planning group, then common, then anything
Rule Same Project, Same Task: Always
Allocation Mode: No LPN Allocation
R Source Locator Project Identifier = Source Project Project Identifier
R Source Locator Task Identifier = Source Project Task Identifier
Rule Same Project: Always
Allocation Mode: No LPN Allocation
R Source Locator Project Identifier = Source Project Project Identifier
Rule Pick Common Stock: Always
Allocation Mode: No LPN Allocation
R Source Locator Project Identifier IS
NUL
L
Rule Same Planning Group: Always
Allocation Mode: No LPN Allocation
R Source Project Planning Group = Project stock on-hand Planning Group
Rule Seeded Default pick rule: Always
Allocation Mode: No LPN Allocation

Rotate stock

This strategy uses a single seeded rule that ensures stock is rotated. It prioritizes stock rotation above
pick unit-of-measure.
Strategy Rotate stock
Description Order by expiration date and earliest date received
Rule Rotate stock: Always
Allocation Mode: No LPN Allocation
S Lot Expiration Date Ascending
S Stock on-hand Receipt Date Ascending

Rotate stock, pick UOM

This strategy uses a single seeded rule that ensures stock is rotated. It prioritizes full units-of-measure
above stock rotation, however, to maximize warehouse efficiency.
Strategy Rotate stock, pick UOM
Description Order by expiration date and earliest date received, pick UOM
Rotate stock pick UOM: Always
Allocation Mode: No LPN Allocation, Prioritize Pick UOM
S Lot Expiration Date Ascending
S Stock on-hand Receipt Date Ascending

36
Additional Picking Rules
More complex picking rules are documented here. Also, variations of the seeded rules that may not be
immediately obvious are also documented. Some of these rules may also require additional setup
beyond simply defining the item, such as locator flexfields or lot contexts. The examples documented
here should be used as guidelines in defining new rules, and can be particularly helpful in modeling
complex requirements.
Because these rules are not seeded, specifics that may differ from warehouse to warehouse can be
indicated in the rule restrictions. For instance, a subinventory name or item category may be used to
make the rule more concrete and easier to understand. Please be sure to use data specific to the
warehouse when defining rules.

30-days minimum life remaining

Some customers may have requirements on material that is expiration date controlled so that only
items with at least 30 days of life remaining can be picked. Note that an implicit restriction encoded
in the Rules Engine is that only lots that have not yet expired will be allocated.
This rule ensures that, for lot controlled material that is expiration date controlled, only lots with at
least 30 days of life remaining will be allocated. The sort criteria allocates the lots that expire earlier
first.
Rule 30-days minimum life remaining, FEFO
Description Allocate only lots with at least 30 days of life remaining in FEFO order
Allocation Mode: No LPN Allocation
R Item Shelf Life Code <> Constant Number 1
R AN Lot Expiration Date > Date Current Date +30
D
S Lot Expiration Date Ascending
Only expiration date controlled items with an expiration date greater than thirty days in the future, or
non-expiration date controlled items, pass the restrictions. Shelf life code definitions can be found in
the Inventory Technical Reference Manual.

Avoid nested license plates

License plates can be nested an arbitrary number of levels deep, and the mobile pages support picking
an innermost LPN that is nested inside other LPNs. However, some warehouses may wish to avoid
allocating LPNs that are nested inside other LPNs; this can be accomplished by two rule restrictions.
The first rule restriction ensures that only innermost LPNs are being considered for allocation. That
is, in a multi-level LPN, the parent LPNs may also contain items; this ensures that those outer LPNs
with items are not considered. Suppose LPN A were nested inside LPN B, but both LPNs had
immediate contents. This restriction forces the Rules Engine to consider only LPN A, thus ensuring
that the LPN being allocated is the innermost LPN. However, this does not mean that the LPN is not
nested inside other LPNs.
The second restriction ensures that the LPN being allocated is not nested inside another LPN. With
this restriction alone, LPN B above would be acceptable, but LPN A would not be allocated. These
two restrictions together ensure that only single level LPNs are allocated by the Rules Engine. Note
that this is different from the allocation mode Allocate Entire LPN Only, because this can still allocate
partial LPNs; it only adds the requirement that those LPNs not be nested.
Rule Avoid allocating nested license plates

37
Description Allocate only innermost LPNs that are not nested
Allocation Mode: Allocate LPN and Loose
R License Plate Nested Level = Constant Number 1
R AN License Plate License Plate = License Plate Parent License Plate
D Identifier Identifier
Note that loose material will not be allocated with this rule because the nested level of loose material
is not 1. Alternatively, this rule could be used with the allocation mode Allocate Entire LPN Only to
best optimize picking efficiency, if LPNs are homogeneous.

Best fit lot selection

In manufacturing environments with a high degree of variability, there may be the requirement to
select the “best” lot among all the lots on-hand so that the entire demand is fulfilled by a single lot, but
yet the smallest lot among all those that can completely fill the demand is selected. For instance, a
manufacturer may have the following needs: allocate fabric dye lots to jobs with the smallest single lot
that meets the entire requested quantity.
This can be modeled with the simple rule as follows:
Rule Allocate smallest possible lot that is big enough
Description Allocate only a single lot using consistency restrictions but select the smallest among them
Allocation Mode: Allocate LPN and Loose
S Stock on-hand Direct ATT/ATR Ascending
Quantity
C Lot Lot Number
The consistency requirement indicates that only allocations that can be made with a single lot number
should be considered, while the sort criteria indicates that among those lots that can meet the
consistency requirement, allocate the smallest ones first.
The sort criteria applies to the stock on-hand of the locator currently under consideration first, so if
you have a lot number split into multiple locations, the sort criteria will not behave quite as expected.
For instance, suppose there were the following quantities on-hand and available:

Lot Loc Qty


A 1 10
A 2 15
B 1 20
For a requested quantity of 18, both lots have sufficient quantity to meet the consistency restriction,
yet lot B is likely the desired lot because it has an available quantity of 20, while lot A has quantity 25.
But because the sort criteria sequences by ascending on-hand among the locator on-hand, lot A in
locator 1, and thus all of lot A, will be considered first.
This problem can be addressed in one of two ways. First, the business processes in place can ensure
that the lot exists in only one locator. Afterall, if that lot should not be broken up in allocation, it may
also be difficult to break it up during moves and transfers. Alternatively, if this is too heavy-handed,
or the controls cannot be easily put in place to make this limitation, another consistency restriction can
be added to the rule as follows:
Rule Allocate smallest possible lot that is big enough
Description Allocate only a single lot using consistency restrictions but select the smallest among them
Allocation Mode: Allocate LPN and Loose
S Stock on-hand Direct ATT/ATR Ascending
Quantity
C Lot Lot Number
C Source Locator Locator Identifier

38
This will consider each lot in each locator distinctly. Thus, lot A / loc 1 has only 10 available, and so
is not large enough for the requested quantity of 18. Similarly, lot A / loc 2 is excluded, and only lot
B, all in loc 1, is allocated.
But this raises another issue. The requested quantity is 18, and the available quantity is 20. As of
11i10, the Rules Engine cannot overallocate, so a quantity of 2 of lot B will be left unallocated and
available. A subsequent allocation might consider this quantity, even though the lot may likely be
unable to be easily split outside the manufacturing floor. Instead, the whole quantity must be
excluded from subsequent allocations. Though there is no easy way to make that remaining quantity
of 2 unavailable, a special rule restriction can instead be used to only consider lots where the entire
quantity of that lot is available to avoid “stealing” from lots that are partially allocated.
Rule Allocate smallest possible lot that is big enough
Description Allocate only a single lot using consistency restrictions but select the smallest among them
Allocation Mode: Allocate LPN and Loose
R Stock on-hand Direct ATT/ATR = Subinventory/Locator Actual Item On-Hand
Quantity / Txn UOM
S Stock on-hand Direct ATT/ATR Ascending
Quantity
C Lot Lot Number
C Source Locator Locator Identifier
The first restriction will exclude any lot where the available quantity of the lot is not equal to the on-
hand quantity of the lot, so that in the time gap during which that 18 is allocated but not yet transacted,
a subsequent allocation will not consider the unallocated quantity of 2 of lot B in locator 1. However,
as soon as the transaction is completed, the on-hand in the locator is updated to 2, so that quantity will
be considered available; this last problem can be avoided by using the overpicking features available
as of 11i10 to pick the entire lot quantity of 20, instead of just the allocated quantity of 18. The excess
quantity of 2 can either be returned after it is cut off in the manufacturing process, or it may just be
wholly consumed by the job.

Clean near-empty locators

After an item has been stocked for a long period, it may tend to be fragmented across the entire
warehouse. Several locators may have full pallets of the item, while other locators may be close to
empty. By using this rule, or a variation of it, the warehouse can quickly eliminate or clean up these
near-empty locators.
However, this means that operators may be given several small picking tasks to accomplish what
could otherwise be done in a single task from a single locator. This rule does almost the exact
opposite of the single locator picking rule. A variation of this rule might be used during slower
periods to maximize storage efficiency, while a variation of the single locator rule might be used
during high velocity periods to maximize operator efficiency.
Rule Clean near-empty locators; locators closest to empty of required item allocated first
Description Allocate from locators that are almost empty of the selected item
Allocation Mode: No LPN Allocation
S Subinventory/Locator Item on-hand quantity Ascending
This locator will allocate from locators that are almost empty of the item being allocated. Note that
the locator may be storing multiple items, however. This does not mean that the locator closest to
being completely emptied will be allocated first, only the locator that is closest to being emptied of the
item currently being allocated. If, instead, locators that are closest to empty of all items should be
allocated first, a slightly different sort criteria should be used:
Rule Clean near-empty locators; locators closest to empty of all items allocated first
Description Allocate from locators that are almost empty of all items

39
Allocation Mode: No LPN Allocation
S Subinventory/Locator On-hand quantity Ascending

Customer specific packaging selection

A particular item may be stored in several different configurations in the warehouse using different
packaging materials. WMS models the packaging material by assigning an item (container item) to
the license plate. The assignment can be systematic as part of a cartonization process, or manual via
directly updating the LPN details. If an item is typically stored in multiple packaging configurations,
the Rules Engine can take advantage of this by allocating the LPN with the packaging that most
closely matches the customers’ requirements.
For instance, there might be three different sizes of container items a particular item is stored in,
BOXL, BOXM, and BOXS. Acme Industries, requires that only container items of type BOXM be
shipped. The following rule will ensure that only full BOXM license plates get allocated for this
customer.
Rule Only BOXM container items will be allocated for Acme Industries
Description Allocate only full LPNs with container item BOXM for Acme Industries
Allocation Mode: Allocate Entire LPN Only
R Customers Customer Name = Constant Character Acme Industries
R AN Container Item Item = Constant Character BOXM
D
The Allocate Entire LPN Only allocation mode is important here, because if an LPN is only partially
allocated to a requirement, then as part of the picking process, the material being picked is unpacked
from that license plate and placed in a new license plate or tote. The LPN which lead to that material
being selected in the first place is thus lost.
Note that this rule might allocate entire LPNs that are nested inside outer LPNs, but that the operator
will still be able to pick these LPNs without repackaging. This rule would likely be part of a larger
strategy that would allocate other container items or loose or partial LPNs so that the customer order
does not get backordered in the absence of a match to the customers requirements. Because the
specific item or item category that requires this packaging is not included in the rule restrictions, the
strategy would likely be assigned to those items or item categories. Of course, manual processes must
be in place to repackage any items that are not picked as required by the customer; this rule simply
allows any pre-existing packaging to be best leveraged for customer requirements.
A similar rule can also be used to select container items specific for the shipping method on the sales
order. The rule could also be based on license plate weight or volume, rather than packaging type, so
that only LPNs under a certain weight limit are picked for a particular customer or shipping method.
Again, the Rules Engine is being used to select from license plates that are already packed; it is not
being used to create the packaging in the warehouse. Also important to note is that the Rules Engine
will not validate that additional system or manual processes after allocation did not change the way
the material is packed; the business processes for staging, consolidation, and shipping activities must
therefore maintain any customer specific packaging.

Dynamic slotting picking

Dynamic slotting selects the best locator for an item based on its current or forecasted usage. Fast
moving items are placed in more quickly accessed locators, such as the lower racks near the staging
lanes, and slower moving items are placed in less easily accessed locators. Several in-between
classifications can also be used so that a warehouse or section of a warehouse can be segmented into
many different types of locators. With a combination of putaway strategies based on this rule, and

40
picking strategies based on a similar rule, items can be dynamically re-slotted as their classifications
change.
The dynamic slotting rule takes advantage of ABC compiles and ABC assignment groups to
determine the classification of the item, and a descriptive flexfield to determine the classification of
the locator. ABC compiles can be made based on forecasted demand, MRP demand, historical usage,
current on-hand, or several other criterion. An ABC assignment group is defined by associating a
group name with ABC classes. Note that the classes need not necessarily be named A, B, and C; they
could be named FAST, MED, SLOW, or H, M, L, or A, B, C, D, and X, for instance. Numeric
values, such as 1, 2, and 3, can also be used, and can provide some additional flexibility as described
below. Items are then assigned to the classes in the groups based on the ranking the items received in
the compile, as controlled by user-indicated breakpoints. Exceptions to the ranking established by the
compile can also be made. A locator descriptive flexfield should be given corresponding values, so
that, for instance, an A item will be put in an A locator, and a B item will be put in a B locator.
Once this initial setup has been performed, putaway rules can be defined that place items into locators
with matching classifications. However, as the classifications change, some items may be left in
locators that are not optimal. The items left in these sub-optimal locators can be allocated first, for
any move order, including sales order staging tasks. Or perhaps to maximize warehouse efficiency,
items in sub-optimal locators should be allocated only for requisition move orders, so that a
warehouse manager can create mass move requests on the Material Workbench to re-slot items, but
they should not be allocated for picking tasks. Finally, perhaps the items in the sub-optimal locators
should be allocated for sales orders, but only if there is no material in the preferred locators.
The following rule will allocate only items that are stored in locators with ABC classifications that
differ from the item’s current classification. The ABC Assignment Group identifier must be known to
build this rule. In the example below, the identifier used is 23. The identifier can be found in
MTL_ABC_ASSIGNMENT_GROUPS_V.
Rule Pick only items stored in incorrect locators based on ABC classifications
Description Pick only items stored in different ABC classifications than that of locator from group id 23
Allocation Mode: No LPN Allocation
R Source Locator ATTRIBUTE1 <> Expression Select
abc_class_name from
mtl_abc_classes mac,
mtl_abc_assignments
maa where
maa.abc_class_id =
mac.abc_class_id and
maa.inventory_item_i
d=
mptdtv.inventory_ite
m_id and
maa.assignment_grou
p_id = 23
By changing the operator in the first restriction to equals (=) from not equals (<>), the rule logic can
be reversed, and only those items stored in locators with matching classifications will be allocated.
Then, with these two rules, strategies that allocate only correctly stored items, only incorrectly stored
items, or both but with a preference given to one or the other, can be built.
An organization might use multiple variations of the strategy, as follows. To pick items for sales
order staging, items stored correctly are preferred, but other material will be allocated if necessary.
For requisition move orders, however, only incorrectly stored material will be allocated, as this will
allow the warehouse to be re-slotted. Of course, this means that mass moves must be created on the

41
desktop for all items that may be potentially slotted incorrectly. Instead, an organization may always
prefer to empty locators with incorrectly slotted material first.
Additional restrictions or sort criteria can be added to these rule, so that locators almost empty will be
picked up first, only locators that have enough material for the entire task will be selected, or to limit
dynamic slotting to particular subinventories.
Note that any locator with a null value for the descriptive flexfield attribute will not be selected for
picking by these rules. If locators with null values are to be selected by a version of this rule, then a
restriction that uses the operator IS NULL must be added.

Eliminate locator congestion

Some locators, due to the equipment necessary to pick or putaway material to access them, may only
be able to accommodate a single task at a time. For instance, in an outdoor yard where delivery trucks
load the items directly to the truck bed from the locator, only one truck can be in front of a locator at a
time.
This rule will avoid allocating from any locator that already has a pending transaction. The rule can
be made less restrictive so that only pending picking tasks (rather than any pending transaction) are
used to exclude locators from consideration. Also, pending tasks for the same order or delivery can
also be ignored, so that, for instance, a sales order that included multiple lines of the same delivery
could be picked from a single locator.
Nonetheless, rules of this type should be used only in very limited situations because as soon as a pick
release (or another process) makes a single allocation from a locator, the locator will not be allocated
from again until that task is pick confirmed. The shorter the time between pick release and pick
confirm, the more closely this rule meets the business requirement of locking down locators actively
used in picking. The longer the time lag until pick confirm, the more restrictive and less useful this
rule becomes. Therefore, this rule could be very useful if sales orders are released individually, as
trucks pull into the yard; combined with order picking pick methodology, this can yield a very
efficient business process.
In addition, this rule will be exceedingly slow for any warehouse that has many records in the table
MTL_MATERIAL_TRANSACTIONS_TEMP, because a full table scan of all pending transactions is
required for each locator that is evaluated.
The following rule allocates only from locators that do not have pending transactions.
Rule Allocate only from locators without pending picking transactions
Description Allocate only from locators that are not in MTL_MATERIAL_TRANSACTIONS_TEMP as LOCATOR_ID
Allocation Mode: No LPN Allocation
R Source Locator Locator Identifier NOT Expression Select locator_id
IN from
mtl_material_transact
ions_temp mmtt
where
mmtt.organization_id
=
base.organization_id
The destination locator of the pending transactions can also be verified by adding another restriction,
so that a locator can be excluded for material allocations if there are any pending picks or putaways to
that locator. Variations of this rule can lock an entire rack of shelving, or perhaps even an entire aisle.
However, it must be emphasized that this rule prevents a locator from being considered for allocation

42
if there are any pending transactions for that locator, not just during when a task is being actively
performed.

Integer quantities only

Sometimes, due to prior order quantities, locators may be left with non-integer quantities. While this
left over “dust” may still have value, for picking efficiency it may be desirable to avoid allocating
non-integer quantities as much as possible. Depending on exactly what is required from the rule, this
may be possible with a custom rule restriction, or this may require a custom rule.
Specifically, the Rules Engine will only come back with a non-integer suggestion if either the
requested quantity were non-integer, or the locator availability were non-integer; the Rules Engine
will not arbitrarily break a pick otherwise. (One other condition that might cause a non-integer pick
allocation is non-integer locator capacity availability in the destination locator).
It may not be easy to address the former condition – that is, the requested quantity must be integer – in
the Rules Engine because, of course, by the time it gets to the Rules Engine, the requested quantity has
already been entered and cannot be changed by the Rules Engine. It is possible to write a custom rule
to truncate the requested quantity, so that an order for 18.8 is treated as a requested quantity of 18, for
instance. Or a custom rule restriction could be written to just simply fully backorder any non-integer
requested quantity, though that may be overly restrictive.
Rather, the custom rule below will address the other potential source of non-integer allocations by
excluding from consideration any locator with a non-integer available quantity. That is, a locator with
quantity of 19.5 available will not be considered by the following rule. Again, this may be overly
restrictive; a customized avaialble quantity function can be used to truncate the available quantity,
rather than to completely exclude locators with non-integer quantities.
Rule Allocate only from locators with an integer quantity
Description Exclude from consideration any locators with a non-integer quantity to maximimize likelihood of integer allocations
Allocation Mode: No LPN Allocation
R Subinventory/Locator Item on-hand Qty = Expression floor(wms_parameter
_pvt.GetItemOnHand
(base.organization_id,
base.inventory_item_
id,base.subinventory_
code,base.locator_id,
msi.primary_uom_co
de,mptdtv.transaction
_uom,base.locator_in
ventory_item_id,base.
location_current_unit
s))
Also, note that this rule restriction excludes locators where the on-hand is non-integer, when instead
what is desired is to exclude locators where the available is non-integer. This difference can be
addressed by modifying the custom expression so that it references available quantity instead of on-
hand, but if all allocations are done using this rule (and no non-integer reservations are made), then
checking integrality of available vs. on-hand is identical.

Latest revision

A warehouse may have inventory of several different revisions of an item. Though typically, different
revisions are interchangeable because they have the same form, fit, and function, some customers may
demand that only the latest revision be shipped to them. This can also be used for component picking
for manufacturing to ensure that only the current revision is used in particular jobs.

43
While numeric (1, 2, 3, …), alpha (A, B, C, …) or alphanumeric (A1, A2, A3, …) revision codes can
be used to define the different revisions in an organization, Oracle requires that revisions be numbered
in strictly ascending sequence. For instance, if both revision B and C are defined for an item, than C
must have been effective after B. The rule relies on this logic by comparing the revision on the
potential allocations to the maximum implemented revision defined for the item. Of course, an
additional restriction has been added to ensure that this rule only is applied to items that are revision
controlled.
Rule Allocate only latest revision
Description Only the latest revision of a revision controlled item will be allocated
Allocation Mode: No LPN Allocation
R Item Revision Control = Constant number 2
Code
R AN Revision Revision Code = Expression Select
D max(mirexp.revision)
from
mtl_item_revisions
mirexp where
mirexp.organization_i
d=
base.ORGANIZATI
ON_ID and
mirexp.inventory_ite
m_id =
base.INVENTORY_I
TEM_ID and
mirexp.effectivity_da
te <= sysdate
Rules based on the effective date of the revision can also be defined so that, for instance, only
revisions that were first effective within the last thirty days are allocated. If many design changes are
implemented resulting in many revisions, a warehouse may want to try to clean out recent revisions
but avoid shipping particularly old material to a customer.
Rule Allocate only revisions that were first effective within the last thirty days
Description Only allocate revisions with an effectivity date within thirty days of the present date
Allocation Mode: No LPN Allocation
R Item Revision Control = Constant number 2
Code
R AN Revision Effective Date > Date Current Date -30
D
R AN Revision Effective Date <= Date Current Date
D
Note that this means that if the current revision was made first effective greater than thirty days ago, it
will not be allocated. Therefore, it would more typically be combined with the rule above, as follows:
Rule Allocate the current revision or revisions that were first effective within the last thirty days
Description Allocate the current revision or revisions with an effectivity date within thirty days of the present date
Allocation Mode: No LPN Allocation
R Item Revision Control = Constant number 2
Code
R AN ( Revision Effective Date > Date Current Date -30
D (
R AN Revision Effective Date < Date Current Date )
D
R OR Revision Revision Code = Expression Select )
max(mirexp.revision)
from
mtl_item_revisions
mirexp where
mirexp.organization_i
d=
base.ORGANIZATI
ON_ID and
mirexp.inventory_ite

44
m_id =
base.INVENTORY_I
TEM_ID and
mirexp.effectivity_da
te <= sysdate

Lot attribute picking

Material allocation by lot attribute is a powerful feature of the Rules Engine. The lot attributes stored
in each column depend on the context mapping of the item or item category. There are two
approaches to ensure that the rules will not return unexpected results for items with different context
mapping, which can be used together or separately.
First, strategies specific to a particular context mapping can be assigned only to those items or item
categories with that context mapping. Second, strategies with many layers of rules, or rules with
many different clauses, each rule or clause specific to a context mapping, can be used. The first
approach is preferred because the Rules Engine can perform faster on a deep strategy search order
than a deep strategy.
However, a restriction to ensure that the proper context is used can be embedded in the rule. This is
particularly helpful because some items within an item category may be assigned to different contexts.
By including the lot context in the rule definition, unexpected results are prevented.
Suppose the context called SEMICON used two lot attributes as follows:
• Character Attribute1: fab site
• Character Attribute2: country of origin
A customer, Acme Industries, has placed restrictions on fab site and country of origin as follows. This
customer will not accept lots manufactured at fab site FST, and the customer requires that the country
of origin be USA, PRC, or THA. Then the complete rule that enforces this restriction is as follows,
assuming that LPN allocation and pick UOM is not enabled:
Rule Acme SEMICON rule excluding FST and including USA, PRC, THA
Description Allocate only lots where fab site not FST and country of origin is USA, PRC, or THA
Allocation Mode: No LPN Allocation
R Lot Character Attribute1 <> Constant Character FST
R AN ( Lot Character Attribute2 = Constant Character USA
D
R OR Lot Character Attribute2 = Constant Character PRC
R OR Lot Character Attribute2 = Constant Character THA )
R AN Lot Context Name = Constant Character SEMICON
D
Alternatively, rather than maintaining the rules directly, value sets can be defined for each customer.
For instance, two value sets can be defined for this customer, say, Acme Valid CoO for SEMICON,
and Acme Valid Fab for SEMICON. The first value set would contain USA, PRC, and THA, while
the second value set would contain all fab sites other than FST. Then the following, more easily
maintained, rule can be built. Specifically, every change in the customers’ requirements does not
require the rule to be unassigned from the strategy, disabled, modified, re-enabled, and then
reassigned; changes can be enacted simply by modifying the value set.
Rule Customer SEMICON rule including approved country of origin and fab sites
Description Allocate only lots where fab site and country of origin in pre-defined value sets
Allocation Mode: No LPN Allocation
R Lot Character Attribute1 IN Value set Acme Valid Fab for
SEMICON
R AN Lot Character Attribute1 IN Value set Acme Valid CoO for
D SEMICON
R AN Lot Context Name = Constant Character SEMICON

45
D
There are several additional advantages of using Value Sets beyond simplifying rule setup. Each
value in a value set can be easily enabled and disabled with a single flag, and can also have an
independent start and end date. This allows a customer to indicate to customer service how their
preferences will change over time. For instance, due to pending legislation, Acme expects to be able
to use semiconductors from Taiwan, but only beginning in January of the following year. By using
rules based on value sets, these requirements can be easily modeled.
The allocation mode Allocate Entire LPN Only might be particularly useful in rules of this type,
particularly if a single LPN stores multiple lots with different attributes. In this way, the system will
create tasks that best leverage the way the material is already stored. Furthermore, an organization
may have logic as follows to make sure as much material as possible is allocated for a customer.
• First, allocate entire LPNs that match all the lot restrictions
• If necessary, allocate loose material from a separate loose / broken case subinventory
• If requirement still not completely fulfilled, break open a case to allocate material. A manual
process should be in place to move this broken case to the loose / broken case subinventory
from the full case subinventory.
Assuming the value sets above have been defined, and subinventories named CASE and EACH, that
logic can be built by a three-rule strategy as follows. Note the different allocation modes for each of
the three rules.
Strategy Honoring customer restrictions for SEMICON, allocate full cases, then loose, and finally break a case if necessary
Description Customer SEMICON rule including on approved CoO and fab sites, allocating full cases, loose, and break case
Rule Allocate only full LPNs where fab site and country of origin on lot in pre-defined value sets from CASE
Allocation Mode: Allocate Entire LPN
R Lot Character Attribute1 IN Value set Acme Valid Fab for
SEMICON
R AN Lot Character Attribute1 IN Value set Acme Valid CoO for
D SEMICON
R AN Lot Context Name = Constant Character SEMICON
D
R AN Source Subinventory Subinventory Name = Constant Character CASE
D
Rule Allocate only full LPNs where fab site and country of origin on lot in pre-defined value sets from CASE
Allocation Mode: No LPN Allocation
R Lot Character Attribute1 IN Value set Acme Valid Fab for
SEMICON
R AN Lot Character Attribute1 IN Value set Acme Valid CoO for
D SEMICON
R AN Lot Context Name = Constant Character SEMICON
D
R AN Source Subinventory Subinventory Name = Constant Character EACH
D
Rule Allocate only full LPNs where fab site and country of origin on lot in pre-defined value sets from CASE
Allocation Mode: Allocate LPN or Loose
R Lot Character Attribute1 IN Value set Acme Valid Fab for
SEMICON
R AN Lot Character Attribute1 IN Value set Acme Valid CoO for
D SEMICON
R AN Lot Context Name = Constant Character SEMICON
D
R AN Source Subinventory Subinventory Name = Constant Character CASE
D
Note the maintenance advantage of using value sets for setting up the allocation rules for this
customer. Even though three separate rules are required in order to model Acme’s requirements (and
the warehouse business processes), if the customers requirements change, only the value sets need to
be updated.

46
Prevent weekend shipments of perishable goods

Some goods require refrigerated or other special storage and may perish very quickly in the absence of
this storage. An organization may not wish to ship perishable goods over the weekend because they
know that the goods will just sit on the dock of the receiving organization without getting the proper
handling and storage.
This requirement can be handled by using effective dates within the Rules Engine to backorder the
applicable sales order lines whenever they are pick released in that time window. Note that this will
not prevent tasks from being released on, say, Friday from being performed and shipped on Saturday,
only that new tasks will not be created during the weekend.
The following strategy will not allocate any items in this category on the weekend. During the rest of
the week, the material will be allocated in a FIFO basis, based on the receipt date. This strategy can
then be assigned to the applicable category or item.
Strategy Do not allocate material during the weekend
Strategy Allocate FIFO for Monday – Friday, but do not allocate any material on the weekend
Rule Allocate FIFO: Day (Monday - Friday)
S Stock on-hand Receipt Date Ascending
Because there is no rule in the strategy that is applicable during the weekend, this strategy will not
allocate any material during the weekend. Recall that, once a matching strategy is found, the Rules
Engine never attempts to find another strategy, even if the strategy has no currently effective rules.
Also, note that if this strategy is assigned to an item category, then that category will not be able to be
allocated for any move order, including replenishment or put away, during the weekend. The rule can
be made more restrictive by transaction type by including additional restrictions in the body of the
rule.

Serial for sales order

Particular serial numbers may be required for some sales orders. The Rules Engine, combined with
serial attributes and serial allocation, can be used to ensure that specific serial numbers are picked up
for those sales orders.
For instance, when serialized items are initially received, the receiver knows which sales order the
item will be shipped for. A numeric serial attribute, for example named Order Number, can be
defined and assigned to the item or item category of these serial items. For the example rule, Order
Number is defined as part of the ORDER serial context. Then, whenever a new serial is received, the
sales order number can be entered on the mobile device. Alternatively, the serial number can be
entered on the desktop at some point after the item is received.
For the system to allocate a particular serial number, the organization parameter Allocate Serial
Numbers must be enabled. If this parameter is not enabled, the system will direct the operator to the
correct location, but will not indicate a specific serial to the operator.
Rule Serial attribute Order Number equal to sales order number
Description Allocate serials where the order number attribute on the serial number matches the sales order number
Allocation Mode: No LPN Allocation
R Serial Number Number Attribute1 = Sales Order Header Order Number
R AN Serial Number Context Name = Constant Character ORDER
D
R AN Item Serial Generation IN Expression 2, 5
D Code

47
Note that the context name is included in the rule restrictions to ensure that this rule is only used to
allocate serials where the column identified by Number Attribute1 corresponds to an Order Number.
Restrictions ensuring that this rule is applicable only for serialized items have also been included.
While the rule as documented does not allocate to the license plate level, if these serial numbers are
packed in LPNs, the picking process will be greatly simplified by enabling LPN allocation; this will
display to the operator the specific LPN in which the allocated serial resides, rather than requiring the
operator to search all LPNs in the suggested locator or rely on list of values on the mobile Pick Load
page.
Depending on the way in which serials should be set aside for sales orders, this rule might be one of
several in a strategy. A subsequent rule may indicate that if a serial matching the sales order number
cannot be found, then a serial number not set aside for any sales order (null attribute value) should be
used. Or perhaps the absence of a serial matching the sales order means that the sales order line
should be backordered.

Single locator

For warehouse efficiency, a warehouse manager may want all material for a requirement to be
fulfilled from a single locator. This means that a single operator can fulfill the move order in a single
task. Note that multiple revisions are always split into multiple tasks, even if from the same locator.
This rule does almost the exact opposite of the rule that cleans near-empty locators. A variation of
this rule might be used during high velocity periods to maximize operator efficiency, while a variation
of the “pick to clean” rule might be used during slower periods to maximize storage efficiency.
Rule Single locator allocation
Description Allocate only from a locator where the entire allocation can be fulfilled
Allocation Mode: No LPN Allocation
C Source Locator Locator Identifier
This rule would likely be followed by additional rules that would loosen the requirement on single
locator, so that move order lines would be allocated even if a single locator cannot fulfill the
allocation. Also, additional restrictions or sort criteria would also likely be part of the rule. For
instance, a sort criteria that sorted by the smallest quantity on-hand in a locator might be helpful,
essentially turning this rule into a “best fit” rule, as follows:
Rule Best fitting single locator allocation
Description Allocate only from a locator where the entire allocation can be fulfilled
Allocation Mode: No LPN Allocation
S Subinventory/Locator Item on-hand quantity Ascending
C Source Locator Locator Identifier

In order to ensure a single task, the allocation mode be set to No LPN Allocation, because otherwise,
if multiple LPNs are allocated, multiple tasks will be created. Alternatively, LPN allocation could be
enabled with the allocation mode Allocate LPN and Loose, if desired. Note that the allocation mode
Allocate Entire LPN Only should not be used with consistency restrictions, except in very limited
situations, because the likelihood that the entire allocation will be fulfilled (which is required by a
consistency requirement) by the match of entire LPNs that the system finds is small, so the allocation
would likely be backordered.

48
Task Type Rules
Task type rules are not seeded because the return value is not known and logic required for task type
rules is typically simpler, but more warehouse specific than that required for picking or putaway rules.
The examples documented here should be used as guidelines in defining new rules, and can be
particularly helpful in modeling any complex requirements.
Because these rules are not seeded, specifics that may differ from warehouse to warehouse can be
indicated in the rule restrictions. For instance, a subinventory name or item category may be used to
make the rule more concrete and easier to understand. Also, the task type (return value) will not be
indicated on any of these rules because those are always implementation specific. Please be sure to
use data specific to the warehouse when defining rules.

High reach forklift

Special equipment may be required to access the top racks in a warehouse. For instance, if a
warehouse has five levels of racking in its warehouse, the following rule ensures that material
movements that access the top two racks (racks 4 and 5) get assigned to a special task type.
Rule Picks from top two racks require high reach forklift
Description Picks from racks 4 and 5 require high reach forklift with task type XXXX
R Source Locator Rack >= Constant Number 4
R OR Destination Locator Rack >= Constant Number 4
This rule definition assumes that Rack has been defined as one of the segments on the locator key
flexfield, and thus is available in the list of values as a parameter.

Subinventory based task types

Task types may be assigned based on the subinventory from which the material is allocated. For
instance, all picks from the bulk storage area require a task type that has a forklift and an operator
qualified to use that forklift. The following rule models this basic requirement, for subinventory
BULK.
Rule Picks from BULK subinventory get task type XXXX
Description All picks from subinventory BULK assigned to task type XXXX
R Source Subinventory Subinventory Name = Constant Character BULK

Weight based task types

Different material handling equipment, and thus different task types, may be required based on the
weight of a particular task. Standard functionality of the Oracle WMS will split tasks based on the
weight capacity of the task type in comparison to the weight of the total task. However, this splitting
process is performed after the task type is assigned. Instead, the task type may be assigned based on
the weight of the task (prior to splitting).
For instance, suppose a particular type of forklift has a capacity of 3000 pounds, while another
forklift, which requires special training and thus different operators as well, has a capacity of 6000
pounds. The following rule will ensure that any task greater than 3000 pounds, but less than 6000
pounds, gets assigned to a particular task type.
Rule Tasks between 3000 and 6000 pounds get task type XXXX
Description Tasks weighing more than 3000 pounds and less than 6000 pounds get task type XXXX
R Warehouse Task Transaction Quantity > Expression inv_convert.inv_um_
convert(msi.inventory
_item_id,null,1,msi.pr
imary_uom_code,mm
tt.transaction_uom,nu

49
ll,null)*3000/inv_con
vert.inv_um_convert(
msi.inventory_item_i
d,null,msi.unit_weigh
t,msi.weight_uom_co
de,'Lbs',null,null)
R AN Warehouse Task Transaction Quantity <= Expression inv_convert.inv_um_
D convert(msi.inventory
_item_id,null,1,msi.pr
imary_uom_code,mm
tt.transaction_uom,nu
ll,null)*6000/inv_con
vert.inv_um_convert(
msi.inventory_item_i
d,null,msi.unit_weigh
t,msi.weight_uom_co
de,'Lbs',null,null)
R AN Item Item Identifier = Item Item Identifier
D
The expression is necessary to perform two unit-of-measure conversions. The first conversion is
between the item weight and the equipment capacity. For instance, the item weight might be defined
as 30 kilograms, which would then be converted to pounds for comparison with the equipment
capacity. The second conversion is between the transaction quantity and the primary quantity, as the
task may be in, say, dozens, though the primary unit-of-measure is eaches. The third restriction is
necessary so that the rule will compile. Please refer to the Rules Engine chapter of the WMS
Implementation Guide for more details on this requirement.

50
Cost Group Rules
Cost group rules are not seeded because the return value is not known and logic required for cost
group rules is typically simpler, but more warehouse specific than that required for picking or putaway
rules. The examples documented here should be used as guidelines in defining new rules, and can be
particularly helpful in modeling any complex requirements.
Because these rules are not seeded, specifics that may differ from warehouse to warehouse can be
indicated in the rule restrictions. For instance, a subinventory name or item category may be used to
make the rule more concrete and easier to understand. Also, the cost group (return value) will not be
indicated on any of these rules because those are always implementation specific. Please be sure to
use data specific to the warehouse when defining rules.

Account alias based assignment

The account alias on alias receipt transactions can determine the cost group to assign. The account
alias can be defaulted on the mobile device using form function parameters. Furthermore, by defining
different application menus and form names for different operators, different account aliases can be
made available to different roles. For instance, one operator might have access to a form to perform
only receipts from engineering, while another operator may have access to perform only receipts for
another purpose.
Different cost groups can be automatically assigned to these transactions based on the account alias
that is indicated on the transaction. In the following rule, receipts from account alias ENGR are
assigned to a particular cost group. Note that as the account alias is a flexfield, the cost group
assignment logic can be based on any segment in the structure.
Rule Account alias ENGR receipts get cost group XXXX
Description Assign cost group XXXX to items received using account alias ENGR
R Account Alias Segment1 = Constant Character ENGR

Category based cost group assignment

Category based cost group assignment is one of the most frequently used way to assign cost groups.
For instance, components that will be used in manufacturing can be assigned to a different cost group
than finished goods inventory. This type of rule allows a different cost group to be assigned based on
the category and category set an item is assigned.
Suppose a particular cost group is to be assigned when the category MISC within the category set Item
Type is assigned to an item.
Rule Items in category MISC within category set Item Type get cost group XXXX
Description Assign cost group XXXX to items in category set Item Type / category code MISC
R Category Segment1 = Constant Character MISC
R AN Category Set Category Set Name = Constant Character Item Type
D
Category sets can have different flexfield structures. In this example, the category set Item Type has a
single segment structure. However, multiple segments are possible, and each segment can be directly
specified in the rule restrictions. This means that a cost group assignment could be based on any
segment, or combination of segments, of the category.

Non-standard job completion

Non-standard jobs are often used for refurbishing or reworking material, or for de-kitting completed
kits. Because they are generally outside of the standard processes, the final assembly completed from

51
these jobs may need to be assigned to a different cost group from the standard job completions. Cost
group rules can be used to perform this type of cost group assignment, as follows.
Rule Assign non-standard discrete completions to cost group XXXX
Description Non-standard discrete completions get cost group XXXX
R WIP Entity Type = Constant Number 1
R AN WIP Job Job Type = Constant Number 3
D
The first restriction on the entity type requires that the job be a discrete job, so that this cost group
assignment rule is not applicable for a lot based job or a repetitive schedule, for instance. A value of 1
indicates a discrete job. The second restriction on the job type actually indicates that the discrete job
must be a non-standard job. A value of 1 indicates a standard job, while a value of 3 indicates a non-
standard job. These lookup codes are available from the Technical Reference Manual.

Rejected material assigned special cost group

Inspection is an optional process during receiving, and is controlled by the receipt routing. WMS
requires that material that fails inspection be split into a different LPN then the material that passes
inspection. The rejected material can then be assigned to a different cost group when it is put away.
The following rule models this business scenario.
Rule Rejected material gets cost group XXXX
Description Assign cost group XXXX to material that fails the receiving inspection
R Cost Group Inspection Status = Constant Number 3
Transaction
Of course, the rest of the cost group assignment rules should be built so that material that passes
inspection is not assigned to this same cost group.

Status based cost group assignment

The cost group may depend on the material status that is entered when the material is first received.
For instance, a material status of HOLD may indicate that there may be potential quality issues on the
item, and that it should not be available for sales orders or for manufacturing until after some quality
inspection.
The following rule can assign a particular cost group based on the status that is assigned to a serial
number. Additional restrictions are included to verify that the item is serial status enabled, so that this
rule will not return any cost group if the item is not serial controlled or does not have serial status.
Rule Cost group XXXX assigned to serials with material status HOLD
Description Assign cost group XXXX to serials with material status HOLD, which is equal to status identifier 56
R ( Item Serial Generation = Constant Number 2
Code
R OR Item Serial Generation = Constant Number 5 )
Code
R AN Item Serial Status Enabled = Constant Character Y
D
R AN Serial Number Status Identifier = Constant Number 56
D
Similarly, a rule can be based on the material status of a particular lot, as follows.
Rule Cost group XXXX assigned to lots with material status HOLD
Description Assign cost group XXXX to lots with material status HOLD, which is equal to status identifier 56
R Item Lot Control Code = Constant Number 2
R AN Item Lot Status Enabled = Constant Character Y
D
R AN Lot Status Identifier = Constant Number 56
D

52
Both material status update and cost group update are manual user initiated transactions. Therefore,
for instance, if a lot cycles in and out of the a hold status due to some recurring quality issues, as
material is received, the cost group assigned to each storable unit will depend on the material status
that is assigned to the lot at the instant the material is received into inventory. Thus different storable
units of the same lot could have different cost groups that are not in synchronization with the current
material status, unless manual cost group updates have also been performed.
Note that these rules require the identifier, rather than the name, of the material status. The identifier
of the material status can be accessed in one of two ways. In the Material Status Definition form,
query the status of interest. Then navigate to Help > Diagnostics > Examine. Choose
MSDEF_STATUS_BLK from the Block list of values, if that is not already defaulted, and select
STATUS_ID from the Field list of values. Alternatively, if direct table access is available, the status
identifier can be viewed directly from the table MTL_MATERIAL_STATUSES_TL. In the examples
above, the material status HOLD is assumed to have a status identifier of 56.

Subinventory based cost group assignment

The cost group can be assigned to material based on the subinventory into which it is first put away.
Because the putaway suggestion is determined prior to assigning the cost group, subinventory based
cost group rules can build off of logic encoded in the putaway rules.
In this example, material that is received into subinventory BULK will be assigned a particular cost
group. Note that this would be applicable to all transactions that received material into the
subinventory, including purchase order receipts, miscellaneous transactions, and manufacturing
completions, unless the strategy search order and strategy assignments further restricted when this rule
is applied.
Rule Material received into subinventory BULK gets cost group XXXX
Description Assign cost group XXXX to material that is received into subinventory BULK
R Destination Subinventory Name = Constant Character BULK
Subinventory
This scenario is similar to how cost groups behave in a non-WMS enabled organization, in that the
material will be automatically assigned to the cost group into which it is stored. However, WMS and
non-WMS organizations differ in how the cost group is determined on subsequent moves. In a non-
WMS organization, the material always picks up the cost group of the owning subinventory; the cost
group is not really assigned to the material, but rather to the storage area. In a WMS organization, the
cost group is assigned to the material and follows the material as it moves throughout the warehouse.
Note that if the Rules Engine were unable to find a strategy via the strategy assignments, then the cost
group of the receiving subinventory would automatically be assigned to the material. Therefore, there
may often be no need to define rules like this.

53
Label Format Rules
Label format rules are not seeded because the return value is not known and logic required for label
format rules is typically simpler, but more warehouse specific than that required for picking or
putaway rules. The examples documented here should be used as guidelines in defining new rules,
and can be particularly helpful in modeling any complex requirements.
Because these rules are not seeded, specifics that may differ from warehouse to warehouse can be
indicated in the rule restrictions. For instance, a subinventory name or item category may be used to
make the rule more concrete and easier to understand. Also, the label format (return value) will not be
indicated on any of these rules because those are always implementation specific. Please be sure to
use data specific to the warehouse when defining rules.

Carrier specific rule

Often, different shipping label formats will be required based on the freight carrier selected. The
format may include data specific for that carrier, including different barcode fonts and positioning.
The following rule prints a specific label format when the freight carrier is UPS.
Rule Shipping label XXXX for freight carrier UPS
Description Print label format XXXX for freight carrier UPS
R Freight Carrier Name = Constant Character UPS
Note that the actual text on the right-hand-side of the rule must correspond to the codes that have been
set up for the freight carriers. Also, note that this type of rule is only applicable for printing Shipping
and Shipping Contents labels.

Consolidation required after cartonization

Cartonization can be used to determine the best number and type of containers or totes in which to
pack an outbound delivery. As part of the pick release process, license plate content, license plate
summary, and license plate, shipping, and shipping content labels can be printed. These labels,
together with LPN-based picking on the mobile device, can help streamline the outbound picking and
packing process.
Depending on types of containers that are available and the size of the delivery or sales order, a single
delivery may be cartonized into one or multiple license plates. Furthermore, if cartonization is not
enabled for all items or all subinventories, part of a delivery may be cartonized, while other lines may
be picked and packed separately. Consolidation of these multiple cartonized and non-cartonized
LPNs may need to occur in the staging lane. Using a label format rule, different labels can be printed
for the license plate created at pick release depending on whether additional consolidation will be
required, or if the cartonized license plate contains all the requirements for the delivery.
Rule If cartonized LPN contains entire delivery use label format XXXX
Description Print label format XXXX if delivery has only single LPN created by cartonization at pick release
R Cartonized LPN Contains entire = Constant Character Y
delivery

Customer compliant labels based on LPN reservations

LPNs can be reserved to particular sales orders as soon as they are in inventory. A user can make this
reservation manually when sales orders are booked, or LPN-completions of ATO or CTO jobs can
systematically create them. Customer compliant Shipping and Shipping Content labels can be printed
after the LPN has been pick confirmed. However, pick confirmation may even be completely

54
bypassed by the use of a WMS feature called Direct Ship. When Direct Ship is used, or when
customer compliant labeling is required prior to pick confirmation, the label format rules can be based
on LPN reservations.
The following rule prints a specific label format for innermost LPNs based on LPN reservations.
Rule LPN Summary label XXXX for innermost LPNs when LPN reserved Business World
Description Print label format XXXX for LPN Summary when reservation made to Business World
R License Plate License Plate Number = Expression Select distinct
expwlpn.license_plat
e_number from
wms_license_plate_n
umbers
expwlpn,mtl_reservat
ions
expmr,oe_order_head
ers_all expooha,
oe_order_lines_all
expoola,ra_customers
exprc where
expwlpn.lpn_id =
wlpn.lpn_id and
expmr.lpn_id =
wlpn.lpn_id and
expmr.demand_sourc
e_line_id =
expoola.line_id and
expooha.header_id =
expoola.header_id
and
expooha.sold_to_org
_id =
exprc.customer_id
and
exprc.customer_name
= 'Business World'
and rownum = 1
Several assumptions are inherent in this rule. First, the LPN is reserved, in its entirety, to a single
customer (but potentially for multiple sales order / sales order lines). If there are multiple customers
associated with a single innermost LPN, one of the customers will be arbitrarily selected when
executing this rule. This also means that, even if the LPN is only partially reserved, if any of the
material is reserved to the customer Business World, this rule restriction will be met and the customer
specific label will be printed. Finally, this rule selects the correct format based only for the level at
which the reservation is made: the innermost LPN level. Therefore, if LPNs are nested and a
reservation is made to the innermost LPN, the outermost LPNs will not get customer specific
formatting.
The following rule will select a label format based for any level of an LPN nested arbitrarily deep, so
long as the reservation is made to the innermost LPN level. The assumption about the LPN being
completely reserved to a single customer still stands, however.
Rule LPN Summary label XXXX for innermost LPNs when LPN reserved Business World
Description Print label format XXXX for LPN Summary when reservation made to Business World
R License Plate License Plate Number = Expression Select distinct
expwlpn.license_plat
e_number from
wms_license_plate_n
umbers
expwlpn,mtl_reservat
ions
expmr,oe_order_head
ers_all expooha,
oe_order_lines_all

55
expoola,ra_customers
exprc where
expwlpn.outermost_l
pn_id = wlpn.lpn_id
and expmr.lpn_id =
expwlpn.lpn_id and
expmr.demand_sourc
e_line_id =
expoola.line_id and
expooha.header_id =
expoola.header_id
and
expooha.sold_to_org
_id =
exprc.customer_id
and
exprc.customer_name
= 'Business World'
and rownum = 1
Additional restrictions can be added so that different labels could be printed if the LPN is only
partially reserved, or reserved to multiple customers.

Customer compliant shipping label

A common requirement is a customer specific shipping label. This type of rule could also be used to
print customer compliant Shipping Content labels.
The following rule prints a specific label format for customer Business World.
Rule Shipping label XXXX for customer Business World
Description Print label format XXXX for customer Business World
R Customers Customer Name = Constant Character Business World
If the customers can be grouped where each group requires a different format, instead of defining each
customer specific label rule by rule, rules could be built based either on a customer flexfield that
controls which label format to print, or an a user-defined value set that includes the customers that
require particular labeling.
Note that this type of rule is only applicable for printing Shipping and Shipping Contents labels.

Inspection-based label format selection

Inspection is an optional process during receiving, and is controlled by the receipt routing. WMS
requires that material that fails inspection be split into a different LPN then the material that passes
inspection. LPNs with rejected material can then be labeled differently, with the following rule.
Rule Accepted label format for material passing inspection
Description Return different label formats based on the inspection status code
R License Plate License Plate Number = Expression Select
wlpn.license_plate_n
umber from
rcv_transactions_inter
face rtiexp where
wlpn.lpn_id=rtiexp.lp
n_id and
rtiexp.inspection_stat
us_code =
‘ACCEPTED’
Three values are used for the Inspection Status as follows:

Status Meaning
ACCEPTED Material in LPN passed inspection

56
REJECTED Material in LPN failed inspection
is null Material in LPN does not require inspection

Ship-to country specific rule

Often, different label formats will be required based on the country to which the shipment is going.
This labeling may include data specific for export screening, and may also include language specific
differences or number / data formatting differences.
The following rule prints a specific label format when the ship to country is France.
Rule Shipping label XXXX for ship to country France
Description Print label format XXXX for Shipping for shipping to France
R Ship To Customer Country = Constant Character France
Sites
Note that the actual text on the right-hand-side of the rule must correspond to the codes that have been
set up for countries. Also, note that this type of rule is only applicable for printing Shipping and
Shipping Contents labels.

57
October 2002
Author: David Wertheimer
Copyright © Oracle Corporation 2002
All Rights Reserved Printed in the U.S.A.

This document is provided for informational purposes


only and the information herein is subject to change
without notice. Please report any errors herein to
Oracle Corporation. Oracle Corporation does not
provide any warranties covering and specifically
disclaims any liability in connection with this document.

Oracle is a registered trademark.

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.

Worldwide Inquiries:
415.506.7000
Fax 415.506.7200

Copyright © Oracle Corporation 2002


All Rights Reserved

58