Configuration Components
configurationBox
OVERVIEW
The configuration box is an essential component of your page layout. It describes the way your end-user dialog will be displayed. The questions of this dialog (called Form Properties) are organized in Forms (FO).
Warning:
You can only insert one configuration box per configurationPage. Form, FormProperty boxes and valueSelectors can only be used in the context of a configurationBox.
A configuration Box contains one or several formBoxes having one or several formPropertyBoxes
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: configurationBox visible or not | on / off |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| widthPercent: percentage of occupancy in the total width of the container/page | #IMPLIED | |
| heightPercent: percentage of occupancy in the total height of the container/page | #IMPLIED | |
| autoSize: (Cf. Appendix C – UI brick positioning) | on / off | |
| hzAlignment: gives the horizontal alignment of the box in its container/ page | left / right / center / justified | |
| vtAlignment: gives the vertical alignment of the box in its container/ page | up / down / middle / distributed | |
| titleTranslationName: identifier of the translation used to give the title of the box | #IMPLIED | |
| titleResourceName: identifier of a resource used as a title | #IMPLIED | |
| keyBoardNav: keyboard Navigation activated or not | on / off | |
| initialState: indicates how form boxes have to be initially displayed | firstExpanded / allCollapsed / allExpanded | |
| autoCollapseExpand: enables the auto-collapsing/expanding of formBox(es). | on / off |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| displayPolicy: indicates if the configuration box contains all the forms contained under the current CP (‘firstLevel’), or all the forms contained in the currentCP and all its sub-CPs (recursively) (‘allLevels’). | allLevels / firstLevel | |
| formBox | formBox |
VISUAL IDENTITY
In the standard theme, the class configBox (in configBox.css) allows to specify the default colors for texts appearing in the forms and form properties. Moreover, the layout of the configurationBox is similar to the combinedBox. You can personalize the header and corners background, the borders…
formFlyer
OVERVIEW
A formFlyer pops up a formBox which aims at displaying a specific form of the configuration dialog.
The main goal and recommended usage of the formFlyer is to act as an additional guided selling tool, to display a set of questions (most of the time optional) in order to guide the end-user while filing the configuration dialog.
Do Not:
The formFlyer must not be used as a substitute of the standard configurationBox which is the only UI component designed to support the rendering of the full configuration dialog
The best practice is to use a maximum of 10 formFlyers along the configuration process.
Reference:
The formFlyer can be called from any actionBox or linked action. Please refer to: How to use Flyers for more details
$CURRENT_FORM, the formFlyer displays the formBox of the current instance of the nested form.
Warning:
As the OPEN_FLYER action can call all kind of flyers, the names of these flyers have to be unique in the XML file.
Moreover, when the formFlyer is linked to a specific Form (as defined by the ‘cpeObject’ attribute and not equal to “$CURRENT_FORM”), this form is not displayed in the various selectors (selectorBar, vtSelector etc…) and can only be accessed by activating the corresponding OPEN_FLYER button.
Do Not:
Only 1 form flyer can be opened by the end-user at a given time.
Moreover, to ensure that the redirections to Forms or Form properties contained in a formFlyer are possible, it is necessary to declare the formFlyer in every page (home/configuration/summary...) of the layout file.
From version 11.1, Next/Previous policies are active while the user is in a formFlyer but their scope is limited to this flyer (the user will not be redirected outside of the flyer).
Tip:
formFlyers default position in the screen can be configured through attributes (See below). formFlyers can also be repositioned manually once displayed. To keep the formFlyers display consistent, their position is reinitialized each time a new Catalog or Configuration session is started.
When closing a formFlyer, the focus is automatically set on the current Form Property in the Configuration page.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: formFlyer visible or not | on / off | |
| name: identifier of the Flyer. This name is used as a parameter of the OPEN_FLYER action. | #IMPLIED | |
| resizable: flyer resizable or not | on / off | |
| titleTranslationName: identifier of the translation used to give the title of the flyer | #IMPLIED | |
| titleResourceName: identifier of the resource to be displayed in the title of the flyer. | #IMPLIED | |
| vtPosition: gives the vertical position of the flyer in the screen | up / middle / down / auto |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| hzPosition: gives the horizontal position of the flyer in the screen | left / center / right / auto | |
| vtSize: gives in pixel the vertical size of the flyer | #IMPLIED | |
| hzSize: gives in pixel the horizontal size of the flyer | #IMPLIED | |
| cpeObject: specifies the CPE of the form to be displayed in the flyer. | #IMPLIED (or “$CURRENT_FORM” when called from nestedFormBox) | |
| basedOn: name of a formFlyer on which the current formFlyer definition is based. | #IMPLIED (See below) | |
| formBox | A formBox can be inserted in the formFlyer. | #REQUIRED |
Example:
XML Sample
<formFlyer resizable="on" cpeObject="CPE.wks/CP/myRootCP.wks/CP/mySubCP.wks/FO/myFOFlyer" name="config.formFlyer" mode="on" cssName="flyer" hzPosition="center" vtPosition="middle" hzSize="600" vtSize="400" titleResourceName="" titleTranslationName="sigFlyer.title">
<formBox mode="on" cssName="formBox" initialState="firstExpanded" autoCollapseExpand="on" userType="*">
…
</formBox>
<formFlyer resizable="on" cpeObject="CPE.wks/CP/myRootCP.wks/CP/mySubCP.wks/FO/myFOFlyer2" name="config.formFlyer2" mode="on" cssName="flyer" hzPosition="center" vtPosition="middle" hzSize="600" vtSize="400" titleResourceName="" titleTranslationName="sigFlyer.title" basedOn="config.formFlyer"
/>
Warning:
formFlyer “basedOn” attribute
- the basedOn FormFlyer must have been previously declared in the layout page definition
- If the “mode” attribute of the basedOn formFlyer is set to “off”, the definition of the current formFlyer is taken into account anyway
- When declaring the definition of the current formFlyer, the inherited parameters can be overridden. For instance, in the following example, the formFlyer FF2 is based on the formFlyer FF1 definition, but its name and cpeContext are overridden:
<formFlyer name="FF1" cpeContext="CPE1" ...>...<formFlyer /><formFlyer name="FF2" cpeContext="CPE2" basedOn="FF1" />
VISUAL IDENTITY
The formFlyer is associated to a main CSS class. The resource associated to the header part of the formFlyer is declared in the XML Layout file.
formBox
OVERVIEW
A Form box has two different views the end-user can activate: expanded and collapsed views. Here is an example of a form collapsed view:
Here is an example of a form expanded view:
When a formBox is expanded, the formProperty boxes contained in this form are displayed.
The arrow button allows to switch from a collapsed view to an expanded view (and vice versa). Other action buttons (actionBoxes) can be associated to each view of the formBox to call specific functions.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: configurationBox visible or not | on / off | |
| initialState: indicates how formProperty boxes have to be initially displayed | firstExpanded / allCollapsed / allExpanded | |
| autoCollapseExpand: enables the auto-collapsing/expanding of formPropertyBox(es). | on / off | |
| showNestedRoot: allows to generate a box encapsulating all the form instances | on / off | |
| userType: user type of the Form element | #IMPLIED “*” means ‘any’ userType | |
| collapsed View expanded View | description of action boxes and RMO objects to be displayed on the expanded and collapsed view of the formBox | |
| mode: (collapsed view only) activate/de-activate the view | on / off | |
| showDescription: enables the display of the form description | on / off | |
| showStatus: enables the display of the form status | on / off |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| showRMOImage: enables the display of the RMO image | on / off | |
| showRMOText: enables the display of the RMO text | on / off | |
| rmoUserType: gives the userType of the RMO image and text to be displayed | #IMPLIED “*” means ‘any’ userType | |
| actionBox: contains actions linked to the form element (e.g. Copy/Paste actions for nested Forms) | actionBox | |
| form PropertyBox | Container Box of the Form Properties | formPropertyBox |
| status (repeatable section) | identifies resource names associated to each status | |
| statusName: name of the status | COMPLETED / UNCOMPLETED / OPTIONAL / ERROR | |
| statusResourceName: identifier of the icon associated to the status | #IMPLIED | |
| statusTranslationName: identifier of the translation used to give a status description. | #IMPLIED |
Example:
XML Sample
<formBox mode="on" cssName="formBox" initialState="firstExpanded" autoCollapseExpand="on">
<!-- Description of the collapsed formBox view -->
<collapsedView showRMOImage="off" showDescription="on" showRMOText="off" showStatus="on">
<actionBox mode="on" cssName="actionBox" hzAlignment="right"
vtAlignment="up" widthPercent="40" heightPercent="90"
autosize="off">
<!-- Description of actions associated to the formBox -->
<action actionName="RESET" alignment="left"
resourceName="action.form.reset"
translationName="action.reset" url="" />
<action actionName="COPY" alignment="left"
resourceName="action.form.copy"
translationName="action.copy" url="" />
<action>... </action>
</actionBox>
</collapsedView>
<!-- Description of the expandedView formBox view -->
<expandedView showRMOImage="on" showDescription="on"showRMOText="on" showStatus="on">
<actionBox mode="on" cssName="actionBox" hzAlignment="right"
vtAlignment="up" widthPercent="40" heightPercent="90"
autosize="off">
<!-- Description of actions associated to the formBox -->...
</actionBox>
</expandedView>
<!-- Description of formProperty boxes (check next paragraph) -->
<formPropertyBox cssName="formProperty">
...
</formPropertyBox>
<!-- List of statuses and their associated resources -->
<status statusName="ERROR" statusResourceName="status.error" statusTranslationName="status.error" />
<status>...</status>
</formBox>
- FormBox - Expanded viewTip: The collapsed view of the Form can be de-activated by removing the corresponding XML element or setting its mode to ‘off’
VISUAL IDENTITY
Each form box has its own main class.
As action boxes are independent components, a main CSS class is also associated to these elements. Mapping between CSS Classes and component structure
nestedFormBox
OVERVIEW
Instead of a standard set of FormBoxes, a nestedFormBox can be used to represent looped Forms thanks to a table view.
The nestedFormBox has a collapsed and an expanded view. The description used in the header of the box is the description of the parent nested form.
Here is an example of a form expanded view:
The nestedForm box is a table where the lines (resp. columns) represent each instance of the nestedForm and the columns (resp. lines) represent the form properties when the attribute nestedFormInstances is set to “asLine” (resp. “asColumn”)
On mouse over on the form description, an action flyer is displayed on the current line (or column) to allow the end user creating, cloning, or deleting the form instances.
Several nested form boxes can be created if you want to distinguish the boxes visual identity depending on the userType of the nested Form.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: nestedFormBox visible or not | on / off | |
| nestedFormInstances: indicates how the form instances will be displayed | asLine / asColumn | |
| hideIfNoInstance: hides the box header/footer if the nested form has no instance | on / off | |
| displayType: displays the instanceNumber or description (or both) of the formInstance. | instanceNumber / description (can be multi valuated and is ordered) | |
| fpUserType: user type of the Form Properties to be displayed in the table | #IMPLIED (can be multi valuated) “*” means ‘any’ userType | |
| userType: user type of the Form element | #IMPLIED “*” means ‘any’ userType |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| collapsed View expanded View | description of action boxes and RMO objects to be displayed on the expanded and collapsed view of the formBox | |
| showDescription: enables the display of the form description | on / off | |
| showStatus: enables the display of the form status | on / off | |
| rmoUserType: gives the userType of the RMO image and text to be displayed | #IMPLIED “*” means ‘any’ userType | |
| actionBox: contains actions linked to the form element Authorized actions: OPEN_FLYER: onClick, a rmoFlyer of the corresponding form is opened SEND_CUSTOM_EVENT | actionBox | |
| formCell | Header of the column / line | |
| showStatus: enables the display of the form status | on / off | |
| actionBox: contains actions linked to the form element Authorized actions: OPEN_FLYER: onClick, a rmoFlyer or a formFlyer of the corresponding form is opened SEND_CUSTOM_EVENT | actionBox | |
| form PropertyCell | Header of the column / line |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| actionBox: contains actions linked to the form element Authorized actions: OPEN_FLYER: onClick, a rmoFlyer of the corresponding formProperty is opened SEND_CUSTOM_EVENT | actionBox | |
| actionBox | identifies the actions to be included under the nestedForm box (when expanded) Authorized actions: SET and RESET actions on the nestedForm. | actionBox |
| status (repeatable section) | identifies resource names associated to each status | |
| statusName: name of the status | COMPLETED / UNCOMPLETED / OPTIONAL / ERROR | |
| statusResourceName: identifier of the icon associated to the status | #IMPLIED | |
| statusTranslationName: identifier of the translation used to give a status description. | #IMPLIED | |
| actionFlyer | List all the actions available onMouseOver the form Name cell Authorized actions: CLONE NEW DELETE RESET COPY/PASTE/CUT SEND_CUSTOM_EVENT | actionFlyer |
Example: Example:
<nestedFormBox ..... userType="*" nestedFormInstances="asLines" displayType="instanceNumber" >
<!-- Description of the collapsed nestedFormBox view -->
<collapsedView showDescription="on" showStatus="on">
<actionBox …></actionBox>
</collapsedView>
<!-- Description of the collapsed nestedFormBox view -->
<expandedView showDescription="on" showStatus="on">
<actionBox …></actionBox>
</expandedView>
<!-- Description of the form cell -->
<formCell showStatus="on">
<actionBox .... >
</formCell>
<!-- Description of the formProperty cell -->
<formPropertyCell>
<actionBox .... > (OPEN_FLYER for example)
</formPropertyCell>
<!-- Description of other actions on the nestedForm -->
<actionBox>
(SET/RESET of the nested Form)
</actionBox >
<!—List of available statuses -->
<status.../>
<actionFlyer name="nestedFormBox.actionFlyer" cssName="actionFlyer" mode="on" hzPosition="right" vtPosition="down" resizable="off" hzSize="120" vtSize="100" titleResourceName="" titleTranslationName="">
<action … />
</actionFlyer>
</nestedFormBox>
- nestedFormBox – asLines
Tip:
The collapsed view of the Form can be de-activated by removing the corresponding XML element.
It is possible to display only a subset of the formProperties of the current nestedForm by using the fpUserType attribute.
One of the use case can be to display only a subset of the FPs in the table view of the nestedForm and the complete view of the current form (with all FPs) in an associated formFlyer.
VISUAL IDENTITY
Mapping between CSS Classes and component structure
Tip:
Each cell corresponding to a formProperty is associated to CSS classes corresponding to the status of the FormProperty: Completed, Error …
The following translation is associated to the component:
<translation name="nestedFormBox.firstColumn.title">Action</translation>
It corresponds to the title of the first column of the table (on the left).
formPropertyBox
OVERVIEW
Like Form boxes, Form Property boxes have two different views the end-user can activate: expanded and collapsed views.
Here is an example of a formProperty collapsed view:
Here is an example of a formProperty expanded view:
The arrow button allows to switch from a collapsed view to an expanded view (and vice versa). Other action buttons (actionBoxes) can be associated to each view of the formPropertyBox to call specific functions.
Each formPropertyBox is a container of a ‘valueSelector’ that controls the way the domain of values is displayed.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| userType: user type of the Form Property element | #IMPLIED “*” means ‘any’ userType | |
| collapsed View | This view is the tighter one. The value of the form property is visible (via the collapsed view of the value selector) If editValue is true, then this value can be modified by the end-user. | |
| showDescription: enables the display of the formProperty description | on / off | |
| showStatus: enables the display of the formProperty status | on / off | |
| showValue: enables the display of the answered/calculated value | on / off | |
| editValue: enables a direct edition the value | on / off | |
| actionBox | actionBox | |
| expanded View | This view is the more complete view of the elements associated to a form property. In this view, the list of values is displayed in a valueSelector (cf. following chapter for more details) that is defined on modeling side. In addition, an edit zone enables the user to entry comments if the form property is associated with a comment. | |
| mode: expanded view activated/deactivated | on / off | |
| showDescription: enables the display of the formProperty description | on / off |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| showStatus: enables the display of the formProperty status | on / off | |
| showDomainMessages: activate/deactivate the display of Domain explanation messages directly in the form property box. | on / off | |
| showRMOImage: enables the display of the RMO image | on / off | |
| showRMOText: enables the display of the RMO text | on / off | |
| multipleSelectSize: rules the number of elements that are pre-extended in the dropdown list | ||
| rmoUserType: gives the userType of the RMO image and text to be displayed | #IMPLIED “*” means ‘any’ userType | |
| comment Selector | edit zone to give a comment on the form property | |
| heightValue: fixed value of the size of the commentSelector in pixels | #REQUIRED | |
| titleTranslationName: identifier of the translation used to give the title of the selector | #IMPLIED |
Example:
XML Sample
<formPropertyBox cssName="formProperty" userType="*">
<FPCollapsedView showDescription="on" showStatus="on"
<actionBox mode="on" cssName="actionBox"
hzAlignment="right" vtAlignment="up"
widthPercent="2" heightPercent="90"
autosize="off">
<action actionName="OPEN_FLYER
(flyerName=config.actionFlyer)" alignment="right" resourceName=" " translationName=" " url=""/>
</actionBox>
</FPCollapsedView>
<FPExpandedView showRMOImage="on" showDescription="on" showDomainMessages="on" showRMOText="on" rmoUserType="*" showStatus="on" multipleSelectSize="3">
<commentSelector heightValue="50" titleTranslationName="" titleResourceName=""/>
<actionBox mode="on" cssName="actionBox" hzAlignment="left" vtAlignment="up" widthPercent="2" heightPercent="90" autosize="off">
<!-- Action box information -->
</actionBox>
</FPExpandedView>
</formPropertyBox>
- FormPropertyBox - Expanded view
VISUAL IDENTITY
Each formProperty box has its own main class.
As action boxes are independent components, a main CSS class is also associated to these elements. Mapping between CSS Classes and component structure
- Expanded view of the formProperty box
- Collapsed view of the formProperty box
Value Selectors
OVERVIEW
Value selectors are graphical components which are used to list the possible answers for a form property and to enable the user to input an answer (or several answers).
In the configurable product model, each form property is associated to a ‘Layout’ value. The Layout attribute of the FP corresponds to the name of a value selector that will be used by the Configurator to display the Form Property.
This value selector name is linked to a predefined (or custom) value selector type in the Layout XML file.
A library of selectors is packaged by default with the Configurator.
This following table gives the list of predefined value selector types that can be used:
| PREDEFINED VALUE SELECTOR TYPES | DESCRIPTION |
|---|---|
| Simple valueSelector | |
| < textFieldSelector> | A simple text area to input values |
| < comboBoxSelector> | A standard drop down list of values |
| < autoCompleteComboBoxSelector> | A drop down list of values with auto suggest capabilities |
| < listBoxSelector> | A list of values where multiple selection is possible |
| < textListSelector> | A list of text strings with their associated check boxes (or radio buttons) to allow the selection of values |
| PREDEFINED VALUE SELECTOR TYPES | DESCRIPTION |
|---|---|
| < valueListSelector > | A list of elements composed of an image and a description with their associated check boxes (or radio buttons) to allow the selection of values |
| < imageListSelector> | A list of images representing the values that can be chosen |
| Advanced valueSelector | |
| < sliderValueSelector> | A component allowing to select thanks to a cursor a single object or integer value |
| < productSelector> | An advanced component allowing to compare some properties of each product of the Form Property domain |
| < valueRollingSelector> | An horizontal list of images the end-user can roll to select the appropriate value |
| < itemListSelector> | An advanced component allowing to compare some properties of each item to be selected, in a flyer |
| < itemGridSelector> | An advanced item property matrix to select a product with regards to its two major Business Properties |
| < ProductListSelector> | An advanced list of products with the same features than the Catalog ProductListBox, such as the filtering and sorting capabilities |
Each selector is made of 2 views representing the same data. Each view of the selector is activated depending whether the formPropertyBox is expanded or collapsed.
- Collapsed view – represented by a very simple selector object (textfield or combobox)
- Expanded view – if user needs more information to make a choice. This mode is graphically richer and can be represented by more complex value Selectors (image list selectors, value list Selectors)
When a value is selected from the collapsed view and then the view is expanded, the same value is selected in the expanded view (both views are synchronized).
ATTRIBUTES DETAILS
parameterized in the Layout file ( section).
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| name: name of the Value Selector corresponding to the layout attribute of the form property. | #IMPLIED | |
| activateCollapsedMode: indicates if the collapsed mode of the formProperty boxes and selector is enabled | simple / list / matrix “off” means that the mode is deactivated. | |
| activateExpandedMode: indicates if the expanded mode of the formProperty boxes and selector is enabled | simple / list / matrix “off” means that the mode is deactivated. | |
| hideForbiddenValues: indicates if forbidden values (red values) have to be shown in the form property domain. | true / false (by default) | |
| disableForbiddenValues: indicates if forbidden values (red values) can be selected to value the FP. | true / false (by default) | |
| assignDefaultValue: when set to false, the selector highlights the default values instead of selecting them. | true (by default) / false |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| sortBy: specifies by which elements the Form Property domain will be ordered. (Optional parameter. Default value if not specified is ‘model’) ‘model’ value means that the form property values are not re-ordered and we keep the order returned by the Form Property domain BRC ‘price1’ or ‘price2’ values are only possible if the valueSelector is associated to tags. (e.g. : 'name,price1' means that FP values are sorted according to the name of the value and then to the price1 'price1,name' means that value are sorted first by price1 and then by name.) | model / name / description / price1 / price2 (can be multi valuated and is ordered) | |
| sortType: specifies if the sort process is ascending or descending for each field of the sortBy. (Optional parameter. Default value if not specified or empty is ‘ascending’ for all fields of the sortBy.) the sortType is ignored when sortBy=’model’. | ascending / descending (can be multi valuated and is ordered) | |
| Description of the value selector to be used for the given layout. (cf. attributes list in the table below) | ||
| action Box | Actions associated to each FP values (in particular SET / RESET actions) | actionBox actionBox |
Parameters activateCollapsedMode and activateExpandedMode can be multi valuated with values ‘simple’, ‘list’, ‘matrix’.
E.g.:
<valueSelector name="TextListValueSelector"
activateCollapsedMode="off" activateExpandedMode="simple,list">
In that case, the expanded mode of the value selector and its formPropertyBox will be activated when the form property Valuation mode is 'Simple' or 'List'. The collapsed mode of the selector will
never be used.
Parameter assignDefaultValue comes with specifics:
- If the setting is false, then the selector highlights default values instead of ticking the checkbox for the end user
- Setting the FP with default values remains feasible with the Assign Default Value action in the event logics
- Computed FPs will still automatically be set with default values
Example of form property values sorting:
In the following example, the values will be sorted first by description (ascending), then by name (ascending), then by price (descending)
<valueSelector ….. sortBy="description,name,price1"
sortType="ascending,descending,descending">
<myValueSelectorType displayType="description,name" …>
<!-- Pricing tag 1 -->
<pricing method="CPE.GET(CPE.Settings.Session.PricingMethod[1])" range="1" resourceName="" resourceAlignment="left" translationName="" translationAlignment="right"/>
<!-- Pricing tag 2 -->
<pricing method="CPE.GET(CPE.Settings.Session.PricingMethod[1])" range="2" resourceName="" resourceAlignment="left" translationName="" translationAlignment="right"/>
<actionBox … >
....
</actionBox>
</myValueSelectorType>
</ valueSelector>
Tip:
The “SET” action which is present by default for all value selectors and allows the valuation of the
FP can be removed.
In such a case (as well as for the collapsed view), the end-user will value a FP :
- Either by pressing ENTER button
- Or by clicking on the radio button associated to a FP value, or by checking a box or by selecting a value in a combobox (depending on the value selector type)
For FPs having a ‘List’ valuation type it is strongly recommended to keep the default OK button in the User Interface (“SET” action) to avoid submitting information each time a selection is done.
Some standard value selectors can be associated • to action boxes ( actionBox) related to each value of the FP domain • and to up to two pricing information (Pricing method and Range are mandatory in that case). Moreover, some specific additional parameters can also be defined. The following table lists the predefined value selector types with their parameters:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| Simple value selector | |||
| textFieldSelector | |||
| prefixTranslationName: UI label positioned before the textfield (For expandedView only) | #IMPLIED | ||
| suffixTranslationName: UI label positioned after the textfield (For expandedView only) | #IMPLIED | ||
| valuationKey: allows to value the FP when pressing ‘Tab’ keyboard button (in addition to ‘Enter’) | “TAB” |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| patterns | List of pattern. The value filled in the textFieldSelector has to match at least one of the indicated patterns in order to value the FP. | ||
| pattern: java pattern E.g. To check the syntax of an email value | #IMPLIED: | ||
| If the value does not comply with the pattern, an error message is raised by CPQ UI. E.g.: The value does not comply pattern {0} (See image below) |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| comboBoxSelector |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) | ||
| prefixTranslationName: UI label positioned before the combobox (For expandedView only) | #IMPLIED | ||
| suffixTranslationName: UI label positioned after the combobox (For expandedView only) | #IMPLIED | ||
| valuationKey: allows to value the FP when pressing ‘Tab’ keyboard button (in addition to ‘Enter’) | “TAB” | ||
| pricing | Optional tags specifying the price or element to display for the products (2 pricing tags allowed) | ||
| method: CPE of the pricing method that will be used to display the prices or elements in the cell | #IMPLIED | ||
| range: range to be displayed. If an element tag is present, the range will be ignored. | #IMPLIED | ||
| element: element to be displayed | #IMPLIED | ||
| resourceName: resource associated to the price | #IMPLIED | ||
| resourceAlignment: alignment of the graphical resource | left / right |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| translationName: a translatable title associated to the price | #IMPLIED | ||
| translationAlignment: position of the title | left / right |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| autoCompleteComboBoxSelector | |||
| displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| completeOnBpValue: A CPE targeting a Business Property (CPE. bpsAttributes.BP/bpParentSI) When this parameter is found, the selector will filter on the BP value as well and will display what is defined in the displayType attribute, plus the BP value separated by a space character. | Supported Types : -Text -Integer SI -BVAL Boolean Numeric Monetary Dates and Long Text are not supported. In the case of SI and BVAL only the name is taken into account when it comes to filtering the results list. | ||
| maxDisplayedValue: max number of filtered values displayed in the combobox (Note: the max number of displayed values should be lower than the maxValueCount property of the selectorPolicy) | #IMPLIED | ||
| prefixTranslationName: UI label positioned before the combobox (For expandedView only) | #IMPLIED | ||
| suffixTranslationName: UI label positioned after the combobox (For expandedView only) | #IMPLIED |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| listBoxSelector | displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) | |
| The list box is a field showing multiple entries through which the user can navigate with a scrollbar. It enables multiple selections by using the control key when selecting the values (only available for form property with a list valuation mode). |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| textListSelector | |||
| columnCount: number of columns to display the FP values. | #IMPLIED | ||
| displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) | ||
| action Box | Actions associated to each FP values | actionBoxactionBox | |
| pricing | Optional tags specifying the price or element to display for the items of the FP domain | ||
| method: CPE of the pricing method that will be used to display the prices or elements in the cell | #IMPLIED | ||
| range: range to be displayed. If an element tag is present, the range will be ignored. | #IMPLIED | ||
| element: element to be displayed | #IMPLIED |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| resourceName: resource associated to the price | #IMPLIED | ||
| resourceAlignment: alignment of the graphical resource | left / right | ||
| translationName: a translatable title associated to the price | #IMPLIED | ||
| translationAlignment: position of the title | left / right | ||
| It is a list presenting description and optionally price and quantity. Quantity is displayed if it is activated in the modeled FP. E.g. with columnCount=2 |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| valueListSelector | |||
| columnCount: number of columns to display the FP values. | #IMPLIED | ||
| rmoUserType: userType of the displayed RMO | “*” means ‘any’ useType | ||
| displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) | ||
| action Box | Actions associated to each FP values | actionBox | |
| pricing | Specifies which pricing method has to be used if the user wants to display a price or element associated to the items of the FP domain | ||
| It is a graphical list presenting Image RMO, description and optionally text RMO, price, quantity E.g. with columnCount=2 |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| imageListSelector | |||
| columnCount: number of columns to display the FP values. | #IMPLIED | ||
| fadeEffect: fade effect on displayed image | on /off | ||
| rmoUserType: userType of the displayed RMO | “*” means ‘any’ useType | ||
| action Box | Actions associated to each FP values | actionBox | |
| pricing | Specifies which pricing method has to be used if the user wants to display a price associated to the items of the FP domain |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| It is a graphical list presenting Image RMO and optionally price and quantity. In addition, you have the ability to activate a fadeEffect on mouse over on the images. E.g. with columnCount=3 |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| Advanced value selector | |||
| sliderValueSelector | |||
| showRMOImage: enables the display of the RMO image | on / off |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| showRMOText: enables the display of the RMO text | on / off | ||
| rmoUserType: userType of the displayed RMO | “*” means ‘any’ useType | ||
| displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) | ||
| The selector displays one interval per value of the domain. Each element can be clicked to select the value as well as the -/+ buttons This value selector can only be used for enumerated ObjectType or enumerated Integer domains (i.e. having a Max value defined). |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| productSelector | |||
| columnCount: number of column for the selector. NB: If the number of columns is equal to the number of items in the FP domain, the combobox are not displayed. | #IMPLIED | ||
| showBPS: BPS description visible or not. | on / off | ||
| bpsUserType: user type of the BPs to be displayed in the comparison table. | “*” means ‘any’ useType |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| rmoUserType: userType of the displayed RMO | “*” means ‘any’ useType | ||
| displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) | ||
| action Box | Actions associated to each FP values | actionBox | |
| pricing | Specifies which pricing method has to be used if the user wants to display a price associated to the items of the FP domain | ||
| This selector can be used only when the list of values is made of standard items, configurable products and sales products. It allows displaying a list of items associated with their business properties and prices. Business Properties must be flagged as ‘IsComparable’ to appear in the comparison table of the selector. |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| valueRollingSelector | |||
| columnCount: number of columns to display the FP values. | #IMPLIED | ||
| showRMOText: enables the display of the RMO text | on / off | ||
| rmoUserType: userType of the displayed RMO | “*” means ‘any’ useType |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) | ||
| paginationMode: behavior of the horizontal scrolling: on: products pagination on click off: continuous products scrolling on mouse over | on / off (default) | ||
| action Box | Actions associated to each FP values | actionBox | |
| pricing | Specifies which pricing method has to be used if the user wants to display a price or element associated to the items of the FP domain | ||
| itemListSelector | |||
| itemCount: number of items displayed per page | #IMPLIED | ||
| filtering: enable filtering and sorting capabilities on each column | on / off | ||
| comparison: comparison section activated/deactivated | on / off | ||
| collapsibleSections: disable/enable the capability to collapse the sections of the selector | on / off |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| rmoUserType: userType of the displayed RMO | “*” means ‘any’ useType | ||
| displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) | ||
| action Box | Actions associated to each FP values | actionBox | |
| pricing | Specifies which pricing method has to be used if the user wants to display a price associated to the items of the FP domain |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| This selector can be used only when the list of values is made of standard items, configurable products and sales products. It allows displaying a list of items associated with their business properties and prices. Business Properties must be flagged as ‘IsLeading’ to appear in the product List tab of the selector. Business Properties must be flagged as ‘IsComparable’ to appear in the list comparison tab of the selector. The comparison tab can be activated / deactivated using the ‘comparison’ attribute. The Number of item per page of the selector is given by the attribute ‘itemCount’. The attribute ‘collapsibleSections’ can be turned off if you do not want to collapse the tabs of the selector. The itemList is opened into a popup when clicking on the link provided in the form property Box. |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| If FPs displayed in the selector contain a Quantity field, it may occur that this field is empty or contains a default text ‘Qty’. In that case, if an incorrect value or no value is set in the quantity field when validating, the quantity is set to 1 by default. | |||
| itemGridSelector | |||
| heightBPSet: CPE of BPSet used to identify the BP of the rows | #IMPLIED | ||
| heightBP: the name of the BP of BPSet whose values will be represent the grid rows. | #IMPLIED |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| widthBPSet: CPE of the BPSet used to identify the BP of the columns | #IMPLIED | ||
| widthBP: the name of the BP of BPSet whose values will be represent the grid rows. | #IMPLIED | ||
| cellContent: it corresponds to the type of information that will be displayed in the grid cells | reference / price | ||
| displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| pricing | Specifies which pricing method has to be used if the user wants to display a price or element associated to the items of the FP domain | ||
| This selector can only be used when the list of values is made of standard items, configurable products or sales products. The itemGrid presents the list of values (item names) as a grid with two dimensions. Each dimension is a Business Property. You have to give the business property CPE corresponding to the columns and the rows of the resulting grid. The number of columns and rows is automatically calculated by the Configurator at runtime. • heightBPSet="CPE.wks/BPS/myBPS" heightBP="myBPRow" widthBPSet=" CPE.wks/BPS/myBPS2" widthBP="myBPColumn" If the several selections are possible for the FP, unselecting a cell is done by a second click on the cell. |
Table continued:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| ProductListSelector | cssName | #IMPLIED | |
| displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) | ||
| pricing | Optional tags specifying which price or element of the products to display (2 pricing tags allowed) | ||
| method: CPE of the pricing method that will be used to display the price or element | #IMPLIED | ||
| range: range to be displayed | #IMPLIED | ||
| element: element to be displayed |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| resourceName: resource associated to the price | #IMPLIED | ||
| resourceAlignment: alignment of the graphical resource | left / right | ||
| translationName: a translatable title associated to the price | #IMPLIED | ||
| translationAlignment: position of the title | left / right | ||
| productListBox | Exact same component than in the Catalog, with an additional dropdown list containing the selected elements. The dropdown list displays the decription of the selected products, or their names if the description is not available. | productListBox |
Example:
XML Example
<!—The value of the Layout attribute -->
<valueSelector name="FPLayoutName" activateCollapsedMode="simple,list,matrix" activateExpandedMode="simple,list,matrix">
<!—The value selector itself -->
<myValueSelectorType attribute="attributeValue " …>
<actionBox>
<!-- Action box related to values -->
</actionBox>
</myValueSelectorType >
<!-- Action box applying on the whole value selector -->
<actionBox mode="on" cssName="myCssClass" hzAlignment="left" vtAlignment="down" widthPercent="100" heightPercent="8" autosize="off">
<action actionName="SET" alignment="left" resourceName="btnOk" translationName="action.Set" url="" />
<action actionName="RESET" alignment="left" resourceName="btnReset" translationName="action.Reset " url="" />
</actionBox>
</valueSelector>
Tip:
The translationName associated to a element is dynamically built following the associated localized message :
<translation name="priceTranslation">From {0} – Fees included </translation>
{0} will be replaced on the fly at runtime by the price to be displayed.
NB: If the translation does not contain {0}, translationAlignment attribute is used to position the translation title and price.
Example:
XML Sample of a productListSelector
<valueSelector name="ProductListValueSelector" activateCollapsedMode="simple,list,matrix" activateExpandedMode="simple,list,matrix">
<productListSelector cssName="productListValueSelector" displayType="description">
<productListBox cssName="productListBox" productCount="5" titleTranslationName="" showBP="on">
<pricing method="CPE.GET(CPE.Settings.Session.PricingMethod[1])" range="1" resourceName="imgPrice1" resourceAlignment="left" translationName="labelPrice1" translationAlignment="left"/>
<pricing method="CPE.GET(CPE.Settings.Session.PricingMethod[1])" range="2" resourceName="" resourceAlignment="left" translationName="labelPrice1" translationAlignment="left"/>
<listView mode="on">
<productRow displayType="name, description" rmoUserType="">
<linkedAction actionName="ACTIVATE_CURRENT" resourceName="" translationName="tooltip.activatecurrent" />
</productRow>
</listView>
<gridView mode="on" columnCount="4">
<productCell displayType="name, description" rmoUserType="">
<linkedAction actionName="ACTIVATE_CURRENT" resourceName="" translationName="tooltip.activatecurrent" />
</productCell>
</gridView>
</productListBox>
</productListSelector>
<!-- Action box applying on the whole value selector -->
<actionBox mode="on" cssName="myCssClass" hzAlignment="left" vtAlignment="down" widthPercent="100" heightPercent="8" autosize="off">
<action actionName="SET" alignment="left" resourceName="btnOk" translationName="action.Set" url="" />
<action actionName="RESET" alignment="left" resourceName="btnReset" translationName="action.Reset " url="" />
</actionBox>
</valueSelector>
VISUAL IDENTITY
Each valueSelector can be associated to a main CSS class (via cssName attribute) like other components. However, this class corresponds to the CSS class associated to the main <div> of the selector when it is displayed in Expanded view mode.
Indeed, when the selector is displayed in collapsed mode, it appears as a comboBox or a textField and then the default CSS class of these value selectors is applied (textFieldValueSelector or comboBoxValueSelector)
- For simple value selectors, the ‘cssName’ attribute is optional. Indeed in expanded view mode (if nothing different is specified in the Layout XML file), a default main CSS class is attributed to their main
<div>:
| VALUESELECTOR | DEFAULT MAIN CSS CLASS – EXPANDED VIEW |
|---|---|
| textFieldSelector | textFieldValueSelector |
| comboBoxSelector | comboBoxValueSelector |
| textListSelector | textListValueSelector |
| valueListSelector | valueListValueSelector |
| imageListSelector | imageListValueSelector |
- For advanced value selectors containing multiple sub-components the attribute ‘cssName’ is mandatory in order to customize the UI rendering.
Tip:
A class common to all value selectors is associated to the main
<div>of each selector: valueSelectorIt allows factorizing information and giving a default value for some properties shared between all value selectors (for example the text decoration depending on the status of values (forbidden, authorized …)):Tip:
For valueSelector using RMO Images:
- a zoom icon is available if an image ‘Zoom’ is associated to the RMO object.
- RMO images are displayed following the state of the value:
Current (resp. On, resp. onMouseOver ) pictures associated to the RMO object in the model appears when the value is Selected (resp. when the value is not selected, resp. when the mouse is positioned on the value)
- productSelector visual identity
Mapping between CSS Classes and component structure
- rollingValueSelector visual identity
Mapping between CSS Classes and component structure
- itemListSelector visual identity
Mapping between CSS Classes and component structure
- productListSelector visual identity
drawingBox
OVERVIEW
The drawingBox allows to display the SVG drawings generated by the generative processes. It displays the list of the drawing compounds.
One or several views (drawing methods) can be generated for a given breakdown line. The different drawing methods are listed in the Setting XML file when launching the Configurator engine.
Each drawing compound is represented in a rolling selector bar which is clickable. The SVG viewer is refreshed depending on the selected compound and view.
If only 1 drawing is generated, the compound selector does not appear.
From the drawing box it is possible to download the drawings as SVG or PNG files. The drawingBox can be included:
- under a combinedBox in any part of the UI pages or directly under the Left/Main or Right part.
- as part of the summaryBox (in the drawing content)
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| cssName | #IMPLIED | |
| mode: drawingBox visible or not | on / off | |
| framedBox: generates the panel header and footer of the box | on / off | |
| widthPercent: percentage of occupancy in the total width of the container/page | #IMPLIED | |
| heightPercent: percentage of occupancy in the total height of the container/page | #IMPLIED |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| autoSize | on / off | |
| hzAlignment: gives the horizontal alignment of the box in its container/ page | left / right / center / justified | |
| vtAlignment: gives the vertical alignment of the box in its container/ page | up / down / middle / distributed | |
| titleTranslationName: box title | #IMPLIED | |
| format: format of the drawing image used in the viewer (in the HTML page) NB: With ‘auto’ option, the rendered image is in SVG format unless the web browser does not support this feature. | SVG / PNG / auto | |
| depth: indicates the number of breakdown lines to be displayed. (by default If not specified, all the drawings are displayed) | #IMPLIED | |
| rmoUserType : userType to be used for the RMO display | #IMPLIED “*” means any userType |
Example:
XML Sample
<drawingBox mode="on" cssName="drawingBox" framedBox="off" autosize="off" heightPercent="45" widthPercent="99" depth="3" titleTranslationName="drawingBox.title" rmoUserType="*"/>
VISUAL IDENTITY
The drawingBox is associated to a main CSS class. It is possible to specify a personalized CSS class for each embedded module.
summaryBox
OVERVIEW
The summaryBox goal is to present an overview of the configured product: a sales breakdown, generated information, generated drawing, properties of your final product, and links to related products.
A summary Box is made of six main parts:
- A summary header and footer: for example to display the total price of the configuration.
- An Item Sheet displaying the information related to the resulting product.
- One or several tabs storing the summaryContents :
- Sales Breakdown content (designed on the model side) – contentSource ="salesBreakdown"
- Partial matching content (to display products returned by a partial matching on the Sales Breakdown root line) –
contentSource="partialMatching" - Configuration Breakdown content (to display a summary of the configuration dialog) –
contentSource="confBreakdown"
- Partial matching content (to display products returned by a partial matching on the Sales Breakdown root line) –
- Sales Breakdown content (designed on the model side) – contentSource ="salesBreakdown"
- A tab for codificationContent related to the generated business properties of the resulting product.
- A tab for drawingContent related to the generated 2DDrawings of the resulting product.
The summaryBox is most of time inserted in the right part of the configuration page and/or in the summary page. Example of summaryBox in the rightPart of the configurationPage:
SalesBreakdown summaryContent tab
PartialMatching s.ummaryContent tab
' <
son, Enc:ssonW580i
Gi!'.l 1111.!it: vil!!C and more wWn
ell■r>d,,.j.o IT'ii
�IH-lnl lG Pt!Nb.
ConfBreakdown summaryContent tab
Codini::atio11 Confi9ur11lion breakdown
[J,B-11crtpt1onva11111
�I Bu, . JOIH own l,HIVMI
Cl Choice bll1-11n lht! drenl
r■r1911�
Se d R !I'= Anbni:s. Lu
5el!!C1 l)del rerereni:i!
l lMl,elba'a
pme
Swrf■,;,c lllpt.an!.
NurmKD
IIMl terns
)40
A.rCa dilllOIIW!r
Codificatio,n
tab
Configuration bre��clown
Total Price:11,SO .88 S
Drawing tab
GI Olli-i• Cu I m•UiliOii
M11t11 ll!C n ■h apbon
Tot I Price:11,506. 8 S
Configuralion breakdown
Total Pric1,506.88
Example of summaryBox in the summaryPage:
The summaryBox has a different layout depending if it is inserted in the summary page or in the right part of the configuration Page (Accordion layout / Tabs layout). This layout can also been specifically indicated using the tabPosition attribute.
Warning:
As the summary contains data coming from generative processes, it will be refreshed depending on the event logic to be applied on the model (cf. Designer User Guide)
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: summaryBox visible or not | on / off | |
| widthPercent: percentage of occupancy in the total width of the container/page | #IMPLIED | |
| heightPercent: percentage of occupancy in the total height of the container/page | #IMPLIED |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| autoSize: (Cf. Appendix C – UI brick positioning) | on / off | |
| hzAlignment: gives the horizontal alignment of the box in its container/ page | left / right / center / justified | |
| vtAlignment: gives the vertical alignment of the box in its container/ page | up / down / middle / distributed | |
| titleTranslationName: identifier of the translation used to give the title of the box | #IMPLIED | |
| titleResourceName: identifier of a resource used as a title | #IMPLIED | |
| keyBoardNav: keyboard Navigation activated or not | on / off | |
| tabPosition: activated the mode accordion or tab for the summaryBox layout | horizontal / vertical | |
| summary Header summary Footer itemSheet summary Content codificationContent summary Footer | Please check parameterization below. |
CONTENT STRUCTURE
Reference: Each content of the summaryBox is made of a Dynamic table.
For more details regarding the parameterization of the Dynamic Content table, please refer to Dynamic Content.
VISUAL IDENTITY
The summary box is associated to a main class. Each sub-tabs (related to a summary content Partial Matching, Codification, Configuration or Sales breakdown) is monitored through another specific main class. Then, each level of the summary content also corresponds to an independent class.
Mapping between CSS Classes and component structure
SUMMARYHEADER / SUMMARYFOOTER ATTRIBUTE DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| customLine (repeatable section) | Each line contains one or several cells |
Example:
XML Sample
<summaryFooter>
<customLine cssName="summaryBoxFooter">
<cell type="translation" cssName="cellDescr"
cellTranslationName="summaryBox.customLine.totalPrice"/>
<cell type="expression" format="monetary"
cssName="cellPrice"
cellExpression="CPE.wks/CP/cpUserGuide.gp.SBL/rootLine.wks/PRGM/pmUserGuide.Range[ 1].value"/>
</customLine>
<summaryFooter>
- Example to display the total price of the configuration
ITEMSHEET ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: itemSheet visible or not | on / off | |
| pricing | method: CPE of the pricing method that will be used to display the price or element | #IMPLIED |
| range: range to be displayed | #IMPLIED | |
| element: element to be displayed | ||
| resourceName: resource associated to the price | #IMPLIED | |
| resourceAlignment: alignment of the graphical resource | left / right | |
| translationName: a translatable title associated to the price | #IMPLIED | |
| translationAlignment: position of the title | left / right |
Example:
XML Sample
<itemSheet mode="on">
<pricing method="CPE.workspace/PRGM/MyPricingMethod"
range="1" resourceName="imgPrice1"
resourceAlignment="left"
translationName="labelPrice1 »
translationAlignment="left"/>
</itemSheet>
SALESBREAKDOWN ATTRIBUTES DETAILS
The sales breakdown structure is hierarchically organized as follows:
Each breakdown line can be associated to one or several pricing and custom methods and additionally be linked to items either codified or retrieved via a complete matching.
In the XML Layout file, a ‘template’ of the summary content has to be described. For each hierarchical level (identified by an integer or a specific keyword ‘header’, ‘all’, ‘others’) and each type of line ( ‘codification’, ‘completeMatching’, ‘salesBreakdown’), it describes the cells to be displayed.
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| contentSource: Identifier of the content | salesBreakdown | |
| tabTranslationName: Name of the tab | #IMPLIED | |
| showTab: tab visible or not visible | on / off | |
| level | ||
| level: identifier of the level | header / others | |
| collapseable: summary level collapsible | on / off | |
| userType: userType of the sales breakdown line to be displayed | “*” for any userTypes or a list of comma separated userTypes | |
| line | group of cells defined for a given type of line | |
| type: type matching | codification / completeMatching / salesBreakdown |
Tip:
List of keywords you can use in the cellExpression attribute of cells:
- $CURRENT_SBL: is replaced at runtime by the CPE of the current Sales breakdown line parsed by the process.
It allows to browse the CPE associated to the sales breakdown line : Name: $CURRENT_SBL.name
Pricing: $CURRENT_SBL.wks/PRGM/myPM.Range[1].value Custom Info: $CURRENT_SBL.wks/CUSTM/myCM.Range[1].value:$CURRENT_ ITEM: is replaced at runtime by the CPE of the item associated to the Sales breakdown line.
It allows to browse the CPE of this item that can be codified or retrieved via a complete matching: Name: $CURRENT_ITEM.name
Descr: $CURRENT_ITEM.descr
Business Property $CURRENT_ITEM.BPS/myBPSet.BP/myBP.value Pricing: $CURRENT_ITEM.wks/PRGM/myPM.Range[1].value
- $CURRENT_RESULT: is replaced at runtime by the CPE of the codified or the completeMatching line.
It allows to browse the CPE associated to the codified/completeMatching line : Quantity: $CURRENT_RESULT.quantity
Tip:
It is possible to define a different line layout depending on the userType of the SBL.
<level cssName="salesBreakdownLevelOthers" level="others" collapseable="on" userType="myUserType1, myUserType2" >Moreover, at runtime, this usertype and the type of line (codification/completeMatching/...) will used to generate a CSS class in addition to the css class specified in the XML.
e.g. class="salesBreakdownLevelOthers codification myUserType1"
Each line should contain the same number of cells. You can use the cellcount attribute to merge them.
If empty cells are needed you can use the following syntax::<cell type="expression" cssName="cellDescr" cellExpression="" />To include a link to a document in a cell of the salesbreakdown line, the
<a href>tag has to be added. In order for the HTML tag to be interpreted at runtime in the cell, add the format=”html” attribute to the cell tag. For instance:<ahref="https://myserver.proscloud.com/cameleonResources/RMGRepository/wksMyWorkspace/myDocument.docx" target="_blank">Open document</a>Example:
XML Sample
In the following example, we describe specifically
- a header that will contain a static title of each column of the summary table
- then for ‘other’ levels, we indicate which information from the breakdown we want to display depending on the type of the sales breakdown line.
<summaryContent cssName="mainSalesBreakdown"tabTranslationName="summaryBox.content.salesBreakdown"activeTabResourceName="" mouseOverTabResourceName=""inactiveTabResourceName="" contentSource="salesBreakdown" showTab="on"><!-- Header Cells Description--><level cssName="salesBreakdownLevelHeader" level="header" collapseable="off"><line><!-- The summary table contains N columns.N cells have to be declared in the Header --><cell type="translation" cssName="cellDescr"cellTranslationName="summaryBox.line.name" />:<cell ...></cell></line></level><!-- Other levels description --><level cssName="salesBreakdownLevelOthers" level="others" collapseable="on"><line type="codification"><!—Description of the cell for codified Lines --><cell type="expression" cssName="cellDescr"cellExpression="$CURRENT_SBL.name" /><cell type="expression" cssName="cellDescr"cellExpression="$CURRENT_ITEM.name" /><cell type="expression" format="monetary"cssName="cellPrice"cellExpression="$CURRENT_SBL.wks/PRGM/myPM.Range[1].value" /><cell ...></cell></line><line type="completeMatching"><!—Description of the cell for completeMatching Lines --><cell ...></cell>...</line><line><!—Description of the cell for other kind of Lines --><cell ...></cell></line>
PARTIALMATCHING ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| contentSource: Identifier of the content | partialMatching | |
| tabTranslationName: Name of the tab | #IMPLIED | |
| showTab: tab visible or not visible | on / off | |
| level | ||
| level: identifier of the level | header / others | |
| collapseable: summary level collapsible | on / off | |
| line | group of cells |
Tip:
Keyword you can use in the cellExpression attribute of cells:
- $CURRENT_MATCHING_ITEM: is replaced at runtime by the CPE of the item(s) returned by the partial matching process
Example:
XML Sample
In this example, the partial matching summary contains a list of item sheets (cell type="item") of matched items.
<summaryContent cssName="mainPartialMatchingTabtabTranslationName="summaryBox.content.partialMatching"activeTabResourceName="" mouseOverTabResourceName=""inactiveTabResourceName="" contentSource="partialMatching" showTab="on"><level cssName="mainPartialMatchingLevel" level="1"><line><cell type="item" cssName="mainCellItem"cellExpression="$CURRENT_MATCHING_ITEM" /></line></level></summaryContent>
CONFIGURATIONBREAKDOWN ATTRIBUTES DETAILS
The goal of the confBreakdown component is to give an overview of the configuration dialog. This summary content is automatically updated.
In the XML Layout file, a ‘template’ of the summary content has to be described.
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| contentSource: Identifier of the content | confBreakdown | |
| tabTranslationName: Name of the tab | #IMPLIED | |
| showTab: tab visible or not visible | on / off | |
| cellCount: Total number of columns in the displayed table. | #IMPLIED | |
| autoExpand: number of levels automatically expanded when clicking on the expand button. | #IMPLIED | |
| level | ||
| level: identifier of the level | header / rootCP /‘nodeCP / form / formProperty | |
| collapseable: summary level collapsible | on / off | |
| showStatus: status matching | COMPLETED / UNCOMPLETED / OPTIONAL / ERROR “*” means ‘any’ Status | |
| showUserType: userType matching | “*” means ‘any’ userType |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| line | group of cells gathered following the type of the matched line | |
| type: type matching Note: This attribute is used when the level describes ‘formProperties’. Several lines can be defined depending on the type of the FP. | TEXT/ LONG_TEXT / INTEGER / BOOLEAN / NUMERIC / MONETARY / URL / FILE / OBJECT_TYPE |
Tip:
You can choose either to make all the elements appear in the summary:
showStatus="" showUserType="*"
or to limit the display to the elements matching the listed status and userTypes:
showUserType="fpUserType1, fpUserType2" showStatus="COMPLETED, ERROR"
Moreover, it is possible to define a different cell structure depending on the userType of the (The tag can be defined several times).
Tip:
Keyword you can use in the cellExpression attribute of cells or in elements:
- $CURRENT_NODE: is replaced at runtime by the CPE of the current element being treated by the process.
For example, you will be able to retrieve the following data from each configuration node: State: $CURRENT_NODE.state
Descr: $CURRENT_NODE.descr
Comment: $CURRENT_NODE.comment Qty: $CURRENT_NODE.quantity:formProperty specificities
For the ‘formProperty’ level, you may have to specify more precisely the content of the summary display.
- A formProperty can be multi-valuated (List Valuation)
In that case you can use an additional keyword for the CPE expressions of the cells. The summary process will loop on each value of the formProperty.
Tip:
Keyword you can use in the cellExpression attribute of cells or in elements:
- $CURRENT_VALUE: is replaced at runtime by the CPE of the currentFP value(s).
For example if the form property can return a list of Sis objects, you will be able to retrieve the following data from each configuration node:
Value: $CURRENT_VALUE Descr: $CURRENT_VALUE.descr
Price: $CURRENT_VALUE.PRGM/pmTest.Range[1].value
- A formProperty can have different types and then you may want to apply a specific formatter for a given type.
The Level ‘Type’ attribute can be multi-valuated and allows describing a different set of cells depending on the type of the form property.
Tip:
Tip:
You can specify several cellExpressions for a given cell, depending on the type of the form property value (identified by its ‘valueType’)
<cell format="monetary" type="expression" cssName="cellStatus">
<!-- Display of an empty cell for BVAL values -->
<cellExpression valueType="BVAL" />
<!-- Display of a price for SI values-->
<cellExpression valueType="SI">
$CURRENT_VALUE.PRGM/pmTest.Range[1].value
</cellExpression>
</cell>
Example:
XML Sample
In the following example, we display all the Completed FPs in the summary.
<!-- Header Cells Description-->
<level cssName="confBreakdownLevelHeader" level="header">
<line>
<cell type="translation" cssName="cellDescr" cellTranslationName="status.transl" />
<cell>... </cell>
</line>
</level>
<!-- Description of cells for CPs and FOs-->
<level cssName="confBreakdownLevel1" level="rootCP|nodeCP|form" showUserType="*" showStatus="">
<line>
<cell format="status" type="expression" cssName="cellStatus" cellExpression="$CURRENT_NODE.state" />
<cell type="expression" cssName="cellDescr" cellExpression="$CURRENT_NODE.descr" cellcount="5" />
</line>
</level>
<!-- Description of cells for FPs-->
<level cssName="confBreakdownLevel2" level="formProperty" showUserType="*" showStatus="COMPLETED,ERROR">
<linetype="TEXT|LONG_TEXT|INTEGER|BOOLEAN|NUMERIC|MONETARY|URL|FILE">
<cell format="text" type="expression" cssName="cellStatus" cellExpression="" />
<cell format="text" type="expression" cssName="cellDescr" cellExpression="$CURRENT_NODE.descr" />
<cell>... </cell>
</line>
<line type="OBJECT_TYPE">
<cell format="text" type="expression" cssName="cellStatus" cellExpression="" />
<cellExpression>
$CURRENT_VALUE.descr
</cellExpression>
</cell>
<!-- Different expression for a BVAL and for a SI-->
<cell format="monetary" type="expression" cssName="cellStatus">
<cellExpression valueType="BVAL" /> <!—empty cell-->
<cellExpression valueType="SI">
$CURRENT_VALUE.PRGM/PG5.Range[1].value
</cellExpression>
</cell>
<cell>... </cell>
</line>
</level>
</summaryContent>
CODIFICATION ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| useBPSetSublevels: displays each BPset as a sub Tab | on / off |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| tabTranslationName: Name of the tab | #IMPLIED | |
| showTab: tab visible or not visible | on / off |
Example:
XML Sample
<codificationContent useBPSetSublevels="on" cssName="mainCodification" tabTranslationName="summaryBox.content.codification" activeTabResourceName="" mouseOverTabResourceName="" inactiveTabResourceName="" showTab="on" />
DRAWING ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| tabTranslationName: Name of the tab | #IMPLIED | |
| showTab: tab visible or not visible | on / off | |
| drawingBox | drawingBox |
Example:
<drawingContent cssName="drawingContent" tabTranslationName="summaryBox.content.drawing" activeTabResourceName="" mouseOverTabResourceName="" inactiveTabResourceName="" showTab="on" >
<drawingBox>…</drawingBox>
</drawingContent>
manufacturingBox
OVERVIEW
The manufacturingBox goal is to display an overview of the generated manufacturing process including:
- a tree presenting a view of the generated BOM
- a detailed view of the manufacturing processes
- for each manufacturing process or standard items, the list of routings variants and operations as well as their associated business information grids.
Example of the tree view:
- Default Horizontal view
The name or description of the manufacturing process or standard item is displayed in the bow depending on the value of the ‘dispayType’ attribute.
It is possible to click on a tree node to expand the sub-levels.
The mouse scroll or zoom controls allow to zoom on certain parts of the manufacturing process and access the ‘Zoomed’ view.
- Default Vertical view
- Zoomed view
The zoomed view allows to display additional information for the manufacturing processes.
Example of the detailed view:
The detailed view can be accessed by clicking on the icon.
It allows displaying the Routings of the currently selected element as well as the BOM of its children.
The businessInformation grids attached to the BOM and routings can be accessed by clicking on the corresponding action.
A manufacturingBox is made of 2 main parts describing the way the detailedView is displayed:
- A manufacturingContent for the BOM: – contentSource ="bom"
- A manufacturingContent (one tab is generated per routing variant) for the Routings: – contentSource ="routing"Warning: Contrary to the summaryBox, the manufacturingBox contains dynamic tabs. One tab is generated per routing variant.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: manufacturingBox visible or not | on / off | |
| widthPercent: percentage of occupancy in the total width of the container/page | #IMPLIED |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| heightPercent: percentage of occupancy in the total height of the container/page | #IMPLIED | |
| autoSize: (Cf. Appendix C – UI brick positioning) | on / off | |
| hzAlignment: gives the horizontal alignment of the box in its container/ page | left / right /center / justified | |
| vtAlignment: gives the vertical alignment of the box in its container/ page | up / down / middle / distributed | |
| titleTranslationName: identifier of the translation used to give the title of the box | #IMPLIED | |
| titleResourceName: identifier of a resource used as a title | #IMPLIED | |
| ratio: sets the default zoom ratio when initially displaying the graph | Float value Default value is 1 Values smaller than 1 will result in displaying a smaller (more zoomed out) version of the graph. Values higher than 1 will display a bigger (more zoomed in) version of the graph. | |
| treeNodeWidth : size in px of the tree node | #IMPLIED |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| treeNodeHeight : size in px of the tree node | #IMPLIED | |
| displayType: to display the name of the product, or the description or both NB: for the tree view, only the first token is taken into account | name / description The attribute can be multivalued (and ordered): e.g. ‘name,description | |
| rmoUserType: user type of the RMO information to be displayed | #IMPLIED “*” means ‘any’ userType | |
| manufacturingContent | Please check parameterization below. |
CONTENT STRUCTURE
Each content of the manufacturing is made of a Dynamic table.
Reference: For more details regarding the parameterization of the Dynamic Content table, please refer to Dynamic Content table.
VISUAL IDENTITY
The manufacturing box is associated to a main class. Each sub-tabs (related to a manufacturing content) is monitored through another specific main class. Then, each level of the manufacturing content also corresponds to an independent class.
<resource name="manufacturingBox.detailedView">theme/configuratorDesktop/images/manufacturing
/treeViewOpenDetail.png</resource>
<resource name="manufacturingBox.detailedView.defaultImageMP">theme/ configuratorDesktop/images/manufacturing/pictoTreeViewManufacturing.png</resource>
<resource name="manufacturingBox.detailedView.defaultImageSI">theme/ configuratorDesktop/images/manufacturing/pictoTreeViewSI.png</resource>
<resource name="manufacturingBox .detailedView.defaultImageCI">theme/ configuratorDesktop/images/manufacturing/pictoTreeViewManufacturing.png</resource>
<resource name="manufacturingBox .detailedView.close">theme/ configuratorDesktop/images/manufacturing/btnBack.png</resource>
<translation name="manufacturingBox
.detailedView.close.label">Close</translation>
The title translation of the routing tabs is dynamic and corresponds to the description of the routing:
<translation name="manufacturingBox.tab.manufacturingBoxContentRouting">{0}</translation>
MANUFACTURING ATTRIBUTES DETAILS
The manufacturing process structure is a hierarchy of codified manufacturing processes and standard items. Each element of the structure can be associated to a business information grid, several routing variants listing a set of operations.
In the XML Layout file, a ‘template’ of the manufacturing content has to be described.
When the end-user clicks on an element of the tree view and access the detailed view, the following data is displayed:
- the BOM and Business information grid associated to the children of the currently selected element
- the routings and operations associated to the current element
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| contentSource: Identifier of the content | bom / routing | |
| tabTranslationName: Name of the tab NB: when the tab content source corresponds to the “routing variant”, the title of the tab is the description of the routing entity. | #IMPLIED | |
| level | ||
| level: identifier of the level | header / others | |
| collapseable: summary level collapsible | on / off | |
| line | group of cells defined for a given type of line |
Tip:
List of keywords you can use in the cellExpression attribute of cells:
- $CURRENT_ ITEM: is replaced at runtime by the CPE of the item associated to the manufacturing structure. The CPQ UI iterates on each element to be displayed.
It allows to browse the entities of the generated manufacturing structure: Name: $CURRENT_ITEM.name
Descr: $CURRENT_ITEM.descr
The current_item can represent the children of the currently selected element when the manufacturingContent=‘bom’, or the operations when the manufacturingContent=‘routing’.
Example:
XML Sample
<manufacturingBox cssName="manufacturingBox" autosize="off" widthPercent="100"heightPercent="100" hzAlignment="center" vtAlignment="up" displayType="name,description" treeNodeWidth="150" treeNodeHeight="70" rmoUserType="*"><manufacturingContent cssName="manufacturingBoxContent"tabTranslationName="manufacturingBox.tab.manufacturingBoxContentBOM" contentSource="bom"><level cssName="manufacturingLevelHeader" level="header"collapseable="off"><line><cell type="translation" cssName="cellDescrManuf"cellTranslationName=""/><cell type="translation" cssName="cellDescrManuf"cellTranslationName="manufacturing.header.name"/><cell type="translation" cssName="cellDescrManuf"cellTranslationName="manufacturing.header.description"/><!-- .... --></line></level><level cssName="manufacturingLevelOthers" level="others"collapseable="off"><line><cell type="translation" cssName="cellDescrBkd"cellTranslationName=""><linkedAction actionName="OPEN_FLYER(flyerName=config.sigFlyer)" resourceName="btnOpenSigFlyer"translationName="tooltip.openSigFlyer" /></cell><cell type="expression" cssName="cellDescrBkd" cellExpression="$CURRENT_ITEM.name"/><cell type="expression" cssName="cellDescrBkd" cellExpression="$CURRENT_ITEM.descr"/><!-- .... --></line></level></manufacturingContent><manufacturingContent cssName="manufacturingBoxContent" tabTranslationName="manufacturingBox.tab.manufacturingBoxContentRouting"contentSource="routing"><level cssName="manufacturingLevelHeader" level="header"collapseable="off"><line><cell type="translation" cssName="cellDescrManuf"cellTranslationName=""/><cell type="translation" cssName="cellDescrManuf"cellTranslationName="manufacturing.header.description"/><cell type="translation" cssName="cellDescrManuf"cellTranslationName="manufacturing.header.timetype"/><!-- .... --></line></level><level cssName="manufacturingLevelOthers" level="others"collapseable="off"><line><cell type="translation" cssName="cellDescrBkd"cellTranslationName=""><linkedAction actionName="OPEN_FLYER(flyerName=config.sigFlyer)" resourceName="btnOpenSigFlyer"translationName="tooltip.openSigFlyer" /></cell><cell type="expression" cssName="cellDescrBkd" cellExpression="$CURRENT_ITEM.descr"/><cell type="expression" cssName="cellDescrBkd"cellExpression="$CURRENT_ITEM.timeType"/><!-- .... --></line></level>:</manufacturingContent></manufacturingBox>
salesInformationFlyer (businessInformation)
OVERVIEW
A salesInformationFlyer pops up a salesInformationBox which aims at displaying additional data associated to each Sales Breakdown Codified Line or to a BOM or a manufacturing Routing.
Warning:
salesInformationFlyer/Box are used to display sales information and businessInformation.
Reference:
The SalesInformation flyer can be called from any cell of a codified line in the Sales Breakdown.
The action will be available on a codified salesBreakdown line if a SIG/BIG has been generated on this line or any invisible subLines.
Please refer to: How to use Flyers for more details
Warning:
As the OPEN_FLYER action can call all kind of flyers, the names of these flyers have to be unique in the XML file.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: salesInformationFlyer/businessInformationFlyer visible or not | on / off | |
| name: identifier of the Flyer. This name is used as a parameter of the OPEN_FLYER action. | #IMPLIED | |
| resizable: flyer resizable or not | on / off | |
| titleTranslationName: identifier of the translation used to give the title of the flyer | #IMPLIED | |
| titleResourceName: identifier of the resource to be displayed in the title of the flyer. | #IMPLIED | |
| vtPosition: gives the vertical position of the flyer in the screen | up / middle / down / auto | |
| hzPosition: gives the horizontal position of the flyer in the screen | left / center / right / auto | |
| vtSize: gives in pixel the vertical size of the flyer | #IMPLIED | |
| hzSize: gives in pixel the horizontal size of the flyer | #IMPLIED | |
| salesInformationBox/businessInformationBox | A salesInformationBox/businessInformationBox can be inserted in the salesInformationFlyer/businessInformationFlyer. | #REQUIRED |
VISUAL IDENTITY
The salesInformationFlyer is associated to a main CSS class. The resource associated to the header part of the salesInformationFlyer is declared in the XML Layout file.
salesInformationBox
OVERVIEW
The salesInformationBox displays the content of Sales/Business Information Grids (SIG/BIG). This additional data can be generated for codified Sales Breakdown Line or by the manufacturing process. They are structured tables, for which the columns have been defined by Business Properties
ATTRIBUTES DETAILS
| SUB - ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: salesInformationBox/businessInformationBox visible or not | on / off | |
| widthPercent: percentage of occupancy in the total width of the container | #IMPLIED | |
| heightPercent: percentage of occupancy in the total height of the container/flyer | #IMPLIED | |
| autoSize: (Cf. Appendix – UI brick positioning) | on / off | |
| hzAlignment: gives the horizontal alignment of the box in its container | left / right /center / justified | |
| vtAlignment: gives the vertical alignment of the box in its container | up / down / middle / distributed | |
| titleTranslationName: identifier of the translation used to give the title of the box | #IMPLIED |
| SUB - ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| showSBLDescription: shows the description of the sales breakdown line or the manufacturing parent entity attached to the SIG/BIG. | on / off | |
| showSublines: if any invisible sales breakdown sub lines are linked to a SIG/BIG, these sub lines are shown in the sales information box. NB: This attribute is only used when the SIG is attached to a sales breakdown line. | on / off |
Example:
XML Sample
<salesInformationBox cssName="salesInformationBox" hzAlignment="right" vtAlignment="up" widthPercent="100" heightPercent="100" autosize="off" showSBLDescription="on" titleTranslationName="salesInfoGrid.title" showSublines="on" />
VISUAL IDENTITY
The salesInformationBox is associated to a main CSS class. Mapping between CSS Classes and component structure
bundlePage
OVERVIEW
The bundle page is the container of the Configurable Bundle user interface. It contains the dialog of the bundle (bundleBox), the access to the optimization flyer, and the view on the bundle output.
Warning:
You can only insert one bundle page per Configurator UI file. Bundle, Selection Group, Selection boxes and dedicated valueSelectors can only be used in the context of a bundlePage.
A configuration Page contains one BundleBox.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| optimization: access to the optimization flyer | on / off | |
| undo: enable the undo button | on / off | |
| filter: enable the filter button | on / off | |
| bundleBox | bundleBox |
Tip:
Optimization, Undo and Filter buttons visibility are driven by the bundlePage settings.
Optimization button is used to open the optimization flyer.
Undo button is used to rollback on the last user action and put the configurable bundle back in the previous situation.
Filter button is used by the end-user to add minimum and/or maximum limits on output dimensions, that are used as constraints during the bundle configuration.
VISUAL IDENTITY
In the standard theme, the class bundlePage (in bundlePage.css) allows specifying the default colors for texts appearing in the Selection Groups and Selections. You can personalize the header and corners background, the borde, etc.
bundleBox
OVERVIEW
The bundleBox is an essential component of the page layout when using configurable bundles. It describes the way the dialog is displayed to you. The questions of this dialog (called Selections) are organized in Selection Groups (SG).
Warning:
You can only insert one bundleBox per bundlePage. Selection Groups, Selection boxes and dedicated valueSelectors can only be used in the context of a bundleBox.
A bundle Box contains one or several selectionGroupBoxes having one or several selectionBoxes.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: bundleBox visible or not | on / off |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| widthPercent: percentage of occupancy in the total width of the container/page | #IMPLIED | |
| heightPercent: percentage of occupancy in the total height of the container/page | #IMPLIED | |
| autoSize: (Cf. Appendix C – UI brick positioning) | on / off | |
| hzAlignment: gives the horizontal alignment of the box in its container/ page | left / right / center / justified | |
| vtAlignment: gives the vertical alignment of the box in its container/ page | up / down / middle / distributed | |
| titleTranslationName: identifier of the translation used to give the title of the box | #IMPLIED | |
| titleResourceName: identifier of a resource used as a title | #IMPLIED | |
| selectionGroupBox | selectionGroupBox |
VISUAL IDENTITY
In the standard theme, the class bundleBox (in bundleBox.css) allows specifying the default colors for texts appearing in the Selection Groups and Selections. You can personalize the header and corners background, the borders, etc.
selectionGroupBox
OVERVIEW
A Selection Group has only one view mode which is the expanded one.
When a Selection Group is selected, the Selection boxes contained in this Selection Group are displayed.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: selectionGroupBox visible or not | on / off | |
| userType: user type of the Selection Group element | #IMPLIED “*” means ‘any’ userType |
Example:
XML Sample
<selectionGroupBox mode="on" cssName="selectionGroupBox" userType="*">
<actionBox mode="on" cssName="actionBox" hzAlignment="right"
vtAlignment="up" widthPercent="40" heightPercent="90"
autosize="off">
<action actionName="RESET" alignment="left"
resourceName="action.form.reset"
translationName="action.reset" url="" />
resourceName="action.form.copy"
translationName="action.copy" url="" />
<action>... </action>
</actionBox>
<!-- Description of selection boxes (check next paragraph) -->
<selectionBox cssName="selectionBox">
...
</selectionBox>
<!-- List of statuses and their associated resources -->
<status statusName="ERROR" statusResourceName="status.error"
statusTranslationName="status.error" />
<status statusName="MANDATORY"
statusResourceName="status.mandatory"
statusTranslationName="status.mandatory" />
<status>...</status>
</selectionGroupBox>
VISUAL IDENTITY
Each selection box has its own main class.
As action boxes are independent components, a main CSS class is also associated to these elements.
selectionBox
OVERVIEW
Like Selection Group boxes, Selection boxes only have one state which is expanded.
Each selectionBox is a container of a ‘valueSelector’ that controls the way the domain of values is displayed.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| userType: user type of the Form Property element | #IMPLIED “*” means ‘any’ userType |
Example:
XML Sample
< selectionBox cssName="selectionBox" userType="*">
<actionBox mode="on" cssName="actionBox" hzAlignment="right"
vtAlignment="up" widthPercent="2" heightPercent="90" autosize="off">
<action actionName="OPEN_FLYER(flyerName=config.rmoFlyer)"
alignment="left" resourceName=" btnInfo" translationName="
action.openRmoFlyer" url=""/>
</actionBox>
</selectionBox>
VISUAL IDENTITY
Each selectionBox has its own main class.
As action boxes are independent components, a main CSS class is also associated to these elements.
Bundle Value Selectors
OVERVIEW
Value selectors are graphical components which are used to list the possible products for a selection and to enable the user to input a choice (or several choices).
In the Configurable Bundle model, each Selection is associated to a ‘Layout’ value. The Layout attribute of the SE corresponds to the name of a value selector that will be used by the Bundle to display the Selection.
This value selector name is linked to a predefined (or custom) value selector type in the Layout XML file.
A library of selectors is packaged by default with the Bundle.
This following table gives the list of predefined value selector types that can be used:
| PREDEFINED VALUE SELECTOR TYPES | DESCRIPTION |
|---|---|
| Simple valueSelector | |
| < BundleComboBoxValueSelector> | A standard drop down list of products |
| < BundleListValueSelector> | A list of products with their associated check boxes (or radio buttons) to allow the selection of products |
| < BundleRollingValueSelector> | An horizontal list of images that the end-user can roll to select the appropriate product |
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| name: name of the Value Selector corresponding to the layout attribute of the selection. | #IMPLIED | |
| activateCollapsedMode: indicates if the collapsed mode of the selection boxes and selector is enabled | simple / list / matrix “off” means that the mode is deactivated. | |
| activateExpandedMode: indicates if the expanded mode of the selection boxes and selector is enabled | simple / list / matrix “off” means that the mode is deactivated. | |
| hideForbiddenValues: indicates if forbidden values (red values) have to be shown in the form property domain. | true / false (by default) | |
| disableForbiddenValues: indicates if forbidden values (red values) can be selected to value the SE. If false, then forbidden values can be selected. | true / false (by default) | |
| <value selector type> | Description of the value selector to be used for the given layout. (cf. attributes list in the table below) | |
| action Box | Actions associated to each SE values (in particular SET / RESET / OPEN_INSIGHT actions) | actionBox actionBox |
Tip:
The “SET” action which is present by default for all value selectors and allows the valuation of the SE can be removed.
In that case (as well as for the collapsed view), the end-user values a SE :
- Either by pressing Enter.
- Or by clicking on the radio button associated to a SE value, or by checking a box or by selecting a value in a combobox (depending on the value selector type).
For SE having a multi-selection valuation type, it is strongly recommended to keep the default OK button in the User Interface (“SET” action) to avoid submitting information each time a selection is done.
Some standard value selectors can be associated:
- to action boxes ( actionBox) related to each value of the SE domain
- and to up to two pricing information (Pricing method and Range are mandatory in that case).
Moreover, some specific additional parameters can also be defined.
The following table lists the predefined value selector types with their parameters:
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| BundleComboBoxValueSelector | displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| BundleComboBoxValueSelector | showImageMode: Define which image is shown on the SE. If “1”, then the image of the SE is shown. If “2”, then the image of the selected product is shown. | 1 or 2 | |
| BundleComboBoxValueSelector | showTooltip: enable onMouseOver informations on products | on / off | |
| BundleComboBoxValueSelector | showPriceMode: Define how the price is shown on each product If “1”, then the price shown is the difference with the selected product. If “2”, then the price shown is the product price | 1 or 2 | |
| BundleComboBoxValueSelector | pricing | Optional tags specifying which price or element of the items of the SE domain | |
| BundleComboBoxValueSelector | pricing | CPE of the pricing method that will be used to display the price or element | #IMPLIED |
| BundleComboBoxValueSelector | pricing | range: range to be displayed | #IMPLIED |
| BundleComboBoxValueSelector | pricing | element: element to be displayed | #IMPLIED |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| BundleComboBoxValueSelector | pricing | resourceName: resource associated to the price | #IMPLIED |
| BundleComboBoxValueSelector | pricing | resourceAlignment: alignment of the graphical resource | left / right |
| BundleComboBoxValueSelector | pricing | translationName: a translatable title associated to the price | #IMPLIED |
| BundleComboBoxValueSelector | pricing | translationAlignment: position of the title | left / right |
| BundleComboBoxValueSelector | Action Box | Actions associated to each SE value | actionBox actionBox |
| BundleListValueSelector | columnCount: number of columns to display the SE products. | #IMPLIED | |
| BundleListValueSelector | showImageMode: Define which image is shown on the SE. If “1”, then the image of the SE is shown. If “2”, then the image of the selected product is shown. | 1 or 2 | |
| BundleListValueSelector | displayType: for objectType values, displays the name or description (or both) of the object. (optional parameter) | name / description (can be multi valuated) |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| BundleListValueSelector | showTooltip: enable onMouseOver informations on products | on / off | |
| BundleListValueSelector | showPriceMode: Define how the price is shown on each product If “1”, then the price shown is the difference with the selected product. If “2”, then the price shown is the product price | 1 or 2 | |
| BundleListValueSelector | action Box | Actions associated to each SE value | actionBox actionBox |
| BundleListValueSelector | pricing | Specifies which pricing method has to be used if the user wants to display a price or element associated to the items of the SE domain | |
| BundleListValueSelector | pricing | method: CPE of the pricing method that will be used to display the price or element of the elements in the cell | #IMPLIED |
| BundleListValueSelector | pricing | range: range of the displayed price | #IMPLIED |
| BundleListValueSelector | pricing | element: element to be displayed | #IMPLIED |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| BundleListValueSelector | pricing | resourceName: resource associated to the price | #IMPLIED |
| BundleListValueSelector | pricing | resourceAlignment: alignment of the graphical resource | left / right |
| BundleListValueSelector | pricing | translationName: a translatable title associated to the price | #IMPLIED |
| BundleListValueSelector | pricing | translationAlignment: position of the title | left / right |
| BundleRollingValueSelector | columnCount: number of columns to display the SE values. | #IMPLIED | |
| BundleRollingValueSelector | rmoUserType: userType of the displayed RMO | “*” means ‘any’ useType | |
| BundleRollingValueSelector | showImageMode: Define which image is shown on the SE. If “1”, then the image of the SE is shown. If “2”, then the image of the selected product is shown. | 1 or 2 | |
| BundleRollingValueSelector | showTooltip: enable onMouseOver information on products | on / off |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| BundleRollingValueSelector | showPriceMode: Define how the price is shown on each product If “1”, then the price shown is the difference with the selected product. If “2”, then the price shown is the product price | 1 or 2 | |
| BundleRollingValueSelector | paginationMode: behavior of the horizontal scrolling: on: products pagination on click off: continuous products scrolling on mouse over | on / off (default) | |
| BundleRollingValueSelector | action Box | Actions associated to each SE value | actionBox |
| BundleRollingValueSelector | pricing | method: CPE of the pricing method that will be used to display the price or element of the elements in the cell | #IMPLIED |
| BundleRollingValueSelector | pricing | range: range of the displayed price | #IMPLIED |
| BundleRollingValueSelector | pricing | element: element to be displayed | #IMPLIED |
| BundleRollingValueSelector | pricing | resourceName: resource associated to the price | #IMPLIED |
| SUB-ELTS | SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|---|
| BundleRollingValueSelector | pricing | resourceAlignment: alignment of the graphical resource | left / right |
| BundleRollingValueSelector | pricing | translationName: a translatable title associated to the price | #IMPLIED |
| BundleRollingValueSelector | pricing | translationAlignment: position of the title | left / right |
Example:
XML Sample
<!—The value of the Layout attribute -->
<valueSelector name="BundleLayoutName" activateCollapsedMode="simple,list,matrix" activateExpandedMode="simple,list,matrix">
<!—The value selector itself -->
<myValueSelectorType attribute="attributeValue " …>
<pricing> <!-- Pricing Information --> </pricing>
<actionBox>
<!-- Action box related to values -->
</actionBox>
</myValueSelectorType >
<!-- Action box applying on the whole value selector -->
<actionBox mode="on" cssName="myCssClass" hzAlignment="left" vtAlignment="down" widthPercent="100" heightPercent="8" autosize="off">
<action actionName="SET" alignment="left" resourceName="btnOk"
translationName="action.Set" url="" />
<action actionName="RESET" alignment="left" resourceName="btnReset" translationName="action.Reset " url="" />
</actionBox>
</valueSelector>
Tip:
The translationName associated to a element is dynamically built following the associated localized message :
<translation name="priceTranslation">From {0} – Fees included </translation>
{0} will be replaced on the fly at runtime by the price to be displayed.
NB: If the translation does not contain {0}, translationAlignment attribute is used to position the translation title and price.
summaryBundleBox
OVERVIEW
This box allows displaying both results associated with the Configurable Bundle dialog and the elements you selected to build your Bundle. When a selection is made, selected elements automatically appear under the format of a list in the Selection section.
ATTRIBUTES DETAILS
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| mode: summaryBundleBox visible or not | on / off | |
| widthPercent: percentage of occupancy in the total width of the container/page | #IMPLIED | |
| heightPercent: percentage of occupancy in the total height of the container/page | #IMPLIED | |
| autoSize: (Cf. Appendix C – UI brick positioning) | on / off | |
| hzAlignment: gives the horizontal alignment of the box in its container/ page | left / right / center / justified | |
| vtAlignment: gives the vertical alignment of the box in its container/ page | up / down / middle / distributed | |
| titleTranslationName: identifier of the translation used to give the title of the box | #IMPLIED | |
| titleResourceName: identifier of a resource used as a title | #IMPLIED |
| SUB-ELTS | ATTRIBUTES | VALUE |
|---|---|---|
| showResult: visibility of the Results section or its sub-parts. This attribute rules the display of Sales Breakdown (SBL) totals and / or totals from Business Property (BP) criteria within the Results section. | on: show all totals off: show no totals SBLonly: show SBL totals only BPonly: show BP totals only | |
| showSelectedValues: list of selected values visible or not | on / off |
<summaryBundleBox cssName="summaryBundleBox" mode="on" widthPercent="100" heightPercent="100" hzAlignment="left" vtAlignment="up" titleResourceName="" titleTranslationName="summaryBundleBox.title" autosize="on" showResult="SBLonly" showSelectedValues="on">
</summaryBundleBox>
VISUAL IDENTITY
Each summary Bundle box has its own main class.
InformationFlyer in a Configurable Bundle
The dialog managed in a bundlePage / bundleBox is driven by rules, among which the Validation rule. Validation rules allows raising Informative or Blocking messages along the dialog to guide you and suggest actions while configuring a Bundle.
Fonctionally speaking, messages pop up on the screen in an informationFlyer whenever they are raised. In that case, either you can acknowledge and close the flyer or click on the redirection action when available and be redirected to a selection where you will be able to take action.
The infomationFlyer in that scenario should be setup to behave as follows:
- Informative and Blocking business explanations are listed at the top of the flyer so that you can focus on them in priority.
- Other potential messages are gathered in a collapsible / expandable "Other Messages" section below the one above.
- For each Informative or Business explanation, the flyer displays:
- The type of message, e.g. Informative or Blocking.
- The message itself.
- A button redirecting you to the corresponding selection where you will be able to modify your choice.
The informationFlyer should specifically include the following categories of messages to support that scenario:
businessMessages_blockingBusinessExplanationsbusinessMessages_informativeBusinessExplanations
In addition, the informationFlyer can also be openened on-demand so that you can consult the list of pending Informative and / or Blocking business explanations. To do so, an OPEN_FLYER action pointing at an informationFlyer including the two above categories must be defined in the layout to open that flyer on-demand. The message persistence must be activated for the overall process to be possible (common.message.persistence=true in cameleon.properties)
CODE SAMPLES
Example of informationFlyer with relevant categories:
<informationFlyer name="bundle.infoFlyer" cssName="flyer" mode="on" openByAction="true" hzPosition="center" vtPosition="middle" resizable="on" hzSize="440" vtSize="300" titleResourceName="" titleTranslationName="bundle.infoFlyer.title" displayType="description" subSectionsMode="off" autoOpen="off" collapsible="off">
<messageCategory mode="on" name="businessMessages_blockingBusinessExplanations"/>
<messageCategory mode="on" name="businessMessages_informativeBusinessExplanations"/>
</informationFlyer>
Example of OPEN_FLYER action:
<action actionName="OPEN_FLYER(flyerName=bundle.infoFlyer)" alignment="left" resourceName="" translationName="tooltip.openBundleInfoFlyer" url="" />
VISUAL IDENTITY
