Order Decomposition EG v1.0
Order Decomposition EG v1.0
Decomposition
Exercise Guide
Version 1.0
Industries Order Management
Decomposition Exercise Guide
TABLE OF CONTENTS
Preface 4
Overview 4
What You Will Learn 4
Prerequisites 4
Decomposition Overview 5
Industries Order Management Decomposition 5
What is Order Decomposition? 5
Preface
These training exercises are based on the Spring ’22 release of Salesforce Industries
Communications, Media, and Energy & Utilities Clouds. For additional information about
the topics covered in this module, see the documentation available in Success Community
at https://success.vlocity.com.
Overview
This module covers fundamental features and functionality of the Industries Order
Management (IOM) application. This module has been designed to review basic Industries
Order Management concepts, the UI (user interface), as well as introduce technical
products in the Industries Shared Catalog.
This is a hands-on course with practical lab exercises. The lab exercises are designed to be
used with the provided training playground.
Prerequisites
The prerequisites for this module include a solid understanding of basic Salesforce concepts
and functionality. You should also have a good understanding of the principles of order
management and a working knowledge of the telecommunications, media, or energy and
utilities industry business objectives.
Decomposition Overview
Industries Order Management Decomposition
Industries Order Management offers comprehensive functionality across two primary areas:
BEST PRACTICE:
Salesforce Industries recommends designing your decomposition
relationships in a diagramming tool or a spreadsheet first rather than
designing them in the system. Like a good carpenter, you want to measure
twice and cut once! By doing so, you can review the decomposition design to
ensure that your decompositions are logical, efficient, and result in the fewest
fulfillment requests and callouts to external systems as possible.
Goal
● Decompose commercial orders into fulfillment requests
● Define decomposition relationships between commercial and technical products
● Translate commercial product attributes into decomposition attributes using
mapping rules
● Trigger decomposition using a condition rule
Tasks
1. Create a decomposition relationship between the Home Hub Modem and Home
Hub 2000 CFS technical product
2. Create a condition rule for the Home Hub Modem -> Home Hub 2000 CFS
decomposition relationship
3. Creating a static mapping rule for the Home Hub Modem -> Home Hub 2000 CFS
decomposition relationship
4. Test the decomposition relationship
5. Display Actions in Decomposition Results
Time: 25 mins
NOTE:
This exercise requires the completion of an earlier overview exercise (Creating
Technical Products in the Industries Shared Catalog).
ALERT:
If you’ve just received your training playground, add your email address to the
system administrator profile to ensure you receive all system notifications. In
the upper-right, click on the Avatar and select Settings. Enter your email
address in the Email field on the Personal Information page and click Save.
NOTE:
Decomposition Relationships are defined using the Products screen, not the
Product Console.
In this exercise, you will build a one-to-one relationship between the Home Hub Modem
and the technical product you created previously, the Home Hub 2000 CFS.
2. In the search results list, click Home Hub Modem. (Or use the Search feature from
the Salesforce Products tab.)
Decomposition Relation Name Home Hub Modem -> Home Hub 2000
CFS
6. Click Save.
Task 2: Create a condition rule for the Home Hub Modem -> Home Hub
2000 CFS decomposition relationship
In Infiwave’s scenario, the Home Hub Modem’s Grade attribute will be evaluated. The values
of this attribute can be either Good or Better. If they select Good or Better, they will be
provisioned the Home Hub 2000 CFS. The truth is, Greg knows when the new Home Hub
3000 is released it will provide customers with the best throughput option, but he’ll have to
figure that out later.
NOTE:
When condition rules are evaluated against values from an attribute picklist,
the matching algorithm evaluates the VALUE property of the picklist. (Not the
LABEL. However, often the VALUE and the LABEL are the same.)
1. Click the Home Hub Modem -> Home Hub 2000 CFS decomposition relationship
that you just created. Scroll down and locate the Conditions section, and make sure
it is expanded.
NOTE:
When configuring conditions, both simple and complex Boolean expressions
are supported. By default, No Condition is put in place.
2. Click the down arrow for the No Condition option, then click OR.
The left and right side of an OR expression is started for you. The user interface (UI) will
help you fill out the rest of the boolean expression.
3. Click in the first empty field of the expression. This is where you specify the product
and attribute for the conditional expression.
4. Click on the Internet Services-Grade attribute, then click Select. (The product is
already selected for you.)
With the product and attribute selected, you are ready to fill out the rest of the mapping
information.
5. Make sure the Operator is set to = then enter Good in the last field.
6. Fill out the second condition similarly, but enter Better in the last field.
Now that you’ve defined the decomposition relationship and the condition to control when
it fires, you can create mapping rules to provide data to the fulfillment requests that will
result as a part of the decomposition process.
Task 3: Create a static mapping rule for the Home Hub Modem ->
Home Hub 2000 CFS decomposition relationship
Next, you’ll create a static mapping rule to provide the modem standard code for the Home
Hub 2000 modem product. This rule will specify that any time this decomposition
relationship fires, the decomposition process will set the Modem Standard attribute to
“G.992.3;G.992.5.”
4. Then, enter the following information. (For the Destination Attribute, use the search
dialog to select the Modem Standard attribute.)
Attribute/Field/Value G.992.3;G.992.5
5. Click Save. (Note the Source Type will switch from Attribute to blank once saved.)
Notice the Condition Data and Mappings Data fields are now populated with JSON to
reflect what you configured in the UI.
At this point, you’ve created a decomposition relationship between the Home Hub Modem
and the Home Hub 2000 CFS. During decomposition, this relationship will function as a
one-to-one relationship, and when the customer orders the Home Hub Modem with an
internet grade of “Good” or “Better”, they will receive the Home Hub 2000 CFS. Let’s test it
to make sure it’s working as planned!
2. Click New.
4. Click Save.
5. Select Configure Order in the Power Launcher. This will launch the cart.
TIP:
In the Power Launcher, you can also scroll to see additional options, or begin
typing and the launcher will help you narrow in on related options. For
example, type view. Several options beginning with “View” are displayed.
Notice View Decomposition. Orders can only be decomposed one time. With
this option, you can view previously decomposed orders though.
6. In the PRODUCTS panel, find Home Hub Modem, and click Add to Cart.
7. On the red notification message, click the Take Me There icon to invoke the
configuration window.
9. Click Close.
NOTE:
The Decompose Order action and button are provided for testing, training,
and debugging purposes. In a production environment, the decomposition
process typically happens automatically when the order is submitted from
CPQ to IOM and would then immediately kick off the orchestration process.
Depending on your browser configuration, you may need to allow pop-ups to
decompose the order.
This action will invoke the decomposition process and bring you to the Order
Decomposition page, which lets you visualize the results of the decomposition process. On
the left side, you can see the Source Orders and on the right side, you can see the
decomposed fulfillment requests.
11. On the Source Orders side, click the link icon next to the Home Hub Modem.
The highlight shows the link between the source order and the decomposed
fulfillment request. In a simple order like this, it may not seem impressive; but in a
larger order, it certainly is!
Notice that the Home Hub Modem with the Grade attribute set to Better was successfully
decomposed to the Home Hub 2000 CFS, and the static mapping rule set the Modem
Standard (G.992.3;G.992.5) attribute value correctly.
Just to be thorough, test another decomposition relationship by placing another order, but
this time configure the Grade attribute to “Good”. After decomposing the order, you should
see the Home Hub 2000 CFS product beneath the Decomposed Fulfilment Requests. The
Modem Standard attribute should be set to “G.992.3;G.992.5” as well. Recall that the
condition rule configured earlier was if the Grade was set to “Good” OR “Better” then the
Home Hub Modem should be mapped to the Home Hub 2000. That is why both orders
have similar decomposition results. Don’t worry, that is about to change.
TIPS:
To easily test other attribute configurations, Clone the first order, and then
launch the cart to add the modem. Remember to change the new order’s
name and set the Status to Draft. You cannot save a cloned order when the
Status is already Activated.
2. Click the link in the Order Number column corresponding to the Home Hub 1:1
Order you just created.
3. Enter View Decomposition and select it from the Power Launcher. The Order
Decomposition results for the Home Hub Modem order are displayed again.
4. Click the gear icon in the upper right and then click the Show Actions checkbox.
Notice the Add action associated with the Home Hub Modem line item (commercial
product) and the Home Hub 2000 CFS (technical product). These are basic results from a
basic order. However, if there were additional line items in the order, they would be
displayed as well along with their actions. Most orders contain line items that are added to
them in similar fashion. However, later on you will learn about other actions when more
complex orders are decomposed and fulfilled using Industries Order Management (IOM).
For example, MACD (Modify Add Change Delete) orders and in-flight order cancellations.
The product combined with the action are both critical when it comes to order fulfillment,
which is carried out by the orchestration component of IOM. Enough of that for now! You
will be stepped through the details later. For now, just realize you are free to toggle the
display of actions as you see fit.
Goal
● Transition the existing one-to-one product model to a one-to-many model
● Copy, paste, and modify existing JSON data for a new technical product
● Learn more about the IOM user interface (UI)
Tasks
1. Create a decomposition relationship between the Home Hub Modem and Home
Hub 3000 CFS technical product
2. Create condition and mapping rules by editing the JSON data
3. Test the decomposition relationships
Time: 25 mins
NOTE:
This exercise requires the completion of an earlier overview exercise (Creating
Technical Products in the Industries Shared Catalog).
1. Use Search or the Products tab and return to the Home Hub Modem’s Related tab.
Decomposition Relation Name Home Hub Modem -> Home Hub 3000
CFS
NOTE:
Condition and Mappings Data can be entered in JSON format directly when
creating a new decomposition relationship, but be warned—every comma,
colon, and curly brace counts! That is why the previous exercise used the UI to
configure and generate the data. Less potential for pesky syntax errors! (It’s
nice to know you have options though.)
4. Click Save.
At this point, you’ve created decomposition relationships between the Home Hub Modem
and two technical products, the Home Hub 3000 CFS and the Home Hub 2000 CFS. During
decomposition, these relationships as they are currently defined will function as a
one-to-many relationship, and when the customer orders the Home Hub Modem, they will
get the Home Hub 2000 CFS and the Home Hub 3000 CFS.
But, obviously, they don’t need two modems, right? You must create the logic for the
decomposition process to decide which modem they need. You will do this with condition
rules for the decomposition relationship you just created for the new Home Hub 3000
modem.
For Infiwave’s scenario, the Home Hub Modem’s Grade attribute will be evaluated. The
values of this attribute are Good, Better and Best. If the customer selects Best, they should
be provisioned with the Home Hub 3000 CFS product. If they select Good or Better, they
will be provisioned the Home Hub 2000 CFS. You will complete the configuration next, and
learn a new trick along the way.
Task 2: Create condition and mapping rules by editing the JSON data
You just learned the basics for setting up conditions and mapping rules for decomposition
relationships. This time you’ll learn a new trick: copy, paste, and modify. That is, use existing
JSON data to copy, paste, then modify either directly or in the UI as needed for a slightly
different product.
NOTE:
This “trick” is optional. Creating conditions and mapping rules from scratch
with the UI is always available to you. Condition and Mappings Data can be
entered in JSON format directly when creating a new decomposition
relationship, but the syntax can be a challenge!
1. Navigate to the Home Hub Modem -> Home Hub 2000 CFS decomposition
relationship you created earlier.
2. Scroll to the Advanced section and expand it so you can see the Condition Data and
Mappings Data.
TIP:
When copying and pasting JSON data, you can use any text editor as a
temporary buffer. However, using a free website such as www.jsonlint.com
works well, especially if you want to validate the JSON and have it formatted
so it is easier to read. IOM permits unformatted JSON. It has to be valid of
course, but a single string run together is perfectly fine. This lab uses two
browser tabs with jsonlint.com (but again, this is not mandatory).
3. Open up www.jsonlint.com in two browser tabs. You will use one for Conditions
Data and the other for Mappings Data.
5. Place your cursor in the Condition Data field. Copy all of the JSON.
TIP:
You can click, scroll and select with your mouse, but it’s even easier to use the
following to select and copy everything into a buffer:
● Command+a Command+c (on a Mac)
● Control+a Control-c (on a PC)
Later, to paste data from the buffer:
● Command+v (Mac)
● Control+v (PC)
6. Paste the Conditions JSON into the left-most jsonlint.com browser tab. (Organizing
the left and right this way parallels the page layout in the decomposition
relationship, so it is less error prone.)
7. Place your cursor in the Mappings Data field. Copy all of the JSON.
8. Paste the Mappings JSON into the right-most jsonlint.com browser tab.
9. Click Cancel to avoid accidental edits on the Home Hub Modem -> Home Hub
2000 CFS decomposition relationship.
Both should be valid and formatted JSON. Next you can use the Home Hub 2000 JSON
data as a starting point for the Home Hub 3000 data.
11. Navigate to the Home Hub Modem -> Home Hub 3000 CFS decomposition
relationship you created earlier.
12. Scroll to the Advanced section and expand it so you can see the Condition Data and
Mappings Data.
13. Click the pencil icon so you can edit the Condition Data and Mappings Data.
14. Paste in the Condition Data from the left-most jsonlint.com browser tab (what was
originally from the Home Hub 2000).
15. Paste in the Mappings Data from the right-most jsonlint.com browser tab.
16. Click Save and then refresh your browser. With the JSON data saved, scroll down and
notice the Mapping Rules and Conditions sections are filled out. You are ready to
modify it using the UI so it is correct for the new Home Hub 3000 modem. (This
time you will tackle Mappings first, because it is a bit simpler.)
17. Click the pencil icon to edit the existing Mapping Rule. Change the
Attribute/Field/Value to G.993.2 and click Save. (Note: The trailing “.” is
punctuation, and should not be entered in the field.)
18. Click the garbage can icon to delete the first Single Condition (e.g. “Good”).
If you refresh your browser and view the Condition Data again, the JSON reflects the
changes you just made via the UI. You will also notice there is still a logical OR in the JSON,
but only one grade attribute (“Best”) when there used to be two (“Better” and “Best”).
Technically, this is valid JSON, and it will produce the correct results for the decomposition
relationship. However, some may not sleep well without elegant JSON, so the next step will
clean it up (and reinforce the fact you can copy, paste, and modify JSON via the UI and/or
directly without hindering IOM at all).
20. Remove the following four lines from the JSON in the Conditions Data:
NOTE:
The following screen-shots are provided to make the before and after JSON
very clear. They use formatted JSON (from jsonlint.com) inside an expanded
Conditions Data field. (Notice the handle in the lower right of the field that
allows you to scroll for a larger view, able to accommodate formatted JSON.)
You are ready to test out the new decomposition relationship which helped transition from
a one-to-one to a one-to-many model.
2. Click New.
4. Click Save.
6. In the PRODUCTS panel, find Home Hub Modem, and click Add to Cart.
7. On the red notification message, click the Take Me There icon to invoke the
configuration window.
9. Click Close.
Once again, this action will invoke the decomposition process and bring you to the Order
Decomposition page.
11. On the Source Orders side, click the link icon next to the Home Hub Modem.
The highlight shows the link between the source order and the decomposed
fulfillment request.
This time the Home Hub Modem (commercial product) with the Grade attribute set to Best
was successfully decomposed to the Home Hub 3000 CFS (technical product), and the
static mapping rule set the Modem Standard (G.993.2) attribute value correctly.
Time and interest permitting, place additional orders. If the Grade attribute is set to “Good”
or “Better” the result is the Home Hub 2000. When set to “Best” it is the Home Hub 3000.
Goal
● Streamline fulfillment requests using many-to-one (M:1) decomposition and product
scope
● Specify source fields in decomposition relationships
● Configure ad-verbatim and list mapping types in decomposition relationships
Tasks
1. Review the M:1 decomposition design
2. Create the M:1 decomposition relationships
3. Test the new M:1 decomposition relationships
Time: 30 mins
This type of decomposition is triggered by setting the Scope field on the product entity to
“Account”.
ALERT:
If you have attributes that have the same name when using a M:1
decomposition relationship, only the value from the most recently modified
attribute will be decomposed in the request. Thus, when designing your
product model, it is important to ensure that any attributes intended for use in
a M:1 decomposition relationship have unique names.
6. Click Save.
10. Click + Add New Rule, and scroll down to the second mapping rule entry fields.
11. In the mapping rule dialog, set the Source Type to Field.
12. To set the Source Field, click the search icon, and then click the following in the
FIELD SELECTION dialog:
a. Order ID<OrderId>
b. Account ID<AccountId>
c. Account Name<Name>
14. Complete the rest of the rule by entering the following information.
Field / Property Value
15. Scroll to the top of the Mapping Rules section, and click + Add New Rule.
17. In the mapping rule dialog, set the Source Type to Field.
18. To set the Source Field, click the search icon, and then click the following in the
FIELD SELECTION dialog:
a. Order ID<OrderId>
b. Account ID<AccountId>
c. Shipping Street<ShippingStreet>
20. Complete the rest of the rule by entering the following information.
Field / Property Value
21. Scroll to the top of the Mapping Rules section, and click + Add New Rule.
23. In the mapping rule dialog, set the Source Type to Field.
24. To set the Source Field, click the search icon, and then click the following in the
FIELD SELECTION dialog:
a. Order ID<OrderId>
b. Account ID<AccountId>
c. Shipping Zip/Postal Code<ShippingPostalCode>
26. Complete the rest of the rule by entering the following information.
Field / Property Value
28. Scroll up to the top of the page, and under Destination (Product), click the link to
the Installation System Resource product.
30. In the Decomposition Relationships (Destination Product) related list, click New.
31. In the New Decomposition Relationship dialog, enter the following information.
Field / Property Value
33. Click the link to the new decomposition relationship that you just created.
Best VDSL2+
Better ADSL2+
Good ADSL
40. Scroll to the top of the Mapping Rules window, and click + Add New Rule.
41. Scroll down to the second mapping rule entry fields, and set the Source Type to
Field.
42. To set the Source Field, click the search icon, and then click the following in the
FIELD SELECTION dialog:
44. Complete the rest of the rule by entering the following information.
Field / Property Value
5. Click Save.
7. Click New.
9. Click Save.
10. Select Configure Order in the Power Launcher to launch the cart.
11. In the PRODUCTS panel, find the Installation product, and click Add to Cart.
12. In the PRODUCTS panel, find the Home Hub Modem product, and click Add to
Cart.
13. In the red notification message, click the Take Me There icon to invoke the
configuration window.
16. Now that both products are in the cart, click Decompose Order.
17. On the Order Decomposition page, click the link icons to review the linked
fulfillment requests.
18. Notice that the Installation product has been decomposed to the Installation
System Resource, and the Home Hub Modem has been decomposed to the
Installation System Resource as well, albeit with different attributes. (Recall that the
Home Hub 3000 CFS fulfillment request also appears as a result of the
decomposition relationship we created in a prior exercise.)
Notice the Installation System Resource is part of two Fulfilment Requests. For efficiency in
the callout processing, you can combine the Installation System Resource into one
fulfillment request by setting the Scope field on the destination product (which is the
Installation System Resource).
Now create a new order so you can review the effects of the Scope field on the
decomposition.
31. Find the Installation and Home Hub Modem products in the PRODUCTS panel and
add them to the cart. (Remember to click on the Take me there icon, set the Grade
to Best, and then close out the window. You can’t decompose the order until all
required attributes are filled out.)
34. Notice that there is now only one fulfillment request for Installation System
Resource and the attributes have been combined.
Goal
● Create multiple levels of decomposition relationships
Tasks
1. Review multi-level decomposition design
2. Create first level (source) decomposition relationships for the DSL service product
spec
3. Configure first level decomposition relationships
4. Create third level (destination) decomposition relationships
5. Configure third level decomposition relationships
6. Test the new multi-level decomposition relationships
Time: 30 mins
With this kind of product model, you will need multi-level decomposition relationships to
fully translate the commercial product entity through the CFS or RFS product entity and on
to the resource product entity that will make the callout.
BEST PRACTICE:
Salesforce Industries recommends that you design no more than 4 levels in
your decomposition relationships in order to minimize both complexity and
the impact on performance.
a. Notice the commercial product, DSL Service, will be decomposed into one of
two CFS product entities, based upon the Download Speed attribute set in
the customer order.
b. The 2nd level product entities are then decomposed into resources in the 3rd
level.
NOTE:
This exercise uses a Picklist for the Download Speed attribute. It was created
for you in the training playground.
8. Click Save. You have created two new first level decomposition relationships that are
ready to be configured.
Now you can configure the transform for the list Mapping Type.
4. Click + Add New Transform/Mapping and change to the following transform values.
5. Click Save.
NOTE:
When creating a mapping or transform rule that evaluates an attribute with a
picklist, the decomposition process will evaluate the source value entered in
the mapping rule against the picklist VALUE of the attribute. The matching
algorithm is case-insensitive.
6. Expand the Conditions section and set the condition type to Single Condition.
operator =
Value 40Mbps
8. Click Save Conditions. Now you will configure the other decomposition relationship.
10. Click + Add New Rule. Similar to the steps at the start of this Task, add two new
rules. This time, you will also add two transforms for the Traffic Code.
12. Expand the Conditions section and set the condition type to OR.
operator =
Value 12Mbps
operator =
Value 20Mbps
With these rules in place, the Connection Type attribute on the DSL Service product will be
copied directly to the Connection Type attribute on the CFS products. Additionally,
Download Speeds will be transformed into Traffic Codes for ADSL2+ and VDSL2 CFS
technical products.
ALERT:
When evaluating values, every character matters. For example, the inclusion
(or exclusion) of white space is factored in. (“12 Mbps” is not equal to
“12Mbps”.)
Now you can move on to creating Destination Decomposition Relationships. (That is, for the
Level 3 products in the original multi-level product model diagram shown earlier.)
TIP:
Configuring multi-level decomposition relationships can be complex.
Sometimes it is helpful to test decomposition as you build out each level.
● Place an order for DSL Service and configure the Download Speed to 20Mbps.
Decompose the order. Does it look correct thus far?
● Place an order for DSL Service and configure the Download Speed to 40Mbps.
Decompose the order. Does it look correct?
In our example, we can see that we have multiple decomposition relationships that must
be created from 2nd level products to 3rd level products. Note, however, that this is not a
one-to-many (1:M) relationship because at run-time, only one product will be selected at
the 2nd level of decomposition, and that single product will be decomposed using the
appropriate decomposition relationship.
5. Click Save.
13. In the Decomposition Relationships (Destination Product) related list, click New.
14. In the New Decomposition Relationship dialog, enter the following information.
16. In the New Decomposition Relationship dialog, enter the following information.
You have created the four level 2 to level 3 decomposition relationships from the original
decomposition relationship data model. Now you are ready to configure them accordingly.
NOTE:
In the interest of time, the mappings and conditions for the 2nd to 3rd level
decomposition relationships are kept simple. However, everything you have
learned thus far could be applied to multi-level decomposition relationships
as well. (Such as the ability to map fields or attributes to attributes, set up
conditions, copy/paste/modify conditions and mappings or build them from
scratch in the UI, etc.)
6. Click Save.
No further changes are needed from the attributes already mapped from the 1st to the 2nd
level. Configure a similar mapping for the Bonded Copper Pair Resource.
These decomposition relationships will decompose the DSL service CFS product entities in
the 2nd level to the local loop resources in the 3rd level. Neither of the Copper Pair
relationships need a condition. None of the DSLAM Port relationships need further
mapping or conditions, so you are ready to test out your multi-level decomposition
relationships!
2. Click New.
4. Click Save.
6. In the PRODUCTS panel, find the DSL Service product, and click Add to Cart.
7. In the red notification message, click the Take Me There icon to invoke the
configuration window.
9. Click Close.
11. In the Order Decomposition page, click the link icon next to DSL Service to highlight
the linked request.
Because you selected “40 Mbps” for the Download Speed attribute, the DSL Service is
decomposed to the VDSL2 CFS product, and the Download Speed should have been
translated to a Traffic Code, as in the screenshot below. Further, the VDSL2 CFS should have
been decomposed to the Bonded Copper Pair Resource and the DSLAM Port Resource.
12. Notice that the VDSL2 CFS Fulfilment Request also has a link icon. Click the link icon
to see what it decomposes to.
As shown above, both DSLAM Port Resource and Bonded Copper Pair Resource are
highlighted.
13. Now go back and further test the DSL Service by placing an order with other
download speeds (12Mbps or 20Mbps), to ensure that the other decomposition
mappings and conditions are working.
Goal
● Create a new product in the shared catalog with a record type of Class (e.g. Product
Class)
● Associate similar commercial products with a Product Class
● Create a decomposition relationship that leverages attributes and inheritance of
Object Types to decompose based on a Product Class
● Verify the decomposition works correctly
Tasks
1. Review the product class decomposition model
2. Create a product class
3. Link cloud storage products to the product class
4. Create a decomposition relationship between a product class and the technical
product
5. Test the product class decomposition relationship
Time: 45 mins
NOTE:
The focus of this exercise is on new concepts, indicated by the shaded gold
box in the diagram above.
c. Look at the Cloud Storage Class product class. This product class is the key to
set up a single decomposition relationship for similar products. The Cloud
Storage Class product class is the source product in the decomposition
relationship.
d. Technical Cloud Storage is the destination product in the decomposition
relationship. Regardless of the child product in the bundle selected for an
order (based on the storage limit), this one decomposition relationship is all
that is needed to decompose the order to fulfillment requests.
Creating a new product class is the key to this exercise. Without it, you would have to create
a decomposition relationship for each similar individual commercial product that needs to
be decomposed to the same technical product. In this task, you will create a new Cloud
Storage Class and set its record type to Class (not the default Product). Later, it will be used
as the source part of the decomposition relationship.
NOTE:
Products with record types of Class do not display in the product list of the
Cart.
3. In the New Product dialog, fill out the following Object Type and General
Properties information.
Field Value
4. Click Save.
5. From the General Properties facet, fill out the following additional General
Properties information.
Field Value
Status Active
Field Value
Active ✔
Note that when selecting a date, the time is automatically populated. You can leave the
default time.
7. Click Save. Once saved, you are placed in the General Properties facet of the new
product. (Note: Please disregard any slight differences in the layout of your fields,
including the appearance of the Product Family field. This field is not needed or used
in this or any labs in this course.)
8. Click the Attribute Properties facet. Notice the Storage Limit attribute has been
inherited from the Cloud Storage Product Spec object type. Isn’t object inheritance
a beautiful thing? Set it up once, reuse it as needed.
9. Click the Details link adjacent to the Storage Limit attribute. Notice the Attribute
Metadata includes a Storage Unit picklist, with several storage limit values (100GB,
1TB, etc.). These values will be passed from the child products through the product
class to the technical product.
Referring back to the diagram, your new Cloud Storage Class has the Storage Limit attribute
now. However, by default, new products are created with a record type of “Product”, and it
needs to be “Class”. You’ll tackle that next.
12. Notice the Product Record Type is set to the default value (Product).
13. Click the Change Record Type icon for the Product Record Type field.
14. Make sure the Change Product Record Type is set to Class and click Next.
Now your product class is created and configured properly. It’s time to associate the child
products in the bundle with the product class.
NOTE:
The product bundle is not important with respect to the configuration in
getting product class decomposition relationships to work. The tiered storage
products don’t have to be part of a bundle. They could be individual products,
and this exercise would still work fine.
1. In the tab navigation bar, click Products, and then All Products in the List Views
dropdown.
Notice the Parent Class field is currently null. That is about to change.
5. Click Save.
6. Repeat the same process, setting the Parent Class to Cloud Storage Class for Cloud
Storage – 1TB (and 10TB) products. Remember to save changes for both products.
Of course, all setup and configuration processes are important, but establishing the
relationship between the commercial products and the parent class like this is critical. So is
the actual decomposition relationship, which is the last task before testing everything from
end to end.
1. Navigate to Products > All Products view, and select Cloud Storage Class.
Field Value
5. Click Save.
Field Value
9. Click Save.
This decomposition relationship will map the Storage Limit attribute of Cloud Storage Class
(which is the source) to the Storage Class attribute of Technical Cloud Storage (which is the
destination), and the ad-verbatim mapping rule essentially says don’t change the data at all.
The mapping value will pass through unchanged. Now you are ready to test everything.
2. Click New.
3. In the New Order dialog, enter the following information. (Note the price list is B2B
this time, not B2C!)
Field Value
4. Click Save.
Notice the design-time attribute for the storage limit can be added to the order with a
single click.
NOTE:
Long product names are sometimes displayed with an ellipsis. If you can’t see
the entire name, such as the 100GB, 1TB, or 10TB above, simply hover over to
see the entire product name.
7. Add any one of the child products to the order. (The example shown is based on the
100GB tier, but which one you select is not important.)
NOTE:
Occasionally a browser refresh may be required to see the decomposed order.
9. Create another new order. This time add either one of the other child products
(Cloud Storage – 1TB or 10 TB) from the cloud storage bundle to the cart.
10. Decompose the order. The same decomposition relationship is used to decompose
to the same fulfillment request as the previous order, despite different commercial
products being added to the order. Notice the Storage Limit attribute should differ
on the fulfillment request, depending on which child product is selected. This was
passed through from the commercial product, via the product class, with the
decomposition relationship configured earlier.
Your training playground has a simple Shared Catalog. But even in our simple training
playground, it’s easy to see the benefit that is gained by using product class decomposition
relationships!
Goal
● Repeat key concepts just learned to become more familiar with the mechanics of
creating multiple-level decomposition relationships
Tasks
1. Review the modified multi-level decomposition relationships
2. Use the Creating Multi-level Decomposition Relationships exercise as a guideline for
configuring the multi-level relationship in this challenge
3. Test the decomposition relationships
4. Test an ad-verbatim mapping of an attribute (that is a picklist)
Time: 60 mins
● Minimal help – Primarily use the diagram above and the decomposition skills
learned earlier to build out all the needed decomposition relationships. Look at the
relationships in IOM as needed.
● Maximal help – Read through the steps in the exercises and view the relationships
you built out earlier in IOM as you work through this Challenge.
Minimal or maximal help? Either approach is perfectly fine and up to you. Rumor has it (and
backed up by his last status report) that Chad first used maximal help. Then he circled back
and completed the Challenge again with minimal help. Well done Chad!
2. As shown in the product model diagram (and implied in the mapping above), use
7Mbps as the download speed in the condition.
NOTE:
Look at the product model diagram for this Challenge. The 2nd level CFS’ use
ADSL CFS, ADSL2+ CFS and VDSL2 CFS. However, there is another ADSL2 CFS
in your training playground. ADSL2 CFS is not used in this Challenge. It is used
in an Orchestration exercise later on. (You can ignore it.)
1. Create an order and add DSL Service to the cart. Set the download speed to 7Mbps.
1. Notice the default Connection Type on the order for DSL Service is Dynamic.
2. Place another order for DSL Service, but this time set the Connection Type to Static.
(Set the download speed to whatever you want.)
3. Before decomposing the order, having seen how it was mapped when set to
Dynamic, what do you think it will map to when set to Static?
4. Decompose the order. Did it map to what you thought it would? Perhaps not! (That’s
ok, Greg was fooled at first too!)
HINT
Use the Vlocity Product Console to look up the Connection Type picklist. View
the Picklist Items facet.
In this example, an attribute that is a picklist is mapped ad-verbatim. When the Connection
Type is set to Dynamic, the attribute is mapped to Dynamic as well. However, when changed
to Static, the mapped attribute is Static IP (not Static). It’s important to realize that although
the Label and the Value are often the same (as they are when the Connection Type is set to
Dynamic), they don’t have to be. Further, it’s the Value that is critical here. The Value stored
in the Attribute/Field is mapped to the destination (not the Label).