Altova MapForce 2023 Enterprise Edition

Procesa la secuencia de valores conectada al componente valores y devuelve solamente los valores distintos en forma de secuencia. Esto puede ser útil si necesita eliminar valores duplicados de una secuencia y copiar solamente los elementos únicos en el componente de destino.

mf-func-distinct-values

 

Lenguajes

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

 

Parámetros

Nombre

Descripción

values

Esta entrada debe recibir una conexión desde un elemento de la asignación que suministre una secuencia de cero o más valores. Por ejemplo, la conexión puede provenir de un elemento XML de origen, un campo CSV, un registro de BD, etc.

 

Ejemplo

Este archivo XML contiene información sobre los trabajadores de una empresa de muestra. Algunos trabajadores tienen el mismo puesto, por tanto, el atributo "role" contiene valores duplicados. Por ejemplo, tanto "Loby Matise" como "Susi Sanna" tienen el puesto "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>

 

Imagine que necesita extraer una lista de todos los nombres de puesto únicos del archivo XML. Para ello puede usar una asignación como esta:

mf-func-distinct-values-example

En la asignación anterior ocurre lo siguiente:

 

Cada elemento Property del archivo XML de origen es procesado por un filtro.

La conexión con el elemento de entrada bool del filtro garantiza que solo se pasen al componente de destino elementos Property en los que el atributo Key es igual a "role". La cadena "role" viene dada por una constante. Tenga en cuenta que el resultado del filtro todavía produce duplicados de momento (porque hay dos propiedades "Support" que cumplen la condición del filtro).

La secuencia que produce el filtro es procesada por la función distinct-values, que excluye los valores duplicados.

 

El resultado de la asignación es el siguiente:

 

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

© 2017-2023 Altova GmbH