Habilite JavaScript para visualizar esta página.

Altova MapForce 2021 Professional Edition

Es posible que existan casos en los que quiera que una función de nodo haga algo basándose en información sobre un nodo en concreto (llamemos a esta información "metadados del nodo"). Por ejemplo, puede que necesite una función con la siguiente lógica: si el nombre del nodo contiene la palabra "Total", anexar el símbolo del dólar al valor del nodo; en caso contrario, devolver el valor del nodo como está.

 

En el ejemplo que acabamos de mencionar, "nombre del nodo" es un ejemplo de metadatos del nodo. En general, "metadatos" se refiere a algo que describe a los mismos datos, es decir, "datos sobre datos". Por tanto, por "metadatos del nodo" entendemos una mezcla de información sobre el nodo al cual se aplica la función, como el nombre del nodo, la longitud o precisión de su valor en el caso de tipos de BD numéricos, entre otros.

 

La siguiente tabla contiene todos los metadatos posibles que se pueden usar en una función. Observe que algunos de los metadatos de la lista solo se pueden usar con ciertos tipos de nodos (por ejemplo, XML o campos de BD). En consecuencia, MapForce mostrará una advertencia si intenta usar metadatos incompatibles con el nodo en cuestión.

 

node_name

Da el nombre del nodo en cuestión. Estos metadatos se aplican a todos los nodos. En el caso de XML, es el nombre del elemento o atributo actual. En el caso de CSV, es el campo CSV. En el caso de bases de datos, es el nombre de la columna de tabla.

node_annotation

Da la anotación de texto que aparece junto a un elemento al hacer clic en el botón de la barra de herramientas Mostrar anotaciones ic-show-annot. Estos metadatos se aplican a todos los nodos.

node_minLength

Da el valor del aspecto minLength del tipo de datos del nodo. Se aplica a nodos XML y de texto con los tipos correspondientes.

node_maxLength

Da el valor del aspecto maxLength del tipo de datos del nodo. Se aplica a nodos XML y de texto con los tipos correspondientes.

node_totalDigits

Da el valor del aspecto totalDigits del tipo de datos del nodo. Se aplica a nodos XML y de texto con los tipos correspondientes.

node_fractionDigits

Da el valor del aspecto fractionDigits del tipo de datos del nodo. Se aplica a nodos XML y de texto con los tipos correspondientes.

node_length

Da a longitud del tipo de datos del nodo. Se aplica a los campos de BD con los tipos correspondientes.

node_precision

Da la precisión del tipo de datos del nodo. Se aplica a los campos de BD con los tipos correspondientes.

node_scale

Da la escala del tipo de datos del nodo. Se aplica a los campos de BD con los tipos correspondientes.

Para suministrar metadatos a una función de nodo:

1.Comience por crear una nueva función de nodo (véase Crear valores predeterminados y funciones) o abriendo una ya existente para editarla (véase Editar y eliminar reglas). Por ejemplo, la siguiente función concatena la cadena "$" con el valor del nodo y devuelve el resultado a la asignación principal. Encontrará la asignación de esta función en la siguiente ruta: <Documentos>\Altova\MapForce2021\MapForceExamples\OrderInUSD.mfd. Para abrirla, haga clic en el icono mf_ic_node_func_defined que aparece junto al elemento Rows del componente de destino y después haga clic en el botón mf_ic_nodefunc_edit de la tabla de la parte superior.

mf_nodefunc_16

2.Escoja una de estas opciones:

 

Haga clic en Agregar detalles del nodo

Haga clic con el botón derecho en un área vacía de la asignación y seleccione Insertar componente de entrada.

Haga clic en el botón de la barra de herramientas Insertar componente de entrada mf_ic_udf_input.

En el menú Función, haga clic en Insertar componente de entrada.

mf_nodefunc_17

3.Seleccione los metadatos necesarios del cuadro de diálogo (por ejemplo, "node_name").

 

Note:al seleccionar un parámetro de metadatos para insertar, MapForce analiza todos los nodos expandidos en la asignación a los que la función del nodo ya se puede aplicar y determina si esos nodos admiten el parámetro de metadatos. Si no es el caso, el cuadro de diálogo muestra una advertencia parecida a "El parámetro de metadatos seleccionado no es compatible con ninguno de los nodos actuales dentro del alcance de esta función". Tenga en cuenta que, por defecto, las estructuras con muchos niveles de anidación no se escanean al completo para mantener la memoria y mejorar la experiencia del usuario. Si el componente al que aplica la función de nodo tiene una de esas estructuras puede expandir los nodos más relevantes en la asignación para que MapForce no los omita. En este caso, cuando agregue un nuevo parámetro de metadatos MapForce tendrá en cuenta los nodos expandidos y la advertencia desaparecerá. Recuerde que, para que se pueda aplicar la función del nodo, debe expandir los elementos que tengan una conexión.

 

1.Si el nodo al que se puede aplicar la función no admite los metadatos, puede decidir cómo se comportará la función:

a.Marque la casilla de verificación Devolver secuencia vacía de la entrada si quiere aplicar la función del nodo y que el parámetro de metadatos devuelva una secuencia vacía. No se debe confundir una secuencia vacía con una cadena vacía. Por lo general necesitará usar funciones de secuencia como substitute-missing o exists, u otro tipo de componente, para seguir con el procesamiento. Advertencia: la secuencia vacía debe manipularse o la función de nodo no devolverá ningún valor.

b.Marque la casilla de verificación No aplicar la función de nodo si no quiere aplicar la función de nodo en caso de que el nodo no admita estos metadatos.

2.Haga clic en Aceptar. Ahora se añadirá un parámetro de entrada nuevo a la asignación de la función junto al parámetro predeterminado raw_value. Ahora puede conectar el nuevo conector de salida del parámetro al elemento de destino al que necesite que lleguen los metadatos (por lo general un conector de entrada de la función).

© 2015-2021 Altova GmbH