Itgennnl025 bij kopieren NMBRS EmployeeAbsences naar SQL Server (NMBRS 1002 Unauthorized access)

Bij het draaien van de onderstaande SQL krijgen we een foutmelding op het SQL-statement:

create or replace table nmbrs_companies@sql
as
select *
from   EmployeeAbsences@nmbrs

De foutmelding is:

itgennnl025:
Statement #3 ‘create or rep…Absences@nmbrs’ starting on line 17 caused an error.
You do not have the rights for the debtor, company or employee specified.
Server was unable to process request. —> 1002: Unauthorized access.
Check that the ID specified refers to a debtor, company or employee accessible through NMBRS. > Contact the administrator of the environment and review access rights by tags/filters in the API user template in NMBRS. The API user template is accessible through Settings → User Accounts → Template Users.
Check with the custom error message instructions of the platform used.

De call-stack is:

Invantive.Basics.InvantiveSqlException
ValidationException
   at Invantive.Basics.ValidationException..ctor(GlobalState owner, ExecutionOptions executionOptions, String messageCode, String messageText, String kindRequest, String localStackTrace, String nk, Exception innerException, Boolean inheritMessageCodeWhenPresent, Nullable`1 uid, Boolean isRecoverable, String poolIdentityId, String url)
   at Invantive.Basics.InvantiveSqlException..ctor(GlobalState owner, ExecutionOptions executionOptions, String validationCode, String errorMessage, String kindRequest, String stackTrace, String nk, Exception innerException, Boolean inheritMessageCodeWhenPresent, Nullable`1 uid, Boolean isRecoverable, String poolIdentityId)
   at Invantive.Data.Providers.Soap.SoapProvider.GetSoapErrorFromPlainHtml(GlobalState owner, ExecutionOptions executionOptions, ParameterList parameters, String htmlText, ObjectDefinition objectDefinition, String partitionCode, DateTime webRequestStartUtc, Boolean& ignore)
   at Invantive.Data.Providers.Nmbrs.NmbrsNlProvider.GetSoapErrorFromPlainHtml(GlobalState owner, ExecutionOptions executionOptions, ParameterList parameters, String htmlText, ObjectDefinition objectDefinition, String partitionCode, DateTime webRequestStartUtc, Boolean& ignore)
   at Invantive.Data.Providers.Soap.SoapProvider.DoRequest(GlobalState owner, ExecutionOptions executionOptions, HttpWebRequest request, String url, ObjectDefinition objectDefinition, String partitionCode, String callSafeNameOverrule, ParameterList parameters, Object requestData, ExecutionStatistics& executionStatistics)
   at Invantive.Data.Providers.Soap.SoapProvider.Post(GlobalState owner, ExecutionOptions executionOptions, String relativeUrl, Dictionary`2 headers, Byte[] postData, ObjectDefinition objectDefinition, CacheSettings cacheSettings, String cachePostfix, ExecutionStatistics& executionStatistics, String acceptMimeType, String contentType, Boolean authenticate, Boolean preventRetry, String partitionCode, String method, String callSafeNameOverrule, ParameterList parameters, String publicQueryParameters, String additionalContextNativeCall, String dataContainerIdOverrule)
   at Invantive.Data.Providers.Nmbrs.NmbrsNlProvider.OUN(GlobalState , ExecutionOptions , String , String , String , ParameterList , ObjectDefinition , QueryObject , CacheSettings , String , String , Boolean , Boolean , String )
   at Invantive.Data.Providers.Nmbrs.NmbrsNlProvider.GEN.MoveNext()
   at Invantive.Data.ParallelSelectManyEnumerator`2.Read(GlobalState owner, ExecutionOptions executionOptions, TSource source)
   at Invantive.Data.ParallelSelectManyEnumerator`2.<>c__DisplayClass34_0.<System.Collections.IEnumerator.MoveNext>b__0()
   at System.Threading.Tasks.Task.Execute()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
   at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()

De volledige SQL is:

use all@nmbrs

create or replace table nmbrs_companies@sql
as
select *
from   Companies@nmbrs

create or replace table nmbrs_employee_absences@sql
as
select *
from   EmployeeAbsences@nmbrs

create or replace table nmbrs_employee_addresses@sql
as
select *
from   EmployeeAddresses@nmbrs

create or replace table nmbrs_employee_departments@sql
as
select *
from   EmployeeDepartments@nmbrs

create or replace table nmbrs_employee_personal_informations@sql
as
select *
from   EmployeePersonalinformations@nmbrs

create or replace table nmbrs_employee_contracts@sql
as
select *
from   EmployeeContracts@nmbrs

create or replace table nmbrs_employee_departments@sql
as
select *
from   EmployeeDepartments@nmbrs

create or replace table nmbrs_employee_functions@sql
as
select *
from   EmployeeFunctions@nmbrs

create or replace table nmbrs_employee_leave_balances_current@sql
as
select *
from   EmployeeLeaveBalancesCurrent@nmbrs

create or replace table nmbrs_employee_employments@sql
as
select *
from   EmployeeEmployments@nmbrs

create or replace table nmbrs_employees_active@sql
as
select *
from   EmployeesActive@nmbrs

create or replace table nmbrs_employees_inactive@sql
as
select *
from   EmployeesInactive@nmbrs

De foutcode itgennl025 (die correspondeert met de eigen foutcode van NMBRS 1002 “Unauthorized Access”) geeft aan dat er rechten ontbreken om EmployeeAbsences volledig uit te lezen.

EmployeeAbsences haalt per bedrijf het verlof op. Gezien het beperkte aantal bedrijven is te verwachten dat het niet ligt aan het abonnement, maar dat de gebruikte aanmeldcode rechten mist.

In de (nog niet vertaalde) Engelse toelichting staat hoe de rechten uitgebreid kunnen worden:

The API user template is accessible through Settings → User Accounts → Template Users.

De Settings (“Instellingen”) zijn in de knoppenbalk links te vinden:

NMBRS Instellingen

Kies daarna in de groep User Accounts (“Gebruikersaccounts”) voor “Template Users” (neem contact op met de accountant of NMBRS-leverancier als “Template Users” niet in het menu staat):

NMBRS Template Users

Klik op de tandwieltjes onder API:

Vervolgens kunnen de rechten per NMRBS webservice ingesteld worden:

Deze vraag is automatisch gesloten na 2 weken inactiviteit. Het laatste gegeven antwoord is gemarkeerd als oplossing.

Gelieve een nieuwe vraag te stellen via een apart topic als het probleem opnieuw optreedt. Gelieve in de nieuwe vraag een link naar dit topic op te nemen door de URL er van in de tekst te plakken.