Altova MapForce 2024 Enterprise Edition

La fonction group-adjacent regroupe les items connectés aux entrées nodes/rows par la clé connectée à l’entrée key. Veuillez noter que cette fonction place les items qui partagent la même clé dans des groupes séparés s’ils ne sont pas adjacents. Si plusieurs items consécutifs (adjacents) partagent la même clé, ils sont placés dans le même groupe.

mf-func-group-adjacent

Par exemple, dans la transformation abstraite illustrée ci-dessous, la clé de regroupement est "Department". Le côté gauche du diagramme montre les données d'entrée tandis que le côté droit montre les données de sortie après le regroupement. Les événements suivants se produisent lorsque la transformation est exécutée :

 

Tout d'abord, la première clé, "Administration", crée un nouveau groupe.

La clé suivante est différente, donc un deuxième groupe est créé :"Marketing".

La troisième clé est aussi différente, donc un groupe supplémentaire est créé : "Engineering".

La quatrième clé est la même que la troisième, c'est pourquoi cet enregistrement est placé dans le groupe déjà existant.

Enfin, la cinquième clé est différente de la quatrième et cela crée le dernier groupe.

 

Comme illustré ci-dessous, "Michelle Butler" et "Fred Landis" ont été regroupés car ils partagent la même clé et sont adjacents. Néanmoins, "Vernon Callaby" et "Frank Further" se trouvent dans des groupes séparés étant donné qu'ils ne sont pas adjacents, même s'ils possèdent la même clé.

mf_group-adjacent

 

Langages

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

 

Paramètres

Nom

Description

nodes/rows

Cette entrée doit recevoir une connexion depuis un item de mappage qui fournit une séquence de zéros ou plus de valeurs. Par exemple, la connexion peut provenir d’un item XML de source , un champ CSV, un enregistrement de base de données, etc.

key

La clé avec laquelle regrouper des items.

 

Exemple

Partons du principe que vos données de source existent sous la forme d’un fichier XML contenant les éléments suivants (veuillez noter que dans l’extrait de code suivant, l’espace de noms et des déclarations XML ont été supprimés pour plus de simplicité).

 

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

 

L’exigence commerciale est de grouper des enregistrements de personnes par département, s’ils sont adjacents. Pour ce faire, le mappage suivant invoque la fonction group-adjacent et fournit department en tant que key.

mf_group-adjacent_map

Le résultat de mappage est le suivant :

 

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

 

Cet exemple, avec d’autres exemples de regroupement, fait partie du fichier de mappage suivant : <Documents>\Altova\MapForce2024\MapForceExamples\Tutorial\GroupingFunctions.mfd. Ne pas oublier de cliquer sur la touche Aperçu mf_ic_preview applicable à la fonction que vous souhaitez consulter préalablement, avant de cliquer sur l’onglet Sortie.

© 2018-2024 Altova GmbH