Funktoid 'Index'
Mit dem Funktoid Index können Sie Informationen aus einem bestimmten Datensatz in einer Reihe von Datensätzen auswählen. Jedes Funktoid Index sammelt Informationen aus einem einzelnen Feld.
Bestimmte Datensätze kommen in einer Eingabedatei meist mehrfach vor. In einem Wetterbericht kann das DailySummary-Element beispielsweise mehrmals auftreten. Das DailySummary-Element kann Attribute für die Temperatur, den barometrischen Druck und die Windgeschwindigkeit enthalten. Der folgende Code stellt ein Beispiel für einen Wetterbericht dar.
<ns0:WeatherReport xmlns:ns0="http://IndexFunctoid.WeatherReport">
<DailySummary Pressure="80" Windspeed="10" Temperature="20" />
<DailySummary Pressure="78" Windspeed="20" Temperature="23" />
<DailySummary Pressure="77" Windspeed="16" Temperature="24" />
</ns0:WeatherReport>
Im zugrunde liegenden Schema wird die Max Occurs-Eigenschaft für den DailySummary-Datensatz auf ungebunden festgelegt, um einen wiederkehrenden Oder Schleifendatensatz anzugeben. BizTalk-Mapper kompiliert diesen Datensatz als Schleife.
Angenommen, Sie möchten Wetterinformationen für die ersten beiden DailySummary-Datensätze des Wetterberichts sammeln. In BizTalk Mapper kann jedes Attribut aus dem DailySummary-Datensatz des eingehenden Quellschemas mit einem Funktoid Index verbunden werden. Jedes Funktoid Index wiederum kann den DailySummary-Datensatz angeben, aus dem die Informationen gezeichnet werden sollen: der erste oder der zweite. Die Funktoide Index können dann mit den entsprechenden Feldern des Zielschemas verbunden werden.
Die folgende Abbildung zeigt die auf diese Weise verwendeten Funktoide Index .
Beispiel für das Funktoid "Index"
Um die täglichen Zusammenfassungsinformationen für den ersten Tag abzurufen, werden die Indexwerte der oberen Gruppe von drei Index-Funktoiden auf 1 festgelegt. Um die täglichen Zusammenfassungsinformationen für den zweiten Tag abzurufen, haben die unteren drei Index-Funktoide ihre Indexwerte auf 2 festgelegt.
Index-Funktoide verwenden das Dialogfeld Funktoid> konfigurieren<, um ihre Eingabeparameter festzulegen. Der erste Eingabeparameter gibt ein Feld innerhalb eines Schleifendatensatzes im Quellschema an. Der zweite und weitere folgende Eingabeparameter geben den entsprechenden Datensatz an. Sie können mehrere Indexwerte angeben, um einen Datensatz innerhalb verschachtelter, sich wiederholender Strukturen auszuwählen. Der Indexwert für die innere Struktur ist der zweite Parameter. Der Indexwert für die nächste äußere Struktur wäre dann der dritte Parameter usw. Angenommen, die vorherigen DailySummary-Datensätze befinden sich in WeeklyData-Datensätzen . Um den Druck vom ersten DailySummary im zweiten WeeklyData abzurufen, wäre der zweite Parameter 1 und der dritte Parameter wäre 2.
Beachten Sie, dass in diesem Beispiel davon ausgegangen wird, dass sich das Feld Druck nicht wiederholt. Wenn das Feld wiederholt wird, wären die Indizes deaktiviert. Die Anzahl beginnt mit dem Feld Druck und nicht mit der täglichen Zusammenfassung.
Hinweis
Obwohl es sich bei einem Indexsequenz-Eingabeparameter meist um eine Konstante handelt, kann eine Verknüpfung von einem Knoten im Quellschema verwendet werden. Wenn diese Verknüpfung von einem Schleifendatensatz stammt, der dem ersten Eingabeparameter nicht übergeordnet ist, kommt der Indexsequenz-Eingabewert von der ersten Knoteninstanz der Eingabeinstanznachricht.
Hinweis
Der Wert der Indexsequenzeingabe steht immer in Relation zum aktuellen Kontext des Quelldokuments.
Wichtig
Ein Index-Funktoid muss so viele Indexwerte aufweisen, wie übergeordnete Knoten von der Feldebene bis zur ersten Ebene unterhalb des Stammknotens vorhanden sind. In der Wetterberichts-Instanznachricht mit mehreren Datensätzen sind beispielsweise zwei Indexwerte erforderlich. In der Wetterberichts-Instanznachricht mit einem Datensatz ist nur ein Indexwert erforderlich. Wenn sie die erforderliche Anzahl von Indexwerten eines Funktoids Index nicht festlegen, wird eine Ausgabe basierend auf dem ersten Knoten im Quell-instance Nachricht erstellt, die mit dem ersten Eingabeparameter des Funktoids Index übereinstimmt.
Weitere Informationen
Hinzufügen von Funktoiden 'Index' zu einer Zuordnung
Erweiterte Funktoide
Funktoid „Iteration“
Funktoid „Anzahl der Datensätze“