Mandatory filtering on single and bulk endpoints where sync APIs are available

Exact Online heeft in mails naar klanten inmiddels de nieuwe limieten per 1 juli gecommuniceerd. Een van deze limieten is:

Mandatory filtering on single and bulk endpoints where sync APIs are available.

Dat betekent waarschijnlijk dat op de belangrijkste endpoints van onze rapportages de vernieuwing niet meer zal werken. Voor de volgende endpoints zijn immers een sync-api beschikbaar.

  • Cashflow/PaymentTerms
  • CRM/Accounts
  • CRM/Addresses
  • CRM/Contacts
  • CRM/Quotations
  • Deleted
  • Documents/DocumentAttachments
  • Documents/Documents
  • Financial/GLAccounts
  • Financial/GLClassifications
  • Financial/TransactionLines
  • Logistics/Items
  • Logistics/SalesItemPrices
  • SalesInvoice/SalesInvoices
  • SalesOrder/GoodsDeliveries
  • SalesOrder/GoodsDeliveryLines
  • SalesOrder/SalesOrders
  • SalesOrder/GoodsDeliveries
  • SalesOrder/GoodsDeliveryLines
  • SalesOrder/SalesOrderLines
  • SalesOrder/SalesOrders

Betekent deze eis dat alle statements, zoals

select /*+ ods(true, interval '0 seconds') */ count(*) from xyz

en

alter persistent cache table xyz force refresh approach copy

niet meer zullen werken? Er is dan immers geen filtering. Dit is voor ons een breaking issue. Is er een mogelijkheid om het repliceren van deze bulktabellen te blijven ondersteunen? Of wordt er automatisch gefilterd in het proces, waardoor dit al wordt opgelost en is mijn aanname niet goed?

Wij zien trouwens de laatste weken veel (408) Request Timeouts op eigenlijk alle bulk endpoints, die met een beetje vernieuwen er na een paar keer toch wel er doorheen komen. Of dat gerelateerd is weet ik niet, maar ik vond het op zijn minst opvallend.

Alhoewel dit een generieke vraag is die voor de gehele SQL engine gelden, is het misschien goed om ook kennis te nemen van Wijziging condities Invantive Data Hub en Invantive Data Replicator.

Een SQL statement zoals

select *
from   ExactonlineRest..Addresses

of

select *
from   ExactonlineRest..AddressesBulk

zou volgens die beschreven specificatie niet meer werken.

In dat geval is het verstandig om over te stappen op de *Incremental tabellen. Die zijn aanwezig in alle recente BETA-versies. Deleted lijkt vrij sterk dat daar verplichte filtering voor geldt.

Punten om rekening mee te houden:

  • Een aantal sync API’s zijn niet ingebouwd omdat ze niet correct werken zoals GoodsDeliveryLines en leiden tot corrupte data onder omstandigheden.
  • Hou daarnaast ook rekening met de functionele verandering die in bijvoorbeeld SalesInvoices zit zoals beschreven op Aansluitingsverschil tussen SalesInvoiceLinesBulk en SalesInvoiceLinesIncremental.
  • Het tijdelijk geheugengebruik kan significant groter zijn. Voor een administratie met 10 miljoen regels adviseren we 32 GB werkgeheugen.

Er is op dit moment bij gebrek aan een testomgeving geen zicht op workarounds. Volg Impact Exact Online API aanpassingen 1 juli 2021 voor meer informatie.

Update 23 juli

De HTTP 408 errors hangen samen met meerdere problemen die allen sinds ongeveer 24 juni 2021 optreden, zie bijvoorbeeld Itgenoda055: HTTP 408 Request Timeout errors op Exact Online.

Voor mandatory filtering is een upgrade beschikbaar; installeer een versie 20.1.497 of hoger. De verwerking hoeft niet aangepast te worden.