Exact Online API SQL-driver |
Invantive UniversalSQL is de snelste, eenvoudigste en meest betrouwbare manier om data uit te wisselen met de Exact Online-API.
Gebruik de optie "Zoeken" in het linkermenu om te zoeken naar een specifieke term, zoals de tabel- of kolomomschrijving. Gebruik de "Index"-optie als u de term al kent. Als u de benodigde informatie niet kunt vinden, klik dan op de Chat-knop onderaan of plaats uw vraag op de gebruikersgemeenschap. Invantive Support of andere gebruikers zullen u proberen te helpen.
De Exact Online-driver biedt meer dan 1.000 tabellen, gegroepeerd over een reeks XML-API's, REST-API's en enkele speciale API's.
De Exact Online-driver omvat 1221 tabellen en 436428 kolommen.
Exact Online-API Clients
Invantive UniversalSQL is beschikbaar op vele gebruikersinterfaces ("clients" in het traditionele server-client paradigma). Alle Invantive UniversalSQL-statements kunnen worden uitgewisseld met een bijna 100% compatibiliteit over alle clients en besturingssystemen heen (Windows, MacOS, Linux, iOS, Android).
De clients omvatten Microsoft Excel, Microsoft Power BI, Microsoft Power Query, Microsoft Word en Microsoft Outlook. Webgebaseerde clients omvatten Invantive Cloud, Invantive Bridge Online als OData-proxy, Invantive App Online voor interactieve apps, Online SQL Editor voor het uitvoeren van query's en Invantive Data Access Point als uitgebreide proxy.
De Exact Online Power BI-connector is gebaseerd op de Invantive UniversalSQL driver voor Exact Online, aangevuld met een high-performance OData-connector die direct op Power BI werkt zonder enige add-on. Het OData-protocol is altijd versie 4, ongeacht of het achterliggende platform OData, SOAP of een ander protocol gebruikt.
Voor technische gebruikers zijn er commandoregel uitvoeringen van Invantive Data Hub die draaien op iOS, Android, Windows, MacOS en Linux. Invantive Data Hub wordt ook vaak gebruikt voor zakelijke servertoepassingen zoals ETL. Replicatie in grote hoeveelheden van gegevens afkomstig van de Exact Online-API naar traditionele databases zoals SQL Server (on-premises en Azure), MySQL, PostgreSQL en Oracle is mogelijk met Invantive Data Replicator. Invantive Data Replicator creëert en onderhoudt automatisch Exact Online-datawarehouses, eventueel in combinatie met gegevens van meer dan 75 andere (cloud) platforms. Invantive Data Replicator ondersteunt datavolumes tot meer dan 1 TB en meer dan 5.000 bedrijven. De on-premise editie van Invantive Bridge biedt een Exact Online ADO.net-provider.
Tenslotte kunnen online web apps worden gebouwd voor Exact Online met behulp van App Online of Invantive Cloud.
API-aanroepen Controleren
Wanneer een query of DML-statement is uitgevoerd op Invantive UniversalSQL kan een ontwikkelaar de daadwerkelijke aanroepen naar de Exact Online-API evalueren met behulp van een query op sessionios@DataDictionary. Als alternatief kan uitgebreide logging van vragen en antwoorden worden ingeschakeld door log-native-calls-to-disk op true te zetten. In de map %USERPROFILE%\Invantive\NativeLog zal Invantive UniversalSQL logbestanden aanmaken per vraag en antwoord aan de Exact Online-API.
Specificaties
De SQL-driver voor Exact Online ondersteunt partitionering: gegevens van meerdere bedrijven staan allemaal samen in één tabel. De waarde van de kolom Division geeft aan tot welk bedrijf de gegevens behoren.
Een inleiding in de concepten van Invantive UniversalSQL zoals databases, data containers en partitionering is te vinden in de Invantive UniversalSQL grammatica.
De configuratie kan worden gewijzigd met behulp van verschillende attributen uit de databankdefinitie, bij het aanmelden en tijdens het gebruik. Een volledige lijst met configuratieopties staat in de driverattributen.
De catalogusnaam wordt gebruikt om de volledige gekwalificeerde naam van een object zoals een tabel of weergave samen te stellen. De schemanaam wordt gebruikt om de volledige gekwalificeerde naam van een object zoals een tabel of view samen te stellen. Op Exact Online is de vergelijking van twee teksten standaard hoofdlettergevoelig.
Wijzigingen en bugfixes van het Exact Online SQL-stuurprogramma zijn te vinden in de release notes. Krijg toegang tot de gemeenschap via de Exact Online sectie van de Invantive forums.
Stuurprogramma code voor gebruik in settings.xml: ExactOnlineAll
Alias: eol
Aanbevolen alias: eol
Partitie LabelAdministratie
Stuurprogramma code voor gebruik in settings.xml
For Exact Online apps it was discouraged to use the CSV APIs and starting 2019 the use is almost impossible and requires techniques that can lead to delisting or app blocks. Therefore Invantive SQL includes the XML APIs and REST APIs. Both documented as the many undocumented Exact Online APIs are included.
A graphical representation of the essential Exact Online API tables available with Invantive SQL is at https://go.invantive.com/eolerd. It includes individual entity relationship data models per area and industry and includes manufacturing, PSA, trade, accounting and accountancy.
API Authentication
The Invantive SQL driver for Exact Online allows multiple authentication models:
- OAuth Code Grant Flow
- OAuth Implicit Grant Flow without MFA
- OAuth Implicit Grant Flow with MFA
Scraping
The functionality of all APIs is identical independent of the chosen authentication models. Business professionals, finance professionals and developers can choose the authentication model most suitable for API access.
All Invantive products include "OAuth client" settings such as client ID. In compliance with OAuth security recommendation, the code grant flow with an Invantive-controlled client ID and client secret is only used when the software runs on a device controlled by Invantive, such as on the Exact Online Power BI driver on Invantive Cloud.
The OAuth Implicit Grant Flow is used for interactive products such as the Excel add-in: Invantive Control for Excel. By default, a re-authentication is necessary every ten minutes. The user password is automatically provided when "Remember Password" was checked on log in. The MFA verification code (also known as "TOTP") must be entered every ten minutes. You can specify the secret key used for MFA verification process in the client software for an auto-generated verification code, but this reduces the security.
The OAuth security rules require the Implicit Grant Flow for deployment on a device not under control of the client app owner. However, you or a your developers can register your own company client on apps.exactonline.com. Use the client ID and client secret generated by Exact and use the form "Pre-authenticate" on Invantive Cloud to generate a refresh token. Optionally, you can request through Invantive Support that obsoletion of the refresh tokens is disabled for your client.
Authentication using scraping is possible, for instance for non-browser logins from a console application, but is highly discouraged and might be obsoleted without further notice.
Exact Online REST API and Popular Tables
The Exact Online REST API is most commonly used. Some of the most popular tables from the REST API are:
- TransactionLinesBulk: financial transaction accounting details
- AccountsBulk: customers and suppliers
- GLAccountsBulk: general ledger accounts
- ItemsBulk: articles.
- DocumentAttachmentFilesBulk: documents in binary format such as accounting documents
The REST API has in general great download performance. Additionally, the Exact REST API has filter capabilities on many columns, allowing use of server-side filtering in an translation of where-clauses in Invantive SQL leading to highly optimized REST API calls. Also the REST API allows complex join optimizations leading to highly reduced execution times compared to full downloads of multiple tables and joining them on the client. Incremental download facilities are available for further reducing the number of API calls and meeting Exact's strict rate limit policies.
Exact Online XML API and Popular Tables
Despite that the REST API was introduced by Exact in 2016, the XML API is still thriving and especially for accounting offers many high performance and scalable APIs. Also many APIs are not available in the REST API yet, the XML API offers them nonetheless. The most popular tables from the XML API are:
- BalanceLinesPerPeriod: balances per financial year and period and general ledger account
- AROutstandingItems: open invoices in accounts receivables
- APOutstandingItems: open invoices in account payables
- Settings: Exact Online company settings
- MatchSetLines: bank reconciliation details
Tables based on the XML API typically offer many columns which are mostly empty. This is due to the design chosen for the XML API by Exact developers with a very flexible XSD.
The XML API has even better download performance than the REST API. However, the XML API has limited filtering capabilities. For small environment a full download is acceptable but especially for the top 500 Exact Online customers an out-of-the-box great performance with Invantive SQL requires the use of the REST APIs.
API Rate Limits
The Exact Online APIs limit the number of API calls made in various ways. Invantive SQL has numerous optimizations specifically for Exact Online to achieve optimal API performance without manual fiddling of options or code.
Calls to the XML API are typically limited to 60 calls per minute. Invantive SQL automatically throttles to meet the specified XML API reate limits. These division-specific throttles are also applied when using the UploadXMLTopics table to upload massive amounts of transaction data into one or hundreds of companies in parallel.
Calls to the REST API are limited by minutely rate limits and daily limits. The daily limit per division (an Exact Online company) varies between 5.000 and 50.000 calls per day and client app, depending on agreement. The minute rate limit for the REST API varies between 60 and 300 calls per minute. Once the minute or daily API call rate limit has been reached, no more API calls can be made. Invantive SQL automatically throttles API calls to meet the rate limits reported by the Exact Online REST API. Developers can access the current rate limits and their reported API usage per division using the view RateLimits. The contents of the view RateLimits are automatically updated on every Exact Online API call.
Division and Data Scoping
Starting december 2020, the REST APIs apply division and data scoping. Division scoping means that an API call of an app can only access specific Exact Online companies or all companies granted to the user used to authenticate the app with. After an app was approved for use with Exact Online, the top-level menu "Import/Export" allows changing the division scope using the form "App privileges".
Data scoping means that an API call of an app is first compared to the registered and approved list of APIs for that app on apps.exactonline.com. Data scoping is never active for customer-specific app registrations. However, published apps always must undergo a security check including data scoping for REST APIs.
XML APIs are covered on division scoping, but currently the XML API is not subjected to data scoping.
All Invantive SQL products support division and data scoping for custom and published apps.
Cross-division Queries (Companies)
Every Exact Online company is called a "division". Each division in an Exact Online country has a unique number called the "division code". The column "divisioncode" (REST API tables) or "division_code" (XML API tables) contains the division code. Most REST API tables on Invantive SQL have columns not present in the REST API and added by Invantive SQL for additional data on the division, such as VAT number. This is for use with large accounting or accountancy environments which typically run across thousands of divisions.
For use and billing purposes, each division maps onto one partition. It does not matter whether data is retrieved on the REST API, XML API or from both Exact Online APIs on the division.
Invantive SQL API access to Exact Online is not possible for an archived division or a division of a accountancy customer which has been blocked due to dunning. The last scenario only applies for accountancy use; each accountant can access the divisions of associated customers.
Invantive SQL executes all queries without changes on one division or multiple divisions. The get results from multiple Exact Online divisions are merged into one large table with data from multiple divisions. The retrieval of data is performed in parallel as specified through connector attributes; the default maximum number of divisions queried in parallel is 8 per SQL engine instance.
Graphical products typically contain a division selector, allowing a finance professional to choose all divisions, a specific one or a sub-selection such as on division classification setup (account manager, accountancy office, monthly or quarterly VAT).
A developer can specify the division(s) to use with the Invantive SQL statement "use". The default division can be set using "use default" and all using "use all". Division segmentation across a larger population such as all divisions from the accountancy branch office "Amsterdam" can be selected using "use" with a selection query such as "use select ... from". At all times, at least one division must be selected. For details see the SQL grammar.
30-05-2024 10:44 Versie 24.1.3-BETA+4689