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:
The message body contains a String where all SKUs are separated by a separator defined in the stringSplitRegex property.Â
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&period=60000&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