Altova MapForce 2024 Professional Edition

Die Funktion group-adjacent gruppiert die mit dem Input nodes/rows verbundenen Datenelemente nach dem mit dem key-Input verbundenen Schlüssel. Beachten Sie, dass Datenelemente mit demselben Schlüssel in separate Gruppen platziert werden, wenn sie nicht benachbart sind. Wenn mehrere aufeinander folgende (benachbarte) Datenelemente denselben Schlüssel haben, werden sie in dieselbe Gruppe platziert.

mf-func-group-adjacent

So ist etwa in der unten gezeigten abstrakten Transformation der Gruppierungsschlüssel "Department". Auf der linken Seite des Diagramms sehen Sie die Input-Daten, während rechts die Ausgabedaten nach der Gruppierung angezeigt werden. Bei Ausführung der Transformation geschieht Folgendes:

 

Anfangs wird anhand des ersten Schlüssels "Administration" eine neue Gruppe erstellt.

Der nächste Schlüssel ist ein anderer, daher wird eine zweite Gruppe "Marketing" erstellt.

Der dritte Schlüssel ist ebenfalls ein anderer, daher wird eine weitere Gruppe namens "Engineering" erstellt.

Der vierte Schlüssel ist derselbe wie der dritte, daher wird dieser Datensatz in die bereits vorhandene Gruppe platziert.

Der fünfte Schlüssel schließlich ist anders als der vierte, weshalb die letzte Gruppe erstellt wird.

 

Wie unten gezeigt, landen "Michelle Butler" und "Fred Landis" in derselben Gruppe, weil sie denselben Schlüssel aufweisen und nebeneinander liegen. "Vernon Callaby" und "Frank Further" hingegen befinden sich in separaten Gruppen, weil sie nicht benachbart sind, obwohl sie denselben Schlüssel aufweisen.

mf_group-adjacent

 

Sprachen

Built-in, C++, C#, Java, XSLT 2.0, XSLT 3.0..

 

Parameter

Name

Beschreibung

nodes/rows

Mit diesem Input muss ein Mapping-Datenelement verbunden werden, das eine Sequenz von null oder mehr Werten liefert. So kann damit etwa ein Datenelement aus einer XML-Quelldatei, einem CSV-Feld, einem Datenbankdatensatz, usw. verbunden werden.

key

Der Schlüssel, nach dem Datenelemente gruppiert werden sollen.

 

Beispiel

Angenommen, bei Ihren Quelldaten handelt es sich um eine XML-Datei folgenden Inhalts (Beachten Sie, dass der Namespace und die XML-Deklarationen im Codefragment unten aus Gründen der Einfachheit entfernt wurden).

 

<company>
  <person department="Administration" name="Vernon Callaby"/>
  <person department="Marketing" name="Susi Sanna"/>
  <person department="Engineering" name="Michelle Butler"/>
  <person department="Engineering" name="Fred Landis"/>
  <person department="Administration" name="Frank Further"/>  
</company>

 

Die Personendatensätze sollen nach Abteilung (department) gruppiert werden, vorausgesetzt die Datensätze sind benachbart. Zu diesem Zweck wird im folgenden Mapping die Funktion group-adjacent aufgerufen und department wird als key (Schlüssel) bereitgestellt.

mf_group-adjacent_map

Das Ergebnis des Mappings sieht folgendermaßen aus:

 

<groups>
  <group>
    <record key="Administration" value="Vernon Callaby"/>
  </group>
  <group>
    <record key="Marketing" value="Susi Sanna"/>
  </group>
  <group>
    <record key="Engineering" value="Michelle Butler"/>
    <record key="Engineering" value="Fred Landis"/>
  </group>
  <group>
    <record key="Administration" value="Frank Further"/>
  </group>
</groups>

 

Sie finden dieses Beispiel sowie einige weitere Gruppierungsbeispiele in der folgenden Mapping-Datei: <Dokumente>\Altova\MapForce2024\MapForceExamples\GroupingFunctions.mfd. Klicken Sie auf die Schaltfläche Vorschau mf_ic_preview für die jeweilige Funktion, bevor Sie auf das Fenster Ausgabe klicken.

© 2017-2023 Altova GmbH