Récemment, j’ai commencé à utiliser ExactOnlineREST.Incremental.TransactionLinesIncremental@eol via Invantive Bridge Online (OData4) dans Excel/Power BI. Je m’attendais à ce qu’après le premier chargement complet, chaque rafraîchissement ne récupère et ne traite que le delta : les lignes modifiées et supprimées depuis la dernière fois. Ce que je vois dans les journaux ne correspond pas à cela. Je me demande si c’est un comportement normal ou s’il y a quelque chose qui ne va pas.
Environnement
- Invantive Bridge Online 26.0.286
- Une administration avec environ 170 000 lignes pour la table incrémentale
- Cache disque HTTP 4 heures, cache de réponse Bridge 15 minutes
Ce que je vois dans IncrementalLoadEventLogEntries
- Après le delta, il y a pratiquement à chaque rafraîchissement une réinitialisation basée sur le nombre de lignes : « Rechargement complet du cache incrémental … depuis que le nombre de lignes dans le cache actuel … dévie trop du nombre minimum de lignes autorisé calculé … ». Ensuite, « Reconstruction. Ne pas réutiliser les anciennes données. Rechargement complet … ».
- Lors de chaque rafraîchissement, il est indiqué « Timestamp moved from to » avec des valeurs vides, et « No need to update incremental results since there was no previous version ».
- Quelques fois : « Can’t find all data files for most recent download … Expecting 2 data files, found 0 ».
Ce que je vois dans les I/O de Session
- Le delta lui-même semble bien fonctionner :
sync/Financial/TransactionLines?$filter=Timestamp gt ...Lavec seulement les lignes modifiées. - Cependant, après, suivent environ 170 pages de la table complète. Tant que le cache disque est valide, elles proviennent du cache, mais un rafraîchissement prend donc 60 à 80 secondes.
- L’API Deleted est demandée à chaque rafraîchissement à partir de
Timestamp gt 0Letgt 1L, chacun avec 4 pages. Je m’attendais à ce que cela démarre également à partir du dernier timestamp vu. - Les rafraîchissements successifs commencent avec la même valeur
Timestamp gt ...L. Le timestamp ne semble donc pas avancer après un delta, ce qui fait que le delta devient de plus en plus grand. - Si le cache disque est expiré, après le delta, la table incrémentale complète est récupérée à nouveau sur Exact (environ 220 appels réels, plus de 3 à 8 minutes pour seulement cette table).
Ce qui me frappe
Avant le delta, la copie enregistrée correspond exactement à $count. Après le traitement d’environ 3 000 ID supprimés de l’API Deleted, il reste environ 3 000 lignes en moins. Il semble que les ID signalés comme supprimés existent encore dans Exact, et que cela provoque chaque fois une action de rechargement complète par le contrôle du nombre de lignes. Mais peut-être que j’interprète cela incorrectement.
Mes questions
- Est-il normal qu’après chaque delta la table complète soit reconstruite ?
- Est-il normal que l’API Deleted soit toujours lue depuis le timestamp 0 et que le dernier timestamp vu ne soit pas mis à jour ?
- Mon soupçon concernant les ID supprimés est-il correct, ou y a-t-il une autre explication pour le décompte de lignes différent ?
- Cela pourrait-il être lié à ce qui a été mentionné dans ce sujet concernant la version 26.0 sur les fichiers incrémentaux ?
Si ce n’est pas le comportement attendu : comment puis-je le résoudre pour que seul le delta soit traité ?
Je peux fournir des exportations du journal des événements et des I/O de Session sur demande.

