SAP C4C
To integrate SAP Hybris C4C with Pricefx, we use two approaches:
SAP Cloud for Customer OData API – to fetch products and customers
Web Service APIs in SAP Hybris Cloud for Customer – to sync price lists
In this section:
Set up SAP Environment
First you need to create accounts for accessing OData API and Web Service API. For details see SAP C4C - Accounts Data Integration.
Create WebService API Account
For details see Authorization.
Common SAP Integration Configuration
pfx.url=pricefx_url
pfx.partition=pricefx_partition
pfx.username=pricefx_user
pfx.password=pricefx_password
Configure Fetching Products and Customers
application.properties
integration.sap.productsRefreshAfter=3600000
integration.sap.oDataServiceUri=https://myNNNNNN.crm.ondemand.com/sap/byd/odata/v1/c4codata/
integration.sap.rest.username=sap_rest_username
integration.sap.rest.password=sap_rest_password
integration.sap.ws.username=sap_ws_username
integration.sap.ws.password=sap_ws_password
Â
camel-context.xml - Products
<pfx:loadMapper id="sapProductMapper">
<pfx:body in="ID" out="sku"/>
<pfx:body in="Description" out="label"/>
<pfx:body in="UnitOfMeasureCode" out="unitOfMeasure"/>
</pfx:loadMapper>
<camelContext xmlns="http://camel.apache.org/schema/spring" useMDCLogging="true">
<route>
<from uri="timer://foo?repeatCount=1"/>
<to uri="pfx-c4c?method=fetchProducts&username={{integration.sap.rest.username}}&password={{integration.sap.rest.password}}&url={{integration.sap.url}}/sap/byd/odata/v1/c4codata/&batchedMode=true"/>
<log message="body: ${body}" />
<split>
<simple>${body}</simple>
<to uri="pfx-c4c?method=fetchProducts&username={{integration.sap.rest.username}}&password={{integration.sap.rest.password}}&url={{integration.sap.url}}/sap/byd/odata/v1/c4codata/"/>
<log message="body: ${body}" />
<to uri="pfx-api?method=loaddata&objectType=C&mapper=sapProductMapper"/>
</split>
</route>
</camelContext>
Â
camel-context.xml - Customers
Delta Synchronization of Products and Customers
Add the &deltaSync=trueÂ
parameter to the fetch URI. The parameter must be added to both the batchedMode parent and the split section of the route definition.
Â
Full-synchronization (no delta) routes can be configured as well. The system stores the date and time of last synchronizations in Pricefx Advanced Configuration Options.
Configure Price Lists Syncing
application.properties
Â
Handle Exceptions
The pfx-c4c updatePriceList can throw three types of exceptions:
net.pricefx.integration.component.c4c.PfxC4CException
Occurs when a business error from SAP C4C is received as a response to the request call. For example, a price list with the same validity already exists, a product with a particular ID does not exist, etc.ÂPfxC4CException.getExceptionLog()
gets the SAP C4C error log message.org.apache.camel.CamelExecutionException
This exception is thrown for technical issues.java.lang.Exception
or other exception
IntegrationManager version 5.8.0