Before we proceed to the details of how each import process works and what are the limitation and features, it is necessary to setup the two systems (C4C and DSP) to be able to talk each other by defining the URL Mashup/HTML Mashup in C4C and defining the external CRM system setting and master data in DSP.
Defining the external system connection property
In order to make a web service call, the following properties are needed to define in [application.properties].
- Go to Administration → Content Management → root → conf
- Download the application.properties
Define the following:
- com.imc.webapp.app.crm.enabled
It must be true if the customer wants to integrate with the C4C. - com.imc.app.iss.integration.cfcUrl
It is the URI of the customer’s SAP Cloud For Customer URI. - com.imc.webapp.app.id.remote.businesssytem
The business system refers to the ERP system that connects with the defined C4C - system.com.imc.webapp.app.keystore.password
it is the web service keystore password that was used while downloading the keystore file from C4C
Defining the remote business system (ERP System)
The remote business system refers to the ERP system and is needed to get the ERP ID of the account object and to export the ERP Sales Document ID to C4C. This ID shows up in the document flow and external document section of the C4C Quote. The name of the ERP system is defined in [application.properties] and should be obtained from the implementation partner.
com.imc.webapp.app.id.remote.businesssytem=ERPIMC
In order to define the business system,
- click the Communication Systems to define a new communication system, or choose the one defined for integration with DSP.
- Select the IMC
- It should open the following similar screen where you can see the Business Instances and Communication Arrangements configured for the selected communication system, IMC.
- Click Edit to add the new Business Instance for ERP system
- Select the SYSTEM INSTANCES tab to add new ERP system instance
- Clicking Add Row and enter the System Instance ID as ERPIMC (the ERP system instance id is to be obtained from the actual ERP system)
- Click Save and Close
Once the CPQ quote is sent to ERP, the ERP sales document ID is also exported back to C4C. It should show up as follows in C4C if the setup of a remote business system is successful.
Defining Mandatory Setting in DSP
The following settings are kind of mandatory setting needed to be defined in DSP.
Setting Fragment |
Setting Type |
Setting Name |
Setting Value Range |
Purpose |
---|---|---|---|---|
SettingExternalCRM |
SettingString |
Set the external CRM system ID (supported examples: CFC or SFDC) |
CFC, etc. |
This is to indicate the type of CRM system to integrate with the DSP. Currently, CFC was used to integrate. |
SettingQuoteStatus-ControlInIssEnabled |
SettingBoolean |
Enables the Quote Status Control in DSP |
true or false |
If it is true, the approval flow of the Quote is managed by the DSP. |
SettingExportQuote-Status |
SettingBoolean |
Enables export of CPQ Quote Status to CRM |
true or false |
If it is true, DSP will set the quote status in C4C to be Rejected, Won/Lost |
If the namespace and prefix of custom fields in C4C are not the same as the standard one, the following Settings are needed to be defined as customized namespace and prefix for custom fields.
Setting Fragment |
Setting Type |
Setting Name |
Setting Value Range |
Purpose |
---|---|---|---|---|
SettingExportCRM-QuoteCustomField-NamespaceUrl |
SettingString |
Define the namespace uri used in custom field of quote in C4C. (Example : CPQQuoteStatus ) |
String |
To map with the name space used in DSP’s WSDL with the one obtained from customer system. |
SettingExportCRM-QuoteCustomField-Prefix |
SettingBoolean |
Enables the Quote Status Control in DSP |
String |
To map wit the prefix used in DSP’s WSDL with the one obtained from customer system. |
Understanding Settings Available in CPQ
SettingQuoteStatusControlInIssEnabled
This setting is used to enable the approval workflow in external system. By default, the approval workflow will be controlled in an external system. In order to enable the approval workflow in DSP, it is necessary to set it to be true, otherwise, the external quote status will be mapped to the DSP sales document status.
<rdf:Description rdf:about="&as; SettingQuoteStatusControlInIssEnabled"
<as:settingValueBoolean rdf:datatype="&xsd;boolean">true</as:settingValueBoolean>
</rdf:Description>
SettingImportOpportunityQuoteEnabled
This setting is used to disable the importing of opportunity associated with quote. By default, it will not import the associated opportunity of quote. To enable importing the associated opportunity of imported quote, the following settingValueBoolean needs to define in application-implementation.owl.
<rdf:Description rdf:about="&as; SettingImportOpportunityQuoteEnabled ">
<as:settingValueBoolean rdf:datatype="&xsd;boolean">true</as:settingValueBoolean>
</rdf:Description>
SettingImportOpportunityPartnersEnabled
This setting is used to enable the importing/synchronizing of associated partners of opportunity. By default, importing the opportunity will not import the associated partners of opportunity.
<rdf:Description rdf:about="&as; SettingImportOpportunityPartnersEnabled">
<as:settingValueBoolean rdf:datatype="&xsd;boolean">true</as:settingValueBoolean>
</rdf:Description>
SettingImportQuotePartnersEnabled
This setting is used to enable the importing/synchronizing of associated partners of quote. By default, importing the quote will not import the associated partners of quote.
<rdf:Description rdf:about="&as; SettingImportQuotePartnersEnabled">
<as:settingValueBoolean rdf:datatype="&xsd;boolean">true</as:settingValueBoolean>
</rdf:Description>
SettingExportCRMQuoteCustomFieldPrefix
This setting is used to change the prefix for the custom fields (such as CPQQuoteStatus, CPQQuoteDiscount, CPQSalesItemDiscount,etc) if the name space and prefix used in custom fields are not same.
<rdf:Description rdf:about="&as; SettingExportCRMQuoteCustomFieldPrefix">
<as:settingValueString rdf:datatype="&xsd;string">$$$</as:settingValueString>
</rdf:Description>
SettingExportCRMQuoteCustomFieldNamespaceUrl
This setting is used to change the namespace for the custom fields (such as CPQQuoteStatus, CPQQuoteDiscount, CPQSalesItemDiscount,etc) if the prefix used in the custom fields are not same.
<rdf:Description rdf:about="&as; SettingExportCRMQuoteCustomFieldNamespaceUrl">
<as:settingValueString rdf:datatype="&xsd;string">$$$</as:settingValueString>
</rdf:Description>
SettingExportQuoteOptionalSalesItem
This setting is used to export optional line items with zero prices. By default, all the optional line items will be exported with price if there is no SPARQL to set zero prices.
<rdf:Description rdf:about="&as; SettingExportQuoteOptionalSalesItem">
<as:settingValueBoolean rdf:datatype="&xsd;boolean">true</as:settingValueBoolean>
</rdf:Description>
SettingExportQuoteStatus
This setting is used to change the C4C quote status (example OPEN, COMPLETED, WON OR LOST).
<rdf:Description rdf:about="&as; SettingExportQuoteStatus">
<as:settingValueBoolean rdf:datatype="&xsd;boolean">true</as:settingValueBoolean>
</rdf:Description>
SettingExportQuoteProposalReport
This setting is used to enable to export the proposal report for every quote status. By default, it will be exported to C4C if the quote is accepted or rejected.
<rdf:Description rdf:about="&as; SettingExportQuoteProposalReport">
<as:settingValueBoolean rdf:datatype="&xsd;boolean">true</as:settingValueBoolean>
</rdf:Description>
SettingExportQuoteAttachments
This setting is used to enable to export the attachments of quote for every quote status. By default, the attachments will only be exported to C4C if the quote is accepted or rejected.
<rdf:Description rdf:about="&as; SettingExportQuoteAttachments">
<as:settingValueBoolean rdf:datatype="&xsd;boolean">true</as:settingValueBoolean>
</rdf:Description>
SettingExportQuoteWebServiceMonitoring
This setting is used to log the payload of the web service for import process as well as the export process. However, setting this to be true could decrease the performance thus it is recommended to enable when necessary.
<rdf:Description rdf:about="&as; SettingExportQuoteAttachments">
<as:settingValueBoolean rdf:datatype="&xsd;boolean">true</as:settingValueBoolean>
</rdf:Description>
SettingEnableImportCFCStatusWONLOSTOnly
If this setting is enabled, the DSP will update the Sales Document Status only when the Quote in C4C is set as won or lost and DSP is configured to use C4C status.
Adding the mapping to extension fields
To map extension fields in C4C into DSP, the following two new calculated BDAs are needed to define the SPARQL in customization based on the business requirements.
- objectName[0] is mapped to CPQQuoteStatus
- cpqQuoteDiscount BDA is mapped to CPQQuoteDiscount
- cpqSalesItemDiscount BDA is mapped to CPQLineItemDiscount
The following is the example of SPARQL that can be used to map the DSP fields and C4C custom fields.
Mapping the name spaces for the custom fields
The custom fields such as CPQQuoteStatus, CPQQuoteDiscount, CPQSalesItemDiscount might have different name space and prefix in WSDL used by DSP and therefore, we need to change the default name space and prefix by the following two settings if necessary:
- SettingExportCRMQuoteCustomFieldPrefix
- Define the prefix used for custom field of quote in C4C.( Example : CPQQuoteStatus )
- SettingExportCRMQuoteCustomFieldNamespaceUrl
- Define the namespace uri used in custom field of quote in C4C. ( Example : CPQQuoteStatus )
To know the prefix and namespace of the custom fields, it is necessary to open the WSDL file, obtained from C4C.
- Go to Administrator -> General Settings -> Communication Arrangements
- Search for Sales Quote Integration in Communication Scenario
- Select the Sales Quote Integration
- Select the Manage Sales Quote In
- Click Download WSDL
To open the downloaded WSDL in SoapUI,
- Click New SOAP Project in SoapUI
- Click Browse to select the Sales_Quote_Manage.wsdl
- Click OK to open the WSDL context
- Click the Request1 under MaintainBundle of binding
- Search for the custom field to see which prefix is used for each custom field
- Look for the name space used in custom fields
- CPQQuoteStatus ( Example : a00:CPQLineItemDiscount )
- CPQQuoteDiscount ( Example : a00:CPQQuoteDiscount
- CPQLineItemDiscount ( Example : a00:CPQLineItemDiscount )
- Check the PRE and NAMESPACE in first line as shown below.
Deactivating the Approval Flow in DSP
Starting from Release#1604, the approval process can be disabled in DSP.
If the Approval setting is TRUE, the approval process of the Sales Quote is managed by DSP.
If the Approval setting is FALSE, the approval process is controlled in C4C.
Do note of the limitation and the mapping between C4C status and DSP status.
<rdf:Description rdf:about="&as; SettingQuoteStatusControlInMXEnabled">
<as:settingValueBoolean rdf:datatype="&xsd;boolean">true</as:settingValueBoolean>
</rdf:Description>
In C4C, there are three Statuses that indicate the lifecycle of a Quote:
Customer Quote LifeCycle Status Code |
Description |
Customer Quote Result Status Code |
Description |
Approval Status Code |
Description |
---|---|---|---|---|---|
1 |
Open |
1 |
Not Relevant |
1 |
Not Started |
2 |
In Process |
2 |
Pending |
2 |
Approval Not Necessary |
3 |
Completed |
3 |
Won |
3 |
In Approval |
|
|
4 |
Lost |
4 |
Approved |
|
|
|
|
5 |
Rejected |
|
|
|
|
6 |
In Revision |
|
|
|
|
7 |
Withdrawn |
By disabling the Approval control in DSP, DSP will use the following Quote Statuses returned from C4C, and map it to the DSP SalesDocumentStatus using predefined mapping.
- CustomerQuoteLifeCycleStatusCode
- CustomerQuoteResultStatusCode
- ApprovalStatusCode
The C4C Quote Status will be imported from C4C and mapped to the DSP Sales Document Status. The CPQ Quote Status will be exported as a custom field to C4C.
The following table shows the mapping between the C4C quote statuses (Status, Progress, and Approval) and the CPQ sales document status:
Important: The quote should have the approval process in C4C enabled so that the response from the web service would return an approval code. Otherwise, no mapping will be found, and the DSP quote status will always show as COMPLETED.
Note: In addition, the following UI elements are to be hidden using the Feature-Based UI Profile in DSP if the approval is controlled in C4C. See the steps below.
- Go to Administration -> Master Data Management -> UIProfile
- Search for HUDE FEATURE WISE UI ( QUOTE )
- Select the HIDE FEATURE WISE UI ( QUOTE )
- Define the following UI component IDs that are related with approval process in DSP
- id_quote_button_action_submit
- id_quote_button_action_withdraw
- id_quote_button_action_accepted
- id_quote_button_action_rejected
Comments
0 comments
Article is closed for comments.