Altova MapForce 2024 Enterprise Edition

Traite la séquence des valeurs connectées aux entrées values et retourne uniquement les valeurs distinctes, en tant que séquence. Cela est utile lorsque vous devez supprimer des valeurs doubles d’une séquence et ne copier que les items uniques dans le composant cible.

mf-func-distinct-values

 

Langages

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

 

Paramètres

Nom

Description

valeurs

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.

 

Exemple

Le fichier XML suivant contient des informations concernant les employés d’une entreprise fictive. Certains employés ont le même rôle ; c’est pourquoi le rôle d’attribut "role" contient des valeurs doubles. Par exemple, "Loby Matise" et "Susi Sanna" ont toutes deux le rôle "Support".

 

<?xml version="1.0" encoding="UTF-8"?>
<KeyValueList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="KeyValueList.xsd">
  <Item>
    <Property Key="role">Manager</Property>
    <Property Key="First">Vernon</Property>
    <Property Key="Last">Callaby</Property>
  </Item>
  <Item>
    <Property Key="role">Programmer</Property>
    <Property Key="First">Frank</Property>
    <Property Key="Last">Further</Property>
  </Item>
  <Item>
    <Property Key="role">Support</Property>
    <Property Key="First">Loby</Property>
    <Property Key="Last">Matise</Property>
  </Item>
  <Item>
    <Property Key="role">Support</Property>
    <Property Key="First">Susi</Property>
    <Property Key="Last">Sanna</Property>
  </Item>
</KeyValueList>

 

Supposons que vous souhaitez extraire une liste de tous les noms de rôle unique qui se produisent dans ce fichier XML. Cela peut être obtenu à l’aide d’un mappage comme celui ci-dessous :

mf-func-distinct-values-example

Dans le mappage ci-dessus, les choses suivantes se produisent :

 

Chaque élément Property provenant du fichier XML de source est traité par un filtre.

La connexion à l’entrée bool du filtre assure que seuls des éléments Property où l’attribut Key est égale à "role" sont fournis dans le composant de la cible. Le string "role" est fourni par une constante. Veuillez noter que la sortie du filtre produit encore des doubles à ce niveau (puisqu’ìl y a deux propriétés "Support" qui remplissent la condition du filtre).

La séquence produite par le filtre est traitée par la fonction distinct-values qui exclut toute valeur double.

 

Par conséquent, la sortie de mappage est la suivante (à l’exception des déclarations XML et de schéma) :

 

<items>
  <item>Manager</item>
  <item>Programmer</item>
  <item>Support</item>
</items>

© 2018-2024 Altova GmbH