Outil Conteneur de contrôle
Exemple d'outil unique
L'outil Conteneur de contrôle comporte un exemple d'outil unique. Accédez à la page Exemples de workflows pour savoir comment accéder à cet exemple et à de nombreux autres exemples directement dans Alteryx Designer.
Utilisez les Conteneurs de contrôle pour gérer l'ordre d'exécution des outils dans votre workflow et vous assurer que les étapes de votre processus sont exécutées dans le bon ordre. Les Conteneurs de contrôle vous permettent d'utiliser des informations sur les outils exécutés, soit comme informations de journalisation, soit comme données à utiliser dans votre workflow. Par conséquent, vous pouvez créer des processus plus dynamiques et plus complexes basés sur ces informations d'exécution.
En outre, les Conteneurs de contrôle vous permettent d'exécuter de manière conditionnelle certains blocs logiques en fonction des données de votre workflow, qu'il s'agisse d'un autre Conteneur de contrôle ou d'autres outils de votre workflow. Vous n'avez pas besoin de construire une orchestration conditionnelle complexe via les outils Détour et Runner et les Applications chaînées.
AMP uniquement
L'outil Conteneur de contrôle est compatible uniquement avec Alteryx Multi-threaded Processing (AMP) . Si vous tentez d'exécuter l'outil dans un workflow où AMP est désactivé, l'outil renvoie une erreur.
Composants de l'outil
L'outil Conteneur de contrôle comporte 2 ancrages : l'entrée Contrôle facultative et la sortie Journal.
Entrée Contrôle (Facultatif)
Les Conteneurs de contrôle sont dotés d'un ancrage d'entrée facultatif. Utilisez cette entrée pour activer le conteneur.
Si l'entrée Contrôle n'a pas de connexion, le conteneur est considéré comme activé. Dans ce cas, le Conteneur de contrôle agit comme un Conteneur d'outils, à l'exception du fait qu'il génère des messages à partir de son ancrage de sortie de journalisation concernant les actions effectuées dans ce conteneur.
Si l'entrée Contrôle dispose d'une connexion, le conteneur est activé lorsque la connexion est clôturée et qu'au moins 1 enregistrement d'entrée est présent*. Les métadonnées et les contenus du flux de données n'ont pas d'importance. La seule chose qui importe, c'est qu'au moins 1 enregistrement soit présent.
Important
*Alors qu'il faut 1 enregistrement pour activer un Conteneur de contrôle, le conteneur n'exécute pas les outils à l'intérieur de celui-ci tant que tous les enregistrements ne sont pas transmis à l'ancrage d'entrée Contrôle. Ainsi, si vous transmettez 1 000 enregistrements dans votre Conteneur de contrôle, le conteneur n'exécute pas d'outils à l'intérieur tant que les 1 000 enregistrements n'ont pas été reçus.
Sortie Journal
La sortie Journal produit tous les messages de journal destinés à l'utilisateur, uniquement pour les outils du conteneur (y compris les conteneurs imbriqués). Vous pouvez utiliser ces données de message comme n'importe quel autre flux de données dans Designer. Par exemple, vous pouvez écrire ces informations de journal dans un fichier ou les analyser pour exécuter une logique supplémentaire.
Note
Notez que les seuls messages qui s'affichent dans les données du Conteneur de contrôle sont les messages qui s'affichent d'habitude via la grille des résultats. C'est pourquoi les outils qui ne produisent pas de messages via la grille des résultats ne produisent pas non plus de messages via les Conteneurs de contrôle.
Vous pouvez toujours utiliser l' outil Message afin de créer et personnaliser des messages pour les outils qui ne génèrent pas leurs propres messages.
Le Conteneur de contrôle renvoie un message d'information lorsqu'il est activé : « Conteneur de contrôle activé ».
Le conteneur renvoie ensuite un autre message d'information lorsqu'il a traité tous les outils contenus : « Conteneur de contrôle terminé ».
Le conteneur ferme ensuite son ancrage de sortie Journal. Notez que le conteneur peut envoyer des messages avant la fin de l'exécution de tous les outils qu'il contient. Consultez la section Critères importants concernant l'ordre d'exécution pour en savoir plus.
Cela signifie que tous les flux de données du conteneur ont déjà été fermés et que vous êtes sûr d'obtenir 2 messages de chaque sortie de journalisation si le conteneur a été activé. Si le conteneur est désactivé, il ferme sa sortie de journalisation sans envoyer de messages.
Comment fonctionnent les Conteneurs de contrôle ?
Il est important de noter que le Conteneur de contrôle se comporte très différemment du Conteneur d'outils . Il utilise un scénario booléen (vrai/faux) pour déterminer s'il existe un flux de données associé à l'ancrage d'entrée Contrôle facultatif et s'il existe un flux de données entrant, si ce flux de données contient des enregistrements.
S'il n'y a pas de flux de données entrant, le Conteneur de contrôle agit comme un Conteneur d'outils, à l'exception du fait qu'il génère des messages à partir de son ancrage de sortie Journal concernant les actions qui s'exécutent dans ce conteneur. Les messages suivent le même comportement que les messages que vous trouvez généralement dans la fenêtre Résultats de Designer.
Si un flux de données entrant est attaché à l'ancrage d'entrée Contrôle, le Conteneur de contrôle évalue s'il faut exécuter les outils dans le conteneur. Il se base sur la réception ou non d'au moins 1 enregistrement lorsque la connexion d'entrée se ferme.
S'il reçoit 1 enregistrement, le conteneur s'active une fois la connexion fermée, c'est-à-dire une fois que tous les enregistrements sont transmis à l'entrée.
Si l'entrée Contrôle ne reçoit pas d'enregistrements, le conteneur n'envoie que les métadonnées mises en cache dans la sortie. Il ne transmet aucun message et n'exécute aucun outil à l'intérieur.
Conteneur de contrôle désactivé vs Conteneur de contrôle inactif
Il est important de noter le comportement différent entre un conteneur de contrôle désactivé et un conteneur de contrôle activé (mais inactif).
Lorsque vous désactivez un conteneur de contrôle, Designer ignore le conteneur (ainsi que tous les outils qu'il contient). Il ne signale pas non plus d'erreurs de configuration pour le conteneur ou les outils qu'il contient.
Lorsque votre conteneur de contrôle est activé, Designer ne sait pas s'il faut activer le conteneur tant que vous n'avez pas exécuté le workflow et que l'ancrage d'entrée du conteneur reçoit ou ne reçoit pas d'enregistrements.
Designer doit exécuter toutes les vérifications de prévalidation de workflow lorsque vous exécutez le workflow. Cette vérification de prévalidation génère des erreurs à l'intérieur des conteneurs de contrôle si les outils contenus ne sont pas configurés correctement, que ce conteneur soit éventuellement activé ou non via son ancrage d'entrée recevant des enregistrements. Pour éviter cela, assurez-vous que tous les outils à l'intérieur d'un conteneur de contrôle sont correctement configurés, même si ce conteneur ne va pas être activé dans le cadre du workflow.
Critères importants concernant l'ordre d'exécution
Dans certains scénarios, les outils à l'intérieur des Conteneurs de contrôle peuvent envoyer des données à l'extérieur du conteneur avant que tous les outils à l'intérieur du conteneur aient terminé leur exécution et, par conséquent, avant que le conteneur n'envoie des données via son ancrage de sortie Journal. Cela peut se produire lorsque des outils à l'intérieur du conteneur sont directement connectés à des outils à l'extérieur.
Pour comprendre pourquoi cela peut se produire, il est important de comprendre comment AMP traite les données . AMP envoie des données entre les outils sous forme de paquets d'enregistrements afin de minimiser la synchronisation entre les outils et d'assurer de meilleures performances. Si beaucoup d'enregistrements doivent être transmis aux outils, les paquets se remplissent et ils doivent être envoyés en aval.
Vue d'ensemble de l'ordre d'exécution
Comme indiqué précédemment, un Conteneur de contrôle n'exécute pas d'outils à l'intérieur de celui-ci tant qu'il ne reçoit pas tous les enregistrements via son ancrage d'entrée Contrôle. Si l'ancrage d'entrée reçoit un grand nombre d'enregistrements via plusieurs paquets, le conteneur conserve les paquets à l'entrée jusqu'à ce qu'il reçoive tous les paquets. Une fois tous les paquets reçus, le conteneur est activé.
Une fois que le conteneur est activé, il exécute les outils qu'il contient. Si, au cours de ce processus, le conteneur transmet des données en dehors de ses limites, ces données peuvent quitter le conteneur avant que tous les outils qu'il contient ne soient exécutés. Cela dépend de la façon dont AMP Engine assemble et enregistre les paquets.
L'ancrage de sortie de Journal du conteneur commence à rassembler des messages pour les outils qui s'exécutent dans ce conteneur dès qu'il est activé. Il rassemble les messages jusqu'à ce que…
Un paquet d'enregistrement est suffisamment volumineux pour être envoyé en aval, ce qui permet au paquet suivant de collecter des messages.
Le conteneur exécute tous les outils qu'il contient et se termine par le message « Conteneur de contrôle terminé ».
Recommandations pour garantir l'ordre d'exécution
Si l'ordre d'exécution est essentiel dans votre workflow, vous devez utiliser des Conteneurs de contrôle supplémentaires pour vous assurer que les enregistrements qui traversent les limites des conteneurs sont séquencés correctement.
Rappelez-vous que lorsque vous connectez l'ancrage de sortie d'un Conteneur de contrôle à l'ancrage d'entrée d'un autre Conteneur de contrôle, le second conteneur doit recevoir tous les enregistrements via son ancrage d'entrée Contrôle avant de pouvoir activer et exécuter les outils qu'il contient.
Pour simplifier, si vous souhaitez être absolument certain qu'un processus ne démarre pas avant la fin d'un autre processus, vous devez toujours utiliser plusieurs Conteneurs de contrôle, comme dans l'exemple 2 ci-dessous.
Exemple 1
Cette configuration ne garantit pas que l'outil Message attend que tous les enregistrements soient transmis à l'outil Filtrer pour démarrer, ni que tous les outils ont terminé l'exécution dans le Conteneur de contrôle (si d'autres outils étaient inclus).
Exemple 2
Cette configuration garantit que l'outil Message attend que le Conteneur de contrôle 5 ait reçu tous les enregistrements via son ancrage d'entrée Contrôle pour démarrer. Cela se produit uniquement lorsque tous les outils du premier conteneur ont terminé l'exécution et que le conteneur a enregistré le message « Conteneur de contrôle terminé ».
Regroupement d'outils dans un conteneur
Vous pouvez procéder de différentes manières pour regrouper des outils dans un conteneur :
Sélectionnez un ou plusieurs outils sur le canevas et cliquez avec le bouton droit, puis sélectionnez Ajouter au nouveau Conteneur de contrôle .
Faites glisser l'outil Conteneur de contrôle vers le canevas et placez-le près des outils que vous voulez regrouper. Appuyez sur la touche CTRL du clavier et sélectionnez les outils, puis faites un glisser-déposer dans le conteneur.
Pour développer ou réduire le conteneur, sélectionnez l'icône développer/réduire dans la partie supérieure droite du conteneur.
Modification du contenu du conteneur
Pour supprimer un conteneur sans supprimer les outils, cliquez avec le bouton droit sur le conteneur développé et sélectionnez Supprimer le conteneur uniquement .
Pour retirer un outil d'un conteneur, sélectionnez-le, puis faites-le glisser hors du conteneur.
Désactivation d'un conteneur
Désactivez un conteneur lorsque vous ne voulez pas exécuter une section ou un processus de votre workflow. Le conteneur désactivé reste développé sur le canevas et apparaît grisé pour indiquer l'état désactivé. Les outils à l'intérieur du conteneur ne traitent pas les données tant que vous n'avez pas réactivé le conteneur. Si le conteneur est désactivé, il ferme son ancrage de sortie Journal sans envoyer de messages.
Pour désactiver le conteneur, vous avez 2 options :
Dans la fenêtre Configuration du conteneur, cochez Désactivé .
Sur le canevas, sélectionnez le bouton à bascule situé dans l'angle supérieur gauche du conteneur et déplacez le curseur vers la gauche.
Vous pouvez réduire un conteneur désactivé pour en masquer le contenu. Pour ce faire, sélectionnez l'icône développer/réduire dans le conteneur.
Activation d'un conteneur
Pour activer le conteneur, vous avez 2 options :
Dans la fenêtre Configuration du conteneur, décochez la case Désactivé .
Sélectionnez le bouton à bascule situé dans l'angle supérieur gauche du conteneur et déplacez le curseur vers la droite.
Configuration de l'outil
Une fois votre outil Conteneur de contrôle sur le canevas du workflow, vous pouvez utiliser la fenêtre de configuration de l'outil Conteneur de contrôle afin de fournir une étiquette pour le conteneur, de modifier l'apparence du conteneur et de désactiver le conteneur, si nécessaire.
Dans la fenêtre Configuration , saisissez le nom du conteneur dans le champ Légende , ou double-cliquez sur le cadre du conteneur dans le canevas et saisissez-y directement le nom. Le texte par défaut est « Conteneur de contrôle » plus l'ID d'outil affiché dans le champ ID .
Définissez le thème de couleurs du conteneur.
Cliquez sur « … » à côté des options Couleur du texte , Couleur de remplissage et Couleur de bordure , puis sélectionnez une couleur de la palette ou tapez des valeurs RVB.
Dans Transparence , entrez une valeur ou utilisez les icônes vers le haut/vers le bas pour définir la transparence des couleurs.
Dans Marge , sélectionnez une largeur pour modifier l'espace entre la bordure du conteneur et les outils contenus.
Pour définir la couleur de remplissage par défaut du conteneur…
Sélectionnez Options > Paramètres utilisateur > Modifier les paramètres utilisateur et cliquez sur l'onglet Thèmes .
Sous Paramètres de canevas par défaut > Conteneurs définissez les valeurs RVB souhaitées ou utilisez le bouton « … » pour sélectionner une couleur.
Enregistrez vos paramètres.
Remarques de compatibilité et limitations
Outils En base de données
Les outils En base de données fonctionnent à l'intérieur des Conteneurs de contrôle. Cependant, une connexion en base de données ne peut pas traverser la limite du Conteneur de contrôle. Par exemple, vous ne pouvez pas disposer d'un outil Connecter en BDD en dehors de votre Conteneur de contrôle puis le connecter à un outil Filtrer en BDD dans le conteneur.
Outils Interface
Les outils Interface ne sont pas pris en charge dans les Conteneurs de contrôle. Vous pouvez avoir des outils Interface et des Conteneurs de contrôle dans le même workflow ; les outils Interface ne peuvent tout simplement pas se trouver dans les Conteneurs de contrôle.
Outils Bloquer jusqu'à la fin
Les outils Bloquer jusqu'à la fin n'ont aucun effet dans les workflows qui contiennent également des Conteneurs de contrôle. Si votre workflow contient à la fois des outils Bloquer jusqu'à la fin et des Conteneurs de contrôle, vous rencontrerez un message d'erreur et les outils Bloquer jusqu'à la fin seront traités comme des outils de transmission (sans comportement de séquencement).
Outils Détour
Les outils Détour fonctionnent avec les Conteneurs de contrôle. Vous devez suivre les règles habituelles pour les outils Détour et Fin du détour. Cependant, si un outil Fin du détour se trouve dans un Conteneur de contrôle qui n'est jamais activé, il abandonne son flux de données.
Conteneurs de contrôle imbriqués
Les Conteneurs de contrôle fonctionnent lorsqu'ils sont imbriqués dans d'autres Conteneurs de contrôle. Cependant, les connexions en boucle génèrent une erreur. Par exemple, vous ne pouvez pas connecter la sortie de Journal d'un outil Conteneur de contrôle à un outil situé dans le même conteneur.
Conteneurs de contrôle et macros
Les Conteneurs de contrôle fonctionnent à l'intérieur des macros. Les actions de macro et d'applications sont appliquées avant la traduction XML. Les macros fonctionnent également à l'intérieur des Conteneurs de contrôle.
Workflow de débogage
Les Conteneurs de contrôle ne sont actuellement pas compatibles avec la fonctionnalité de Workflow de débogage accessible depuis la fenêtre Concepteur d'interface des macros et applications analytiques. Un Workflow de débogage contenant des Conteneurs de contrôle génère une erreur.