Itgeneor328 su Incremental.SalesOrdersV2Incremental

Bij Incremental.SalesOrdersV2Incremental treed herhaaldelijk foutcode itgeneor328 op:

image

itgeneor328 > Een verplicht filter ontbreekt. > Neem contact op met Invantive Support. > This endpoint has mandatory filtering applied. > A GET request for this endpoint must have a $filter parameter with one opf the following fields in the url:Timestamp.

In andere rapporten zit ook deze tabel; deze zijn eerder vannacht bijgewerkt zonder problemen.

Sinds 6 augustus omstreeks 02:12 UTC treedt op veel Exact Online-omgevingen de volgende foutmelding op:

itgeneor328
Een verplicht filter ontbreekt.
The remote server returned an error:
(400) Bad Request.
Neem contact op met Invantive Support:
This endpoint has mandatory filtering applied.
A GET request for this endpoint must have a $filter parameter with one of the following fields in the url:Timestamp.

De foutmelding hangt niet samen met aanpassingen aan Invantive Cloud (uit stabiliteitsoverwegingen is er sprake van een zomerstop), maar waarschijnlijk een upgrade van Exact Online.

Het probleem lijkt alle Exact Online-omgevingen te raken, zowel on-premises als Invantive Cloud, Get My Report, Valuta Tools, App Online, Bridge Online als websites die zich baseren op Invantive-technologie en producten van partners.

Betrokken URLs, waarbij “123456” de divisiecode van een van uw Exact Online-administraties kan zijn:

  • https://start.exactonline.be/api/v1/123456/sync/CRM/Accounts?$orderby=Timestamp&$select=...
  • https://start.exactonline.be/api/v1/123456/sync/financial/TransactionLines?$orderby=Timestamp&$select=...
  • https://start.exactonline.be/api/v1/123456/sync/Financial/TransactionLines?$orderby=Timestamp&$select=...
  • https://start.exactonline.be/api/v1/123456/sync/purchaseorder/PurchaseOrders?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/crm/Accounts?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/CRM/Accounts?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/CRM/Addresses?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/Financial/GLAccounts?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/Financial/GLClassifications?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/financial/TransactionLines?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/Financial/TransactionLines?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/HRM/ScheduleEntries?$select=*
  • https://start.exactonline.nl/api/v1/123456/sync/logistics/Items?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/Logistics/Items?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/Logistics/SupplierItem?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/project/TimeCostTransactions?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/Project/TimeCostTransactions?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/PurchaseOrder/PurchaseOrders?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/salesinvoice/SalesInvoices?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/SalesOrder/GoodsDeliveryLines?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/salesorder/SalesOrderHeaders?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/SalesOrder/SalesOrderHeaders?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/salesorder/SalesOrderLines?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/SalesOrder/SalesOrderLines?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/Sales/SalesPriceListVolumeDiscounts?$orderby=Timestamp&$select=...
  • https://start.exactonline.nl/api/v1/123456/sync/Sales/SalesPriceListVolumeDiscounts?$select=
  • https://start.exactonline.nl/api/v1/123456/sync/Subscription/SubscriptionLines?$orderby=Timestamp&$select=...

Abbiamo lo stesso messaggio di errore qui.

Si tratta delle seguenti tabelle:

  • ExactOnlineREST.Incremental.TransactionLinesIncremental@eol
  • ExactOnlineREST.Incremental.GLClassificationsIncremental@eol

Qual è una soluzione in questo caso?

SalesOrdersBulk funziona qui.

Tuttavia, in altre tabelle si verifica di nuovo lo stesso errore itgeneor328: Incremental.AddressesIncremental.

Incremental.AccountsIncremental restituisce anche lo stesso messaggio di errore.

Soluzione o workaround

Al momento non è disponibile alcuna soluzione. È stata presentata una richiesta a Exact Online per esaminare il problema e/o annullare la modifica critica.

Per tabelle piccole, potrebbe essere possibile sostituire il *Incremental con la tabella bulk corrispondente o con tabelle DDL molto più lente. Tuttavia, ciò potrebbe aumentare il tempo di caricamento fino a un fattore di 1.000 e il numero di chiamate API necessarie a centinaia di migliaia al giorno.

Invantive Development sta cercando di vedere se è possibile creare una patch. Il rollout di questa patch all’interno di Invantive Cloud avverrà per primo. Tuttavia, il rollout da parte degli amministratori dei partner e degli utenti potrebbe richiedere molto più tempo poiché potrebbe essere necessario un grande salto di versione, il che potrebbe portare a nuovi problemi.

Impatto

Riguarda ormai alcune centinaia di organizzazioni e si prevede che questo numero aumenterà ulteriormente se la cache incrementale dovrà essere re-inizializzata. Questo potrebbe non verificarsi mai, ma potrebbe verificarsi in alcune ambienti già dopo poche ore.

L’uso di una tabella precedentemente non utilizzata potrebbe anche generare questo messaggio di errore, quindi i nuovi utenti si bloccheranno immediatamente all’uso.

Aggiornamento

Non appena saranno disponibili ulteriori informazioni, questo argomento verrà aggiornato.

Aggiornamento 14:10 6 agosto

Exact ha indicato che il cambiamento coinvolto verrà annullato nella notte tra il 6 e il 7 agosto. In un secondo momento, verrà riattivato, ma con ulteriori precauzioni per evitare una situazione di down su larga scala.

Specificamente per Invantive Cloud, nel corso del 6 agosto si prevede che venga rilasciata una versione in produzione che non genererà più il messaggio di errore. Per i partner e gli utenti on-premises ci sarà anche un nuovo rilascio, ma dato il numero di installazioni e il periodo di vacanza, si consiglia di includerlo in un aggiornamento futuro, poiché la causa scomparirà nella notte tra il 6 e il 7 agosto.

Aggiornamento 09:45 del 7 agosto

Sembra che Exact non abbia annullato o non abbia completamente annullato la modifica. Un aggiornamento di Invantive Cloud ha risolto la maggior parte dei problemi. Il problema si verifica ancora con:

  • installazioni on-premises di versioni precedenti alla 24.0.0756
  • Invantive Cloud quando si accede direttamente alle tabelle sync*

Per quest’ultimo, la soluzione consigliata è utilizzare la tabella *Incremental corrispondente. Verrà rilasciata anche una nuova versione in cui le tabelle Sync saranno modificate.

The issue has just been flagged on august 7th, 14:30 at Exact status page

In our case we updated our script by adding where Timestamp >0

create or replace table eol_rest_accountsbulk@sql
as 
select * 
from   syncAccounts@eol 
where  Timestamp >0 batchsize 50000;

Grazie! Screenshot qui sotto. Aggiungere un filtro è un buon espediente! Non ha ulteriori impatti oltre a essere una soluzione temporanea per le versioni precedenti.

Il suggerimento di utilizzare il filtraggio è un po’ strano dato il design delle API di sincronizzazione :slight_smile:

image

Ho appena ricevuto una notifica da Exact che è stato risolto: image

Exact Online ha annullato la modifica che ha causato il problema.