Altova MapForce 2023 Professional Edition

La función group-ending toma como argumento una condición booleana. Si la condición booleana se cumple, se crea un grupo nuevo en el que el último registro es el que cumple esa condición. En el siguiente ejemplo, la condición es que la clave sea "cola". Esta condición se cumple en los registros tercero y quinto, por lo que se crean dos grupos:

mf_group-ending-with

Nota: si existen registros después del último que cumple la condición, se crea un grupo más. Por ejemplo, si hubiera más registros "línea" después del último registro "cola", estos se colocarían en ese grupo adicional.

 

Lenguajes

La función está disponible para XSLT 2.0, XSLT 3.0, Java, C#, C++ y el motor de ejecución integrado.

 

Parámetros

Nombre

Descripción

nodos/filas

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.

bool

xs:boolean Indica la condición booleana que inicia un nuevo grupo si se cumple (true).

 

Ejemplo

Imaginemos que sus datos de origen son un archivo XML con el siguiente contenido (tenga en cuenta que, para simplificar, en el código de ejemplo siguiente hemos eliminado el espacio de nombre y las declaraciones XML).

 

<records>
<record key="line" value="A"/>
<record key="line" value="B"/>
<record key="trailing" value="Total 1"/>
<record key="line" value="C"/>
<record key="trailing" value="Total 2"/>
</records>

 

El requisito empresarial es crear un grupo por cada elemento "trailing". Cada uno de los grupos también debe incluir los registros "line" que precedan al registro "trailing". Para ello, la siguiente asignación invoca la función group-ending-with. En la siguiente asignación, siempre que el nombre de key sea "trailing", el argumento dado a bool pasa a ser true y se crea un grupo nuevo.

mf_group-ending-with_map

El resultado de la asignación es el siguiente:

 

<groups>
<group>
<record key="line" value="A"/>
<record key="line" value="B"/>
<record key="trailing" value="Total 1"/>
</group>
<group>
<record key="line" value="C"/>
<record key="trailing" value="Total 2"/>
</group>
</groups>

 

Este ejemplo, junto con otros ejemplos de agrupación, es parte de esta asignación: <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial\GroupingFunctions.mfd. Antes de hacer clic en la pestaña Resultados mf_ic_preview recuerde hacer clic en el botón Vista previa de la función que quiere comprobar.

© 2016-2022 Altova GmbH