Pasar datos sin modificarlos

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Diseño de asignaciones > Usar asignaciones de valores >

Pasar datos sin modificarlos

En algunos casos es necesario transformar datos concretos de un nodo, mientras que el resto de datos del nodo deben pasarse al nodo de destino sin modificaciones.

 

Por ejemplo, imaginemos que en una filial de una compañía cambian los nombres de los puestos de los empleados. En nuestro ejemplo cambian dos nombres de puestos pero el resto de puestos no cambian.

 

valtitle1

 

La asignación más obvia sería la que aparece en la imagen anterior, que utiliza una asignación de valores para transformar el nombre de los puestos.

Si abrimos el panel Resultados podremos ver el resultado de la asignación:

 

valtitle3

 

En el caso de los empleados que no tengan ninguno de los dos tipos que muestra la asignación de valores, el elemento Title se eliminará en el documento de salida.

 

valtitle2

 

Otra manera de hacer esto sería marcar la casilla Si no existe, entonces e introducir un término de sustitución. El nodo Title volvería a aparecer en el documento de salida, pero ahora incluiría el mismo Nuevo puesto que los demás empleados de la compañía.

 

Solución

Cree una función definida por el usuario que contenga un componente de asignación de valores y utilice la función substitute-missing para suministrar los datos iniciales para los nodos vacíos.

 

1.Haga clic en la asignación de valores value-map y seleccione Función | Crear una función definida por el usuario a partir de la selección.

 

valtitle4

 

2.Introduzca un nombre para esta función (p. ej. Paso-a-través) y haga clic en Aceptar.

 

valtitle5

 

3.Inserte una función substitute-missing desde la sección core | node function del panel Bibliotecas y cree las conexiones que aparecen en esta imagen:

 

valtitle6

 

4.Ahora puede abrir el panel Resultados para ver el resultado.

 

 

Resultado de la asignación:

 

Las dos designaciones Title de la asignación de valores value-map se transformaron en Nuevo puesto.
Los demás nodos Title del archivo de origen conservan sus datos iniciales en el archivo de destino.

 

valtitle7

 

¿Por qué ocurre esto?

La asignación de valores value-map evalúa los datos de entrada de la siguiente manera:

 

Si los datos entrantes coinciden con una de las entradas de la primera columna, los datos se transforman y se pasan al parámetro node de la función substitute-missing y después a Puesto2.

 

Si los datos entrantes no coinciden con ninguna entrada de la columna izquierda, no se pasa ningún dato de la asignación de valores al parámetro node (es decir, es un nodo vacío).

 

Cuando esto ocurre, la función substitute-missing recupera el nodo y los datos iniciales del nodo Title y los pasa a través del parámetro replace-with hasta Puesto2.


© 2019 Altova GmbH