OData Query activity¶
Introduction¶
An OData Query activity, using its OData connection, queries object data from an OData endpoint, and is intended to be used as a source to provide data in an operation.
Create an OData Query activity¶
An instance of an OData Query activity is created from an OData connection using its Query activity type.
To create an instance of an activity, drag the activity type to the design canvas or copy the activity type and paste it on the design canvas. For details, see Creating an activity instance in Component reuse.
An existing OData Query activity can be edited from these locations:
- The design canvas (see Component actions menu in Design canvas).
- The project pane's Components tab (see Component actions menu in Project pane Components tab).
Configure an OData Query activity¶
Follow these steps to configure an OData Query activity:
-
Step 1: Enter a name and specify settings
Provide a name for the activity, specify the object class to query, and specify any necessary HTTP headers. -
Step 2: Select child objects
Select child object classes to query based on the object class selected in the previous step. -
Step 3: Define a filter string
The Query Builder is used to set conditions on a query using the object fields and apply pagination to a query. -
Step 4: Review the data schema
Any response schemas generated from the endpoint are displayed.
Step 1: Enter a name and specify settings¶
In this step, provide a name for the activity and specify the object class to query and any necessary HTTP headers. Each user interface element of this step is described below.
Tip
Fields with a variable icon support using global variables, project variables, and Jitterbit variables. Begin either by typing an open square bracket [
into the field or by clicking the variable icon to display a list of the existing variables to choose from.
-
Name: Enter a name to identify the activity. The name must be unique for each OData Query activity and must not contain forward slashes (
/
) or colons (:
). -
Select Object: This section displays object classes available in the OData endpoint.
-
Selected Object: After an object class is selected, it is listed here.
-
Search: Enter any column's value into the search box to filter the list of objects. The search is not case-sensitive. If objects are already displayed within the table, the table results are filtered in real time with each keystroke. To reload objects from the endpoint when searching, enter search criteria and then refresh, as described below.
-
Refresh: Click the refresh icon or the word Refresh to reload object classes from the OData endpoint. This may be useful if OData endpoint's schema has been updated to support new types of objects. This action refreshes all metadata used to build the table of objects displayed in the configuration.
-
Selecting an Object: Within the table, click anywhere on a row to select an object class. Only one object class can be selected. The information available for each object is fetched from the OData endpoint:
-
Name: The object class name from the OData endpoint.
-
Description: The object class description from the OData endpoint.
-
Tip
If the table does not populate with available object classes, the OData connection may not be successful. Ensure you are connected by reopening the connection and retesting the credentials.
-
-
Advanced HTTP Properties: Define HTTP headers for the query. The OData protocol accepts standard HTTP headers defined in Rfc 2616 (section 14) as well as any custom headers specific to the endpoint. click the add icon to add a header to the table below and enter a key-value pair for each request parameter.
To save the row, click the submit icon in the rightmost column.
To edit or delete a single row, hover over the rightmost column and use the edit icon or delete icon .
To delete all rows, click Clear All.
Note
Custom headers must be configured in the endpoint for it to accept them as part of this request. If you are using Microsoft Azure to manage your OData endpoint, see Microsoft's documentation on Custom Headers in Accessing Endpoints That Require Authentication.
Important
Fields in the Advanced HTTP Properties table display the variable icon only in edit mode. For these fields' variable values to be populated at runtime, the agent version must be at least 10.75 / 11.13.
-
Save & Exit: If enabled, click to save the configuration for this step and close the activity configuration.
-
Next: Click to temporarily store the configuration for this step and continue to the next step. The configuration will not be saved until you click the Finished button on the last step.
-
Discard Changes: After making changes, click to close the configuration without saving changes made to any step. A message asks you to confirm that you want to discard changes.
Step 2: Select child objects¶
In this step, select the child object classes to include in the query based on the object class selected in the previous step. Each user interface element of this step is described below.
-
Select Child Objects: This section is used to select child object classes to query. This section is optional and can be skipped by selecting Next.
-
Available Child Objects: This column displays child object classes to select from.
-
Search: Enter any column's value into the search box to filter the list of child object classes. The search is not case-sensitive. If object classes are already displayed within the table, the table results are filtered in real time with each keystroke. To reload child object classes from the endpoint when searching, enter search criteria and then refresh, as described below.
-
Refresh: Click the refresh icon to reload child object classes from the OData endpoint. This may be useful if you have recently added child object classes to the OData endpoint.
-
Adding a Child Object: Within the column, click anywhere on a row to select one or more child object classes. Then click the add icon to add selected classes to the Selected Child Objects column:
-
-
Selected Child Objects: This column displays selected child object classes.
-
Removing a Child Object: Within the column, click anywhere on a row to select one or more child object classes. Then click the remove icon to return selected classes to the Available Child Objects column:
-
-
-
Back: Click to temporarily store the configuration for this step and return to the previous step.
-
Next: Click to temporarily store the configuration for this step and continue to the next step. The configuration will not be saved until you click the Finished button on the last step.
-
Discard Changes: After making changes, click to close the configuration without saving changes made to any step. A message asks you to confirm that you want to discard changes.
Step 3: Define a filter string¶
In this step, a query's Filter String is defined for a query using available object fields and query settings. Each user interface element of this step is described below.
Tip
Fields with a variable icon support using global variables, project variables, and Jitterbit variables. Begin either by typing an open square bracket [
into the field or by clicking the variable icon to display a list of the existing variables to choose from.
The Filter String can be configured in the Basic or Advanced tabs.
Note
Changes made in one tab will not be reflected in the other. The filter string query for the mode that is selected when the connector is closed will be the query that is used for the connector.
-
Basic: Allows you to build the Filter String with guided fields:
-
Object Fields: Select the fields to be used in the query based on the selected object class.
-
Search: Enter any part of a field name into the search box to filter the list of fields for the selected object. The search is not case-sensitive. The listed results are filtered in real time with each keystroke.
-
Refresh: Click the refresh icon or the word Refresh to reload fields of the object from the OData endpoint.
-
Select All in Object Class: When using the search box to filter, you can use this checkbox to select all visible fields at once.
-
Select Fields: Select the checkboxes of the fields you want included in the query to have them automatically added to the filter String. You can also select all of the fields at once using the parent checkbox.
-
-
Page Size: Enter the maximum number of results to retrieve for each page in the query response. If left empty, each page will contain 100 results.
Note
If client-side pagination is required, use the Skip and Top fields.
-
Include Count: Select to include the number of results from a query as part of the response. For example, if a query returns 5 results total, the response will also include
"_odata.count": 5
. -
Full Text Search: Enter search terms to query for objects in the selected object class. The OData endpoint handles how the search is interpreted for an object class.
-
Skip: Enter the number of results to skip in the query response. Used for client-side pagination.
-
Top: Enter the maximum number of results to receive in the query response. Used for client-side pagination.
-
Conditional Clauses: To add conditionals, use these fields as input to help construct the clauses, which then appear in the Filter String.
-
Object: Use the dropdown to select the object class to use for the conditional.
-
Field: Use the dropdown to select the field from the object class to use for the conditional.
-
Operator: Use the dropdown to select an appropriate operator:
Comparison Equals Greater Than Greater Than or Equals Less Than Less Than or Equals -
Value: Enter the desired value to compare against the previous dropdown selections.
-
Remove: Click to remove the conditional.
-
Add: Click to add a new conditional to the Conditional Clauses table and Filter String.
-
Remove All: Click to remove all conditionals from the Conditional Clauses table and Filter String.
-
-
Filter String: As you fill out the other fields in the Basic tab, the filter string statement in this text box is automatically populated with the selected fields, conditions, and query options.
-
-
Advanced: Hides the guided fields and allows you to modify Filter String directly:
-
Page Size: Enter the maximum number of results to retrieve for each page in the query response. If left empty, each page will contain 100 results.
Note
If client-side pagination is required, use the
$skip
and$top
query options in the Filter String field. -
Filter String: Edit the filter string statement directly.
-
-
Test Query: Click to validate the query. If the query is valid, a sample of up to 10 records retrieved from the query is displayed in a table. If the query is not valid, relevant error messages are displayed. If you edit the filter string while in Advanced mode, the query must be valid and validated through this button in order to enable the Next button.
-
Back: Click to temporarily store the configuration for this step and return to the previous step.
-
Next: Click to temporarily store the configuration for this step and continue to the next step. The configuration will not be saved until you click the Finished button on the last step.
-
Discard Changes: After making changes, click to close the configuration without saving changes made to any step. A message asks you to confirm that you want to discard changes.
Step 4: Review the data schema¶
The response schema generated from the endpoint is displayed. Each user interface element of this step is described below.
-
Data Schema: This data schema is inherited by adjacent transformations and is displayed again during transformation mapping.
Note
Data supplied in a transformation takes precedence over the activity configuration.
-
Response:
Response Schema Field/Node Description queryresponse
Response from querying objects (entities) response
Node representing the query response item
Node representing the response items Object List Node representing the object list (entity set) queried from; for example, the Person
node_odata.nextLink
String of the OData annotation field with a URL used to retrieve the next subset of results from the requested query response _odata.count
String of the OData annotation field with a the total count of objects returned from the query _odata.context
String of the OData annotation field with a URL containing the location of the queried object list value
Node representing the list of matching objects from the query item
Node representing a matching object from the query Object Fields ... Fields specific to the object class (entity type) of objects in the object list; for example, fields in the item
node, such asUserName
andConcurrency
_odata.etag
String of the OData annotation field with a value that can be used in a subsequent request to determine if the value of the object has changed error
Node representing error details from the query code
String of the code associated with the error message
String of the message associated with the error
The OData connector uses the Apache Olingo OData 4.0 Java library. Refer to the library documentation for additional information on how the OData protocol is supported. General information regarding the OData protocol is also available at OData's documentation site.
-
-
Refresh: Click the refresh icon or the word Refresh to regenerate schemas from the OData endpoint. This action also regenerates a schema in other locations throughout the project where the same schema is referenced, such as in an adjacent transformation.
-
Back: Click to temporarily store the configuration for this step and return to the previous step.
-
Finished: Click to save the configuration for all steps and close the activity configuration.
-
Discard Changes: After making changes, click to close the configuration without saving changes made to any step. A message asks you to confirm that you want to discard changes.
Next steps¶
After configuring an OData Query activity, complete the configuration of the operation by adding and configuring other activities, transformations, or scripts as operation steps. You can also configure the operation settings, which include the ability to chain operations together that are in the same or different workflows.
Menu actions for an activity are accessible from the project pane and the design canvas. For details, see Activity actions menu in Connector basics.
OData Query activities can be used as a source with these operation patterns:
- Transformation pattern
- Two-target archive pattern (as the first source only)
- Two-target HTTP archive pattern (as the first source only)
- Two-transformation pattern (as the first source only)
To use the activity with scripting functions, write the data to a temporary location and then use that temporary location in the scripting function.
When ready, deploy and run the operation and validate behavior by checking the operation logs.
Note
The OData Query activity may return an extra subelement warning depending on the endpoint's schema configuration. This is due to some OData fields not being included in the endpoint's metadata, but it does not affect the execution of the activity.