Asignaciones en cadena

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

Inicio >  Diseño de asignaciones >

Asignaciones en cadena

En MapForce puede crear asignaciones de datos formadas por varios componentes en cadena. Las asignaciones en cadena son asignaciones donde como mínimo un componente hace de origen y de destino a la vez. Este tipo de componentes crea un resultado que se usa después como entrada del siguiente paso de la asignación en cadena. A estos componentes se les denomina componente intermedio.

 

Por ejemplo, la asignación que aparece a continuación muestra un informe de gastos (en formato XML) que se procesa en dos etapas. La parte de la asignación que va de A a B filtra los gastos marcados como "Travel" (viaje). La parte que va de B a C filtra los gastos de viaje por un importe inferior a 1500. El componente B es el componente intermedio porque tiene conexiones de entrada y salida. Puede encontrar esta asignación en esta ruta de acceso: <Documentos>\Altova\MapForce2019\MapForceExamples\Tutorial\ChainedReports.mfd.

mf_passthrough_01

ChainedReports.mfd

 

Las asignaciones en cadena presentan una característica llamada paso a través. Se trata de una función de vista previa que permite consultar los resultados que produce cada etapa de la asignación en cadena (en el panel Resultados). Por ejemplo, en la asignación del ejemplo puede consultar y guardar la vista previa del resultado XML que produce la etapa A - B y del resultado XML que produce la etapa B - C.

 

Nota:la característica paso a través solamente está disponible para componentes basados en archivos (como componentes XML, CSV y de texto). Los componentes de base de datos pueden ser componentes intermedios pero no disponen del botón Paso a través. El componente intermedio siempre se regenera desde cero cuando se crea la vista previa o se genera código. Esto no sería posible con bases de datos porque antes de regenerar la base de datos sería necesario eliminarla.

 

Si la asignación se ejecuta con MapForce Server o con código generado, entonces se ejecuta toda la cadena de asignación. La asignación genera los archivos de salida necesarios en cada etapa de la cadena y el resultado de una etapa se reenvía como entrada de la siguiente etapa.

 

También se pueden generar nombres de archivo dinámicos a partir de los componentes intermedios. Es decir, se pueden crear conexiones con el elemento Archivo: de los componentes intermedios, siempre y cuando éstos estén configurados correctamente (véase Procesar varios archivos de entrada o salida simultáneamente).

 

ic-preview-inact Botón Vista previa

Tanto el componente B como el componente C tienen un botón de vista previa. Este botón genera en MapForce una vista previa del resultado intermedio de B, así como el resultado final de la asignación en cadena. Haga clic en el botón Vista previa del componente correspondiente y después haga clic en el panel Resultados para ver el resultado de la asignación.

 

Los componentes intermedios que tengan activo el botón Paso a través no pueden verse en la vista previa porque su botón Vista previa se deshabilita automáticamente (ya que no tiene sentido obtener una vista previa de los datos y pasarlos al mismo tiempo). Para ver el resultado de los componentes intermedios, primero es necesario desactivar el botón Paso a través y después hacer clic en el botón Vista previa.

 

ic-passthru-active Botón Paso a través

El componente intermedio B tiene un botón más en la barra de título que se llama Paso a través.

 

Si el botón Paso a través está activo btn_component_pass-through_pressed, MapForce asigna dirige todos los datos a la ventana de vista previa de una vez, del componente A al B y después al C. Se crearán dos archivos de resultados:

 

el resultado de asignar el componente A al componente intermedio B.
el resultado de asignar el componente intermedio B al componente de destino C.

 

Si el botón Paso a través está inactivo ic-passthru-active, MapForce solamente ejecutará partes de la cadena de asignación. Los datos que se generan dependen de qué botones Vista previa están activos:

 

Si está activo el botón Vista previa del componente B, se genera el resultado de asignar el componente A al componente B. La cadena de asignación se detiene en el componente B. El componente C no se utiliza para nada en la vista previa.
Si está activo el botón Vista previa del componente C, se genera el resultado de asignar el componente intermedio B al componente C. Como el paso a través está inactivo, se interrumpe el encadenamiento automático para el componente B. Solamente se ejecuta la parte derecha de la cadena de asignación. Es decir, el componente A no se utiliza.

 

Cuando el botón Paso a través está inactivo, es importante que en los campos Archivo XML de entrada y Archivo XML de salida del componente intermedio se especifiquen nombres de archivo idénticos. Esto garantiza que el archivo de salida que se genera durante la vista previa de la etapa A - B sirva de entrada para la vista previa de la etapa B - C. Además, en el código generado o en la ejecución con MapForce Server, esto garantiza que la cadena de asignación no se rompa.

 

Como ya dijimos anteriormente, si la asignación se ejecuta con MapForce Server o con el código generado, se da salida a todos los componentes. Cuando así sea, el estado del botón Paso a través del componente B no se tiene en cuenta (tampoco se tiene en cuenta qué componente de visa previa está seleccionado). Por ejemplo, a partir de la asignación de la imagen se generarían dos archivos de resultados:

 

1.el archivo de salida que se obtiene de la asignación de A a B y
2.el archivo de salida que se obtiene de la asignación de B a C.

 

Los apartados Ejemplo: paso a través activo y Ejemplo: paso a través inactivo explican con más detalle cómo se transfieren los datos de origen cuando el botón Paso a través está activo e inactivo, respectivamente.


© 2019 Altova GmbH