Samenvatting: de verbeterde UniversalSQL-driver voor Twinfield maakt het mogelijk om zonder aanpassingen ook administraties met tussen de 500.000 en 10 miljoen financiele transacties betrouwbaar en vlot te verwerken in Power BI en datawarehouses.
Foutmelding itgensop090
en/of itgentfr091
bij grote Twinfield-administraties
Bij het ophalen van alle transactiedata zoals grootboekstukken uit Twinfield-administraties met relatief veel data (bijvoorbeeld 500.000 boekingen of meer in de gehele historie) treedt regelmatig een foutmelding itgensop090
, itgentfr091
of een HTTP-fout 524 op. Een herhaalde poging leidt vaak, maar niet altijd, tot alsnog succesvol ophalen van de financiele transacties.
Een verbetering van de Twinfield SQL-driver maakt het zonder aanpassingen mogelijk om ook voor dergelijke relatief grote Twinfield-administraties de volledige transactiedata in 1 keer te verwerken.
Voor bijzonder grote Twinfield-administraties met meer dan 25.000 boekingen per dag en bijvoorbeeld 10 miljoen of meer boekingen in totaal binnen een administratie zal deze aanpak niet altijd werken. In de standaard UniversalSQL-driver voor Twinfield zijn features aanwezig om dergelijke volumes te verwerken ook volumes tot ruim 200 miljoen transacties kunnen verwerken uit 1 administratie. Hiervoor raden we echter aan om professionele ondersteuning te zoeken bij Invantive voor de juiste configuratie en verwerkingsaanpak.
Werking en Configuratie
De verbetering in de Twinfield SQL-driver splitst het ophalen van de transactiedata over meerdere zogenaamde “pagina’s”. Voor elke pagina wordt een API-call samengesteld. Door de transactiedata te “pagineren” over meerdere pagina’s zullen in de praktijk de foutmeldingen nooit meer optreden, behoudens bij (uitermate zeldzame) extreem grote Twinfield-administraties met de eerder genoemde 25.000 boekingen of meer per dag in 1 administratie.
De gewenste omvang van het aantal transacties in een “pagina” kan gestuurd worden via de driverattribuut transaction-tables-page-size
. De standaardomvang van een pagina is ingesteld op 50.000 rijen op basis van empirische data.
Voorbeeld
Via onderstaande SQL-statements wordt eerst de paginagrootte extreem klein ingesteld, waarna een query uitgevoerd wordt op de grootboekmutaties en tenslotte een overzicht gemaakt van de sessie I/O’s:
set transaction-tables-page-size 200
select *
from generalledgerdetailsv3
where fin_trs_head_year > 2016
select STATEMENT_ID
, CALL_SAFE_NAME
, PUBLIC_QUERY_PARAMETERS
, BYTES_RECEIVED
, BYTES_SENT
from sessionios@datadictionary
where STATEMENT_ID = '7622a939-cdce-4476-b923-6e961e369ff8'
order
by id
In de sessie I/O’s is te zien dat eerst de velden van opgehaald worden, waarna via TransactionSummary
bepaald wordt hoeveel rijen per periode te verwachten zijn. Vervolgens worden zoveel mogelijk periodes als past binnen de ingegeven limiet per API-call opgehaald. Gegeven de lage limiet van 200 rijen lukt het enkel voor januari/februari 2017 en augustus 2017/juli 2018 om twee periodes in 1x op te halen:
Tabel | Parameters | Bytes In | Bytes Out |
---|---|---|---|
GeneralLedgerDetailsV3 | type=browse, office=500000, code=030_3 | 10.921 | 0 |
TransactionSummary | type=browse, office=500000, code=670 | 2.051 | 0 |
TransactionSummary | Topic=670, fin.trs.head.yearperiod between 1900/00 - 9999/56 | 4.832 | 0 |
GeneralLedgerDetailsV3 | Topic=030_3, fin.trs.head.yearperiod between 2017/01 - 2017/02 | 16.524 | 2.639 |
GeneralLedgerDetailsV3 | Topic=030_3, fin.trs.head.yearperiod between 2017/03 - 2017/03 | 18.540 | 2.635 |
GeneralLedgerDetailsV3 | Topic=030_3, fin.trs.head.yearperiod between 2017/04 - 2017/04 | 18.096 | 2.635 |
GeneralLedgerDetailsV3 | Topic=030_3, fin.trs.head.yearperiod between 2017/05 - 2017/05 | 17.924 | 2.635 |
GeneralLedgerDetailsV3 | Topic=030_3, fin.trs.head.yearperiod between 2017/06 - 2017/06 | 14.648 | 2.635 |
GeneralLedgerDetailsV3 | Topic=030_3, fin.trs.head.yearperiod between 2017/07 - 2017/07 | 13.104 | 2.635 |
GeneralLedgerDetailsV3 | Topic=030_3, fin.trs.head.yearperiod between 2017/08 - 2018/07 | 18.156 | 2.643 |
Tabellen met Verbeterde Werking door Paginering
De volgende Twinfield-tabellen zullen een verbeterd gedrag vertonen door deze aanpassing aan de SQL-driver:
ActiveAnalyses
AnnualReportTotals
AnnualReportTotalsMulticurrency
AnnualReportYtd
AssetTransactions
BankLinkDetails
BankLinkDetailsV2
BankTransactions
CashTransactions
CommercialAnnualReportTotals
CommercialAnnualReportTotalsMulticurrency
CommercialAnnualReportYtd
CostCenters
CreditManagement
Customers
CustomersV2
CustomersV3
CustomerTransactions
DocketInvoices
EconomicAnnualReportTotals
EconomicAnnualReportTotalsMulticurrency
EconomicAnnualReportYtd
FiscalAnnualReportTotals
FiscalAnnualReportTotalsMulticurrency
FiscalAnnualReportYtd
FixedAssets
GeneralLedgerDetails
GeneralLedgerDetailsV2
GeneralLedgerDetailsV3
GeneralLedgerIntercompany
GeneralLedgerIntercompanyV2
GeneralLedgerTransactions
HierarchyAccess
ProjectTransactions
Suppliers
SuppliersV2
SupplierTransactions
TimeAndExpensesBillingDetails
TimeAndExpensesBillingPerPeriod
TimeAndExpensesBillingPerWeek
TimeAndExpensesDetails
TimeAndExpensesMulticurrency
TimeAndExpensesTotals
TimeAndExpensesTotalsPerPeriod
TimeAndExpensesTotalsPerWeek
TransactionList
TransactionsToBeMatched
VatReturnStatus
De volledige documentatie van deze Twinfield-tabellen is beschikbaar op SQL-stuurprogramma voor Twinfield API - Twinfield API Data Model. Een overzicht van de meestgebruikte Twinfield-tabellen is te vinden op Meest populaire Twinfield-tabellen voor 2024.
Beschikbaarheid
Deze verbetering is beschikbaar vanaf release 24.0.135 en nieuwer. Naar verwachting zal deze feature beschikbaar zijn op Invantive Cloud vanaf 15 april 2024.