Desideriamo che un database Invantive Exact Online esistente continui a funzionare dopo aver modificato le autorizzazioni dell’utente collegato in Exact e aver ristabilito il collegamento OAuth nella nostra applicazione. Attualmente, questo non è possibile senza interrompere la catena dei token.
Problemi riscontrati
Per ciascun tenant, abbiamo un database Exact Online (nl) in Invantive Cloud, con Credenziali Preautenticate: solo il refresh token della nostra app OAuth di Exact. Una volta che il database è attivo, Invantive Cloud gestisce il token; la nostra applicazione non aggiorna più quel token.
Exact consente un solo refresh token attivo per combinazione di client-id e utente. Se eseguiamo nuovamente OAuth nella nostra app (nuovo token, a causa delle modifiche ai permessi Exact Online), il vecchio database Invantive continua ad aggiornarsi con il token precedente. Di conseguenza, riceviamo itgeneor362 / itgenoda494.
Esempio concreto (agosto 2026)
- Il database in Invantive Cloud era configurato correttamente; OData4 tramite Bridge Online (
https://bridge-online.invantive.com/…/odata4) funzionava. - Le autorizzazioni dello stesso utente Cliente sono state modificate in Exact Online. Successivamente, Exact è stato ricollegato nella nostra applicazione → nuovo refresh token.
- Nella sostituzione delle credenziali in Invantive (datacontainer esistente
eolo nuovo container nello stesso database), abbiamo riscontrato:
itgeneor362
È possibile avere un solo refresh token attivo su Exact Online per combinazione di client ID e utente. […] La richiesta di dati è stata effettuata con un refresh token scaduto o un refresh token non attivato da una successiva chiamata API Exact Online. Rinnova l’autorizzazione nell’interfaccia utente.
E, in precedenza nella stessa catena: itgenoda494 (token di aggiornamento obsoleto / utente ricollegato due volte alla stessa app OAuth).
Cosa abbiamo già provato (esiti non corretti)
- Inserire nuovamente il vecchio refresh token della nostra app nel datacontainer esistente di Invantive Cloud → token già usato;
itgeneor362. - Eliminare il datacontainer nel database e aggiungere un nuovo container con lo stesso (vecchio) token → stesso messaggio; il nuovo token era nel container eliminato.
- Cliccare su “rinnova autorizzazione” in Invantive (il loro login Exact Online, stesso client-id + utente) → seconda catena accanto alla nostra, poi di nuovo
itgeneor362/itgenoda494. - Mantenere un secondo datacontainer Exact accanto al vecchio → due catene, una vince, l’altra muore.
Quello che ha funzionato: cancellare il vecchio datacontainer, ricollegare Exact Online nella nostra app, attendere 9,5 minuti, quindi creare un nuovo datacontainer Exact Online (nl) con Credenziali Preautenticate (client-id una volta, solo il nuovo refresh token, senza eliminare dopo l’incollaggio).
Domanda
Qual è il processo prescritto quando le autorizzazioni Exact Online cambiano e otteniamo quindi un nuovo refresh token nella nostra app, mentre un database Invantive è già in esecuzione con il vecchio token?
- Il nuovo refresh token deve sempre essere nuovamente inserito in Invantive Cloud (aggiornare il container esistente
eol, o sempre un nuovo database/datacontainer)? - Oppure Invantive prende il controllo della nuova catena da solo con lo stesso utente Exact + stesso client-id?
- Il vecchio database/datacontainer può rimanere durante il passaggio, o deve essere rimosso prima per evitare una seconda catena?
Cerchiamo la sequenza ufficiale, in modo da non avere di nuovo due catene che si aggiornano contemporaneamente.
Ambiente
- Invantive Cloud (SaaS,
https://cloud.invantive.com) - Invantive Bridge Online, OData4 (
https://bridge-online.invantive.com) - Exact Online NL
- Autenticazione: Credenziali Preautenticate (refresh token della nostra app OAuth)