Freigeben über


Funktoid 'Schleife'

Übersicht & Beispiel

Das Funktoid Schleifen kombiniert mehrere Datensätze oder Felder im Quellschema zu einem einzelnen Datensatz im Zielschema.

Die folgende Abbildung zeigt ein Funktoid Looping, das in einer Karte verwendet wird, um aus zwei verschiedenen Umfragen gesammelte Adressen in einer einzelnen master Adressliste zu kombinieren.

Hinweis

Die beiden Funktoide Schleife und Wertezuordnung (Vereinfachung) dürfen nicht zusammen verwendet werden. Wenn beide zusammen verwendet werden, führt dies zu einer kompilierten Zuordnung, die voraussetzt, dass es für die Zielknoten unter dem Funktoid Schleife keine Quellschleifenabhängigkeit gibt.

Karte zur Veranschaulichung der Verwendung des Funktoids

Die FoodSurvey- und FlowerSurvey-Schleifendatensätze des Quellschemas werden dem adressschleifenden Datensatz des Zielschemas zugeordnet. Wenn eine Eingabe instance Nachricht drei FoodSurvey-Datensätze und zwei FlowerSurvey-Datensätze enthält, kombiniert das Funktoid Schleifendiese, um fünf Adressdatensätze in der Ausgabe instance Nachricht zu erstellen.

Der folgende Code zeigt ein Beispiel für eine Eingabeinstanznachricht.

<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>  

Wenn diese Eingabeinstanznachricht von der Zuordnung in der vorangehenden Abbildung verarbeitet wird, ergibt sich folgende Ausgabeinstanznachricht.

<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>  

Die Nachrichtenadressen FoodSurvey und FlowerSurvey wurden kombiniert. Die zusammengefasste Nachricht zeigt die Quelle der einzelnen Adressen nicht an. Wenn Sie die Quelle nachverfolgen möchten, fügen Sie dem Adressdatensatz des MasterAddress-Schemas ein Source-Attribut hinzu, und ordnen Sie einen konstanten Wert zu. Um diesen Wert festzulegen, verbinden Sie das Feld FoodSurvey mit dem neuen Feld Quelle . Ändern Sie in der Connectorzeile die Verknüpfungseigenschaften-Compilerquelllinks-Eigenschaft | | in "Name kopieren". Wiederholen Sie diesen Vorgang für das FlowerSurvey-Feld . Beim erneuten Verarbeiten der obigen Eingabenachricht erhalten Sie die folgende Ausgabe:

<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>  

Beziehungen zu Knoten

Beziehungen zwischen Knoten wirken sich auf das Verhalten des Funktoids Schleifen aus . Beispielsweise verhindert das Verknüpfen eines untergeordneten Knotens und seines übergeordneten Knotens im Quellschema mit dem Funktoid Schleifen das Erstellen des Zielknotens.

Funktoide sind ebenfalls von den Beziehungen zwischen Quellknoten betroffen. Das Verbinden eines Funktoids mit nicht gleichgeordneten untergeordneten Feldern von Quellknoten des Funktoids Schleifen kann zu unerwarteten Ergebnissen führen. Wenn Sie z. B. das Funktoid String Verketten verwenden, um das Feld FoodSurvey Name und das Feld FlowerSurvey Address im Feld Adressname in MasterAddress zu kombinieren, würde die folgende Ausgabe instance Meldung erzeugt:

<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>  

Beachten Sie, dass das Feld Name für FoodSurvey-Quellnachrichten fehlt, aber für FlowerSurvey-Quellnachrichten vorhanden ist.

Wichtig

Das Verbinden eines Funktoids mit untergeordneten Feldern von Quellknoten des Funktoids Schleifen kann zu unerwarteten Ergebnissen führen, wenn die Quellknoten nicht gleichgeordnet sind.

Das Funktoid Schleifen ist ein leistungsstarkes Konstrukt, mit dem Sie bedingte Schleifen erstellen und Katalogen Schemas zuordnen können. Es gibt auch einige Auswirkungen von überlappenden Looping-Funktoidpfaden , die Sie berücksichtigen müssen.

Nächste Schritte

Weitere Informationen

Referenz zum Funktoid "Tabellenschleifen" im Benutzeroberflächenleitfaden und in der API-Namespacereferenz für Entwickler