Introduction
Purpose
The main usage of IntegrationManager (IM) is to allow uploading data from the external systems, such as SAP, into Pricefx and exporting data from Pricefx, so that they can be further used in the external systems.
This two-way exchange uses a format which suits best the given scenario (CSV file, XML file, JMS message, calling a web service).
Another usage of IM is to run calculations (through calculation logics) of selected price lists or calculated field sets.
IM can also be used as an ETL tool (Extract – Transform – Load) based on EIP (Enterprise Integration Patterns).
Benefits
Proven integration solution by Pricefx
This is the easiest way of getting data from customer systems into Pricefx.
It uses integration design patterns validated by multiple projects in the field.
Configuration templates are provided, so you can get started really fast.
There is native integration with events generated by Pricefx, such as information on approving a price record or finishing price list calculation. This allows to react to these events quickly – for example, you can export the price list to CSV immediately or trigger another event in the external system.
It is connected to Pricefx Support monitoring tools. Large knowledge base allows for a quick reaction in case of incidents.
Scalability and flexibility
Handles various input data structures (CSV, XLS, XML, web service, …) from different data providers and/or sources.
Increased flexibility in data load (based on events).
Easy automation of the inbound/outbound processes which helps to reduce the costs.
If the PraaS solution is chosen, all the installation and setup tasks are handled by Pricefx. Updates and modifications can be implemented and deployed much quicker.
Technically advanced features for easier configuration
Pricefx API embedded for high-level integration function accessibility.
Externalized properties for simple configuration.
Spring profile support for environment specific behavior (dev, QA, production,...).
Executable JAR format with a Unix service wrapper.
Re-delivery mechanism (in case an interface is temporarily unavailable).
IM Possibilities
IM is based on the Apache Camel and Spring frameworks; for details see Technical Background below.
Staff and Required Knowledge
As for the staff requirements, cooperation of the following groups is needed:
Pricefx developers from the IM team.
Pricefx consultants – They are present during the whole project life cycle. They set up e.g. into what PP or PX table to insert the data, when and how to run the calculation logic, what events trigger certain actions.
Customer's developers and consultants.
For all involved in the configuration it is useful to know:
Java + Groovy
Apache Camel framework
Linux and Kubernetes (K8S) (only for PFX employees)
CSV, XML & SFTP, Amazon S3
Webservices
Pricing domain
It also helps know these areas:
Apache Maven
Spring framework
ERP, CRM, etc.
Event-driven architecture
Topics To Consider
Data format – Before the project starts, Pricefx and the customer need to agree on the data format and channels. For example, the customer may provide the data over SFTP using XML or CSV files (preferred solution). Or they may provide the data through a web service (XML, JSON via HTTPS protocol) (REST or SOAP web service). This applies to both incoming and outgoing data. The project team also needs to agree on data exchange/update frequency.
Mapping – Another topic to be agreed upon is data mapping, i.e. what each field in the data means in terms of the Pricefx application.
Cloud or dedicated server – The IM instance can be installed in the Pricefx server or customers can use their own servers.
Technical Background
IntegrationManager is based on the Apache Camel and Spring frameworks. The communication with Pricefx goes via the JSON data format over the HTTP protocol using the public API with the Swagger library.
The resulting application for a project is a executable JAR file based on Spring Boot. This application can then be run as a daemon on the Unix systems or as Windows service or as a standalone application.
There is no need to set up an application server or web container; it is included in the JAR file.
As a build tool, we use Apache Maven.
The input files can be uploaded via FTP. In addition, there are components for using the web services, JSM messages or integration of IDoc from SAP.
Useful Links
Internal IM links:
JIRA https://pricefx.atlassian.net/secure/RapidBoard.jspa?projectKey=PFIM&rapidView=16&view=planning
Gitlab https://gitlab.pricefx.eu/platform/integration-manager
Apache Camel sources:
Apache Camel website http://camel.apache.org/
Apache Camel Examples https://github.com/apache/camel/tree/master/examples
Apache Camel books http://camel.apache.org/books.html – Camel in Action recommended
Claus Ibsen blog http://www.davsclaus.com/
Pricefx public API:
Public REST API and Groovy API documentation: https://api.pricefx.com/
IntegrationManager version 5.8.0