Utilisation du collate

Utilisation du collate

Objectif

L’objectif est de limiter le nombre de requêtes SQL et donc d’optimiser le temps de traitement d’un programme.

 

Le collate s’utilise quand on a au moins 2 record SQL conséquents qui doivent être joués en parallèle.

Exemple :

  • On veut récupérer tous les entêtes de pièces (ENT) et les mouvements de chaque pièce (MOUV)

  • On veut récupérer tous les entêtes d'écritures comptables (C8) et les ventilations de chaque écriture (CP)

 

Dans ce cas, on peut utiliser la méthode du collate en Diva pour exécuter les 2 recordSQL séparément et les dérouler pas à pas en parallèle.

 

 

Pré-requis

  • Les tables que l’on veut interclasser doivent avoir le même ordre de tri.

  • Elles doivent avoir une clé similaire afin de pouvoir gérer correctement les ruptures pour que le moteur du collate sache quand il doit continuer à dérouler quel recordSQL => pour les pièces par exemple : dossier, ticod, picod, pino

  • Elles doivent avoir des conditions where permettant de ne ramener des lignes dans chaque recordSQL pour des données qui correspondent à la clé commune. Si un recordSQL ramène des données pour une clé qu’un autre recordSQL ne connait pas, il y aura des anomalies métiers.

 

Exemple

Dans l’interrogation comptable, on constate que les clés sont identiques entre les recordSQL :

image-20240828-143628.png

On duplique les conditions where entre les différentes requêtes SQL pour être sûr qu’elles soient identiques et que les données qui remontent soient cohérentes

 

image-20240828-143936.png

On duplique l’ordre de tri pour être sûr qu’il soit identique entre les différents recordSQL :

 

image-20240828-144050.png

 

Point d’attention

Ceci n’est pas une explication technique complète de la mise en oeuvre d’un collate dans un programme et les explications sur sa mise en place sont donc incomplètes.