Ejemplo: paso a través activo

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

Inicio >  Diseño de asignaciones > Asignaciones en cadena >

Ejemplo: paso a través activo

La asignación utilizada en este ejemplo se llama ChainedReports.mfd y está en la carpeta <Documentos>\Altova\MapForce2019\MapForceExamples\Tutorial\. Esta asignación procesa un archivo XML llamado ReportA.xml que contiene gastos de viaje (ver más abajo). Para mayor claridad se omitieron la declaración de espacio de nombres y algunos elementos expense-item:

 

<?xml version="1.0" encoding="UTF-8"?>
<expense-report currency="USD" detailed="true">
  <Person>
    <First>Fred</First>
    <Last>Landis</Last>
    <Title>Project Manager</Title>
    <Phone>123-456-78</Phone>
    <Email>f.landis@nanonull.com</Email>
  </Person>
  <expense-item type="Travel" expto="Development">
    <Date>2003-01-02</Date>
    <Travel Trav-cost="337.88">
        <Destination/>
    </Travel>
    <description>Biz jet</description>
  </expense-item>
  <expense-item type="Lodging" expto="Sales">
    <Date>2003-01-01</Date>
    <Lodging Lodge-cost="121.2">
        <Location/>
    </Lodging>
    <description>Motel mania</description>
  </expense-item>

  <expense-item type="Travel" expto="Marketing">
    <Date>2003-02-02</Date>
    <Travel Trav-cost="2000">
        <Destination/>
    </Travel>
    <description>Hong Kong</description>
  </expense-item>
</expense-report>

Archivo ReportA.xml

El objetivo de la asignación es producir dos informes a partir del archivo XML:

 

El informe ReportB.xml, que debe contener los gastos de viaje que correspondan al tipo "Travel".
El informe ReportC.xml, que debe contener los gastos de viaje que correspondan al tipo "Travel" y que no superen un valor de 1500.

 

Para conseguirlo el componente intermedio de la asignación (el componente B) tiene activado el botón Paso a través btn_component_pass-through_pressed (ver más abajo). Esto hace que la asignación se ejecute en dos etapas: de A a B y de B a C. El resultado que genera el componente intermedio se usará como entrada para la asignación entre B y C.

mf_passthrough_02

 

El nombre de los archivos de salida que se generan en cada etapa de la cadena de asignación viene dado por la configuración de cada componente. Para abrir la configuración de un componente haga clic con el botón derecho en el componente y seleccione Propiedades en el menú contextual. En nuestro ejemplo el primer componente está configurado para leer datos de un archivo XML llamado ReportA.xml. Como este es el componente de origen, el archivo de salida XML no es relevante y este campo se dejó vacío en la configuración del componente.

mf_passthrough_03

Configuración del componente de origen

Como puede verse en la siguiente imagen, el segundo componente (ReportB) está configurado para generar un archivo de salida llamado ReportB.xml. Observe que el campo Archivo XML de entrada está atenuado. Esto se debe a que cuando el paso a través está activo (como en nuestro ejemplo) el campo Archivo XML de entrada del componente intermedio se desactiva automáticamente. Para poder ejecutar la asignación no se necesita un nombre de archivo de entrada porque el resultado que se crea en esta etapa de la cadena se almacena en un archivo temporal y se vuelve a utilizar en las etapas siguientes. Además, si se define un archivo XML de salida (imagen siguiente), éste se usará para el nombre de archivo del archivo de salida intermedio. Si no se define el valor del campo Archivo XML de salida, se usará automáticamente un nombre de archivo predeterminado.

mf_passthrough_04

Configuración del componente intermedio

Por último, el tercer componente está configurado para generar un archivo de salida llamado ReportC.xml. El valor del campo Archivo XML de entrada no es relevante porque se trata del componente de destino.

mf_passthrough_05

Configuración del componente de destino

Si consultamos la vista previa abriendo el panel Resultados, observaremos que se generaron dos archivos de salida:

 

1.ReportB.xml, que representa el resultado de la asignación de A a B.
2.ReportC.xml, que representa el resultado de la asignación de B a C.

 

Para seleccionar cuál de los dos archivos de salida se presentan en el panel Resultados haga clic en los botones de flecha o seleccione una entrada en la lista desplegable.

mf_passthrough_06

Archivos de salida generados

Cuando MapForce ejecuta la asignación, la configuración de la opción Escribir directamente en archivos de salida finales (que se configura desde Herramientas | Opciones | Generales) determina si los archivos intermedios se deben guardar como archivos temporales o físicos. Recuerde que esto solo es válido cuando se consulta una vista previa en MapForce. Si la asignación se ejecutara con MapForce o por medio de código, se producirían archivos en cada etapa de la cadena de asignación.

 

Si tiene StyleVision instalado y asignó un archivo SPS (StyleVision Power Stylesheet) al componente de destino (como en nuestro ejemplo), entonces podrá ver (y guardar) el resultado final de la asignación como HTML, RTF. Para generar y consultar este resultado en MapForce basta con abrir el panel correspondiente.

mf_passthrough_07

Resultado HTML generado

Recuerde que solamente se presenta el resultado del componente de destino final de la cadena de asignación. Para ver el resultado de StyleVision de componentes intermedios deberá desactivar el botón de paso a través y generar una vista previa del componente intermedio (véase Ejemplo: paso a través inactivo).


© 2019 Altova GmbH