Mapping In and Out
In the following chapter we describe how to parameterize the way PROS Quote ‘Overview’ (Force.com) and PROS Quote ‘Content’ (CPQ module) communicate and how to add some custom data depending on your business needs.
- the knowledge of CPQ model parameterization
- and a basic understanding of Salesforce set-up capabilities.
Understanding the Communication from Overview to Content Tab- Mapping IN
When switching from Overview tab to Content tab, the CPQ webservice is called and initialized with the values of the PROS Quote object but also of some values from the quote linked entities.
SYSTEM FIELDS MAPPING
The system fields (technical mandatory fields of the PROS Quote entity) are mapped as follows (This mapping cannot and must not be modified):
| OVERVIEW TAB/F.COM CAMLEON QUOTE ENTITY FIELD NAME | CONTENT TAB / CPQ OBJECT QUOTE MODEL FIELD NAME | |
|---|---|---|
| PROS Quote Domain | SFDC OrgID | Quote Domain |
| PROS UserGroup | Current User Profile | Quote UserGroup |
| PROS Quote Name | Name | ParameterTab.QuoteDescription |
| PROS Quote Status | Status | ChangeAndControlTab.CurrentStatus |
| Active Release | ActiveRelease | ParameterTab.ReleaseNumber |
| Owner field | Owner | ChangeAndControlTab.CurrentOwnerId |
| Language | (inherited from the user - Cf. custom Settings) | ParameterTab.Language |
| Currency | CurrencyIsoCode | ParameterTab.Currency |
The ‘Overview’ system fields overrides the values contained in the Quote content each time the CPQ webservice is called.
IMPLICIT PROS QUOTE FIELDS MAPPING
The standard fields (default fields of the PROS Quote entity included in the managed package) and custom fields (of the PROS Quote entity) are automatically passed as volatile session parameters in the Quote controller. Thus, they can be retrieved and used in the quote model as values (or default values) of header fields and total cells, and in the configuration processes or catalogs (as CPE session settings).
Format of the CPE -
CPE.Settings.Session.Application.myPROSQuoteCustomFieldName
IMPLICIT QUICK CHANGE FIELDS MAPPING
The custom fields of the Quick Change entity (PROS Additional Context object) are automatically passed as volatile session parameters in the Quote controller. Thus, they can be retrieved and used in the quote model as values (or default values) of header fields and total cells, and in the configuration processes or catalogs (as CPE session settings).
Format of the CPE -
CPE.Settings.Session.Application.AdditionalContext.myPROSQuoteCustomFieldName
EXPLICIT EXTERNAL FIELDS MAPPING
It is possible to inject values from Salesforce entity fields (external fields) into CPQ module on condition that these entities are linked to the PROS Quote Object.
a look-up relationship has been defined between the PROS Quote and the entity (1-to-1 relationship) [we call this entity a parent Entity]
For example, in the default managed package, the Account is a linked Salesforce entity
the entity is a child of an entity linked to the PROS Quote via a look-up type of relation (1-to-n relationship) [we call this entity a 2nd level Entity]
For example, in the default managed package, the Asset is a child entity of the AccountId.
To pass some eligible fields values into CPQ, you need to define a PROS Mapping Set.
- [In the PROS Mapping Set]
(If not activated check your access rights)
Create a new (or edit an existing) PROS Mapping Set.
- Click on ‘New’ button
- Specify a name for your mapping set (Note: all names have to be unique)
- [In the PROS Mapping Set Builder]
Define the external fields you want to pass to the CPQ module:
- Ensure that the Mapping IN is selected:
- By default, the tree view shows all the ‘parent’ Entities:
- If you want to map ‘2nd level’ Entities, you first need add this entity in the mapping. To add a child entity (e.g. Assets) of a linked object (e.g. Account) select the entity in the tree, click on ‘Add’ button and select the chosen child entity in the displayed combo box.
- Select the fields you want to pass to CPQ. Select the entity from the tree (on the left), and then check the boxes of the fields you want to map (on the right)
- Click on ‘Save’
- [From the Custom Settings]
- Specify the name of the Mapping set you want to use for your PROS Quote app.
- Specify the name of the Mapping set you want to use for your PROS Quote app.
The mapped field are passed as volatile session parameters in the Quote controller. Thus, they can be retrieved and used in the Quote model as values (or default values) of header fields and total cells, and in the configuration processes or catalogs (as CPE session settings).
CPE.Settings.Session.Application.cameleonQuoteLookUpFieldName.entityFieldName
e.g. CPE.Settings.Session.Application.AccountId.Name
Format of the CPE – for an 2nd level Entity:
CPE.Settings.Session.Application.cameleonQuoteLookUpFieldName.entityLinkName[xx].en tityFieldName
e.g.
CPE.Settings.Session.Application.AccountId.Assets[1].Name
CPE.Settings.Session.Application.AccountId.Assets[2].Name
HOW TO RETRIEVE A FIELD VALUE FROM FORCE.COM INTO CPQ
If you need to store or modify the custom field that you have previously created on you PROS Quote entity you can use a computation method (Attribute) allowing to retrieve a Quote controller value, based on the name of the attribute.
Convention for System, Standard and Custom Fields on the PROS Quote
The name of the attribute is the exact same name as the one used for the PROS Quote field on Force.com side.
Convention for External Fields
For external fields, it follows the same syntax as the CPE (without the CPE.Settings.Session.Application prefix)
cameleonQuoteLookUpFieldName.entityFieldName cameleonQuoteLookUpFieldName.entityLinkName[xx].entityFieldName
The Attribute computation method allows to set the value or the default value of any header or total cell field.
In the following example, we have created a myCustomField field on Force.com PROS Quote side. On CPQ side, we compute the value of the total cell based on this field name.
Understanding the Communication from Content to Overview Tab – Mapping OUT
When from the Content tab the user clicks on the Synchronize and Back to Overview action or when he clicks on the Overview tab, the PROS Quote entity is updated with regards to the following mapping mechanism.
The Synchronize action called when clicking on the Synchronize and Back to Overview action is parameterized in the CPQ Layout file.
In both case the actions should be the same.
SYSTEM FIELDS MAPPING
The system fields are mapped as follows :
| CONTENT TAB / CPQ OBJECT QUOTE MODEL FIELD NAME | OVERVIEW TAB / F.COM PROS QUOTE ENTITY FIELD NAME | |
|---|---|---|
| PROS Quote Name | ParameterTab.QuoteDescription | Name |
| PROS Quote Status | ChangeAndControlTab.CurrentStatus | Status |
IMPLICIT PROS QUOTE FIELDS MAPPING
The standard fields and custom fields (of the PROS Quote entity) are automatically synchronized if the name of the field (minus ‘ c’) in the quote model is identical to the field name in the Force.com PROS Quote entity.
If the field is also defined in the Quick Change entity (PROS Additional Context object), it is also synchronized with this entity.
For the specific case of a standard field (or custom field) which is of type ID (LookUp field) :
- either the SFDC field is valuated with the value of the CPQ field if (and only if) the CPQ value corresponds to the ID of an already existing entity on SFDC side.
- or the SFDC field is valuated with the ID of the first entity whose Name matches the CPQ value
EXPLICIT EXTERNAL FIELDS MAPPING
It is possible to create/update Salesforce entities linked to the PROS Quote when synchronizing the
Content and the Overview.
The way linked entities are updated depends on the type of the entity : parent Entity or 2nd level Entity.
It is possible to update some fields of parent entities based on the header and footer cells of Quote.
The mapping between the CPQ and the Salesforce field is indicated in the PROS Mapping Set (OUT Mapping Type).
- [In the PROS Mapping Set]
(If not activated check your access rights)
Create a new (or edit an existing) PROS Mapping Set.
- [In the PROS Mapping Set Builder]
Define the external fields you want to update when updating the PROS Quote content.
- Ensure that the Mapping OUT is selected:
- By default, the tree view shows all the parent entities. Select the parent Entity you want to update the fields.
- Define the fields you want to update (check the boxes of the fields in the right part of the builder) and indicate the name of the CPQ header or footer cell (for the header fields of the CPQ, do not forget to indicate the tab name before the field name: e.g. CartInfoTab.UserMail)
- By default, the tree view shows all the parent entities. Select the parent Entity you want to update the fields.
- Click on ‘Save’
- Ensure that the Mapping OUT is selected:
- [From the Custom Settings]
- If not already done, specify the name of the Mapping set you want to use for your Quote app.
- If not already done, specify the name of the Mapping set you want to use for your Quote app.
When synchronizing the PROS Quote ‘Content’ with the ‘Overview’, the external fields are mapped following the mapping set.
It is possible to create and/or delete and/or update some 2nd level Entities based on cells of the Quote spreadsheet.
For each line of the Quote content, you will be able to create or update a 2nd level Entity on SFDC side.
The lines to take into account for the creation or update of the entities are identified thanks to a synchronization column. If the line cell for this specific column is not empty (not null), then the
quote line is eligible for the creation or update of the SFDC entity
The mapping set (OUT Mapping Type) will allow to establish a correspondence between the line columns and the 2nd level Entity fields :
- it indicates the type of entities to be generated
- it specifies, for each entity, the synchronization column allowing to identify/select which quote lines are used to update/create/delete the entities
- it chooses the entity management policy.
- it maps the entity fields with quote line cells.
Entity Management Policy rules:
- ‘Basic’ policy (Delete & Re-Create All policy): when the PROS Quote synchronization process is launched, all the 2nd level Entities linked to the parent Entity are deleted. Then brand new entities (one per quote line identified by a non-empty value in the synchronization column) are created following the mapping OUT.
- ‘Advanced update (delete/update/add)’ policy: when the PROS Quote synchronization process is launched, for each line of the quote (identified by a non-empty value in the synchronization column), the process compares the value of this cell with the synchronization ID stored in the already existing 2nd level Entities.
- If an already existing entity having the same synchronization ID is found, then this entity is updated.
- If no existing entity with the same synchronization ID if found, then a new entity identified by the synchronization ID is created
- Other entities attached to the parent Entity are deleted.
- ‘Advanced update (update/add)’ policy: when the PROS Quote synchronization process is launched, for each line of the quote (identified by a non-empty value in the synchronization column), the process compares the value of this cell with the synchronization ID stored in the already existing 2nd level Entities.
- If an already existing entity having the same synchronization ID is found, then this entity is updated.
- If no existing entity with the same synchronization ID if found, then a new entity identified by the synchronization ID is created
- Other entities stays attached to the parent entityWarning: If you have chosen the ‘Advanced’ update policy, you have to ensure that a field having the same name as the CPQ synchronization column is present on the synchronized 2nd level Entities. Indeed, this field is used to store the unique identifier (called synchronization ID) of the entity. This ID (which has to be a String – TEXT type) allows to determine if the entity has to be deleted, created or updated.
If the field is not present, you have to add this field as a custom field on the entity (Keep in mind that the ‘ c’ suffix added automatically by SFDC is ignored by the mapping process).
In this example we will create as many Assets linked to the account of the PROS Quote as we have lines in the spreadsheet whose column ‘SyncAsset’ is not empty.
- [In the PROS Mapping Set]
(If not activated check your access rights)
Create a new (or edit an existing) PROS Mapping Set.
- [In the PROS Mapping Set Builder]
Define the external fields you want to update when updating the PROS Quote content.
- Ensure that the Mapping OUT is selected:
- By default, the tree view shows all the parent entities. You may need to select one of the parent Entity and click on ‘Add’ button to make the 2nd level Entities appear.
- Select the entity
- By default, the tree view shows all the parent entities. You may need to select one of the parent Entity and click on ‘Add’ button to make the 2nd level Entities appear.
- In the right part of the builder select the Entity Management policy
- Indicate the synchronization column name
- Define the fields you want to update (check the boxes of the fields to be mapped) and indicate the name of the CPQ column used for the synchronization
- Click on ‘Save’
- Ensure that the Mapping OUT is selected:
- [From the Custom Settings]
- If not already done, specify the name of the Mapping set you want to use for your PROS Quote app.
- If not already done, specify the name of the Mapping set you want to use for your PROS Quote app.
- [Runtime example]
With the following quote and the mapping described above, 2 assets attached to the PROS Quote parent account are created.
Warning: You have to ensure that the fields on both CPQ and SFDC side are of the same type.Moreover, the mapping OUT will only work if the current user has a profile allowing to update the ‘OUT’ entities.
For example if users have the following profile and your Mapping OUT targets the Accounts, this configuration will not work.
Tip: If a field of a sync. entity is mandatory and the mapped CPQ field is empty, then the SFDC entity field is not updated and keep its former valuation.Reference: For the specific case of the Opportunity Line Items synchronization, please refer to Linking PROS Quote with an Opportunity.
PROPOSAL SYNC.
Proposal documents are stored in the PROS Quote object. Based on your service definition, either all generated documents are kept, or only the last one generated –
see keepLastDocumentOnly parameter in Quote Designer And Customization Guide.
Documents are stored either in the Files field, or in the Notes & Attachments field, depending on how you set up your salesforce environment.
There are two parameters: one in the Custom Settings (“CPQ documents synchronized to Files”), one in the Salesforce Files Settings (“Files uploaded to the Attachments related list on records are uploaded as Salesforce Files, not attachments”).
The table below describes where the proposal is saved:
| SFDC Parameter / Custom Setting | Ticketed (Files) | Not ticketed (Attachments) |
| Files | Files | Files Notes & Attachments |
| Notes & Attachments | Files | Notes & Attachments |
RELEASE CREATION
When from the Overview tab the user clicks on the New Release button, a New CPQ is created from the current active release. Then when from the ‘Content’ tab the user clicks on the Synchronize and Back to Overview action, the ¨RPSQuote and Quote Release entities are created and/or updated accordingly.
RELEASE ACTIVATION
When from the ‘Overview’ tab the user selects a Quote release and then clicks on the Activate Release button, the PROS Quote entity fields are overriden by the values of the PROS Quote Release fields.
CHATTER UPDATES
If you have activated Chatter on your organization, you can benefit from automatical chat entries that are generated each time the status of the quote is change, or each time a proposal is generated for the quote for example.
