Altova FlowForce Server 2023 Advanced Edition

Ejemplo: comprobar si existe una ruta de acceso

Inicio Anterior Inicio Siguiente

Este ejemplo sirve para explicar cómo crear un trabajo que nos confirmará si una ruta de acceso (de un archivo o directorio) existe en el sistema operativo.

 

En este trabajo combinaremos funciones integradas y funciones de expresión. Además, definiremos el trabajo como servicio web para que pueda desencadenarse siempre que se necesite, con solo acceder a una URL desde el explorador. El trabajo tomará como argumento la ruta de acceso y devolverá una cadena de texto para confirmar si la ruta de acceso dada como argumento existe o no en el sistema operativo donde se ejecuta FlowForce Server.

 

Requisitos

Licencias necesarias: 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).

 

Para crear el trabajo

1.Inicie sesión en FlowForce Server y navegue hasta el contenedor donde tenga permisos para crear trabajos nuevos (p. ej. el contenedor /public).

2.Haga clic en Crear y después seleccione Crear trabajo.

3.Introduzca el nombre (p. ej. ConfirmarRuta) y la descripción del trabajo (opcional).

ExamplePathExists01

4.Debajo de Parámetros de entrada del trabajo haga clic en el botón add y añada el parámetro ruta de esta manera:

ExamplePathExists02

5.Ahora añada un paso de ejecución nuevo que llame a la función builtin_function/system/shell/commandline e introduzca el comando shell que comprueba si la ruta de acceso existe. No olvide declarar el resultado de este paso tal y como muestra la imagen:

ExamplePathExists03

En Windows el comando shell genera 1 si la ruta de acceso existe y 0 si no existe. Si ejecuta FlowForce Server en un sistema Unix, adapte el comando según corresponda. Observe que en el comando se incrustó la expresión de FlowForce {path}. Esta expresión remite al parámetro de entrada definido en el paso anterior.

6.Debajo de Pasos de ejecución haga clic en el botón add y seleccione nuevo paso Opción. Después introduzca la expresión condicional trim(content(stdout(salida))) == '1'. Esta expresión está compuesta por tres funciones anidadas: stdout, content y trim. La función stdout obtiene el resultado estándar del resultado devuelto por el paso anterior. A continuación la función content convierte el resultado estándar en una cadena de texto. Y, por último, la función trim elimina espacios iniciales o finales, retornos de carro y saltos de línea del resultado estándar. El resultado que se obtiene se compara con "1" por medio del operador de igualdad. Si los valores coinciden, significa que la ruta de acceso existe. Si no coinciden, se entiende que la ruta de acceso no existe.

7.Ahora, debajo de la cláusula Cuando, añada un paso de ejecución tal y como puede ver en la imagen siguiente. Este paso de ejecución llama a la función builtin_function/system/compute-string para generar el valor de cadena que debe devolverse si la ruta de acceso existe. Observe que la expresión de FlowForce {ruta} está incrustada en el valor. Esta expresión remite al parámetro de entrada definido en el paso anterior.

ExamplePathExists04

8.Debajo de la cláusula De lo contrario añada un paso de ejecución tal y como puede ver en la imagen siguiente. Este paso de ejecución llama a la función builtin_function/system/compute-string para generar el valor de cadena que debe devolverse cuando la ruta de acceso no existe. Observe que la expresión de FlowForce {ruta} está incrustada en el valor. Esta expresión remite al parámetro de entrada definido en el paso anterior.

ExamplePathExists05

9.Ahora, debajo de Resultado de la ejecución, declare el tipo devuelto como cadena de texto.

helloworld04

10. Debajo de Servicio marque la casilla Permitir acceso a este trabajo por HTTP en la dirección URL y escriba el nombre de servicio ConfirmarRuta (véase Trabajos como servicios web).

fs_ex_checkpath_07

11. Debajo de Credenciales seleccione un registro de credencial actual o especifique una credencial local (véase Credenciales).

12. Para terminar haga clic en Guardar.

 

Ejecutar el trabajo

To run the job, do one of the following:

 

Vaya a Inicio y haga clic en Ver los desencadenadores y servicios activos. Después haga clic en la URL del trabajo que aparece en la columna "Información".

Introduzca http://127.0.0.1:4646/service/CheckPathService en la barra de direcciones del explorador. Tenga en cuenta que esta URL solo funciona si el servicio FlowForce Server escucha en la dirección host y el nombre de puerto predeterminados. Si su puerto y host tienen otra configuración vaya a la Configuration page y cambie la dirección.

Si configura el campo Nombre de host de FlowForce Server desde la página de configuración puede ejecutar la llamada al servicio web directamente desde la página de configuración del trabajo. Para ello haga clic en el botón fs_ic_call_ws que hay junto a la casilla Permitir acceso a este trabajo por HTTP. Este botón solo se habilita si configura este campo Nombre de host. Si no lo ha hecho, puede llamar al servicio web escribiendo la URL manualmente en la barra de dirección.

 

Si la aplicación le pide credenciales al acceder al servicio web, use las mismas que usó para acceder a FlowForce Server.

 

Recomendamos usar las credenciales de FlowForce Server para la autenticación HTTP solo en casos de prueba. Para producción es mejor crear un usuario nuevo, darle el permiso Servicio - Uso en el contenedor en el que está el trabajo y después acceder al servicio web con esa cuenta. Para desactivar la autenticación HTTP y hacer público el servicio web debe dar el permiso Servicio - Uso al usuario Anónimo, véase ¿Cómo funcionan los permisos?.

 

Como este trabajo tiene argumentos, el explorador los solicitará antes de otorgar acceso al servicio web.

ExamplePathExists06

Si el trabajo se ejecuta correctamente, el explorador mostrará el resultado del trabajo. Por ejemplo:

 

La ruta de acceso C:\ existe.

 

Si el trabajo no devuelve el código de salida 0, el explorador mostrará el mensaje Fallo en la ejecución. Si esto ocurre, consulte el registro del trabajo en FlowForce Server para identificar y resolver el problema (véase Ver el registro de trabajos).

© 2017-2023 Altova GmbH