Building the Structure
The goal of the "Build" step is to define the tree-like structure of your Configuration Process. As such, you will use it to define the questions which have to be answered by the potential customer in order to buy a Configuration Process or Service.
The outcome is a fully defined sales script, in the form of a simple Configuration Process which can be tested immediately.
Define the Configuration Process project
When first entering the ”Build” step and clicking on the root Configuration Process in the « Explore structure » explorer, you will be able to specify (in the working area) the system properties of the Configuration Process.
Reference: You cannot use the “Build” step in order to define the business properties or the product links for the root Configuration Process. In order to do that, please refer to Design Catalogs.
The following table gives you an overview of the system properties you can define:
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
| Workspace | Yes | The virtual environment in which a Configuration Process has been created. In many cases, only one workspace is to be used. The workspace is fully determined by the workspace chosen in the dashboard. |
| Name | Yes | The identifier of the Configuration Process. The length of the name is limited to 64 bytes and is preferably readable. It is recommended to adopt a coding rule for names, e.g. have them start with a small letter and use a capital letter for every new word. Example: myConfigurableProduct |
| Description | Yes | The description will functionally describe the Configuration Process, and is limited to 4000 bytes. |
| Type | No | Allows assigning a user type to the Configuration Process, which can be used as a classifier in order to segment exports, to specialize the user interface at run-time, or for other purposes. Reference: For more information about user types, please refer to Define Object Classifications. |
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
| Root | Yes | This is a flag which indicates if the Configuration Process is a root Configuration Process (= a project) or not. Note: This flag, which is checked by default for a root Configuration Process, can be unchecked providing that you have the necessary “delete” access right for Configuration Processes. |
| Unit | No | Allows expressing the unit in which the product is sold. E.g. tissue can be sold by “linear meter” or by “square meter”. |
| Parent Sales Product | No | The Sales Product which is the parent of the root Configuration Process. |
Manage the sales script structure
Once the properties of your root Configuration Process have been defined, you can build its structure (i.e. organize the sales script) by:
- Creating forms, each of which represents a set of questions
- Creating form properties, which represent questions or calculations
- Define domains, which represent the set of possible values which can be answered to a question
- Reuse previously created Configuration Processes or forms and embed them in the structure
HOW TO ADD A CHILD CONFIGURATION PROCESS
A root Configuration Process can contain other Configuration Processes, which are considered as node Configuration Processes (or child Configuration Processes). Although these node
Configuration Processes can be complete projects on their own, they will be considered as a child in the current Configuration Process structure.
The following procedure enables you to create a new node Configuration Process in the project structure:
How-To:
- [In the Explore Structure explorer]
- Select the icon of the Configuration Process inside which you would like to create a child Configuration Process.
- [In the Explorer toolbar]
- Click on the button “New Configuration Process“
- [Via the “popup window”]
- Choose “Create new”
- Enter a name and a description for the Configuration Process you would like to create.
- Hit “Add” or “Add & Open” in order to create the Configuration Process
- The node Configuration Process is created and added to the root Configuration Process tree.
- (Optionally) complete the system properties of the newly created Configuration Process
- [In the menu toolbar]
Save
If you want to reuse an existing Configuration Process and embed it in the current product structure:
How-To:
- [In the Explore Structure explorer]
- Select the icon of the Configuration Process inside which you would like to create a child Configuration Process.
- [In the Explorer toolbar]
- Click on the button “New Configuration Process“
- [Via the “popup window”]
- Choose “Reuse existing”
- Choose a workspace
- (optionally) Choose a user type
- Enter part of the Configuration Process name or description and choose it in the proposed list. Hit “Add” or “Add & Open” in order to create the Configuration Process
- The node Configuration Process is added to the Configuration Process tree.
- Enter part of the Configuration Process name or description and choose it in the proposed list. Hit “Add” or “Add & Open” in order to create the Configuration Process
- [Via the menu toolbar]
- Save.Warning: Any modifications done on a reused form or Configuration Process will be available in every project they are used in. The following procedure enables you to copy-paste a node Configuration Process in the project structure:
- Save.
How-To:
- [In the explorer]
In Structure, select the icon of the node Configuration Process you would like to copy
OR
In Filter Objects, look up the node Configuration Process you would like to copy and select its icon
- [In the Explorer toolbar]
- Execute the Copy function
- [In the explorer]
- In Structure, select the icon of the Configuration Process under or inside which you want to position the new Configuration Process.
- [In the Explorer toolbar]
- Execute the Paste function after having chosen inside or below (depending on your needs)
- [In the popup]
- Enter a name and a description
- Click on OK.
- [In the working section]
- (Optionally) complete the system properties of the newly created Configuration Process
- [In the menu toolbar]
- Execute the Save function
Tip:
When duplicating a node Configuration Process (using copy-paste), the following objects are duplicated:
- The Configuration Process itself
- The rich media object attached to it
The following objects are reused:
- The forms attached to the Configuration Process
- The BRC attached to the original Configuration Process in the step Constraints
The following objects are not reused:
- The information and BRC positioned in the step Controls on the node Configuration Process (because this information is positioned on the link between the node Configuration Process and its parent)
SPECIFY THE NODE CONFIGURATION PROCESS ATTRIBUTES
Whenever you create a node or child Configuration Process, the following details can be updated in the working area:
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
| Workspace | Yes | The virtual environment in which a Configuration Process has been created. In many cases, only one workspace is to be used. The workspace is fully determined by the workspace chosen in the dashboard. |
| Name | Yes | The identifier of the Configuration Process. The length of the name is limited to 64 bytes and is preferably readable. It is recommended to adopt a coding rule for names, e.g. have them start with a small letter and use a capital letter for every new word. Example: myConfigurableProduct |
| Description | Yes | The description will functionally describe the Configuration Process, and is limited to 4000 bytes. |
| Type | No | Allows assigning a user type to the Configuration Process, which can be used as a classifier in order to segment exports, to specialize the user interface at run-time, or for other purposes. Reference: For more information about user types, please refer to Define Object Classifications. |
| Root | Yes | This is a flag which indicates if the Configuration Process is a root Configuration Process (= a project) or not. Warning: This flag, which is unchecked by default for a node Configuration Process, can be checked providing that you have the necessary “create” access right for Configuration Processes. |
| Unit | No | Allows expressing the unit in which the product is sold. E.g. tissue can be sold by “linear meter” or by “square meter”. |
HOW TO ADD A FORM
A Form is a coherent group of questions which address the same function, component, etc. Multiple forms can be added to a Configuration Process. In order to add a form to a Configuration Process, 2 procedures are possible.
The following procedure enables you to create a new form in the project structure:
How-To:
- [In the Explore Structure explorer]
- Select the icon of the Configuration Process inside which you would like to create a form.
- [In the Explorer toolbar]
- Click on the button “New Form“
- [Via the “popup window”]
- Choose “Create new”
- Enter a name and a description for the Form you would like to create.
- Hit “Add” or “Add & Open” in order to create the Form
- The form is created and added to the Configuration Process.
- (Optionally) complete the system properties of the newly created Form.
- [In the menu toolbar]
- Save
If you want to reuse an existing form and embed it in the current product structure:
How-To:
- [In the Explore Structure explorer]
- Select the icon of the Configuration Process inside which you would like to add a form.
- [In the Explorer toolbar]
- Click on the button "New Form"
- [Via the "popup window"]
- Choose "Reuse existing"
- Choose a workspace
- (optionally) Choose a user type
- Enter part of the form name or description and choose it in the proposed list. Hit "Add" or "Add & Open" in order to add the form
- The form is added to the Configuration Process.
- [In the menu toolbar]
- Save
The following procedure enables you to copy-paste a form in the project structure:
How-To:
- [In the explorer]
- In Structure, select the icon of the form you would like to copy
OR
- In Filter Objects, look up the form you would like to copy and select its icon
- In Structure, select the icon of the form you would like to copy
- [In the Explorer toolbar]
- Execute the Copy function
- [In the explorer]
- In Structure, select the icon of the Configuration Process in which or the form inside which you want to position the new form.
- [In the Explorer toolbar]
- Execute the Paste function after having chosen inside or below (depending on your needs)
- [In the popup]
- Enter a name and a description
- Click on OK.
- [In the working section]
- (Optionally) complete the system properties of the newly created form
- [In the menu toolbar]
- Execute the Save function
Tip:
The form itself including its form properties
The rich media object attached to it or to its form properties
The following objects are reused:
- The BRC attached to the original form in the step Constraints
- The BRC attached to the original form properties in the steps Structure and Controls
The following objects are not reused:
- The information and BRC positioned in the step Controls on the form (because this information is positioned on the link between the form and its parent)
SPECIFY THE FORM ATTRIBUTES
Whenever you add a form to the project structure, you can access and update its details in the working area:
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
| Workspace | Yes | The virtual environment in which a form has been created. In many cases, only one workspace is to be used. |
| Name | Yes | The identifier of the Form. The length of the name is limited to 64 bytes and is preferably readable. It is recommended to adopt a coding rule for names, e.g. have them start with a small letter and use a capital letter for every new word. Example: myForm |
| Description | Yes | The description will functionally describe the Form, and is limited to 4000 bytes. |
HOW TO ADD A FORM PROPERTY
A Form Property (FP) represents a question that will be answered by the end-user, or a calculation that will be shown to the end-user. In the “Structure” step, you will be able to define the question as
well as control the possible values which can be given as an answer.
How-To:
- [In the Explore Structure explorer]
- Select the icon of the form inside which you would like to create a form property.
- [In the Explorer toolbar]
- Click on the button “New Form Property“
- [In the popup]
- Enter a name, a description, a type and a valuation mode.
- Hit “Add” or “Add & Open” in order to add the form property to the form.
- The form property is created and added to the structure.
- (Optionally) complete the system properties of the newly created Form Property.
- [In the menu toolbar]
- Execute the Save function
The following procedure enables you to copy-paste a form property in the project structure:
How-To:
- [In the explorer]
- In Structure, select the icon of the form property you would like to duplicate
- [In the Explorer toolbar]
- Execute the Copy function
- [In the explorer]
- In Structure, select the icon of the form in which you want to position the new form property.
- [In the Explorer toolbar]
- Execute the Paste function after having chosen inside
- [In the popup]
- Enter a name and a description
- Click on OK.
- [In the working section]
- (Optionally) complete the system properties of the newly created form property
- [In the menu toolbar]
- Execute the Save function
Tip:
When duplicating a form property (using copy-paste), the following objects are duplicated:
- The form property itself
- The rich media object attached to it
The following objects are reused:
- The BRC attached to the form property in the steps Structure and Controlsinformation: A Form Property cannot be linked because it is considered as a weak object, meaning that it cannot be dissociated from its parent Form. However, form properties can be duplicated (by using copy-paste).
SPECIFY THE FORM PROPERTY ATTRIBUTES
Whenever you add a form property to the project structure, you can access and update its details in the working area. In this step, you will be able to define and/or update:
The System Properties of the Form Property, which define the basic characteristics of the Form Property
The Domain of the Form Property, which is decomposed in 3 parts:
- The Value Domain, which defines which values will be acceptable for this Form Property.
- The Quantity Domain, which defines which quantities are compatible with each possible value.
- The Comment Domain, which defines the comment to be associated to each possible value.information: In most circumstances, form properties will only require a value domain. However, for certain options (e.g. physical options to be added to a configuration), quantities will have to be expressed. E.g. in order to respect 1000 GByte hard drive space, you can provide 1 TByte disk, 2
500 GByte disks or even 3 320 GByte disks.
In certain circumstances, even though a list of possible values has been provided for an answer, the user might want to add personal comments. For instance, in order to specify a car color, the basic list {black, white, blue, green, red, yellow} might not be enough, in which case you would like the user to provide a personalized color code.
Defining System Properties
The following table explains the system properties of the form property:
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
| Name | Yes | The identifier of the Form Property. The length of the name is limited to 64 bytes and is preferably readable. It is recommended to adopt a coding rule for names, e.g. have them start with a small letter and use a capital letter for every new word. Example: myFormProperty |
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
| Type | Yes | Defines the type of value(s) that a form property can be set to. Possible types are: Text: stores a character string up to 128 characters Long Text: stores a character string up to 4000 bytes Boolean: stores a number value (0 or 1) corresponding to false or true Integer: stores a number value from -2147483645 up to 2147483645 as a multiple of 1. Numeric: stores a decimal value. All decimal values in CPQ respect the form NUMBER(16,10) Monetary: stores a price or a cost (a decimal value associated with a currency). All decimal values in CPQ respect the form NUMBER(16,10). Date: stores a date (month – day – year). The date entered needs to respect the international settings of the user. Url : stores a URL to a web page. URL’s must start with http:// or with https://. Object: stores an object using a complete identifier of the following form: workspace/type/name. Currently the type can be “Business Value” (BVAL),“Standard Item” (SI) or “Sales Product” (SP). Note: All decimal values in CPQ respect the form: "NUMBER(16,10)", in which: 16 designates the precision, or the total number of significant decimal digits. 10 designates the scale, or the number of significant digits to the right of the decimal point to and including the least significant digit. Example: the value entered as 1234567890,12345678 will be stored as 1234567890,123457. |
| Valuation mode | Yes | The valuation modes are the following: Simple (one value): the form property will store one unique value. This is used in most cases. The user will be allowed to enter a value or to select a value in a list. List (multiple values): the form property will store multiple values. The user will typically be allowed to select multiple answers in a list. If the form property is required, and if no lower bound has been set, at least one value will be necessary to complete the form property. |
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
| Layout | Yes | Specifies the presentation of the form property at run-time. The presentation of a form property is done using “value selectors”. |
| Description | Yes | The description will functionally describe the Form Property, and is limited to 4000 bytes. |
| Reference unit | No | Only used for integer or numeric form properties. It allows specifying the unit in which a certain number has been expressed. |
Defining the Value Domain
You will control in this section the possible answers to the question (i.e. its Domain).
Reference: For more information about domains, please refer to Business Rules and Constraints (BRC).
If no domain has been specified, the form property domain will be infinite, meaning that every possible value will be an acceptable answer. However, it will naturally be limited by the Form Property type (for instance, if the form property type is integer, only integer values will be possible answers).
If however you would like to restrict the domain to a subset of the values supported by the form property type, you can define a set of possible answers using one of the following methods: Domains can be specified by all or a subset of the following methods:
- Limiting the range of possible values: the domain of a numerical value can be restricted by defining a lower bound and/or an upper bound. It can also be restricted by defining it as a multiple of another numerical value.
- Example: a numerical value must be a multiple of 1.5, between -4 and +100.
- Enumerating the possible values: in this case, the possible values belonging to the domain are literally specified.
- Example: the possible values for a variable belong to the set {“Yellow”, “Green”, “Red”}. In this case a BRC must be used.
The following table specifies the attributes which will allow you to define a domain for the form property:
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
| Value Selection | No | Defines a domain as an enumeration of values, specified by a BRC. The BRC defining the domain can be “static”, meaning that it always provides the same values. In this case we will name it a list of values. However, if the possible values depend on other variables (form properties or external variables), the BRC will be “dynamic”. |
| Lower bound | No | Defines the lower bound of a domain for integer, numerical, monetary or date-based form properties. The lower bound can be given by a fixed value, or by a BRC. |
| Upper bound | No | Defines the upper bound of a domain for integer, numerical, monetary or date-based form properties. The upper bound can be given by a fixed value, or by a BRC. |
| Multiple of | No | Determines if the values belonging to the domain of integer, numerical or monetary form properties need to be a multiple of a numerical value. This attribute can be given by a fixed value only. |
| Default value | No | Determines the default value to be proposed by the configuration engine. The default value will not be automatically assigned by the system, but will be considered as a suggested value, which needs to be validated by the user. The default value can be given by a fixed value, or by a BRC. |
Defining the quantity domain
With each form property, in addition to the domain which is proposed by the system, a quantity can be associated.
The following table specifies the attributes which will allow you to define a domain for the quantity:
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
| Lower bound | No | Defines the lower bound for the quantity. The lower bound can be given by a fixed value, or by a BRC. |
| Upper bound | No | Defines the upper bound for the quantity. The upper bound can be given by a fixed value, or by a BRC. |
| Multiple of | No | Determines if the quantity should be a multiple of a numerical value. This attribute can be given by a fixed value only. |
| Default value | No | Determines if a default quantity should be proposed by the configuration engine. The default value will not be automatically assigned by the system, but will be considered as the default value selectable by the user. The default value can be given by a fixed value, or by a BRC. |
Defining the comment domain
With each form property, in addition to the domain which is proposed by the system, a comment can be entered or proposed.
The following table specifies the attributes which will allow you to define a domain for the comment:
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
| Comment | No | Determines the default value for the comment. E.g.: “Please enter your comments here”. The comment can be given by a fixed value, or generated by a BRC. |
HOW TO ADD A CONFIGURABLE BUNDLE
A root Configuration Process can contain a Configurable Bundle.
The following procedure enables you to create a new Configurable Bundle in the project structure:
How-To:
- [In the Explore Structure explorer]
- Select the icon of the root Configuration Process.
- [In the Explorer toolbar]
- Click on the button “New Configurable Bundle “ 0- [Via the “popup window”]
- Choose “Create new”
- Enter a name and a description for the Configurable Bundle you would like to create.
- Hit “Add” or “Add & Open” in order to create the Configurable Bundle
- The Configurable Bundle is created and added to the root Configuration Process tree.
- In case you hit the “Add & Open” button to validate the creation of the Configurable Bundle, you are redirected to the Configurable Bundle object process.
- [In the menu toolbar]
- Save
If you want to reuse an existing Configurable Bundle and embed it in the current product structure:
How-To:
- [In the Explore Structure explorer]
- Select the icon of the root Configuration Process inside which you would like to add a Configurable Bundle
- [In the Explorer toolbar]
- Click on the button “New Configurable Bundle“
- [Via the “popup window”]
- Choose “Reuse existing”
- Choose a workspace
- (optionally) Choose a user type
- Enter part of the Configurable Bundle name or description and choose it in the proposed list. Hit “Add” or “Add & Open” in order to create the Configurable Bundle
- The Configurable Bundle is added to the root Configuration Process tree.
- Enter part of the Configurable Bundle name or description and choose it in the proposed list. Hit “Add” or “Add & Open” in order to create the Configurable Bundle
- In case you hit the “Add & Open” button to validate the usage of the Configurable Bundle, you are redirected to the Configurable Bundle object process.
- [Via the menu toolbar]
- Save.
HOW TO ORGANIZE YOUR CONFIGURATION PROCESS
If you want to organize differently the structure of the Configuration Process, you can use the functions in the menu toolbar which allows moving up, moving down, or deleting objects.
Whenever deleting an element in the explorer, 2 situations can present themselves:
If the object is not used by any other project (or in another place in the same project), the Designer will identify that situation and propose one of the following actions:
Delete: in this case, the object will be removed from the structure and it will be deleted permanently afterwards.
Keep: in this case, the object will be removed from the structure, but will be kept in the Designer repository. You will be able to retrieve it (to reuse it or to delete it) by looking it up using the “Filter Objects” explorer.
If the object is reused by another project (or in another place in the same project), the link between the object and the project will simply be removed. The object itself will not be removed whatsoever. It will just cease to exist in the place you’ve removed it from.
