These configurations are used for data retrieval from an external system in a controlled way. The configurations are similar to the mapper, but the difference is that select configurations always return a List of elements.
⚠ Select configurations use the same logic as Mapper Configurations with minor changes.
Differences from Mapper Configurations
-
Configuration element is
<select>. -
You are able to use properties in
uri. -
You are able to define properties in the
<properties>section. -
metadatamust have a static structure:ConnectionMetadataNode(name=root,items=[ConnectionMetadataLeaf(dataJsonPath != null)]. -
Author needs to implement
dataJsonPathwhich extracts data from the HTTP response using the standard JSONPath processing. -
The return type must be array.
Example
JSON
<select>
<name>sfdc-id-list</name>
<uri>/services/data/v{{sf.api.version}}/query/&q=SELECT Id,Product2Id FROM PricebookEntry WHERE IsActive=true AND Pricebook2Id='{{sfdc.pricebook.id}}'</uri>
<properties>
<property>
<name>sf.api.version</name>
<required>true</required>
</property>
<property>
<name>sfdc.pricebook.id</name>
<required>true</required>
</property>
</properties>
<connections>
<connection>net.pricefx.integration.component.rest.domain.connection.OAuth2Connection</connection>
</connections>
<metadata>
<className>net.pricefx.integration.api.ConnectionMetadataNode</className>
<name>root</name>
<type>object</type>
<items>
<item>
<className>net.pricefx.integration.api.ConnectionMetadataLeaf</className>
<dataJsonPath>$</dataJsonPath>
</item>
</items>
</metadata>
</select>