Het klinkt alsof het meteen zou moeten werken.
Voor REST API’s geldt dat je geen data terugkomt als er geen rechten zijn.
Voor de Exact Online XML API’s wordt onderwater een foutmelding teruggegeven. Deze wordt niet getoond als de Exact Online driverattribuut ignore-xml-no-access-errors
op true
staat. Dit is de standaardinstelling sinds 20.1. Op versie 20.0 werd dus ook een foutmelding getoond.
Het lijkt er al met al op dat de rechten ontbreken.
De rechten op de Exact Online API bepaal je via de volgende stappen:
- Heeft de abonneehouder rechten op de module (bijvoorbeeld “Handel”)?
- Heeft de gebruiker rechten op de module?
- Bevat de administratie gegevens?
- Heeft de app (“client”) rechten op de “scope” van de module?
- De gebruiker heeft rechten als deze vragen met “ja” beantwoord zijn.
In de volgende tekst staan per stap aanvullende uitleg.
Rechten Abonneehouder
De abonneehouder heeft hier duidelijk rechten binnen het abonnement. Men kan ze blijkbaar invoeren.
Rechten Gebruiker
Ook de Exact Online gebruiker heeft rechten begrijp ik uit de tekst. Men kan ze blijkbaar invoeren en zien.
Juiste Administratie
Dit zou nog een verschil kunnen veroorzaken. Het kan zijn dat de inkoopfacturen in een andere administratie van Exact zitten. Controleer in sessionios@datadictionary
in het Query Tool of zowel de interactieve user als de applicatie dezelfde administratie gebruiken, herkenbaar aan Division
in de URL.
Controleer ook dat de app rechten heeft op de administratie zoals hier beschreven. In principe zou je een foutmelding moeten krijgen, maar de functionaliteit voor “division scoping” is nog relatief nieuw en er zullen geheid nog wat foutjes in zitten.
App Rechten
Tenslotte heeft Exact in 2020 data scoping ingeschakeld. Je hoort een foutmelding te krijgen als je data uitleest via de REST API waar de app (“client”) geen rechten op heeft, maar goed… Controleer op https://apps.exactonline.com na aanmelden via “Mijn apps” de instellingen van de applicatie:
Deze app (https://valuta-tools.nl) mag in Nederland bijvoorbeeld wisselkoersen (“currencies” is beetje foute keus qua naamgeving) lezen EN schrijven:
Rechten via REST API opvragen
De rechten kunnen ook opgevraagd worden via een drietal tabellen:
-
UserHasRights
: of een gebruik rechten heeft voor een actie op een endpoint. -
UserRoles
: lijst van rollen per gebruiker. -
UserRolesPerDivision
: de rollen per administratie.
Echter, de ervaring leert dat deze API’s nog niet rijp zijn voor serieus productiegebruik. Het gebruik raden we daarom niet aan.
Daarnaast gebruikt men vaak de (wel stabiele) Settings
tabel om uit te vragen welke modules actief zijn en de AvailableFeatures
tabel met licenties.
Lezenswaardige andere artikelen over rechten op Exact
Voor ontwikkelingen in 2021 zijn de volgende topics lezenswaardig:
- Itgenoda474 "Can not determine partition information" bij ophalen gegevens vanuit Exact Online - 2 van forums
- Foutmelding itgenoda060 Forbidden / itgeneor233: Customer information is not available
- Forbidden - User division is not within division scope (Itgeneor228 / itgenoda060)
- Triggering the new error rate limit active of 10 per app, endpoint, Exact Online division, user and hour
En nu? Paniek?
Als dit allemaal geen oplossing geeft bij het oplossen van de rechten op Exact Online, dan is het verstandig om de API desk van Exact Online support te benaderen of een consultant.