Boucles et sous-projets
Catenivo fournit deux mécanismes différents pour réutiliser un traitement : les boucles à l’intérieur d’un projet et l’opérateur Exécuter un projet.
Traitements itératifs
Une boucle réexécute un sous-graphe jusqu’à ce que les entités sortent par les ports de fin ou qu’une limite soit atteinte.
Les principaux garde-fous sont :
- nombre maximal d’itérations ;
- volume maximal d’entités traitées ;
- quotas de mémoire et de travail.
Les sorties distinguent les entités terminées, incomplètes et rejetées.
Limites
Les boucles sont limitées à deux niveaux. Les readers/writers, appels HTTP, sous-projets, jointures multi-entrées et certaines agrégations ne sont pas disponibles à l’intérieur.
Il n’existe pas de cache ni d’exécution partielle interne à la boucle.
Exécuter un projet
L’opérateur Exécuter un projet lance un autre fichier .etl pour chaque entité reçue.
Il peut transmettre des paramètres :
- valeurs fixes ;
- valeurs provenant des attributs entrants ;
- paramètres du projet parent selon la configuration.
Le mode séquentiel lance une instance après l’autre. Le mode parallèle permet un nombre borné d’instances simultanées tout en restituant les entités dans leur ordre d’entrée.
Organisation recommandée
Utilisez un sous-projet pour isoler un traitement réutilisable ou une étape métier autonome. Utilisez une boucle lorsque le même sous-graphe doit converger progressivement sur les mêmes entités.
Évitez de créer une récursion de projets non bornée : chaque niveau doit avoir une raison et des limites explicites.