Conga Product Documentation

Welcome to the new doc site. Some of your old bookmarks will no longer work. Please use the search bar to find your desired topic.

Show Page Sections

Quote Model Options

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.



Note: We advise you Choose the CPQModel_BasicSample as a starting point
  • [From the Quote Designer]
    • 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.

  • [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 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.

  • a parameter "reportFileName" can be used to define the name of the output file.
  • its value can be set both in the jasper template or as a cart session value - typically sent by the CRM. In case it is found in both, the cart session value overrides the template value.
  • any " " characters will be replaced by "_" characters.

    <parameter name="reportFileName" class="java.lang.String" isForPrompting="false">

    <defaultValueExpression><![CDATA["myName"]]></defaultValueExpression>

    </parameter>

    {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).pdf
    Note: 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’.

    Note: At runtime, the files and images uploaded to generate a report are NOT stored. This means the document will be generated properly after the upload.

    However the uploaded file is not persisted. That means that trying to generate the document in another session without uploading new documents / images will not work.

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 lines
    Note: 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
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.