Available Processors

Processors can be used to enrich or change the message body, e.g. add more information for each record list or in the message body (such as a header to a CSV file).

AcknowledgeEventsProcessor

This processor confirms back to Pricefx which events were processed. It is for internal use only.

AddPGIMetadataBasedFieldsProcessor

This processors adds metadata for a specific PGI into the message body fetch via PFX API. The body has to be Map<String, Object> and contain the attribute priceGridId. This is suitable when there is a splitter for List<Map<Object,Object>> used before. For the given PriceGrid we download metadata which contain elementName and fieldName. Then the payload of the PriceGridItem is converted from a name such as attribute1, attribute2 to fieldName which we got from the metadata. 

Example of use in camel-context.xml:

<bean id="pgiProcessor" class="net.pricefx.integration.processor.AddPGIMetadataBasedFieldsProcessor"> <property name="client" ref="pricefx" /> </bean> <pfx:connection id="pricefx" uri="${url}" partition="${partition}" username="${username}" password="${password}" debug="true"/> <route> <from uri="direct:enrichPgiMeta"/> <process ref="pgiProcessor"/> <to uri="direct:listToCsv" > </route>

AddPLIMetadataBasedFieldsProcessor

This Camel processor remaps price list items, so that instead of a field name (attributeXX) an element name ("Price list item display name") can be used.

BatchingIntervalProcessor

According to the batchSize and totalRows data, this processor creates batch processing intervals and sets them into the body of the message. It is for internal use only.

FetchEventsProcessor

This processor fetches all available events from Pricefx for further processing. It is for internal use only.

GroovyExpressionProcessor

This processor evaluates a Groovy expression on a given input body, headers or properties. The groovyExpression property must be defined in order to have the input processed properly.

RecalculatePGItemProcessor

This processors can handle two types of a message body with a defined list of SKUs:

  1. The message body contains a String where all SKUs are separated by a separator defined in the stringSplitRegex property. 

  2. Have a List<Map<String, String>> which is a standard output of dsFetch where resultFields contains only SKUs.

Example of camel-context.xml:

<pfx:filter id="myFilter" resultFields="sku"> <pfx:and objectType="PX"> <pfx:criterion fieldName="name" operator="equals" value="Available in Countries"/> <pfx:criterion fieldName="lastUpdateDate" operator="greaterOrEqual" value="simple:header.previousDateTime"/> </pfx:and> </pfx:filter> <pfx:dsFetch id="pfxFetch" objectType="PX" filter="myFilter"/> <bean id="recalculateSkuProcessor" class="net.pricefx.integration.processor.RecalculatePGItemProcessor" /> <route> <from uri="timer:promotionStart?fixedRate=true&amp;period=60000&amp;delay=5000" /> <setHeader headerName="previousDateTime"> <spel>#{ T(net.pricefx.integration.Utils).calculateApiDate(T(java.time.LocalDateTime).now(), {{delay}})}</spel> </setHeader> <to uri="bean:pfxFetch" /> <choice> <when> <simple>${body.isEmpty} == false</simple> <process ref="recalculateSkuProcessor" /> </when> </choice> </route>

RecordsCountProcessor

This processor finds the number of input entries and saves it in the PfxInputRecordsCount header.

RestAuthenticationProcessor

This processor decodes the base64 authorization token in the input and creates a client connection to Pricefx. It is for internal use only.

IntegrationManager version 5.8.0