Oracle Advanced Supply Chain Planning: Component Substitution
Oracle Advanced Supply Chain Planning: Component Substitution
Oracle Advanced Supply Chain Planning: Component Substitution
May 2012
Disclaimer
The following is intended to outline our general product direction. It is intended for information
purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any
material, code, or functionality, and should not be relied upon in making purchasing decisions. The
development, release, and timing of any features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.
2|Page
Oracle Advanced Supply Chain Planning: Component Substitution
Contents
Introduction .................................................................................................................................................. 5
Setup ............................................................................................................................................................. 9
Item Setup................................................................................................................................................. 9
Examples ..................................................................................................................................................... 15
Firm workorders...................................................................................................................................... 24
3|Page
Oracle Advanced Supply Chain Planning: Component Substitution
Useful scripts............................................................................................................................................... 24
4|Page
Oracle Advanced Supply Chain Planning: Component Substitution
Introduction
Oracle ASCP supports two types of substitution: component substitution and end-item-level
substitution. This document explains the functionality of component substitution.
This document applies to 11.5.10 and later. Version specific functionality is indicated.
General functionality
Substitute components are modeled similarly to alternate resources. Each primary BOM component is
assumed to have a set of possible substitutes. The primary item will be used instead of the substitute
when it is available.
Component substitution is available only in constrained plans with decision rules enabled, specifically
component substitution or in optimized plans.
When enabling this decision rule, it is not required to have setup the complete cost data and cost
penalty factors for end item substitutes, substitute components, alternate bills of material
(BOM)/routings, and alternate sources of supply. While optimization requires accurate costing of all
entities to arrive at useful results, User Defined Decision Rules do not consider costs. The selections are
done based on the priorities you enter in the source instance.
For example, for substitute components, if the primary component that you selected is not available,
then the planning engine considers the priority 2 substitute. If the priority 2 substitute is not available,
then the planning engine considers the priority 3 substitute, and so on.
In Figure 1 the search order is detailed. If there is no available supply for component B, then it looks for
available supply on substitute B1. If this has no available supply either, it creates planned orders on the
primary component. If planned orders on the primary cannot be made in time, the engine creates
planned orders on the substitute component.
5|Page
Oracle Advanced Supply Chain Planning: Component Substitution
Figure 1
With user-defined alternate decision rules in both optimized and constrained plans the search is done as
follows.
The planning logic uses a series of steps depending on the constraints used for the plan. The planning
search logic is illustrated below using the supply chain for assembly item A with end-item substitute
item A1.
Item A is made of B and C with B1 and C1 as the substitute components. B and C in turn need items D
and E respectively. To simplify the search we will not expand the substitute component B1 and C1 and
also assume the same BOM and routing for all items across Manufacturing 11 and Manufacturing 21. In
addition, we have made the following two assumptions:
• For optimized plans, cost effectiveness at each node across the given supply-chain is the same
6|Page
Oracle Advanced Supply Chain Planning: Component Substitution
The planning engine searches on-hand quantity and schedules receipts (item A and end item substitute
A1) across each tier before creating new planned orders for the demanded item. (Please refer to End
7|Page
Oracle Advanced Supply Chain Planning: Component Substitution
Item Substitution chapter). To look for on-hand quantity and scheduled receipts of the demanded item
and the end-item substitute, ASCP uses the search logic as specified below.
Looking at pegging may not be the method you should use to determine the sequence of selection of
alternates. This is because the sequence of selection of alternates is more apparent when looking at
total demand and total supply across the time bucket where there is a constraint.
For example, suppose there are two demands, D1 (150 units) and D2 (50 units) on day 1 and day 2 for
item B, and the only way to satisfy this demand is by making 100 units with primary
resource/routing/BOM and 50 units using substitute component B1 and 50 units of B with alternate
BOM/routing. Then, day 1 demand will peg to 100 units of item B using primary resource/routing/BOM
and 50 units of item B using alternate BOM/routing. Day 2 demand will peg to 50 units of substitute
component B1.
If you look at just the pegging for D1, 50 units of the substitute component is not used. Instead, 50 units
of the alternate BOM/routing is pegged to D1. Therefore, it looks as if ASCP has broken the user-defined
sequence. But, if the demand was for only 150 units, then the supply would be 100 units of item B and
150 units of substitute component B1, which follows the user-defined sequence
8|Page
Oracle Advanced Supply Chain Planning: Component Substitution
Setup
Item Setup
You can define the priority of the substitute component. By default, planning tries to minimize the use
of substitutes. Also, the planning engine has an built-in logic that tries to use substitutes at a lower level
in your BOM than close to product completion in the BOM. Planning will honor the priority that you
have defined while searching for supply from the various substitutes.
The following screen shot depicts where you can define priorities for Substitute Components.
The Priority for Substitute Items is defined in the Substitute Components form. This is stored in the table
BOM_SUBSTITUTE_COMPONENTS, specifically the flexfield Substitute Component Information. The
lower the number the higher the priority.
The Descriptive Flexfield (DFF) for Substitute Priority must be enabled in the Define Bill of Material form
- BOMFDBOM.
9|Page
Oracle Advanced Supply Chain Planning: Component Substitution
Using a BOM responsibility navigate Bills/Bills - Query an existing item with a BOM - select any one of
the components - then click the Substitutes button - On the far right of the form there is a Descriptive
Flexfield [] - Put the cursor in this field and it should open up a Substitute Component Information form
with the field Substitute Priority. If the DFF did not open up, it is not yet enabled. If the DFF is not
enabled in the component substitute form, go to Inventory/Setup/Flexfields/Descriptive/Segments -
select the Flashlight icon - input %substitute% - there should be a flexfield for:
Make sure this is enabled and that the flexfield definition is frozen and compiled.
The Attribute number used by the DFF needs to be known for profile option MSC: Priority for Substitute
Items Flexfield Attribute. Use this navigation to determine this value:
Inventory/Setup/Flexfields/Descriptive/Segments - select the Flashlight icon - input %substitute% -
select from the list of values:
10 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
Then select the Segments button - look in the Column field and there should be something like
ATTRIBUTE1 listed. Write this down. Using System Administrator/Profile/System - query up profile
MSC: Priority for Substitute Items Flexfield Attribute - set this value to 1 (NOTE: Use the Attribute
Number that was found per the navigation - it may or may not be the same as this example) at the site
level and save.
Using a BOM responsibility navigate Bills/Bills - Query an existing item with a BOM - select any one of
the components - then click the Substitutes button. Enter your substitute components and in the DFF
enter the priority (e.g. 1,2,3 etc.,...) and save.
Plan options
To enable component substitution one should consider the plan options below.
If you want the planning process automatically to select alternates considering full relative cost data,
choose Optimized planning mode.
If you want the planning process automatically to select alternates considering only the rankings of
alternates (sources, bills of material/routings, resources, substitute components, end item substitutes)
and not relative cost data for alternates, choose from
Oracle suggests the Constrained (Without Detailed Scheduling) and Constrained (With Detailed
Scheduling) planning modes as they provide superior solution quality to the Constrained (Classic) with
Decision Rules planning mode. The superior quality results from planned order generation with respect
to order modifiers, capacity, and lead-time constraints at the same time. This results in more accurate
offloading from primary to:
11 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
If Use substitute components is selected, then use primary items as far as possible and use substitute
component only if necessary.
If Use substitute components is cleared, then use primary items/components only.
When planning for critical items, then one will see following items included in the plan:
If the primary component is critical then ASCP also selects the non-critical substitute components. If the
primary component is not critical then ASCP does not select the substitute components even if these
substitutes are critical.
Profile Options
For production planning purposes MSO: Maximum Allowable Days Late limits how many days in the
future that the planning engine considers alternate sources, end item substitutes, substitute
components, alternate bills of material, and alternate routings when the primary method would result in
a late supply.
MSO: Priority for substitute items flexfield attribute: This profile indicates in which flexfield attribute
the priority is stored.
MSO: Order Modifier Maximum Searching Depth: Figure 2 indicates how this profile is used.
Figure 2
12 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
This profile option controls whether to use-up the existing supplies on alternate/substitutes first or
exhausting capacities to create new plan orders on primary path first. This profile option should be
looked at from the whole planning horizon, not bucket by bucket.
Possible values
1 -- consume supplies in substitute component path but not alt bom path
3 -- consume supplies in alt bom path but not subs comp path
Set the value to 2 or 3 so that system will choose primary even substitute component has existing
supplies.
MSO: Postpone Use of Alternates to Latest Possible Time - This profile options controls the sequence to
use the primary and alternate. If it is set to Yes, the Supply Chain Optimizer (SCO) will use the primary
(on hand + new plan orders) before using the alternates. So it's possible that in some cases an alternate
might be used ahead of the primary from time to time. The profile should be set to ‘Y’ (not Yes)
This profile is to enable the Maximize Use-Up of Substitute Components feature in 12.1.3 and later. It
allows you to maximize usage of substitute components. The list of values for this profile option
includes:
* Yes - ASCP uses the existing supply of primary components before substitute components. This is the
default value.
* No - ASCP uses the existing supply of substitute components before primary components.
If this profile option is set to "No", and there is no existing supply for substitute components, ASCP
generates new planned orders for the primary components before substitute components.
Note that the on hand of a substitute component will not be used if it is less than the Minimum Order
Quantity, Fixed Order Quantity, or Fixed Lot Multiplier. The on hand of a substitute component may be
partially used if it is greater than the order modifiers but it is not a multiple of them.
This feature is only available with the Constrained (Without Scheduling) planning mode.
13 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
The optimal tolerance was by default set 0.0001. By reducing the tolerance, the amount of new plan
orders created on the substitute item can be reduced.
Plan Phases
During Step 1, the planning engine also selects supply configurations. For manufactured items, the
configuration choices are primary or alternate BOM/Routing, primary or substitute components, and primary
or alternate resources and effectivity dates.
For an optimized plan, the planning engine makes the following decisions:
1. Selects the Sources of Supply and Supply Configurations:
a. Standard MRP netting calculations for demands and existing supplies while respecting the
constraint options selected by the user.
b. Create new planned orders where required
c. Select supply sources for new planned orders based on sourcing rules using primary or
secondary sources while respecting the constraint options selected by the user.
d. Select make supply configurations for new planned orders using primary or alternate
BOM/Routings, primary or substitute components, primary or alternate resources, and
effectivity date
For example, if a substitute component costs $10 each and the user specifies a penalty factor of 20 for the
substitute component, then
14 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
The planning engine assigns a cost of $12.00 to the substitute component during its calculations. Let us
assume that the primary component costs $9.00 in this case. Suppose that the planning engine cannot use
the primary component and can use the substitute component to meet a particular demand on time. It does
not use the substitute component unless the value per unit of the supply produced on time is greater than
the $3.00 per unit excess paid for the substitute component. Of course, that’s also assuming that the supply
requires one unit of the component, primary or substitute
For example, if the user chooses Enforce Demand Due Dates, it might not be obvious that the planning
engine would select substitute components. It might appear that it would simply overload supplier capacity,
which it is allowed to do in this plan setup. However, if the user specifies a significant penalty cost for
supplier capacity violations, then the planning engine may still select substitute components rather than
incur the penalty cost for violating the supplier’s capacity constraint
When optimization is enabled, the Supply Sources and Supply Configuration choices can include
Examples
Due
Product demand Date Capacity
100
A 60 units 1 units/day
100
A 120 units 2 units/day
100
A 80 units 3 units/day
15 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
16 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
Capacity Information
Resource Capacity
M10 60 units/day
M20 60 units/day
G10 100 units/day
G20 100 units/day
Type Units
Item A 0
Component B 90
Component C 200
Sub Component D 30
Sub Component E 100
17 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
Rank Objective
The planning engine plans for the 120 units of Item A on Day 2 by combining the following two actions:
If the demand on Day 2 is only 90, then the solution is achieved by selecting only alternate resources (alternate
resource (M20/G10) along with primary (M10/G10).
Supposing there are multiple substitutes, each with a different priority. When running the plan one sees
that the plan is not honoring the substitute items priority, Low priority substitute item onhand is
considered instead of using supply of a higher priority substitute.
If there is onhand for both the substitute items, the plan always tries to satisfy the demand with
immediate supply available. Considering the two substitute components available, the best way to
satisfy a demand is to consume the onhand available. As a result of this we see that the plan created a
planned order demand on both the substitute items.
When running an optimized plan with internal cost roll up enabled, one needs to ensure that the
weights that are specified for the optimization objectives are correct. Whenever a plan is run with
internal cost roll up, please ensure that the following values are used for the optimization objective
weights:
18 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
In addition, set a higher value for the profile option 'MSO: Carrying Cost Percentage' such as 50.
Order Modifiers
For component substitutes, any order modifier on the assembly item may cause the substitute on-hand
to be not fully used up. One option is to reduce or remove the order modifiers in such cases.
The existence of an order modifier (minimal order quantity, fixed order quantity, fixed lot multiple) can
have this effect.
Suppose A is made of B, B has a substitute C. B has an on-hand of qty 20, but A's fixed order quantity if
40. So, to use up B's on-hand of 20, the optimization engine recommends a planned order of 20. But
when creating a real planned order, it can only create a planned order of 40. So at item B, it has demand
of -40, exceeds the on-hand and a planned order is created. Similar cases for MoQ, and FLM. If the on-
and quantity of the substitute is not sufficient for the assembly item's order modifier size, then it will
remain unused.
• use max order quantity to size the orders instead of other order modifiers
• consider the 'Constrained without Detailed Scheduling' option (available in the plan options form).
The profile 'MSC: Enable Advanced Constraints' should be set to Yes. This option provides better
consumption of substitutes in the presence of order modifiers.
Transfer supplies recommended for the substituted demands will not honor the order modifiers as we
are not sure how much supply is present in the source org from which material will be transferred.
Not honoring of order modifiers will be only for transfer supplies for substituted demands. If new buy or
make recommendations are given then order modifiers will be honored.
19 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
If no planned orders are to be created on the substitute component, set the max order quantity of the
substitute component item (in the item attributes form) to zero. Please note that this will work only if
the item does not appear as a primary component in any other BOM.
Item rounding can have similar effects on component substitution as order modifiers.
During optimization phase the rounding control is not considered. So now let us consider the following
example:
Now during optimization we decide that for 15000 of Item A and 15000 of Item B we need 30,000 of
Item C (This is where the rounding control in BOM is used. If the usage is such that 30,001.1 was
required then it would have been rounded to 30001).
Now we round the supplies (When we are rounding the supplies BOM rounding control type is not used
but item rounding control is used because this supply is a common supply that can be used in many
demands of items: Item A, Item B)
However the rounding control for the substitute item is set to Round down and hence the quantity
required will be come 86513.
Now the onhand is only 86512 and hence 86513-86512 = 1 planned order is created.
Another example would be: the first planned order for the primary component is always the equivalent
of the residual value of the substitute. The on hand is 110, the planned orders would be for 30 and 7890.
20 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
For example the demand for an item is 200 (sub assembly). Component requirement is 8000. This is
satisfied in SCO by:
MBP rounds down the quantity 2.75 from substitute item to 2 and increases the quantity 197.25 from
primary to 198. In order to make up for the difference: (198-197.25)*40=30, MBP created the planned
order of the primary of qty 30, together with the planned order of the primary of qty 7890 from SCO.
If an item is present in an end item substitution chain, then it cannot be used in component substitution.
This setup is not supported.
In the end item substitution design and implementation, we have a basic assumption that all those
items will have only independent demands. Therefore, we can claim we can honor "create supply"
attribute of each substitute item in the chain, since unconstrained MBP and SCO will see the same
demand picture at end level.
However, if one item in substitute chain is a component (or a transfer source) of another item, then all
those pre-conditions will be violated due to order modifiers, different views of safety stocks, etc.
The "Create Supply" flag is designed for use in end item substitution scenarios in which items A and B
are related by a substitution item relationship, and both items are end items with independent demand
in the ASCP plan.
When selecting the item to be used and there is compression then SCO selects the item which has the
least compression. SCO always tries to minimize the use of compressed supplies.
This happens also in an EDD plan. If the leadtime for the primary is longer than the substitute, planned
orders will be made on the substitute to reduce lead time compression.
21 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
SCO will always try to use existing supplies. For example there is no supply on the primary item. Supply
exists on the substitute item, but also supply exists on the components for the primary item.
SCO will then still use the primary item to use up the supply for its components instead of using the
substitute item. The inverse is also possible where SCO will recommend the planned orders on the
substitute if there is supply for its components.
BOM structure
Parent
|
Phantom
|
-- Primary
-- Substitute component
With the above setup the component substitution does not work correctly.
Parent
|
Phantom
|
Dummy item (standard)
-- Primary
-- Substitute component
Users may see apparent random usage of substitute components with different priorities.
There are 2 end items (ids 4301 and 4319). The BOM structure is as follows:
22 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
4301 4319
| |
5117 5116
| |
5092 5091
| |
1433-------5130 (sub priority 1) 1433--------5131 (sub priority 1)
|
-----5131 (sub priority 2)
The independent demands for 4301 have priority of 1-14 while the independent demands for 4319 have
priority of 15-64. As a result, SCO tries to meet all the demands for 4301 on time before ensuring that
demands for 4319 are met.
There are 20000 units of on-hand for 5131. Since the lead time of both 5130 and 5131 are 50 days, SCO
uses all the onhand of 5131 to meet the early demands of 4301. This is the only supply of 5131 that SCO
uses to build 4301. Had supply of 5130 been used, it would have delayed the demands for 4301.
New planned orders created for 5131 are all used only to build 4319.
Using by-products
In the event that the primary component has a by-product which is not used in any BOM, then the
engine will not create supplies on the primary, but on the substitute.
Creating supplies on the primary component would lead to excess supplies on the by-product which
cannot be used elsewhere.
Using the profile option (MSO: Use Existing Supplies in Alternate BOM/Subs.Comp) is a way to minimize
the use of substitute components. When this profile is set to 2, planning engine will go down the
primary component path only if demands can be met on time. Planning engine will go down substitute
component path only if improves on-time delivery.
Note that by setting the profile to 2, planning engine may not consume existing supply of substitutes if
demand can be met on time using primary component. The profile option makes sense in any decision
rules plan or optimized plan.
23 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
To allow substitution recommendations being done by the online planner, set MSO: Use Optimization
and Decision Rules for Simulation to Yes .
The online planner does not ensure that the choice of substitute components is retained if the planned
order is firmed. In online planner, the onhand supply of the substitute components could be used to
build some other planned order.
If you wish to retain the use of the substitute component for a particular planned order, you can release
it to the execution system as a work order, update the quantity and then collect it back to the planning
instance.
Firm workorders
If firm workorders are dependent on the primary component, then planned orders on the primary will
be created even if the demands are satisfied late because of this.
We do not release the details of the planned output under following conditions:
a. Unconstrained Plans
b. if the new_wip_start_date is null in msc_supplies
c. if the implement quantity or date is different than the planned quantity date
d. if the revision date is different then the new_wip_start_date and the profile option setting :
MSC:Release WIP Dtls if Order Date different then BOM Revision Date = 'No’
e. Non - Daily Bucketed Plans (planned order must be in the daily buckets)
f. Alternate BOM/Routing is changed during release. (= planned order is modified in any way)
Useful scripts
SELECT *
FROM bom_substitute_components
WHERE substitute_component_id IN
(SELECT DISTINCT inventory_item_id
FROM mtl_system_items_vl
WHERE concatenated_segments = '&item_name' ) ;
24 | P a g e
Oracle Advanced Supply Chain Planning: Component Substitution
SELECT *
FROM bom_structures_b
WHERE assembly_item_id IN
(SELECT DISTINCT inventory_item_id
FROM mtl_system_items_vl
WHERE concatenated_segments = '&item_name' );
SELECT *
FROM mrp_ap_component_substitutes_v
WHERE substitute_item_id IN
(SELECT DISTINCT inventory_item_id
FROM mtl_system_items_vl
WHERE concatenated_segments = '&item_name' );
SELECT *
FROM msc_component_substitutes
WHERE plan_id = -1
AND sr_instance_id = &instance_id
AND substitute_item_id IN
(SELECT DISTINCT inventory_item_id
FROM msc_system_items
WHERE item_name segment1 = '&item_name' );
25 | P a g e