La acción Generar está pensada para ser utilizada en la parte Probar de una acción Probar/Capturar se procesa si el nombre del país no es USA (imagen siguiente). Esta acción evalúa una expresión XPath. Si el resultado de la evaluación no es una secuencia vacía, se genera una excepción y la excepción se almacena en la variable de la acción Probar/Capturar.
En el ejemplo de la imagen anterior se genera una excepción si la geoubicación del dispositivo no está dentro de los EE UU. Esta es la expresión XPath utilizada:
if ($MT_GEOLOCATION/Root/Address/@CountryName != 'USA')
then (concat( 'Warning: Device location is outside the US: ', $MT_GEOLOCATION/Root/Address/@CountryName))
else ()
Así es como funciona esta expresión:
•La cláusula if comprueba si el valor del nodo $MT_GEOLOCATION/Root/Address/@CountryName es 'USA' o no.
•La cláusula then se procesa si el nombre del país no es USA. Esta cláusula genera una cadena de texto.
•La cláusula else se procesa si el nombre del país sí es USA. Esta cláusula genera una secuencia vacía.
Si el país de la geoubicación no es USA, entonces la condición es true y la expresión da como resultado la cadena generada por la cláusula then. Como el resultado no es una secuencia vacía, se genera una excepción y la cadena generada por la expresión se almacena en la variable de la acción Probar/Capturar: $Not-USA-Warning.
Si el país de la geoubicación sí es USA, entonces la condición es false y la expresión da como resultado una secuencia vacía (generada por la cláusula else). Como el resultado es una secuencia vacía, no se genera ninguna excepción y, por tanto, no se ejecuta la parte Capturar de la acción Probar/Capturar.
Nota: | si una secuencia contiene un elemento de cadena vacío (''), entonces la secuencia no está vacía (y se genera una excepción). |
En el tutorial Compartir geoubicaciones puede ver un ejemplo de uso de las acciones Probar/Capturar y Generar.
MobileTogether cuenta con distintas funciones de extensión XPath creadas específicamente para usarlas en los diseños de MobileTogether. Algunas de ellas son especialmente útiles para ciertas acciones en concreto. Por ejemplo, mt-available-languages() devuelve los idiomas en que está disponible la solución y se podría usar, por ejemplo, con la acción Cuadro de mensaje. Si alguna función es especialmente relevante para una acción, aparece a continuación. Para ver una lista completa de funciones de extensión y sus descripciones consulte Funciones de extensión de MobileTogether.