auto-number
La función auto-number genera enteros en una secuencia (por ejemplo, 1, 2, 3, 4...). Puede usar parámetros para configurar el entero de inicio, el valor incremental y otras opciones.
El orden exacto en que el código de asignación generado llama a las funciones no está definido. MapForce puede necesitar almacenar en caché los resultados calculados para volver a utilizarlos o evaluar las expresiones en cualquier orden. Al contrario que otras funciones, la función auto-number devuelve un resultado distinto si se la llama varias veces con los mismos parámetros de entrada. Por lo tanto, recomendamos que use esta función con cuidado. En algunos casos, se puede conseguir el mismo resultado utilizando la función position en su lugar. |
Lenguajes
Built-in, C++, C#, Java, XQuery#, XSLT 1.0 y, XSLT 1.0, XSLT 2.0, XSLT 3.0.
Parámetros
Argumento | Descripción |
---|---|
global-id | Parámetro opcional. Si un diseño de asignación contiene varias funciones auto-number, estas generarán secuencias con números duplicados (solapados). Para que todas las funciones auto-number sean conscientes unas de otras y no generen secuencias que se solapen, debe conectar una cadena común (por ejemplo, una constante) a la entrada global-id de cada función auto-number. |
start-with | Parámetro opcional. Indica el entero con el que empieza la secuencia que se genera. El valor predeterminado es 1. |
increment | Parámetro opcional. Indica el valor incremental. El valor predeterminado es 1. |
restart-on-change | Parámetro opcional. Restablece el contador a start-with cuando cambia el contenido del elemento conectado. |
Ejemplo
Esta asignación es una variación de la asignación ParentContext.mfd descrita en Ejemplo: cambiar el contexto primario.
El objetivo de la asignación siguiente es generar varios archivos XML, uno por cada departamento del archivo XML de origen. Hay varios departamentos con el mismo nombre (esto se debe a que pertenecen a distintas oficinas centrales). Por esta razón, cada nombre de archivo generado debe comenzar con un número secuencial, por ejemplo 1-Administración.xml, 2-Mercadeo.xml, y así sucesivamente.
Para conseguir el objetivo de la asignación se usó la función auto-number. El resultado de esta función se concatena con un guion seguido por el nombre del departamento, seguido por la cadena ".xml" para crear el nombre único del archivo generado. Es importante destacar que al tercer parámetro de la función concat (el nombre del departamento) se le aplica un contexto de prioridad. Esto sirve para llamar a la función auto-number en el contexto de cada departamento y produce los valores secuenciales necesarios. Si no se utilizara el contexto de prioridad, la función auto-number seguiría generando el número 1 (en ausencia de contexto) y, como consecuencia, se generarían nombres de archivo duplicados.