Partager via


Fonctoid Bouclage

Vue d’ensemble & exemple

Le fonctoid Looping combine plusieurs enregistrements ou champs dans le schéma source en un seul enregistrement dans le schéma de destination.

La figure suivante montre un fonctoid Loopingutilisé dans une carte pour combiner les adresses collectées à partir de deux enquêtes différentes en une seule master liste d’adresses.

Notes

Les fonctoids Bouclage et Mappage des valeurs (mise à plat) ne doivent pas être utilisés ensemble. Leur utilisation simultanée produit un mappage compilé qui suppose qu'il n'existe pas de dépendance de bouclage source pour les nœuds cibles situés au-dessous du fonctoid Bouclage.

Carte illustrant l’utilisation du fonctoid de boucle.

Les enregistrements de boucle FoodSurvey et FlowerSurvey du schéma source sont mappés à l’enregistrement d’adresse de boucle du schéma de destination. Si un message d’entrée instance contient trois enregistrements FoodSurvey et deux enregistrements FlowerSurvey, le fonctoid Loopingles combine pour créer cinq enregistrements d’adresse dans le message instance de sortie.

Le code suivant correspond à un exemple de message d’instance d’entrée.

<ns0:Surveys xmlns:ns0="http://LoopingFunctoid.Surveys">  
    <FoodSurvey Name="Karin Zimprich" Address="345 N 63rd St" City="Boston" State="MA" PostalCode="07485" />  
    <FoodSurvey Name="Wendy Wheeler" Address="7890 Broadway" City="Columbus" State="OH" PostalCode="46290" />  
    <FoodSurvey Name="Florian Voss" Address="1234 Main St" City="Denver" State="CO" PostalCode="97402" />  
    <FlowerSurvey Name="Kelly Focht" Address="456 1st Ave" City="Miami" State="FL" PostalCode="81406" />  
    <FlowerSurvey Name="Jim Kim" Address="567 2nd Ave" City="Seattle" State="WA" PostalCode="98103" />  
</ns0:Surveys>  

Le message d’instance d’entrée produit le message d’instance de sortie suivant une fois traité par le mappage de l’illustration précédente.

<ns0:MasterAddresses xmlns:ns0="http://LoopingFunctoid.MasterAddresses">  
    <Address Name="Karin Zimprich" Street="345 N 63rd St" City="Boston" State="MA" PostalCode="07458"/>  
    <Address Name="Wendy Wheeler" Street="7890 Broadway" City="Columbus" State="OH" PostalCode="46290"/>  
    <Address Name="Florian Voss" Street="1234 Main St" City="Denver" State="CO" PostalCode="97402"/>  
    <Address Name="Kelly Focht" Street="456 1st Ave" City="Miami" State="FL" PostalCode="81406"/>  
    <Address Name="Jim Kim" Street="567 2nd Ave" City="Seattle" State="WA" PostalCode="98103"/>  
</ns0:MasterAddresses>  

Les adresses de message FoodSurvey et FlowerSurvey ont été combinées. Le message combiné n'indique pas la source de chaque adresse. Si vous souhaitez suivre la source, ajoutez un attribut Source à l’enregistrement Address du schéma MasterAddress et mappez une valeur constante. Pour définir cette valeur, connectez le champ FoodSurvey au nouveau champ Source . Sur la ligne de connecteur, modifiez la propriété Link Properties | | Compiler Source Links en « Nom de copie ». Répétez ce processus pour le champ FlowerSurvey . Le retraitement du message d'entrée à partir des instructions ci-dessus produit la sortie suivante :

<ns0:MasterAddresses xmlns:ns0="http://LoopingFunctoid.MasterAddresses">  
    <Address Name="Karin Zimprich" Street="345 N 63rd St" City="Boston" State="MA" PostalCode="07458" Source="FoodSurvey"/>  
    <Address Name="Wendy Wheeler" Street="7890 Broadway" City="Columbus" State="OH" PostalCode="46290" Source="FoodSurvey"/>  
    <Address Name="Florian Voss" Street="1234 Main St" City="Denver" State="CO" PostalCode="97402" Source="FoodSurvey"/>  
    <Address Name="Kelly Focht" Street="456 1st Ave" City="Miami" State="FL" PostalCode="81406" Source="FlowerSurvey"/>  
    <Address Name="Jim Kim" Street="567 2nd Ave" City="Seattle" State="WA" PostalCode="98103" Source="FlowerSurvey"/>  
</ns0:MasterAddresses>  

Relations avec les nœuds

Les relations entre les nœuds affectent le comportement du fonctoid Looping . Par exemple, la liaison d’un nœud enfant et de son parent dans le schéma source au fonctoid Looping empêche la création du nœud de destination.

Les fonctoids sont également affectés par les relations entre des nœuds sources. La connexion d’un fonctoid à des champs enfants non frères de nœuds sources du fonctoid Looping peut produire des résultats inattendus. Par exemple, l’utilisation du fonctoid String Concatenate pour combiner le champ FoodSurvey Name et le champ FlowerSurvey Address dans le champ Address Name dans MasterAddress génère la sortie instance message suivant :

<ns0:MasterAddresses xmlns:ns0="http://LoopingFunctoid.MasterAddresses">  
    <Address Street="345 N 63rd St" City="Boston" State="MA" PostalCode="07458"/>  
    <Address Street="7890 Broadway" City="Columbus" State="OH" PostalCode="46290"/>  
    <Address Street="1234 Main St" City="Denver" State="CO" PostalCode="97402"/>  
    <Address Name="Kelly Focht" Street="456 1st Ave" City="Miami" State="FL" PostalCode="81406"/>  
    <Address Name="Jim Kim" Street="567 2nd Ave" City="Seattle" State="WA" PostalCode="98103"/>  
</ns0:MasterAddresses>  

Notez que le champ Nom est manquant pour les messages sources FoodSurvey , mais qu’il est présent pour les messages sources FlowerSurvey .

Important

La connexion d’un fonctoid à des champs enfants de nœuds sources du fonctoid Looping peut produire des résultats inattendus si les nœuds sources ne sont pas frères.

Le fonctoid Looping est une construction puissante que vous pouvez utiliser pour créer des boucles conditionnelles et mapper des schémas à des catalogues. Il existe également certains effets du chevauchement des chemins de fonctoid looping que vous devez prendre en compte.

Étapes suivantes

Voir aussi

Référence du fonctoid de boucle de table dans l’aide de l’interface utilisateur et la référence de l’espace de noms d’API des développeurs