Focusing on Quote Layers
How to launch the Quote UI?
INPUT PARAMETERS
The Settings File (Quote File) provides parameters needed to initialize the quotation process The setting file points to:
- A layout Id (corresponding to the Layout File)
- A model Id & Release (corresponding to the Model File (ModelName-ReleaseNb.xml & .bin))Note: The standard Settings File (createcart.xml) can be found in the CPQ home in the following folder: $CPQ_home_folder$/conf/run/settings/cart The standard Model
File(s) (CPQModel_BasicSample-1.xml and .bin) can be found in the CPQ home in the following folder: $CPQ_home_folder$/conf/run/model The standard Layout File (cpqUI.xml) can be found on the CPQ server in the following folder: $CPQ_home_folder$/conf/run/layout/cart
All these files are encoded in UTF-8. Ensure that this encoding is not altered when you edit them.
Launching Methods
3 methods are available to launch the Configurator.
Method 1 – from within the Designer
Run the Configurator from the Designer
- [In the menu toolbar] Execute the ‘Run current’ function
- [In the popup] Fill the three file parameters (files stored on your CPQ server (Layout/Configuration Server Files)
- Click on ‘Ok’
Method 2 – from within Quote
- Create an eConfigurator service [Possible containers for this service are eHome, eMenu] to access a model previously created in the Designer
- Fill all the following service parameters:
| PARAMETERS | DESCRIPTION | EXAMPLE |
|---|---|---|
| confType | The value of this parameter has to be "CP7" to be used with the Configurator. 3 parameters below must be filled. If "confType" is not defined, or valuated with another value than "CP7", Configurator V6 is used. Then parameters detailed in the following table have to be filled. | CP7 |
| xmlLayoutURI | Configuration XML layout file to be used by CPQ UI for the configuration UI rendering. | configuratorUI .xml |
| xmlConfigurationURI | Configuration settings XML file. | configuration .xml |
| xmlSavedConfigurationURI | Backup file of the configuration on the server. This backup is done with a SAVE action inserted in the 'xmlLayoutURI' file. | configuration-saved.xml |
Method 3 – via a Web Service
In order to ease the integration of the Configurator component into others applications, a Web service connector is distributed as part of the CPQ package.
Reference: Details on the integration via a Web Service: Please check “APPENDIX A – CPQ UI”.
CATALOG
Input Parameters
3 input parameters are required to launch the Catalog: the Layout file (see definition above), the Catalog file and a path to the Result file.
The Result File corresponds to the output file used to store the XML representing a product (when using the SAVE action).
Note:
The standard Settings File (catalog.xml) can be found on the CPQ server in the following folder: $cpq_home_folder$/conf/run/settings
The standard Layout File (catalogUIDesktop.xml) can be found on the CPQ server in the following folder: `$cpq_home_folder$/conf/run/layout
The XML layout file structure is described by a XSD schema located by default on your CPQ server: $cpq_home_folder$/conf/xsd/catalogUI.xsd
After having modified these files, please ensure that the encoding is set to UTF-8 when saving.
Launching Methods
3 methods are available to launch the Catalog.
Method 1 – from within the Designer
Run the Catalog / Collection process from the Designer
- [In the menu toolbar] Execute the ‘Run current’ function
- [In the popup] Fill the three file parameters (files stored on your CPQ server (Layout/Configuration Server Files)
- Click on ‘Ok’
Method 2 – from within Quote
- Create an eConfigurator service [Possible containers for this service are eHome, eMenu] to access a model previously created in the Designer
- Fill all the following service parameters:
| PARAMETERS | DESCRIPTION | EXAMPLE |
|---|---|---|
| catalogType | The value of this parameter has to be "CT7" to be used with the Catalog. 3 parameters below must be filled. | CT7 |
| xmlLayoutURI | Catalog XML layout file to be used by CPQ UI for the catalog UI rendering. | catalogUI .xml |
| xmlCatalogURI | Catalog settings XML file. | catalog .xml |
| xmlSavedCatalogURI | This file stores the XML exported from the current standard item when the SAVE action is triggered from the catalog. | catalog-saved.xml |
Method 3 – via a Web Service
In order to ease the integration of the Catalog component into others applications, a Web service connector is distributed as part of the CPQ package.
Reference: Details on the integration via a Web Service: Please check “APPENDIX A – CPQ UI”.
MANUFACTURING ONLY
It is possible to launch the manufacturing engine without launching the complete configuration UI.
In that case, only the manufacturingPage of the layout file will be used to render the manufacturing results.
This way to launch the manufacturing process can be used from Designer or from Quote
Input Parameters
3 input parameters are required to launch the Manufacturing: the Layout file (see definition above), the Setting file and a path to the Result file.
The Settings File provides parameters needed to initialize the manufacturing process. It corresponds to a configurable process file which is complete and contains all data necessary to run de manufacturing (Targeted Configurable Product and Sales Method, Session Settings…Etc.)
The Result File corresponds to the output file used to store the result of the configuration and manufacturing process.
Note:
The Layout File to be used to launch the manufacturing process has to contain at least a Manufacturing Page.
After having modified these files, please ensure that the encoding is set to UTF-8 when saving.
Launching Methods
3 methods are available to launch the Manufacturing Process (from the corresponding project).
Method 1 – from within the Designer
Run the Manufacturing process from the Designer
- [In the menu toolbar] Execute the ‘Run current’ function
- [In the popup] Fill the three file parameters (files stored on your CPQ server (Layout/Configuration Server Files)
- Click on ‘Ok’
Method 2 – from within CPQ
- The Configurator and the Catalog services include a parameter allowing to specify which configurator layout file has to be used to visualize the result of the manufacturing process. (when using the ViewManufacturing action of the Quote model)
| PARAMETERS | DESCRIPTION | EXAMPLE |
|---|---|---|
| confType | The value of this parameter has to be "CP7" to be used with the Configurator. 3 parameters below must be filled. If "confType" is not defined, or valuated with another value than "CP7", Configurator V6 is used. Then parameters detailed in the following table are to be filled. | CP7 |
| xmlLayoutURI | Configuration XML layout file to be used by CPQ UI for the configuration UI rendering. | configuratorUI .xml |
| xmlConfigurationURI | Configuration settings XML file (COMPLETE – with all data necessary to run the manufacturing process). | Configuration Manufacturing .xml |
| xmlSavedConfigurationURI | Backup file of the configuration on the server. This backup is done with a SAVE action inserted in the 'xmlLayoutURI' file. | configuration-saved.xml |
| xmlManufacturingLayoutURI | Configuration XML layout file to be used by CPQ UI for the rendering of the manufacturing | configuratorUI .xml |
Method 3 – via a Web Service
In order to visualize the manufacturing results from a XML file already containing the generated manufacturing data, the ConfiguratorUI WS has to be called in ReadOnly and ManufacturingOnly mode. (In such a case, only the manufacturing page will be displayed and accessible in the User
Interface.)
How to define your quote model?
In order to define your own quote model please check the following steps:
- [Log-in into CPQ Designer]
Once logged, open the standard model.
- [From the Quote Designer]
- Save the quote As a new quote model:
- Save the quote As a new quote model:
- [Implement the business Logic]
- You have just created a new quote model. You can now implement your own computations and
actions.
- You have just created a new quote model. You can now implement your own computations and
- [Adjust the quote model for specific integration]
Quote integrated to CCS, salesforce.com or any other third party software may require some adjustments.
For salesforce.com integration, please refer to the corresponding Administration and customization guides.
How to define your own user interface?
In order to build your own user interface, you have to create your own layout file and theme directory.
- Duplicate the standard theme directory named ‘cameleon2011’ and choose a new name for your own theme:
- You can find the standard theme in the following folder:
*$CPQ_JBOSS$*standalone\deployments\cameleon.ear\cart.war\Theme
- You can find the standard theme in the following folder:
- Duplicate the cpqUI.xml file in the following folder: $CPQ_home_folder$/conf/run/layout/cart
- Link the new theme to the layout file and to the model file
- Edit the new layout file and replace all the references to the former theme by the new theme name.
- In particular and the resources: Theme/cameleon2011/img/btnHelp.png
- Open the Model xml file
- Replace all the references to the former theme by the new theme name.
- You should have only 1 reference to the former theme:
<layoutDefthemeName="cameleon2011">Reference: For more details about the Quote UI, please refer to the chapter Customizing the user interface:
How to setup the services used in the quote model?
You can setup your own services either directly in the XML setting file or if they are common (i.e. available for all end-users), you can define them in the cartService.properties file
CONFIGURATOR SERVICE INITIALIZATION
For each Configurator service (named “CONF_XX” in the table below), provide the following properties:
| PARAMETER | DESCRIPTION |
|---|---|
| service.CONF_XX.confType | Major version of the Configurator. Fixed value: CP7 |
| service.CONF_XX. xmlLayoutURI | Physical path determining the layout configuration file |
| service.CONF_XX. xmlManufacturingLayoutURI | Physical path determining the layout configuration file used to visualize the generated manufacturing data |
| service.CONF_XX. xmlConfigurationURI | Physical path determining the run configuration file |
| service.CONF_XX. xmlSavedConfigurationURI | Physical path determining the file in which the configuration result will be saved |
| service.CONF_XX_(US, FR…) | Description of the service displayed in the Quote UI |
In order to inject a setting (or override a given value) from the declaration of the service you have to define the CPE of the setting and its value as follows: service.CONF_XX.CPE.Settings.Session.MySetting=MySettingValue
CATALOG SERVICE INITIALIZATION
For each Catalog service (named “CAT_XX” in the table below), provide the following properties:
| PARAMETER | DESCRIPTION |
|---|---|
| service.CAT_XX.catalogType | Major version of the Catalog. Fixed value: CT7 |
| service.CAT_XX. xmlLayoutURI | Physical path determining the layout configuration file |
| service.CAT_XX. xmlCatalogURI | Physical path determining the run configuration file |
| service.CAT_XX. xmlSavedCatalogURI | Physical path determining the file in which selected products will be saved. |
| service.CAT_XX_(US, FR…) | Description of the service displayed in the Quote UI |
| service.CAT_XX.targetCPE | Allows opening a Catalog service directly on the object pointed by a given CPE |
| service.CAT_XX.targetPage | Allows opening a Catalog directly on a given collection page |
In order to inject a setting (or override a given value) from the declaration of the service you have to define the CPE of the setting and its value as follows: service.CAT_XX.CPE.Settings.Session.MySetting=MySettingValue
targetPage / targetCPE
In cartServices.properties, targetPage and targetCPE settings may be used to point or open a service directly on a specific object with its dedicated UI page.
These settings have to be added to an existing service. For example:
### Source Service CAT ###
service.CAT_XX.catalogType=CT7
service.CAT_XX.xmlLayoutURI=catXXUI.xml
service.CAT_XX.xmlCatalogURI=catalog.xml
service.CAT_XX.xmlSavedCatalogURI=saved-catalog.xml
service.CAT_XX.targetCPE=CPE.workspace/CL/cat.CL/col.CL/colX
service.CAT_XX.targetPage=collectionPage
service.CAT_XX.FR=Catalog
service.CAT_XX.US=Catalog
In that case, opening the catalog from the quote will display at first the collection page of collection colX.
You can point to various types of objects in the catalog tree (Collections, StandardItems, SalesProducts, GuidedSelling).
For instance:
service.CAT_XX.targetCPE=CPE.workspace/CL/cat.CL/col.CL/colX
service.CAT_XX.targetCPE=CPE.workspace/CL/cat.CL/col.CL/colX.SI/siX
service.CAT_XX.targetCPE=CPE.workspace/CL/cat.CL/colGuided.CP/guidedX
The “.workspace” in the CPE must be respected.
For each kind of object one wants to point on through the targetCPE setting, there is a dedicated UI page to specify with the targetPage setting. It can be any UI page available in the UI xml file specified in the service (xmlLayoutURI).
See below table for examples of corresponding values between targetCPE object type and targetPage:
| OBJECT TYPE | TARGETCPE EXAMPLE | TARGETPAGE |
|---|---|---|
| collection | CPE.workspace/CL/cat.CL/col.CL/colX | homePage, collectionPage |
| collection with a GS attached to the collection | CPE.workspace/CL/colX | collectionPage, needAnalysisPage |
| SI, SP | CPE.workspace/CL/cat.CL/col.CL/colX.SI/siX | productPage |
| configuration | CPE.workspace/CP/cp.FO… | configurationPage |
REPORT SERVICE INITIALIZATION
For each report service (named RPT_XX in the table below), provide the following properties:
| PARAMETER | DESCRIPTION |
|---|---|
| service.RPT_XX.appBuiltXML | For reports based on dynamically generated XML content, specifies the general XML structure |
| service.RPT_XX.appBuiltXMLPolicy | For reports based on dynamically generated XML content, specifies the custom policy that rules the elements included in the XML structure (see below for more details) |
| service.RPT_XX. appBuiltXMLType | For reports based on dynamically generated XML content, indicates, indicates whether the XML content should contain both codes and descriptions (value: “complete”) or only the codes (value: “fast”) |
| service.RPT_XX.encoding | Specifies the XML encoding (default value: “UTF-8”). Must not be changed |
| PARAMETER | DESCRIPTION |
|---|---|
| service.RPT_XX. mainDataSourceType | Specifies the main data source to be used for reports. Possible values: “POOL” (existing data source pool), “DB” (database), “appBuiltXML” (dynamically generated XML buffer) and “specificXML” (specific XML file) |
| service.RPT_XX. outputFormat | Report format. Possible values: “User Choice” (default value), “PDF”, “RTF” (Rich Text Format), “HTML”, “XLS”, “DOCX” or “XLSX” |
| service.RPT_XX.subDirectory | Physical sub path used to isolate the various reports. |
| service.RPT_XX.reportFile | Physical sub path pointing to the report template file used to generate the report |
| service.RPT_XX. reportLanguage | Report language. Possible choices: the quote language (value: “entity”), the user language (value: “user”) or a fixed language (value: “FR”, “US”) |
| service.RPT_XX. reportMultiLanguage | Indicates whether reports point to physically different language-dependent reports. It can be “yes” or “no” |
| service.RPT_XX.xpathXML | Indicates the XML entry point to be used by the Xpath request |
| service.RPT_XX. allowTableContentSelect | Indicates whether the report should print a table of content (only applicable if it has been provided in the report template) |
| service.RPT_XX. allowParagraphSelect | Indicates whether paragraphs are managed in the report (only applicable if paragraphs have been provided in the report template) |
| PARAMETER | DESCRIPTION |
|---|---|
| service.RPT_XX. settingsAutoSave | Allows to save the reports settings automatically. It can be “yes” or “no” |
| service.RPT_XX. keepLastDocumentOnly | If several documents are generated during the current session for the current service, only the last one is kept. It can be “yes” or “no” |
| service.RPT_XX.testFile | When this parameter is defined with a path (folder/file), the quote XML content is saved in the file pointed by this path anytime the report generation is triggered. If not defined, the XML is not saved. |
- By default, the generated file is named as follows:
serviceID_SimpleDateFormat{_Counter).pdf
The _Counter element is not included in the filename if only one file is generated during the session. As soon as at least two files are generated the same day (same SimpleDateFormat) and during the same session, the _Counter element will not be included in the filename for the first generated document, will be equal to 1 for the second generated document, will be equal to 2 for the third generated document, etc.
- If an input parameter 'reportFileName' is present in the JasperTemplate and is part of the cart session values
this parameter is used to define the name of the output file:
{reportFileName value}{_Counter).pdf
In that case, the _Counter element is not included in the filename if only one file is generated during the session. As soon as at least two files are generated during the same session,
the _Counter element will not be included in the filename for the first generated document, will be
equal to 1 for the second generated document, will be equal to 2 for the third generated document, etc.
- In case the reportFileName has invalid characters, the report name is set to be the default value for the reportFileName parameter from the report template
- In case there is not a default value for the reportFileName parameter from the report template, the format is
serviceID_SimpleDateFormat{_Counter).pdfNote: At runtime, the used entry template for jasper is looked up into the following directory:{CPQ_Home}/conf/run/reports/jasper/{subDirectory}/{reportFile} Or
{CPQ_Home}/conf/run/reports/jasper/{subDirectory}/{LanguageID}/{reportFile} if Multilanguage = ‘yes’.
Report content optimization policy
When generating reports automatically, the more elements are included, the more the generation takes time. One way to optimize the report generation thus consists in reducing the size of the content processed by Jasper.
To reduce the size of this XML flow, a policy mechanism can be configured in the cartServices.properties file as a parameter of the report service:
service.RPT_XX.appBuiltXMLPolicy
This parameter can have several values:
- full: all the elements are included in the XML flow
- light: all the elements, except the itemXML structure, are included in the XML flow
- custom: the full content can be customized
In the case of a custom policy, the inclusion of the following elements in the XML flow is (de)activable according to a Boolean:
- quoteHeader: inclusion of quote header data
- totalCells: inclusion of quote footer data
- productSublines: inclusion of SI/CP sublines
- confItemXML: inclusion of complete configurable products XML structure
- catItemXML: inclusion of complete catalog products XML structure
- quoteLines: inclusion of quote linesNote: By default, if the parameter is not filled, its boolean value will be equal to "true", meaning that the element (quote header, etc.) IS INCLUDED in the XML flow
The following parameter allows to select the quote column(s) to include in the XML flow. All other columns are ignored:
- columnName: the separator used between column names is "~"Note: By default, if the parameter is not filled, all the columns are sent to Jasper.
For instance, the syntax of this policy mechanism within the cartServices.properties file can be:
service.PROPOSAL.appBuiltXMLPolicy=custom;quoteHeader=true;totalCells=true;
quoteLines=true;productSublines=true;confItemXML=true;catItemXML=true;columnName=Item Qty~ListPrice~TotalListPrice
ELINKPAGE SERVICE INITIALIZATION
For each eLinkPage service (named LNKP_XX in the table below), provide the following properties:
| PARAMETER | DESCRIPTION |
|---|---|
| service.LNKP_XX.href | External URL associated with the eLinkPage service |
| service.LNKP_XX.target [Deprecated] | Define the page display destination: _popup: the page is displayed in a new window; _contentFrame: in a frame within CPQ |
| PARAMETER | DESCRIPTION |
|---|---|
| service.LNKP_XX.noParams | Prevents additional parameters to be passed in the redirection URL: 1:Yes; 0:No |
| service.LNKP_XX.windowParameters | if the target is “_popup”, additional window parameters can be set such as: toolbar=<yes/no>, width=, height=, etc. |
