Crear un trabajo de sondeo de directorios

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

Inicio >  Ejemplos de trabajos >

Crear un trabajo de sondeo de directorios

Este ejemplo explica cómo supervisar un directorio y controlar si se realizan cambios con ayuda de un desencadenador de archivos. Cada vez que se añade un archivo XML al directorio, FlowForce Server ejecuta un trabajo de asignación de datos que toma el archivo XML como parámetro de entrada. El resultado del trabajo de asignación se mueve después a un directorio de archivado.

 

Requisitos

Licencias necesarias: MapForce Enterprise o MapForce Professional, MapForce Server o MapForce Server Advanced Edition y FlowForce Server.
FlowForce Server debe ejecutarse en la dirección y en el puerto de red configurados (véase Definir la dirección de red y el puerto).
Debe tener una cuenta de usuario de FlowForce Server con permisos para uno de los contenedores (en este ejemplo se usa el contenedor /public porque está automáticamente abierto a todos los usuarios autenticados).
El trabajo de asignación creado en este ejemplo copia archivos de un directorio a otro. Por tanto compruebe que ambos directorios existen en el sistema operativo donde se ejecuta FlowForce Server y que tiene derecho a crear archivos en ambos directorios (este ejemplo usa los directorios C:\temp y C:\archivo).

 

Archivos de ejemplo utilizados

ShortApplicationInfo.mfd: la asignación de datos de MapForce a partir de la cual se creará el trabajo de FlowForce Server.
ApplicationsPage.xml: el archivo de instancia XML que se aportará como entrada de la asignación.

 

 

Ambos archivos están disponibles en esta ruta de acceso en el equipo donde está instalado Altova MapForce: <Documentos>\Altova\MapForce2019\MapForceExamples\.

 

¿Qué hace la asignación de datos?

A continuación puede ver una imagen de la asignación de datos de MapForce que utilizamos en este ejemplo (ShortApplicationInfo.mfd). Desde el punto de vista de FlowForce, lo más importante es que la asignación tome como entrada un archivo XML y que produzca otro archivo XML como resultado.

 

Esta asignación básicamente pasa un archivo XML (ApplicationsPage.xml) a otro esquema y lo guarda con el nombre de ShortInfo.xml. Es relativamente sencillo comprender esta asignación de datos con solo mirar la primera línea de conexión: por cada elemento Item que se encuentre en el componente de origen, se creará un elemento Info en el componente de destino. Las demás conexiones se usan para copiar valores de los elementos secundarios correspondientes. Además, es conveniente destacar la línea de conexión discontinua: en MapForce este tipo de conexiones se denominan "conexiones basadas en el origen (de contenido mixto)" y se utiliza en este ejemplo porque SubSection incluye contenido mixto.

ff_map_ShortApplicationInfo

ShortApplicationInfo.mfd

Observe que los esquemas XML de origen y destino se llaman SectionedPage y ShortInfo respectivamente. Como comprobará más adelante, cuando la asignación esté implementada en FlowForce Server, el trabajo de FlowForce tendrá parámetros de entrada y de salida con el mismo nombre.

 

Implementar la asignación en FlowForce Server

No es necesario preparar la asignación ShortApplicationInfo.mfd en modo alguno para poder implementarla en FlowForce Server. Como el componente de origen y de destino son archivos XML, se incluirán automáticamente en el paquete que se implementa en FlowForce Server.

 

Para implementar la asignación en FlowForce basta con abrirla en Altova MapForce y ejecutar el comando de menú Archivo | Implementar en FlowForce Server.

ff_deploy_ShortApplicationInfo

Si FlowForce Server se ejecuta en otro host y puerto, cambie los datos de conexión según corresponda (véase Definir la configuración de red).

 

Crear el trabajo de sondeo de directorios

Cuando la asignación termine de implementarse en FlowForce Server, se abrirá el explorador y se cargará la página de creación de trabajos. Como puede ver en la imagen que aparece a continuación, el primero paso de ejecución se crea automáticamente y llama a la función de asignación creada con anterioridad. Observe que el parámetro de entrada se llama igual que el componente de origen de MapForce (SectionedPage), mientras que el parámetro de salida se llama igual que el componente de destino (ShortInfo).

ff_dir_01

 

Para configurar el trabajo:

1.En el cuadro Working-directory: (Directorio de trabajo) introduzca la ruta de acceso del directorio de trabajo. En este ejemplo usamos C:\temp.

Un directorio de trabajo es un parámetro que necesitan los pasos de ejecución si el trabajo necesita una ubicación para desempaquetar archivos de entrada o guardar archivos de salida. FlowForce Server también utiliza el directorio de trabajo para resolver las rutas de acceso relativas que tengan lugar durante la ejecución del paso. Cuando deba aportar un directorio de trabajo, indique una ruta de acceso válida del sistema operativo donde se ejecuta FlowForce Server. Si no se indica un directorio de trabajo cuando se crea el trabajo, FlowForce Server utiliza un directorio temporal.

2.Bajo el apartado Desencadenadores haga clic en desencadenador de archivos nuevo. Observe que FlowForce Server añade un parámetro triggerfile nuevo automáticamente (justo debajo de Parámetros de entrada). En un paso posterior deberá hacer referencia a este parámetro.

TriggerfileParameter

3.Defina estos valores para el desencadenador:

 

Controlar: la fecha de modificación
del archivo o directorio: c:\temp\*.xml
Intervalo de sondeo: 60 segundos

ff-dir1

4.Bajo el apartado Pasos de ejecución asigne el parámetro triggerfile como valor de entrada para el parámetro SectionedPage. Esto se hace haciendo clic en el botón ff-setTo del parámetro SectionedPage y seleccionando triggerfile. Como resultado el valor del parámetro SectionedPage pasa a ser {triggerfile}. Las llaves denotan una expresión de FlowForc e y no se deben borrar.

ff-dir3

Con esta configuración el desencadenador se iniciará cada vez que se copie ApplicationsPage.xml en el directorio de trabajo. No obstante, como el desencadenador utiliza un comodín  (*.xml), también se iniciará cuando cualquier otro archivo XML se modifique en el directorio (incluido el resultado mismo de la asignación: ShortInfo.xml). No es esto lo que queríamos y además se producirán errores así que necesitamos añadir otro paso más que mueva el archivo de resultados generado a un directorio distinto. Otra opción sería cambiar el desencadenador por c:\temp\ApplicationsPage.xml (en cuyo caso no sería necesario crear otro paso más).

 

Para agregar el paso que mueve el resultado a un directorio nuevo:

1.Añada un paso de ejecución nuevo justo después del anterior.
2.Configure el paso de esta manera (recuerde que lo campos origen y destino distinguen entre mayúsculas y minúsculas):

 

Ejecutar función /system/filesystem/move
Origen: c:\temp\ShortInfo.xml
Destino: c:\archive
Directorio de trabajo: c:\temp

ff-dir4

Por último añada sus credenciales del sistema operativo con las que se ejecutará el trabajo:

 

1.En el apartado Credenciales seleccione un registro de credencial o especifique una credencial local (véase Credenciales).
2.Haga clic en Guardar.

 

Ejecutar el trabajo

Ahora puede probar el trabajo copiando el archivo ApplicationsPage.xml en el directorio de trabajo. FlowForce Server ejecutará el trabajo de asignación y copiará el archivo de salida resultante en el directorio de archivado.

 

Para ver si el trabajo se ejecutó correctamente consulte el registro de trabajos (véase Ver el registro de trabajos).


© 2019 Altova GmbH