Covered in this article
Exact online pages
Created on Updated on
Exact Online component

Exact Online component

A component to work with Exact Online ERP.

Latest changelog

1.0.1 (January 3, 2020)

  • Refactor to use built in logger
  • Change build type to docker
  • Update Sailor to version 2.5.4
  • Remove ^ from dependencies

To see the full changelog please use the following link.

Description

It interacts withe Exact Online API.

Requirements

Environment Variables

LOG_LEVEL - trace, debug, info, warn, error controls level of logger verbosity

Credentials

Here are the credentials necessary to authenticate the component with the Exact Online API:

  • Your Exact Online Division - This is your division number
  • Application Client Id - Here should be the OAuth client Id (client dev). More about how to obtain your OAuth credentials check below.
  • Application Client Secret - Here should be your OAuth secret (client secret).
  • Location of the root of the OData API - The default is /api/v1. If not value is provided the default will be used.
  • Print OAuth Token - for debugging purposes

Information about how to retrieve OAuth keys is described in the Register an app document.

The Application Client Id and Application Client Secret keys could be found here where you should choose API.

Working with dynamic metadata

On the Configure input step, firstly, you should choose an entity (object) type you want to work with. Click on the Object type to… and wait for data uploading. Then you’ll see a list of entities which are available for this action or trigger. You should choose one.

Exact Online  - configuration input

Then you wait for uploading metadata (input object structure). After metadata uploaded you can complete input object to retrieve response sample. Be careful of required fields with a red mark.

Exact Online  - configuration input - integrator mode

Structure of the input object will be based on objectType field content.

Triggers

Webhook Subscription

Webhook enables the receiving of real-time data updates from Exact Online division. These updates are generated by user transactions as the envelope progresses through actions to completion. The Exact Online webhook provides updated information about the entities changes. Notification messages include information about the current status of the entity.

See trigger limitations

Actions

Lookup Objects

Allows to get a list of all entities with current type in your division or to get entities that satisfy the filter. This action emits multiple results of required objects.

Input fields

  • Object type to get - drop-down list with all types of the entities, required field. Select the type of entity you want to get.
  • Number of search terms - not required field, number of search terms. Determines the number of search terms that the entity must match. Need to be an integer value from 1 to 100. If this field is empty, action emits all entities with selected type.

Input metadata

Metadata is depending on the input field Number of search terms. If Number of search terms is empty, metadata does not exist. If Number of search terms = 1, metadata has only one search term. If Number of search terms > 1, metadata has a number of search term equal Number of search terms and a number of criteria link equal ‘Number of search terms - 1’.

Each search term has 3 fields: Field Name

  • Field Name - chosen entity’s field name. You need to select the one field from Value section: Condition
  • Condition - You need to select the one condition from Value section: Field Value
  • Field Value - the value that the field must match with the specified condition.

Between search terms, there is Criteria Link. You need to select the one criteria from Value section: Criteria Link

For example, if you want to find all entities with types Contacts with field ID greater than 1 and field IsMainContact equal true: Exapple

Output metadata

JSON schema location folder: schemas/io/…. The necessary schema begins with the get and ends with the .out and has an entity type between. For example, for entity Accounts schema has name getAccounts.out.json

Known limitations

See action limitations

Upsert Entity

Allows to add new Entity or update one of the existing entity in your division. To add a new Entity you should provide Account (account ), FirstName, and LastName in the request body. To update entity you should provide primary key (usually entity’s GUID) and fields which you want to update. This action contains dynamic metadata.

Insert Entity

Allows adding a new entity to your division. To Insert Entity you must provide mandatory fields and fields which you want to update. This action is available ONLY for entities which can’t be updated with API. This action contains dynamic metadata.

Update Entity

Allows updating one of the existing entities in your division. To update entity you should provide primary key (usually entity’s GUID) and fields which you want to update. This action is available ONLY for entities which can’t be inserted with API. This action contains dynamic metadata.

See action limitations

Delete Entity

Allows removing one of the existing entities in your division. To remove Entity you should provide a primary key (usually entity’s GUID) in the request body. This action contains dynamic metadata.

Current Limitations

Webhook Subscription

According to Exact Online documentation, you can’t create more than one webhook for the same topic, so webhook subscription trigger will remove, on start, all existing webhooks with callback URL or topic which are same to current.

Lookup Objects

  • action currently does not support filtering by a null value
  • action currently does not support choosing fields to return
  • if any entity was not found, the action did not provide data
  • you need to set the Field Value according to the field type, Field Value is string in the metadata and is checked only when executed. You can check type of the field in the schema there. The necessary schema begins with the get and ends with the .in and has an entity type between. For example, for entity Accounts schema has name getAccounts.in.json

Update Entity

Can be used for entities that can’t be inserted via API only. This action was not fully tested due to the lack of documentation at the Exact Online official documentation. Action’s metadata should be additionally discussed with Exact Online developers or support team.

To interact with Exact Online platform, this component interacts with Exact Online REST OData API (v1).

Get, Upsert, Update, Insert and Delete actions are providing all possible CRUD operations which are in Exact Online docs.