Altova MapForce 2024 Enterprise Edition

Mit der Funktion group-into-blocks werden gleiche Gruppen erstellt, die genau N Elemente enthalten, wobei N der an das Argument block-size (Blockgröße) gelieferte Wert ist. Beachten Sie, dass die letzte Gruppe, je nach Anzahl der Elemente in der Quellkomponente, N oder weniger Elemente enthalten kann.

mf-func-group-into-blocks

Im Beispiel unten ist block-size gleich 2. Da es insgesamt fünf Elemente gibt, enthält jede Gruppe mit Ausnahme der letzten genau zwei Elemente.

mf_group-into-blocks

 

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.

block-size

Definiert die Größe der einzelnen Gruppen.

 

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 in Blöcke zu jeweils zwei Datenelementen gruppiert werden. Zu diesem Zweck wird im folgenden Mapping die Funktion group-into-blocks aufgerufen und es wird der Ganzzahlwert "2" als block-size bereitgestellt.

mf_group-into-blocks_map

Das Ergebnis des Mappings sieht folgendermaßen aus:

 

<groups>
  <group>
    <record key="Administration" value="Vernon Callaby"/>
    <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>

 

Beachten Sie, dass die letzte Gruppe nur ein Datenelement enthält, da die Summe aller Datenelemente (5) nicht gerade durch 2 dividiert werden kann.

 

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