Altova MapForce 2023 Professional Edition

La función group-into-blocks crea grupos iguales que contienen exactamente N elementos, donde N es el valor que se le da al argumento block-size. Observe que el último grupo puede contener N elementos o menos en función de la cantidad de elementos de la fuente. En el ejemplo siguiente, block-size es 2. Como hay cinco elementos en total, cada grupo contiene exactamente dos elementos, excepto el último, que solo puede contener uno.

mf_group-into-blocks

 

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.

block-size

Indica el tamaño de cada grupo.

 

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

 

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

 

El requisito empresarial es agrupar registros de personas en bloques de dos elementos cada uno. Para ello, la siguiente asignación invoca la función group-into-blocks y da como tamaño (block-size) el valor entero "2".

mf_group-into-blocks_map

El resultado de la asignación es el siguiente:

 

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

 

Observe que el último grupo contiene un único elemento, ya que el número total de elementos (5) no se puede dividir entre 2.

 

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