In this article
Overview
Exact Online is a Read-type Snap that reads and retrieves data objects from the Exact Online instance.
<Insert image>
Prerequisites
A valid OAuth 2.0 account that supports Exact Online instance, with the appropriate access permissions. See Exact Online OAuth 2.0 Account.
Support for Ultra Pipelines
Works in Ultra Pipelines.
Limitations and Known Issues
None.
Snap Input and Output
Input/Output | Type of View | Number of Views | Examples of Upstream and Downstream Snaps | Description |
---|---|---|---|---|
Input | Document |
|
| A document with data that indicates the entities to be filtered and retrieved from an Exact Online instance. |
Output | Document |
|
| A document containing the entity data retrieved from an Exact Online instance. |
Snap Settings
Field Name | Field Type | Description |
---|---|---|
Label* | String | Specify a unique name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your Pipeline. Default Value: N/A |
Version* | Dropdown list | Choose or specify the version of the Exact Online API. Default Value: v1 |
Division* | String/Expression/Suggestion | Specify a unique ID of the Exact Online Division (you can retrieve this ID using a REST call, https://start.exactonline.nl/api/v1/current/Me?). Alternatively, click the Suggestion icon to fetch the list of supported divisions and select a division. Default Value: N/A |
API object* | String/Expression/Suggestion | Specify the API that you want to access in the Exact Online instance. This dropdown list contains supported services available for the Exact Online instance. Alternatively, click the Suggestion icon to fetch the list of API objects and select an object. Default Value: N/A |
Endpoint* | String/Expression/Suggestion | Specify an Exact Online Endpoint to be connected for each of the API objects. Default Value: N/A |
Filter records | Use this field set to define the filter criteria for the response result based on the specified parameters. Click to add a new row to define the filter criteria. You can enter only one filter criteria in each row. This field set comprises the following fields:
When you define multiple filters, the final output is generated based on the order that you have defined. | |
Field name | String | Specify the system parameter ($filter) field for filtering the records in the output. |
Operation | String | Choose the comparison operator for the $filter field specified above from this drop-down list. Available options are:
|
Field value | String | Specify the value with which the above $filter field must be compared. The data types: String, Integer, Boolean, or any other data type depends on the $filter field that you specified for the filter criterion. |
Condition | String | Choose a value from this drop-down list to set the correlation between this filter criterion (row) and the next one (row), if being defined at all, to apply the filters for generating the final output. Available options are:
|
Output field selection | This field set enables you to select the fields to include in the output. Click to add a new row to define the output field. You can enter only one output field in each row. To return all available fields in the output, do not specify any output fields. | |
String | Specify the fields from the result dataset to be populated in the output. Default Value: N/A | |
Order by | Use this field set to define the sort order for the records in the output. Click to define the sort order criteria. Multiple criteria is applied in the same sequence as they are defined. This field set comprises the following fields:
| |
Element | String | Specify the field in the expected output by which the records in the output must be ordered. Default Value: N/A |
Order by type | String | Depending on the field selected above, define whether the rows must be sorted in the ascending order or descending order. Available options are:
Default Value: Descending |
Function parameter | This field set enables you to define the sort order for the records in the output.
| |
Field name | String | Specify the name of functional properties. Default Value: N/A |
Field value | String | Specify the values of specified functional fields. Default Value: N/A |
Output fields advanced options | Use this section of Snap Settings to customize the output set: the number of output entries and the index of the starting entry. Available options are:
| |
Output entry limit | Integer | Specify the maximum number of entries that Exact Online on-premise instance must return in the output. Default Value: N/A |
Output entry offset | Integer | Specify the record index starting from which the Exact Online on-premise instance must return records in the output. Use this property along with the Output entry limit to retrieve a specific set of entries in the output. Default Value: N/A |
Automatic pagination | Checkbox | Select this checkbox to return the records of all the pages retrieved in the API response. By default, the Exact Online API returns a maximum of 60 records per page. But for the bulk endpoint, a maximum of 1000 records can be returned per page. If you select this checkbox, all matching records are automatically returned. Default Value: Selected |
Inline count | Checkbox | Select this checkbox to return the total number of records retrieved in the API response. The count number will be added to each document record with a property name of "__count". Default Value: Deselected |
Allow empty result | Checkbox | Select this checkbox to allow empty results on the output views. If you deselect this checkbox, an error is thrown when the output has no records. Default Value: Selected |
Connection details | Use this field set to specify the connectivity parameters: timeout, retry count, and retry interval. This field set contains the following fields:
| |
Connection timeout* | Integer | Enter, in seconds, the duration for which Snap must try to establish a connection with the Exact Online instance. If the connection cannot be established within this duration, the Snap times out, writes the event to the log, and waits until the specified RetryInterval before attempting to reconnect. Default Value: 300 |
Maximum request attempts* | Integer | Specify an integer value to set the maximum number of reconnection attempts that the Snap must perform, in case of connection failure or timeout. Default Value: 3 |
Retry Interval* | Integer | Enter, in seconds, the duration for which the Snap must wait between two reconnection attempts until the number of retries is reached. Default Value: 1 |
Snap Execution | String | Select one of the three modes in which the Snap executes. Available options are:
Default Value: Validate & Execute |
Troubleshooting
Error | Reason | Resolution |
---|---|---|
API object is not existing. | The API object is not found for the Exact Online API. | Search and select an API object from the dropdown list. |
The endpoint is not existing. | The Endpoint that you have entered is not found for the selected API object in the server. | Search and select the Endpoint from the dropdown list. |
Additional Information
Here is some information to assist you while using the Exact Online Read Snap.
Snap General Behavior
The Exact Online Read Snap supports the following:
GET operation to read data from the Exact Online server.
OData querying operations: $filter (Filter records), $select (Output field selection), $orderby (Order by), $inlinecount(Inline count),$top (Output entry limit), and $skip (Output entry offset).
Connection-failed-retry mechanism.
Client-side pagination through $top (Output entry limit) and $skip (Output entry offset) mechanisms. For more information, see Pagination.
Server-side pagination for automatically getting all the response records if multiple pages returned.
Dynamic loading of API metadata with a Parent-child dependency structure. This means that you can:
Select an API object from the API Object field to view only endpoints that are related to the API object and support GET queries (read operations).
And then, select an endpoint to view and specify values for only read-compatible parameters related to this entity in Filter records, Output field selection, Order by and Function parameter fields.
Pagination
Client-side pagination is supported through the use of the $stop (Output entry limit), and $skip (Output entry offset) OData operations.
Examples
Snap Output Setting | Pagination result |
Output entry limit: 50 |
|
Output entry offset: 50 |
|
Output entry offset: 50, and Output entry limit: 50 |
|
Server-side pagination is applied to the Exact Online API. By default, Exact Online API returns a maximum of 60 records per page. But for the bulk endpoint, a maximum of 1000 records can be returned per page. To get the total amount of response records after validating or executing, select Automatic pagination checkbox. For example, if you have 100 records of CRM/Accounts endpoint, and if you do not select Automatic pagination, only 60 documents are returned after validating or executing the Pipeline, (you will only get the records from the first page - 60 records by default). If you select this checkbox, you will get 100 documents after validating or executing the Pipeline.
Example
Retrieving Account Data from Exact Online Instance CRM Service
This Pipeline example demonstrates using an Exact Online Read Snap to retrieve accounts data from Exact Online instance CRM services and write it into a JSON file.
Prerequisites: Configure and authorize a valid Exact Online Account. See Configuring Exact Online Accounts.
We define the following settings for the Exact Online Read Snap to retrieve Accounts data from the Exact Online instance CRM service it accesses.
API object: CRM
Endpoint: Accounts
After successful validation, we can view the following output in the Snap’s preview.
We connect the JSON Formatter Snap to the upstream Snap to read and format the output data into standard JSON format.
Next, we connect the File Writer Snap to the JSON Formatter Snap to write the JSON data into a file.
To view the output JSON file, you must SSH to the target directory and open the newly-created JSON file. The preview of the output JSON file can be seen below:
Download this Pipeline.
Downloads
Download and import the Pipeline into SnapLogic.
Configure Snap accounts as applicable.
Provide Pipeline parameters as applicable.
Snap Pack History
See Also
https://docs-snaplogic.atlassian.net/wiki/spaces/SD/pages/1439233/Glossary
https://docs-snaplogic.atlassian.net/wiki/spaces/SD/pages/1438341/Getting+Started
https://docs-snaplogic.atlassian.net/wiki/spaces/SD/pages/1439233/Glossary