Subsystem Loop
Ce bloc fonction répète un workflow interne pour chaque élément d'une liste (ou autre collection de taille). Utilisez-le lorsque vous souhaitez traiter une série d'éléments un par un à l'intérieur d'un sous-système contenu et rassembler les résultats sous forme de listes.
📥 Entrées
Ce bloc fonction n'a pas de prises d'entrée exposées au niveau supérieur.
Pour fournir des données au workflow répété, utilisez des blocs internes à l'intérieur du sous-système (par exemple Subsystem In).
📤 Sorties
Ce bloc fonction n'expose pas de prises de sortie directes au niveau supérieur.
Les résultats produits à l'intérieur du workflow répété sont renvoyés via des blocs internes (par exemple Subsystem Out) et sont collectés sous forme de listes par ce bloc.
🕹️ Contrôles
Il n'y a pas de paramètres visibles sur le bloc lui‑même. L'interaction et la configuration se font dans l'espace de travail du sous-système contenu où vous placez les blocs d'aide d'entrée/sortie :
Subsystem In: à utiliser à l'intérieur du sous-système pour recevoir l'élément courant (ou des entrées partagées) à chaque itération.Subsystem Out: à utiliser à l'intérieur du sous-système pour émettre le résultat par étape qui sera collecté par la boucle.
🎨 Fonctionnalités
Traitement itératif : exécute le workflow interne une fois par élément de la première collection de type collection que vous fournissez.
Support multi-listes : si plusieurs collections de même longueur sont fournies, elles seront itérées en parallèle. Utilisez des outils de mise en paire si vous avez besoin d'un appariement explicite.
Agrégation : les sorties produites par le workflow interne sont collectées sous forme de listes (une liste par sortie) et renvoyées après la fin de la boucle.
Arrêt sûr et propagation de statut : les erreurs internes ou états invalides sont propagés afin que le scénario parent puisse réagir.
⚙️ Mécanisme d'exécution (en langage clair)
Le bloc recherche la première entrée de type collection que vous fournissez (par exemple une liste d'images ou de nombres).
Pour chaque élément de cette collection, il ouvre l'espace de travail du sous-système et exécute le workflow contenu une fois en utilisant l'élément courant.
Toutes les valeurs que vous envoyez à l'extérieur du sous-système avec
Subsystem Outsont ajoutées aux listes. Après la fin de la boucle, vous obtenez une liste collectée par sortie.Si vous devez itérer plusieurs listes ensemble, assurez-vous qu'elles ont la même longueur ou couplez-les avant de les alimenter dans le sous-système.
📝 Comment utiliser
Placez le bloc
Subsystem Loopdans votre scénario.Double-cliquez (ou ouvrez) l'espace de travail du sous-système et ajoutez à l'intérieur :
des blocs
Subsystem Inpour recevoir les entrées par étape sur lesquelles vous voulez travailler ;vos blocs de traitement (filtres, détecteurs, calculs) pour opérer sur chaque élément ;
des blocs
Subsystem Outpour renvoyer les résultats vers l'agrégateur de la boucle.
Si vous souhaitez itérer plusieurs listes ensemble, préparez-les à l'aide d'un utilitaire de listes (par exemple
List Operations) avant de les fournir au sous-système.Exécutez le scénario. La boucle lancera le workflow interne pour chaque élément et renverra des listes agrégées des sorties.
💡 Astuces et conseils
Pour itérer plusieurs listes liées en synchronisation, préparez-les avec le bloc
List Operations(utilisez l'option de mise en paire si disponible) avant de les fournir au sous-système.Utilisez
Get Elementà l'intérieur du sous-système uniquement si vous avez besoin d'un accès indexé direct à des listes fournies comme entrées partagées.Pour de grands lot d'images, combinez
Batch ProcessingetDebatchpour réduire l'utilisation mémoire et garder le traitement par étape efficace.Utilisez
Data Read Local/Data Write Local(ou les variantes Global) pour partager des données persistantes entre le scénario principal et le sous-système lorsque une simple connexion entrée/sortie n'est pas pratique.Si vous devez exécuter le même traitement sur des images individuelles puis visualiser les résultats, connectez un bloc
Show Imageaprès les sorties de la boucle pour prévisualiser les images collectées.Lorsque vous travaillez avec des listes pouvant contenir des entrées vides ou manquantes, ajoutez un contrôle
Is Noneà l'intérieur du sous-système pour éviter des erreurs inattendues.
🛠️ Dépannage
Aucune itération : vérifiez que vous avez fourni au moins une entrée de type collection à l'intérieur du sous-système (via
Subsystem In).Les sorties reviennent emballées dans des listes à un seul élément : vérifiez combien de blocs
Subsystem Outsont présents et confirmez qu'ils renvoient bien les valeurs prévues par étape.Longueurs de listes différentes : si vous attendez que plusieurs listes soient itérées ensemble, assurez-vous qu'elles ont la même longueur ou couplez-les au préalable avec
List Operations.Utilisation mémoire élevée : privilégiez
Batch ProcessingetDebatchou traitez des segments plus petits à l'intérieur du sous-système pour réduire le pic mémoire.
Mis à jour