Altova MapForce 2024 Enterprise Edition

La fonction group-into-blocks crée des groupes égaux qui contiennent exactement N items, et où N est la valeur que vous fournissez à l'argument block-size. Veuillez noter que le dernier groupe peut contenir N items ou moins, selon le nombre d'items se trouvant dans la source.  

mf-func-group-into-blocks

Dans l'exemple ci-dessous, block-size est 2. Étant donné qu'il existe au total cinq items, chaque groupe contient exactement deux items, sauf pour le dernier.

mf_group-into-blocks

 

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.

block-size

Spécifie la taille de chaque groupe

 

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 en deux items chacun. Pour ce faire, le mappage suivant invoque la fonction group-into-blocks et fournit la valeur d’entier "2" en tant que block-size.

mf_group-into-blocks_map

Le résultat de mappage est le suivant :

 

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

 

Veuillez noter que le dernier groupe ne contient qu’un seul item, puisque le nombre total d’items (5) ne peut pas être divisé par 2.

 

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