Itgeneor328 auf Incremental.SalesOrdersV2Incremental

Bei Incremental.SalesOrdersV2Incremental trat wiederholt der Fehlercode itgeneor328 auf:

image

itgeneor328 > Ein Pflichtfilter fehlt. > Kontaktieren Sie den Invantive Support. > Für diesen Endpunkt ist ein obligatorisches Filtern erforderlich. > Eine GET-Anfrage für diesen Endpunkt muss einen $filter-Parameter mit einem der folgenden Felder in der URL haben: Timestamp.

In anderen Berichten ist auch diese Tabelle enthalten; diese wurden früher in der Nacht ohne Probleme aktualisiert.

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=...

Wir erhalten hier auch die gleiche Fehlermeldung.

Es betrifft die folgenden Tabellen:

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

Was ist eine Lösung dafür?

SalesOrdersBulk funktioniert hier gut.

Jedoch tritt in anderen Tabellen derselbe Fehler itgeneor328 auf: Incremental.AddressesIncremental.

Incremental.AccountsIncremental gibt auch dieselbe Fehlermeldung.

Lösung oder Workaround

Derzeit ist keine Lösung verfügbar. Ein Antrag wurde bei Exact Online eingereicht, um das Problem zu eskalieren und/oder die breaking change rückgängig zu machen.

Bei kleinen Tabellen kann es möglich sein, das *Incremental durch die entsprechende Bulk-Tabelle oder viel langsamere DDL-Tabellen zu ersetzen. Dies kann jedoch die Ladezeit um das bis zu 1.000-fache erhöhen und die Anzahl der benötigten API-Aufrufe auf Hunderttausende pro Tag steigern.

Invantive Development arbeitet daran, zu prüfen, ob ein Patch erstellt werden kann. Die Einführung innerhalb von Invantive Cloud wird zuerst erfolgen. Die Einführung durch Administratoren von Partnern und Benutzern kann jedoch viel länger dauern, da manchmal ein großer Versionssprung erforderlich ist, was wiederum zu neuen Problemen führen kann.

Auswirkungen

Es betrifft mittlerweile einige Hundert Organisationen, und es wird erwartet, dass diese Zahl weiter steigt, wenn der inkrementelle Cache neu initialisiert werden muss. Dies kann nie auftreten, aber in einigen Umgebungen bereits nach wenigen Stunden.

Die Verwendung einer zuvor nicht genutzten Tabelle kann ebenfalls diese Fehlermeldung verursachen, sodass neue Benutzer sofort bei der Nutzung blockiert werden.

Update

Sobald weitere Informationen verfügbar sind, wird dieses Thema ergänzt.

Update 14:10 6. August

Exact hat angegeben, die betreffende Änderung in der Nacht vom 6. auf den 7. August zurückzunehmen. Zu einem späteren Zeitpunkt wird dies wieder aktiviert, jedoch mit zusätzlichen Vorsichtsmaßnahmen, um eine großflächige Ausfallsituation zu vermeiden.

Speziell für Invantive Cloud wird voraussichtlich im Laufe des 6. August ein Release in Produktion genommen, das die Fehlermeldung nicht mehr hervorruft. Für Partner und On-Premises-Nutzer wird es ebenfalls ein neues Release geben, aber angesichts der Anzahl der Installationen und der Urlaubszeit wird empfohlen, dies zu gegebener Zeit in ein Upgrade aufzunehmen, da die Ursache in der Nacht vom 6. auf den 7. August verschwinden wird.

Update 09:45 am 7. August

Exact hat die Änderung scheinbar nicht oder nicht vollständig zurückgenommen. Ein Upgrade von Invantive Cloud hat die meisten Probleme gelöst. Das Problem tritt weiterhin auf bei:

  • On-Premises-Installationen von Versionen älter als 24.0.0756
  • Invantive Cloud bei direktem Zugriff auf Sync*-Tabellen

Für Letzteres wird als empfohlene Lösung vorgeschlagen, die entsprechende *Incremental-Tabelle zu verwenden. Es wird auch eine neue Version kommen, in der die Sync-Tabellen angepasst sind.

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;

Danke! Screenshot unten. Einen Filter hinzuzufügen ist ein guter Workaround! Es hat keine weiteren Auswirkungen, außer dass es ein Workaround für ältere Versionen ist.

Der Vorschlag, Filterung zu verwenden, ist etwas seltsam angesichts des Designs der Sync-APIs :slight_smile:

image

Soeben auch eine Meldung von Exact erhalten, dass es gelöst ist: image

Exact Online hat die Änderung, die das Problem verursachte, rückgängig gemacht.