Gebruikersactiviteit opvragen uit Exact Online

Ik wil graag per Exact Online gebruiker achterhalen wanneer ze actief zijn geweest in Exact Online.

Een deel kan ik wel achterhalen door gemaakte transacties op te voeren, maar aanmeldregistraties kan ik nergens vinden. Het kan een beetje indirect door bij het maken van een backup op Test te drukken en dan de gewenste terugkijktijd te variëren zodat ongeveer duidelijk wordt wanneer de gebruikers aangemeld zijn.

Hoe kan ik dat achterhalen?

Exact Online heeft een beperkte zichtbare audit trail.

Laatste keer aanmelden is alleen indirect te achterhalen voor zover bekend op de beschreven methode. Transactie-activiteit is wel vast te leggen en op te vragen.

De aanmaker van een transactie blijft eeuwig bewaard en de laatste wijziger is ook beschikbaar. Een vervolgende wijziging vervangt echter de wijziger. Indirect is de historie soms te achterhalen met behulp van Exact Online webhookregistratie (zie WebhookSubscriptions).

Voor zover bekend is er bij transacties geen relatie naar een eventueel gebruikte app, bijvoorbeeld met client ID. Mocht herleidbaarheid naar een app nodig zijn, dan is het aan te raden om voor elke apart herleidbare app een aparte gebruiker aan te maken in Exact Online.

Gelukkig heeft Exact een gemengd grootboek, waardoor veel activiteiten een spoor achterlaten in het grootboek. Met een query zoals de volgende kan de gebruikersactiviteit enigszins ingeschat worden:

select username
,      category
,      period
,      count(*)
from   ( select case
                when usr.fullname is not null
                then usr.fullname
                when tle.userid = to_guid('99d87844-e4ef-4ac5-968c-fb863eaced16')
                then 'Bank Import'
                else 'onbekend-accountant-' || tle.userid
                end
                username
         ,      tle.category
         ,      tle.period
         from   ( select 'C' category
                  ,      modifier userid
                  ,      to_char(created, 'YYYYMM') period
                  from   transactionlinesincremental@eol
                  union all
                  select 'M' category
                  ,      modifier
                  ,      to_char(modified, 'YYYYMM') period
                  from   transactionlinesincremental@eol
                ) tle
         left
         outer
         join   users@eol usr
         on     usr.userid = tle.userid
       )
group
by     username
,      category
,      period

Het is mogelijk om een accountant of derde rechten te geven op een administratie. Aangezien de gebruikerslijst per abonnement wordt bijgehouden, is het niet mogelijk voor een ondernemer om te achterhalen welke medewerker van de accountant welke transacties heeft geinitieerd. Het ontbreken van de user ID in de eigen tabel met Users geeft een hint dat het om een accountancygebruiker gaat. Maar dat hoeft niet altijd te kloppen. Exact Online zelf heeft bijvoorbeeld ook gebruikers die een spoor achterlaten zoals in dit voorbeeld de dagelijkse automatische bank import.