/
Appendix: SAP integration suite and adapter FAQ

Appendix: SAP integration suite and adapter FAQ

Errors or unexpected behaviours

Question

Answer

Question

Answer

Data store is locked when aggregator is running for a longer time.

Aggregator runs for a longer time mainly due to 2 causes:

  1. The outgoing process of the aggregator takes long. In this case, you can use JMS to replace the process direct and use JMS as the flow control after the messages are aggregated.

  2. There are many events coming from the source, likely some batch events. This will hold up the aggregator to wait and process these events until all events are fired. While it is not possible to control the incoming rate of events, we can force the completion timeout of the aggregator by using a timestamp(round to a minute - substring(/timestamp,0,13)) as part of the correlation key.

There are errors during condition records processing, possibly network issues or temporary issues. How can we resend these records?

You can implement a Pricefx logic, for example a CFS, to selected the records and update the integration status to 0 or NEW or whatever filter you are using for fetching the new records and fire the event again.

The adapter is returning “table not found” error

Check the table name (not the label) in Pricefx partition. if it is a company parameter table, check also the status and the target date.

The adapter is returning “version conflict or not found” error when updating condition record status.

If at the same time, Pricefx users are updating the prices, the old records might be deleted or updated by Pricefx automatically. In this case, after SAP Integration processed the records, the original records cannot be found or having conflicted versions. You can either ignore the errors as the old records are not valid anymore, and the new records would be sent to SAP in next run, or reset the status of that line to 0 or NEW, in case it is still at a pending status and rerun the records again.

SAP RabbitMQ adapter is having Error status

It is a known issue from SAP. The status is misleading but it is actually working properly

Pricefx SAP integration adapter is returning “forbidden” error

Check the access rights of the integration user.

Pricefx SAP integration adapter is returning “login failure” error

Check if the token is refreshed successfully in the “Variables” box in SAP integration suite → monitoring. If the token last update time is older than your last run of token refresh, there is sometP integration suite → monitoring. If the token last update time is older than your last run of token refresh, you might need to trace the refresh token integration flow. You can also delete all the tokens and refresh timestamp from the variables and run the token refresh integration flow again. For setting up the token integration flows, refer to Pricefx Authentication Using Pricefx Integration Adapter for SAP Integration Suite

After loading data to data feed and flush the data in Pricefx, the data is not available in Fetch operation.

Pricefx calls Flush using jobs, which are put into the job queue to wait for execution. It might not happen immediately if the server is busy with other jobs.

SAP condition record OData API is returning error regarding precisions.

You should format the condition value to maximum 3 decimal places

SAP OData API is not returning the x-csrf-token. What should I do?

Please get the trace of the request message, the API endpoint of getting the token, and run the API using postman or SAP Gateway Client. If the token is not returned, your SAP Support should configure the service again.

We expect to receive certain type of Pricefx events from RabbitMQ but nothing is received.

Check Pricefx event log if there are any events. If you cannot see your expected events, check the event filter and if it is enabled to send to RabbitMQ. If you are not able to check these configurations, please raise support ticket.

How-To?

Question

Answer

Question

Answer

Customise the integration flows but the package is configure-only

Please reach out to SAP team to get the source code from us. You can always build your own integration flows, or customise them, but you will not be able to update them automatically if new version is published. You would need to manually review the changes and implement them to your customised integration flows if necessary.

Trigger the integration flows

From Pricefx: Custom event or default events from Pricefx RabbitMQ

From SAP Integration Suite: Timer

Represent a scale represent in the condition record

By default, the integration flow is able to parse a '|' delimited string, for example, ‘10=10000|115=15000’

Avoid irrelevant events from Pricefx

You can set the event filter in Pricefx. If you are not able to do so, please raise support ticket.

Load the data to Pricefx Data source from Pricefx integration suite

You could use Pricefx integration adapter to load the data to Data feed first, then call Flush operation to move the records to the Data source.

Customise the integration flows to write to more extensions or parameters or data feed.

You can build you own “multicast” integration flows and duplicate “Write Records to Pricefx” from “Sample Artifacts for SAP S/4HANA Integration with Pricefx” package. You will need the message mapping to convert SAP XML response to Pricefx JSON request and another message mapping to ‘flatten’ the JSON array of objects to a table like bulk data load structure.

Get the required Pricefx JSON schemas for building message mapping in SAP Integration Suite

You can download the “Pricefx to SAP S/4HANA Schemas” file from document tab of “Sample Artifacts for SAP S/4HANA Integration with Pricefx” package.

Prerequisites and environment

Question

Answer

Question

Answer

We do not have OData API and custom API is not option, but we would like to use the integration flows. Is it possible?

Yes, sort of. Although these integration flows were built using OData Adapter and all the mappings are based on the request and response message of the OData API, you can customise the integration flows and use IDOC adapter instead. Part of the integration flows, at least those relevant to Pricefx side, should all be reusable without much customisation. However, if you run the IDOC by batches, IDOC adapter might not be able to return a line by line results. You might need to run IDOC one by one by using General Splitter with group size = 1, throw on exception = false and parallel processing = true. In this case, the failed IDOC with exception would not halt the integration flow and you are also able to identify the IDOC which are processed successfully. The errored IDOC could be caught by exception subprocess.

We are using version before 2020. How do we know if the OData API is available.

While official documentation stated that OData API is available after 2020 version, we have seen customers having OData API enabled before that. You should check with your SAP support or in SAP Gateway.

What are the costs associated with Pricefx Integration Adapter and the integration packages?

Both Pricefx Integration Adapter and the integration packages are free to our customers. You would need to check the fees of using SAP BTP, Event mesh and SAP Integration Suite with SAP sales representative.

What else do we need if we would like to use Pricefx Integration Adapter and the integration packages?

You can find the prerequisites from herePrerequisites

Which customers in Pricefx are using SAP Integration Adapter and the packages?

Production: Weyerhaeuser, Profi-Parts

Development: Bridgestone, Calumet, Sonae Arauco

Planning: Schneider Electric

SAP informs us about Camel 3 Upgrade. What is the impact if we are using Pricefx SAP Integration Adapters and Integration flows?

The current version of integration adapter is not compatible with Camel 3. You would need to install the Camel 3 version to your camel 3 testing environment and run your integration tests to verify. Pricefx Integration Adapter Camel 3 Update

Related content

Set up Integration Flows - Event-driven
Set up Integration Flows - Event-driven
More like this
Set up Integration Flows - Polling
Set up Integration Flows - Polling
More like this