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.
•Los servicios FlowForce Web Server y FlowForce Server deben escuchar en la en la dirección de red y en el puerto configurados previamente.
•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\MapForce2023\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.
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.
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).
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.
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
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 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.
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 | Navegue hasta la funciónn /system/filesystem/move. |
Origen | ShortInfo.xml
Hemos usado una ruta relativa porque ya hemos definido el parámetro Directorio de trabajo (véase más abajo). |
Destino | Debe ser una ruta de archivo o directorio que ya exista en el sistema operativo en el que se está ejecutando FlowForce Server. Defínala como:
C:\FlowForceExamples\Archive |
Sobrescribir destino | Marque esta casilla. Indica a FlowForce Server que sobrescriba cualquier archivo con el mismo nombre que encuentre en la ruta de destino. |
Cancelar si hay errores | Deje este parámetro como está.
Parámetro opcional. Este parámetro determina el resultado de un trabajo si ocurre un error. Si el parámetro de Anular en caso de error es true, la ejecución del trabajo se anula. Si el parámetro es false, FlowForce Server ignora los errores y sigue ejecutando el trabajo. El valor predeterminado es true. |
Directorio de trabajo | FlowForce busca todas las rutas relativas en este directorio. Defínalo como:
C:\FlowForceExamples\DirPolling |
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).