The Read, or query, operation is used to fetch entities from the OData endpoint.

Setting up a Read operation consist of three parts, 'Where', 'Select' and 'Order by'.


Typically you will define filters of your read operation. Using the query builder, shown below, you can define filters on the properties of the entity you want to get. The example below will get all entities from JtTaskSet where CreatedDate is after 2022-02-22 AND Company is one of the companies in the variable with the name 'companies'. If you press the OR button, it will be OR between the filters.

You can also create groups of conditions and specify AND/OR within that group. Example:

If you collapse the groups, you will get a more human-readable description of what the filters of the read operation are. Example:


In the Select part of the configuration of the Read operation you select which properties from the entity to select. By default, some simple properties are selected, but no related entities.

Typically not all properties are shown by default. Check "Enable all properties" to list all available properties ('Luname' and 'Keyref' are common examples of this kind of property)

Using skip and top, you can do pagination of the results. You can also use the options by themselves, of course.


If you specify Skip, that number of rows in the result set will be skipped. If you map to a variable, make sure it is an integer.


If you specify Top, only that number of rows in the result set will be fetched (up to that number, depending on how many rows exist, of course). If you map to a variable, make sure it is an integer.

Request $count

If you want to know the total number of rows that your query results in (which would be returned if not Top is specified), select the "Request $count" option. (more information about $count here)

Output headers

Select this if you want all of the HTTP response headers from the call to the OData endpoint to be available in the result of the operation

Break workflow on error

If set to "true" - do break workflow - the machine step will stop the execution of the workflow and typically display a dialog with an error message. If set to false - do not break - it is up to the workflow designer to check the StatusCode member of the result (and/or ErrorMessage) and decided whether to abort the workflow, try again, or just ignore it.

Order by

In the Order by section, you can define which properties of the entity to order by.

$apply mode

With $apply mode you can group the results on one or many columns. You can also include aggregates on numeric columns. In the example below we are grouping on 'OrderNo' and 'WoNo' and including average of 'Duration' for that grouping. As aggregate you can select 'Min', 'Max', 'Average', 'Sum' and 'Count distinct'.


The result (a record) of the operation looks like this:

  • StatusCode - the HTTP status code returned from the OData endpoint, typically 200 if the operation was successful. A value of 0 or -1 indicates a problem with the connector (i.e, no request sent to the OData endpoint)

  • ErrorMessage - has no value if the operation succeeded, otherwise a description of what when wrong

  • TotalCount - available if "Request $count" was selected, the total number of rows this query resulted in or how many rows it would result in, if Skip or Top was not used.

  • Headers - is omitted by default, but if included, contains all HTTP headers returned by the OData endpoint

  • Results - a table consisting of records where each record has the properties selected in the Select section or if $apply mode, the columns you grouped by and aggregates if that has been added

Last updated