Select Configurations

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.

  • metadata must have a static structure: ConnectionMetadataNode(name=root,items=[ConnectionMetadataLeaf(dataJsonPath != null)].

  • Author needs to implement dataJsonPath which 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/&amp;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>