Ejemplo: comprobar si existe una ruta de acceso

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

Inicio >  Ejemplos de trabajos >

Ejemplo: comprobar si existe una ruta de acceso

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
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).

 

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 Exponer trabajos como servicios web).
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

Para probar el trabajo introduzca http://127.0.0.1:4646/service/ConfirmarRuta en la barra de dirección del explorador (siempre y cuando FlowForce Server se ejecute en el nombre de host y puerto predeterminados). Si definió otra configuración de host y puerto en la página Configuración (véase Configurar dirección y puerto de red), edite la dirección URL consecuentemente. Si el explorador solicita credenciales para poder acceder al servicio web, indique las mismas credenciales que utilizó para iniciar sesión en FlowForce Server.

 

Si utiliza Internet Explorer para probar trabajos de FlowForce Server expuestos como servicios web puede que necesite deshabilitar la opción Mostrar mensajes de error HTTP descriptivos en la pestaña de opciones avanzadas de IE.

 

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).

 


© 2019 Altova GmbH