Schakel JavaScript in om deze site te bekijken.

Exact Online Forums

Navigatie: » Geen onderwerpen boven dit niveau «

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

X

Belangrijke Informatie over Veiligheid en Gebruik

Beoogd gebruik en beperkingen: Deze software, ontwikkeld door Invantive, is ontworpen om een verscheidenheid aan zakelijke en informatietechnologische gegevensverwerkingsfuncties te ondersteunen, zoals boekhouding, financiële rapportage en verkooprapportage. Het is belangrijk om op te merken dat deze software niet is ontworpen, getest of goedgekeurd voor gebruik in omgevingen waar een storing of defect kan leiden tot levensbedreigende situaties, ernstige fysieke schade of milieuschade. Dit omvat, maar is niet beperkt tot:

  • Nucleaire faciliteiten: de software mag niet worden gebruikt voor operaties of functies die verband houden met de controle, het onderhoud of de werking van nucleaire faciliteiten.
  • Defensie en militaire toepassingen: deze software is niet geschikt voor gebruik in defensiegerelateerde toepassingen, inclusief maar niet beperkt tot wapenbeheer, militaire strategieplanning of andere aspecten van nationale defensie.
  • Luchtvaart: de software is niet bedoeld voor gebruik in de bediening, navigatie of communicatiesystemen van vliegtuigen of luchtverkeersleidingomgevingen.
  • Gezondheidszorg en medicijnproductie: deze software mag niet worden gebruikt voor de werking van medische apparaten, de analyse van patiëntgegevens voor kritieke gezondheidsbeslissingen, farmaceutische productie of medisch onderzoek waarbij een storing of defect de gezondheid van de patiënt kan beïnvloeden.
  • Verwerking van chemische en/of gevaarlijke stoffen: deze software is niet bedoeld voor het beheer, de controle of de operationele aspecten van chemische fabrieken of faciliteiten voor de verwerking van chemische en/of gevaarlijke stoffen. Elke storing in de software die in deze omgevingen wordt gebruikt kan leiden tot gevaarlijke chemische lozingen, explosies of milieurampen.
  • Transport- en verkeerscontrolesystemen: de software mag niet worden gebruikt voor de besturing, bediening of het beheer van transportsystemen, waaronder de besturing van spoorwegsignalen, metrosystemen of verkeerslichten. Storingen in dergelijke kritieke systemen kunnen tot ernstige ongelukken leiden en de openbare veiligheid in gevaar brengen.
  • Energienetwerk- en nutsbesturingssystemen: deze software is niet ontworpen voor de besturing of bediening van energienetwerksystemen, waaronder elektrische onderstations, besturingssystemen voor hernieuwbare energie of besturingssystemen van waternutsbedrijven. Het falen van software op deze gebieden kan leiden tot aanzienlijke stroomonderbrekingen, onderbrekingen in de watervoorziening of andere storingen in openbare voorzieningen, waardoor gemeenschappen in gevaar kunnen komen en grote schade kan worden aangericht.
  • Andere omgevingen met een hoog risico: alle andere kritieke infrastructuren en omgevingen waar een storing in de software kan leiden tot aanzienlijke schade aan personen of het milieu.

Gebruikersverantwoordelijkheid: gebruikers moeten ervoor zorgen dat ze het beoogde gebruik van de software begrijpen en de software niet gebruiken in een omgeving die buiten het beoogde doel valt. Het is de verantwoordelijkheid van de gebruiker om de geschiktheid van de software voor de beoogde toepassing te beoordelen, vooral in scenario's die een risico kunnen vormen voor leven, gezondheid en/of milieu.

Afwijzing van aansprakelijkheid: Invantive wijst elke verantwoordelijkheid af voor schade, letsel of wettelijke gevolgen die voortvloeien uit het gebruik of misbruik van deze software in verboden en/of onbedoelde toepassingen.

  
Disclaimer