group-adjacent
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.
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é.
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 . |
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> |
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.
Le résultat de mappage est le suivant :
<groups> |
Cet exemple, avec d’autres exemples de regroupement, fait partie du fichier de mappage suivant : <Documents>\Altova\MapForce2025\MapForceExamples\Tutorial\GroupingFunctions.mfd. Ne pas oublier de cliquer sur la touche Aperçu applicable à la fonction que vous souhaitez consulter préalablement, avant de cliquer sur l’onglet Sortie.