Schedule Options on More Than One Level of an Assemble to Order Item
Get more detailed capable-to-promise calculations and more accurate promise dates for a complex assemble-to-order item.
If your item has subassemblies at more than one level, then each subassembly might have different optional components and alternative configurations. You can now include the resource requirements in a bill of resources for the options that your customer selects at each level when you schedule shipment or delivery.
Use this feature to improve the quality of your promising results. Promising will apply resource constraints, such as calendars, availability, and so on when it promises an assemble-to-order item. It applies the constraint according to the configure option that your customer selects for each option dependent resource at run time.
Try It
- Set up your assemble-to-order item.
- See Overview of Configure-to-Order.
- Specify resources, including which ones are option dependent. See Guidelines for Creating Work Definitions for Configured Items and Create Work Definitions for Configured Items.
- Set up promising for your configured item. See these topics:
- Include Resources for Configure Options
- Exclude Options and Option Classes for Configured Items
- Include Supplier Capacity When You Promise ATO Items
- The Search Components and Resources subtopic in Set Attributes on Your Supply Chain Search
- Set up the bill of resources for your configured item. See Promise Your Configured Items.
Example 1: Use Option Dependent Operations for All Optional Items
Assume you set up your assemble-to-order (ATO) model so it has this hierarchy.
My Model | Operation | Resource |
---|---|---|
Option Class A Option 1 Option 2 |
OP10 OP20 |
R1 R2 |
Option Class B Option 3 Option 4 |
OP30 OP40 |
R3 R4 |
Note
- The model has class A and class B.
- Class A contains options 1 and 2, and class B contains options 3 and 4.
- You set the Option Dependent attribute to Y for each operation. For details, see Guidelines for Creating Work Definitions for Configured Items.
- The OP10 operation and the R1 resource fulfills option 1.
- The OP20 operation and the R2 resource fulfills option 2.
- The OP30 operation and the R3 resource fulfills option 3.
- The OP40 operation and the R4 resource fulfills option 4.
Now examine your bill of resources:
- Go to the Plan Inputs work area.
- On the Plan Inputs page, click Open.
- In the dialog that displays, click the row that has Aggregate Bill of Resources, then click OK.
- Search for your bill of resources, then examine the values.
Here's what your bill of resources will contain.
Assembly Item | Resource | Usage Quantity | Option Dependent |
---|---|---|---|
My Model | R1 | 1 hour | Yes |
My Model | R2 | 1 hour | Yes |
My Model | R3 | 1 hour | Yes |
My Model | R4 | 1 hour | Yes |
These are design time values, not run time values.
The Option Dependent Resource Details section of you bill of resources will contain a similar set of design time values. It includes all the options that the model contains, not the runtime values.
Assembly Item | Resource | Option | Operation Sequence Number | Option Lineage | Usage Quantity |
---|---|---|---|---|---|
My Model | R1 | Option 1 | OP10 | My Model > Option Class A > Option 1 | 1 |
My Model | R2 | Option 2 | OP20 | My Model > Option Class A > Option 2 | 1 |
My Model | R3 | Option 3 | OP30 | My Model > Option Class B > Option 3 | 1 |
My Model | R4 | Option 4 | OP40 | My Model > Option Class B > Option 4 | 1 |
Note that the Usage Quantity's unit of measure is hours, such as 1 hour.
Assume you select options 1 and 3 in the sales order at run time.
My Model | Operation | Resource |
---|---|---|
Option Class A Option 1 |
OP10 |
R1 |
Option Class B Option 3 |
OP30 |
R3 |
Promising will use the OP10 operation and the R1 resource to fulfill option 1, and the OP13 operation and the R3 resource to fulfill option 3.
The Aggregate Bill of Resources table in the Plan Inputs work area only displays design time values. You can use the Review Supply Availability action to examine run time values that have the actual consumption for your sales order. For details, read See What Supply is Available and Allocated. As an alternative, submit your sales order, then use the Check Availability page. For details see Check Availability.
Example 2: Use the Same Resource to Fulfill All Operations
My Model | Operation | Resource | Resource's Usage Quantity |
---|---|---|---|
Option Class A Option 1 Option 2 |
OP10 OP20 |
R1 R1 |
1 hour 2 hours |
Option Class B Option 3 Option 4 |
OP30 OP40 |
R1 R1 |
3 hours 4 hours |
The R1 resource consumes:
- 1 hour to fulfill option 1.
- 2 hours to fulfill option 2.
- 3 hours to fulfill option 3.
- 4 hours to fulfill option 4.
Your bill of resources will contain all of the potential resources, but Promising will consume only the R1 resource.
Assembly Item | Resource | Usage Quantity | Option Dependent |
---|---|---|---|
My Model | R1 | 10 | Yes |
Note that 4 hours is a design time value, not a run time value. 4 hours is the sum of all possible usage quantities for the model.
The Option Dependent Resource Details section of you bill of resources will contain a similar set of design time values. It includes all the options that the model might contain, not the runtime values.
Assembly Item | Resource | Option | Operation Sequence Number | Option Lineage | Usage Quantity |
---|---|---|---|---|---|
My Model | R1 | Option 1 | OP10 | My Model > Option Class A > Option 1 | 1 |
My Model | R1 | Option 2 | OP20 | My Model > Option Class A > Option 2 | 2 |
My Model | R1 | Option 3 | OP30 | My Model > Option Class B > Option 3 | 3 |
My Model | R1 | Option 4 | OP40 | My Model > Option Class A > Option 4 | 4 |
Assume you select options 1 and 3 in the sales order at run time.
My Model | Operation | Resource |
---|---|---|
Option Class A Option 1 |
OP10 |
R1 |
Option Class B Option 3 |
OP30 |
R1 |
Promising will consume 4 hours of R1's time. 1 hour for the OP10 operation plus 3 hours for the OP30 operation. Here's the actual runtime usage for this example.
Assembly Item | Resource | Usage Quantity | Option Dependent |
---|---|---|---|
My Model | R1 | 4 hours | Yes |
You selected options 1 and 3, so the actual run time operations and consumption are:
Assembly Item | Resource | Option | Operation Sequence Number | Option Lineage | Usage Quantity |
---|---|---|---|---|---|
My Model | R1 | Option 1 | OP10 | My Model > Option Class A > Option 1 | 1 |
My Model | R1 | Option 3 | OP30 | My Model > Option Class B > Option 3 | 3 |
Example 3: Use the Same Resource to Fulfill All Operations, Including Required Operations
Assume you add a required OP25 operation to Option Class B in your model, and you also add another required OP45 operation to the entire model. You will use the same resource to fulfill all of the option dependent operations, and also the required operations too.
My Model | Operation | Resource | Resource's Usage Quantity |
---|---|---|---|
Option Class A Option 1 Option 2 |
OP10 OP20 |
R1 R1 |
1 hour 2 hours |
Option Class B Required Option 3 Option 4 |
OP25 OP30 OP40 |
R1 R1 R1 |
3 hours 4 hours 5 hours |
Required | OP45 | R1 | 6 hours |
Your bill of resources will contain all of the potential resources, but Promising will consume only the R1 resource.
Assembly Item | Resource | Usage Quantity | Option Dependent |
---|---|---|---|
My Model | R1 | 21 hours | Yes |
21 hours is a design time value. It is the total usage quantity for of all of the model's operations.
The Option Dependent Resource Details section of you bill of resources will contain these design time values.
Assembly Item | Resource | Option | Operation Sequence Number | Option Lineage | Usage Quantity |
---|---|---|---|---|---|
My Model | R1 | Option 1 | OP10 | My Model > Option Class A > Option 1 | 1 |
My Model | R1 | Option 2 | OP20 | My Model > Option Class A > Option 2 | 2 |
My Model | R1 | - | OP25 | 3 | |
My Model | R1 | Option 3 | OP30 | My Model > Option Class B > Option 3 | 4 |
My Model | R1 | Option 4 | OP40 | My Model > Option Class A > Option 4 | 5 |
My Model | R1 | - | OP45 | - | 6 |
Operations OP25 and OP45 are required, so their Option attributes and Option Lineage attributes don't have a value.
Assume you select options 1 and 3 in the sales order at run time.
My Model | Operation | Resource |
---|---|---|
Option Class A Option 1 |
OP10 |
R1 |
Option Class B Option 3 |
OP30 |
R1 |
Promising will consume resources for the options.
Assembly Item | Resource | Usage Quantity | Option Dependent |
---|---|---|---|
My Model | R1 | 5 hours | Yes |
It will consume 5 hours for the options:
- 1 hour for OP10 to fulfill Option 1
- 4 hours for OP30 to fulfill Option 3
You selected options 1 and 3, so the actual run time operations and consumption are:
Assembly Item | Resource | Option | Operation Sequence Number | Option Lineage | Usage Quantity |
---|---|---|---|---|---|
My Model | R1 | Option 1 | OP10 | My Model > Option Class A > Option 1 | 1 |
My Model | R1 | Option 3 | OP30 | My Model > Option Class B > Option 3 | 4 |
Promising will consume 9 hours of R1's time for the required components regardless of the options that you select in the sales order. It will also consume 5 hours for the options, for a total of 14 hours.
Example 4: Add a Child Model
Assume you add a child model to My Model.
My Model | Operation | Resource | Resource's Usage Quantity |
---|---|---|---|
Option Class A Option 1 Option 2 |
OP10 OP20 |
R1 R2 |
0.5 hours 2 hours |
Option Class B Option 3 Option 4 |
OP30 OP40 |
R3 R4 |
2 hours 2.5 hours |
Child Model Option Class C Option 5 Option 6 |
OP50 OP60 |
R3 R5 |
3 hours 1 hour |
Assume you also changed the usage quantity for some of the other resources.
- Option 1 from 1 hour to 0.5 hours.
- Option 3 from 3 hours to 2 hours.
- Option 4 from 4 hours to 2.5 hours.
Your bill of resources will have these assembly items at design time.
Assembly Item | Resource | Usage Quantity | Option Dependent |
---|---|---|---|
Model | R1 | 0.5 | Yes |
Model | R2 | 1 | Yes |
Model | R3 | 2 | Yes |
Model | R4 | 2.5 | Yes |
Child Model | R3 | 3 | Yes |
Child Model | R5 | 1 | Yes |
These are design time values. They include all of the possible resources that the model might consume.
- Option 1 consumes 0.5 hours of R1 and Option 3 consumes 2 hours of R1, for a total of 2.5 hours.
- Option 5 consumes 1 hour of R3.
The Option Dependent Resource Details section of you bill of resources will contain these design time values.
Assembly Item | Resource | Option | Operation Sequence Number | Option Lineage | Usage Quantity |
---|---|---|---|---|---|
Model | R1 | Option 1 | OP10 | Model > Option Class A > Option 1 | .5 |
Model | R2 | Option 2 | OP20 | Model > Option Class A > Option 2 | 1 |
Model | R3 | Option 3 | OP30 | Model > Option Class B > Option 3 | 2 |
Model | R4 | Option 4 | OP40 | Model > Option Class B > Option 4 | 2.5 |
Child Model | R3 | Option 5 | Op50 | Child Model > Option Class C > Option 5 | 3 |
Child Model | R5 | Option 6 | Op60 | Child Model > Option Class C > Option 6 | 1 |
Next, assume you select options 1, 3, and 5 in the sales order at run time.
My Model | Operation | Resource |
---|---|---|
Option Class A Option 1 |
OP10 |
R1 |
Option Class B Option 3 |
OP30 |
R1 |
Child Model Option Class C Option 5 |
OP50 |
R3 |
You will consume these resources.
Assembly Item | Resource | Option | Operation Sequence Number | Option Lineage | Usage Quantity |
---|---|---|---|---|---|
Model | R1 | Option 1 | OP10 | Model > Option Class A > Option 1 | .5 |
Model | R3 | Option 3 | OP30 | Model > Option Class B > Option 3 | 2 |
Child Model | R3 | Option 5 | Op50 | Child Model > Option Class C > Option 5 | 3 |
File-Based Data Import
If you use File-Based Data Import to import your bill of resources, then make sure each value in the Operation Sequence Number attribute is unique for each option dependent operation.
- Use the value in the Operation Sequence Number attribute only for the bill of material's component that you're using to fulfill one option dependent operation.
- You can't use the same number with an operation that isn't option dependent. Use some other operation sequence number for operations that aren't option dependent.
Assume you use an option dependent operation for every optional item in your model, and you set up your assemble-to-order (ATO) model so it has this hierarchy.
My Model | Operation | Resource |
---|---|---|
Option Class A Option 1 Option 2 |
OP10 OP20 |
R1 R2 |
Option Class B Option 3 Option 4 |
OP30 OP40 |
R3 R4 |
You can use these values in the ScpBillOfResourcesImportTemplate.xlsm FBDI template that you use to import your bill of resources.
Assembly Item Name | Operation Sequence Number | Option |
---|---|---|
Option Class A | OP10 | Option 1 |
Option Class A | OP20 | Option 2 |
Option Class B | OP30 | Option 3 |
Option Class B | OP40 | Option 4 |
Model | OP1 | Option Class A |
Model | OP1 | Option Class B |
In this example, each value in the Operation Sequence Number is unique for each inventory item.
For details about the template, go to File-Based Data Import (FBDI) for Oracle SCM, then search for Supply Chain Planning Bill of Resources.
Determine the Usage and Lead Time Offset
The bill of resources only includes a parent when at least one of its optional components or resources is required and is critical, but promising must determine availability according to the optional component that the user selects. Here's how Promising determines the lead time offset.
What Promising Needs to Promise | What Promising Does |
---|---|
Item |
Examines the lead time for the configured item, including the processing time and postprocessing time. If the option class includes a required, critical item, then it also examines the processing lead time for the option class. Usage measures how much of a component that you use up to make the assembled item. Promising determines the usage for each required component the same way it determines this value for a make item from the work definition. |
Resource | If you add the resource directly under the configured item, then Promising uses the item's lead time to calculate the lead time offset, and uses the work definition to calculate the usage. |
Promise a Configured Item That Has a Child Item
Assume your configured item includes a child configured item. Here are the order lines. Assume the Requested Date for each line is December 21, 2022.
Order Line | Item | Type | Quantity |
---|---|---|---|
1 | Deluxe Stove | Configured Item | 10 |
2 | Oven | Optional component | 10 |
3 | OC01 | Option Class | 10 |
4 | Option11 | Optional component | 10 |
5 | ATO02 | Configured Item | 10 |
Deluxe Stove
Burner Top (optional component)
Burner Knobs (required component)
Labor for Stove (required resource)
Warming Tray (option class)
Temperature Control (optional component)
Pull Handle (required component)
Oven
Bluetooth Control (optional component)
Safety Glass (required component)
Labor for Oven(required resource)
Oven Type (option class)
Gas (optional component)
Electric (optional component)
Window (required component)
Machine to Assemble Oven (required resource)
The bill of resources includes resources depending on what you mark as
critical in the work definition.What You Mark as Critical | What the Bill of Resources Includes |
---|---|
Burner Knobs |
Resources for the Burner Top optional component.
|
Pull Handle | Resources for the Warming Tray option class. |
Labor for Oven | Resources for the Oven child model. |
You don't mark anything as critical in the Oven Type option class. | There won't be a bill of resources for the Oven Type. |
Assume the processing lead time for the Deluxe Stove is 2 days. Here's what your bill of resources will look like.
Item | Component | Type | Lead Time Offset | Usage |
---|---|---|---|---|
Burner Top | Burner Knobs | Item | 2 Days | - |
Warming Tray | Pull Handle | Item | 2 Days | - |
Oven | Resource02 | Item | 3 Days | - |
Here's how Promising uses the bill of resources that you just created.
- Determines whether the Deluxe Stove has a resource or a required component that you have marked as critical. This example doesn't, so it goes to the next step.
- Determines whether to include the option class in the bill of resources. If you mark a required component as critical, and if that component is in the class, then it includes the class.
- You marked the required component Burner Knobs as critical, Burner Knobs is in the Option01 class, so Promising determines availability for the Option01 class.
Scheduled Date equals December 26 (December 24 plus the configured item's 2 day lead time).