Altova MapForce 2024 Professional Edition

Puede crear funciones de nodo o valores predeterminados para casi todos los elementos de la asignación de datos. A eso lo llamamos definir una regla. Para crear una regla, seleccione el elemento (nodo o campo) para el que quiere definir una regla. Puede tratarse de un solo nodo o de un nodo con nodos secundarios. Cuando defina una regla en un elemento que tenga descendientes, por defecto la heredarán los descendientes, a no ser que deshabilite esa opción.

 

Aspectos importantes de los valores predeterminados y las funciones de nodo

Estos son los aspectos más importantes que debe tener en cuenta al trabajar con valores predeterminados y funciones de nodo:

 

Puede crear valores predeterminados y funciones de nodo en la entrada de un componente de destino o en la salida de un componente de origen. Para decidir qué lado le conviene más consulte Entrada vs salida.

 

Cuando existen varias reglas para el mismo elemento, MapForce aplica la regla que más cercana sea a ese elemento. Para aprender a sobrescribir reglas consulte el caso 4 en Casos de uso.

 

Los valores predeterminados y las funciones de nodo requieren que el tipo de conexión entre el origen y el destino esté basada en el origen o en el destino. Las conexiones de copia total no son compatibles. En concreto, las funciones de nodo y los valores predeterminados no se aplican a los descendientes de las conexiones de copia total. Si un nodo principal tiene una conexión de copia total también puede funciones de nodo y valores predeterminados, pero solamente si su nodo ascendiente tiene un valor simple, como un elemento XML con contenido de tipo simple y atributos. Para más información consulte el apartado Tipos de conexión.

 

Observe que el nodo Archivo no admite la creación de valores predeterminados o funciones de nodo

 

Dentro de una función de nodo solo se admiten ciertos componentes significativos (como funciones integradas, variables, condiciones if-else). Las estructuras complejas como XML, JSON, EDI o bases de datos no son compatibles. Tampoco es compatible añadir funciones inline definidas por el usuario ni combinar componentes con una función de nodo.

 

Una función de nodo puede tener un parámetro de entrada (no más) o ninguno. Ese parámetro de entrada se llama siempre raw_value. No elimine nunca el componente de entrada, incluso aunque no necesite ninguna entrada para esa función; de lo contrario aparecerán errores de validación cuando ejecute la asignación de datos. Lo mismo ocurre con la salida de la función. Si necesita restaurar un componente de entrada eliminado por error, ejecute el comando de menú Función | Insertar componente de entrada.

 

MapForce permite suministrar metadatos (como un nombre de nodo o una anotación) a las funciones de nodo. Para más detalles consulte Suministrar metadatos del nodo a funciones de nodo.

 

En el cuadro de diálogo Funciones de nodo y valores predeterminados puede elegir de entre varios tipos de datos; algunos de ellos son categorías de tipos, por lo que coincidirán con más tipos. Por ejemplo, el tipo string coincide con otros tipos de datos derivados de string, como normalizedString, token, NCName, NMTOKEN, IDREF, ENTITY, entre otros. Asimismo, el tipo decimal coincidirá con los tipos derivados integer, long, short y otros. La jerarquía de tipos obedece a la recomendación de X3C para el esquema XML.

 

Crear una regla

Para crear una regla siga estos pasos:

 

1.Haga clic con el botón derecho en el elemento (nodo) en cuestión y seleccione Funciones de nodo y predeterminados | Funciones de nodo y predeterminados de entrada (o Funciones de nodo y predeterminados de salida) en el menú contextual. Elija Funciones de nodo y predeterminados de entrada o de salida en función del lado del componente en el que quiere crear la función de nodo o el valor predeterminando. También puede hacer clic con el botón derecho en un conector y seleccionar el comando de función de nodo para ese lado. En el panel Asignaciones verá la ventana Funciones de nodo, en la que puede definir valores predeterminados y funciones de nodo (encuadrado en rojo en la imagen siguiente).

mff_nodefunc_ex2

Si el elemento en el que define la regla tiene un elemento primario, es posible que también se hayan definido reglas para este último. Si quiere que herede esas reglas, marque la casilla Heredar reglas de antecesores (imagen siguiente). Para más información sobre la herencia, consulte el apartado Casos de uso.

 

2.El paso siguiente es decidir si quiere agregar un valor predeterminado ( mf_ic_add_default ) o una función( mf_ic_add_nodefunc ). Al hacer clic en la opción que prefiera se crea una regla nueva (una nueva fila en la ventana Funciones de nodo). Para más información sobre cómo configurar reglas consulte Configurar reglas más abajo. Si está definiendo una función, podrá ver los parámetros de entrada y de salida en el área de asignación.

 

Editar/eliminar reglas

Para ver, modificar o eliminar una regla haga clic en el icono mf_ic_node_func_defined (negro o rojo) que hay junto al nodo en cuestión. En la ventana Funciones de nodo aparecen todas las reglas que se hayan definido para este nodo. Si agregó una función de nodo, verá el botón mf_ic_nodefunc_edit en la cuadrícula, con el que puede cambiar la implementación de la función. Si no está el botón mf_ic_nodefunc_edit, lo más probable es que la función esté definida en un antecesor. En este caso, haga clic en el icono mf_ic_node_func_defined que hay junto al elemento para el que se definió la regla.

 

Para eliminar una regla selecciónela en la cuadrícula de la ventana Funciones de nodo y haga clic en el botón ic_paramdel.

 

Configurar reglas

Cuando seleccione Funciones de nodo y valores predeterminados | Funciones de nodo y predeterminados de entrada/salida en el menú contextual (véase más arriba) verá la ventana Funciones de nodo, en la que puede configurar funciones de nodo y valores predeterminados. A continuación describimos las opciones disponibles.

 

Aplicar a: Indica si la regla debe aplicarse al elemento actual o a todos los elementos descendientes independientemente de su profundidad, o únicamente a los descendientes directos. Si el elemento seleccionado en el paso 1 no tiene descendencia, entonces la única opción es Elemento actual.

 

Tipo de datos: Haga clic en el botón Elipsis mf_ic_ellipsis y seleccione un tipo de datos del cuadro de diálogo. La regla (predeterminado o función de nodo) se aplicará únicamente a elementos que tengan este tipo de datos (o uno derivado). Si el elemento seleccionado en el paso 1 no tiene descendencia, entonces la única opción disponible será el tipo de datos del elemento.

 

Valor predeterminado / Descripción de la función: Si está definiendo un valor predeterminado, teclee aquí el valor predeterminado que quiere establecer para el elemento seleccionado (y todos sus descendientes, si procede). Para establecer una cadena vacía como valor predeterminado, deje este campo vacío. Si está definiendo una función, este campo existe únicamente a efectos informativos. Muestra un resumen de la función.

 

Para volver a la ventana Funciones de nodo haga clic en el botón mf_ic_exit_door que hay en la esquina superior izquierda de la ventana o pulse Escape.

 

Ayudas visuales

Para que comprenda mejor la diferencia entre reglas definidas y aplicadas, MapForce ofrece las siguientes ayudas visuales en la asignación (tabla siguiente).

 

Icono

Descripción

mf_ic_node_func_defined

Este icono indica que para este elemento existe una regla definida que puede afectar a todos sus descendientes. Haga clic en el icono para modificar o eliminar la regla.

mf_ic_node_func_applied

Este icono indica que el elemento hereda una regla definida a nivel de alguno de sus antecesores.

mf_ic_node_func_defined_applied

Este icono indica que existe una regla definida para este elemento que también se le aplica. Este icono normalmente aparece cuando se define un valor predeterminado para un único nodo.

mf_ic_node_function_blocked

Este icono indica que, aunque una regla se pueda aplicar a este elemento, esta está bloqueada a propósito. Este icono solo aparece si la herencia está bloqueada y no hay más reglas definidas para este nodo. Si se aplica una regla de algún ancestro, el icono mf_ic_node_func_applied tiene prioridad.

mf_ic_node_func_inactive

Este icono indica que aunque se le pueda aplicar una regla a este elemento, está inactiva. Por ejemplo, este icono puede aparecer para elementos que todavía no están conectados en la asignación.

ic_nodefunc_unconnected

Este icono indica que la regla está inactiva actualmente porque no se han encontrado nodos que coincidan o estén conectados al elemento. Con coincidir queremos decir: Antes de aplicar una función o un valor predeterminado, MapForce busca el tipo de datos que haya definido; si también indicó un filtro para encontrar un nombre de nodo específico, por ejemplo, MapForce también buscará ese nombre de nodo.

 

© 2017-2023 Altova GmbH