Altova MobileTogether Designer

Cuando se desencadena el evento, la acción Ejecutar (BD) ejecuta la instrucción SQL de la acción en la fuente de datos que está seleccionada en el cuadro combinado Conexión. Este cuadro combinado enumera todas las fuentes de datos del proyecto y también ofrece la opción de configurar una conexión de BD más para utilizarla con esta acción concreta. Si se marca la casilla Almacenar resultados de las instrucciones SELECT en \$MT_DBExecute_Result, los resultados se almacenan en la variable \$MT_DBExecute_Result. Más tarde puede usar esta variable en otras expresiones XPath de la página para suministrar el resultado de la acción Ejecutar (BD).

MTDDBExecute01

 

Procesamiento de errores

La opción Cuando haya errores sirve para definir qué ocurre cuando se produzca un error. Se puede definir un control de errores preciso para esta acción, de forma que los errores se traten como advertencias y no errores. La ventaja es que no necesita comprobar los errores en las acciones para las que ya ha definido el control de errores. Estas son las opciones que se pueden definir:

 

Anular script: cuando se produzca un error, se interrumpirán todas las acciones sucesivas del evento desencadenado. Se trata de la opción predeterminada para procesar errores. Si a pesar del error desea continuar con el flujo de trabajo, seleccione otra opción.

Continuar: las acciones no se interrumpen y puede seleccionar qué ocurre cuando no se producen errores (Cuando la operación finalice correctamente) y cuando se producen (Cuando haya errores). Por ejemplo, puede definir que aparezca un cuadro de mensaje confirmando si la página se cargó correctamente o no.

Generar: si se detecta un error, con esta opción se puede generar una opción que se almacena en la variable de la acción Probar/Capturar. La parte Capturar de esta acción sirve para especificar qué ocurre cuando se produce un error. Si no se detectan errores, se procesará la acción siguiente. Para más información consulte el apartado dedicado a la acción Probar/Capturar.

 

Consulte el apartado Diseño de páginas | Base de datos | La acción Ejecutar (BD) para obtener más información.

 

Nota:la acción Ejecutar (BD) sirve para interactuar con los datos de las fuentes de página de BD y no es el método ideal para visualizar datos. Si desea visualizar datos de un nodo de fuente de página de BD, inserte (en el diseño) un control que esté vinculado al nodo de la fuente de página. Para más información consulte las secciones dedicada a los controles y las fuentes de datos. Los tutoriales incluyen instrucciones paso a paso para visualizar la información de las fuentes de datos.

 

La instrucción SQL

Para introducir o editar la instrucción SQL haga clic en el botón Examinar. Esto abre el cuadro de diálogo "Editar instrucción SQL" (imagen siguiente). El objeto raíz que aparece en la parte inferior del cuadro de diálogo se selecciona automáticamente en función de la opción elegida en el cuadro combinado Conexión. El campo Objeto raíz no se puede editar. Antes de continuar, compruebe que se trata del objeto raíz correcto.

Haga clic para expandir/contraer

 

Instrucción fija con parámetros opcionales

Para introducir una instrucción SQL, seleccione la opción Instrucción fija con parámetros opcionales y después introduzca la instrucción SQL. El uso de parámetros en la instrucción SQL permite una mayor flexibilidad. Por ejemplo, en la imagen anterior, en lugar de introducir un valor fijo para la cláusula WHERE, se utilizó el nombre de parámetro Maker para suministrar el valor de un nodo de una fuente de página XML. A continuación puede ver un valor fijo (en la primera línea) y el parámetro Maker (en la segunda línea).

 

WHERE Manufacturer= 'BMW'

WHERE Manufacturer= :Maker 

 

Para usar un parámetro, escriba el nombre de parámetro con el prefijo : en la instrucción SQL donde quiere usarlo. Nada más escribir el primer carácter que siga al prefijo :, se crea una entrada para el parámetro en el panel Parámetros del cuadro de diálogo. El siguiente paso consiste en escribir la expresión XPath que suministrará el valor del parámetro (en el panel Parámetros). Recuerde que puede introducir tantos parámetros como quiera.

 

Nota:en la instrucción SQL se utilizan nombres de columna y de tabla de la base de datos de origen porque la instrucción SQL consulta la BD directamente. Sin embargo, en las expresiones XPath de parámetros es necesario utilizar los nombres de los nodos de las estructuras de las fuentes de página (Row, RowSet, etc.), ya que los valores relacionados con el diseño están almacenados en estas estructuras.

 

 

Instrucción generada con XPath

También puede usar XPath para generar una instrucción SQL. Seleccione la opción Instrucción generada con XPath y escriba la expresión XPath que generará la instrucción SQL necesaria. La ventaja de este método es que permite una mayor flexibilidad a la hora de crear instrucciones SQL. Por ejemplo, puede incluir nodos de la estructura del diseño, otras construcciones XPath y permitir al usuario final que calcule y genere partes de la instrucción SQL.

 

Para generar una instrucción SQL usando XPath, seleccione Instrucción generada con XPath. Introduzca la expresión XPath en el cuadro de diálogo Editar expresión XPath/XQuery que aparece y haga clic en Aceptar.

 

Ejecutar una vez o por cada nodo

La instrucción SQL se puede ejecutar una vez en la fuente de datos o en todos los nodos de un conjunto de nodos determinado. Si selecciona esta última opción, deberá introducir una expresión XPath que genere el conjunto de nodos. La instrucción SQL se ejecutará por cada nodo del conjunto de nodos creado. También puede consultar el valor del nodo actual del conjunto de nodos por medio de la variable \$MT_TargetNode. Por ejemplo, puede usar esta variable en la definición de un parámetro que se utilice en la instrucción SQL.

MTDDBExecute02

 

La variable \$MT_DBExecute_Result

El conjunto de nodos o el valor que devuelva la instrucción SQL de la acción Ejecutar (BD) se guarda en la variable \$MT_DBExecute_Result de MobileTogether Designer. Esta variable almacena el resultado de la última acción Ejecutar (BD) del proyecto y se puede utilizar en expresiones XPath en otras partes del proyecto.

 

Si la acción Ejecutar (BD) devuelve un conjunto de nodos, puede construir un elemento e insertarlo en el conjunto de nodos como elemento secundario del elemento construido. Otra opción es serializar el conjunto de nodos usando la función serialize (), por ejemplo: serialize(\$MT_DBExecute_Result). En la imagen siguiente se muestran las dos expresiones XPath subrayadas en rojo.

MTDDBExecuteResult

Si desea acceder a un nodo específico del conjunto de nodos, puede hacerlo con una expresión XPath. Por ejemplo, si la instrucción SELECT de la imagen anterior devuelve el siguiente conjunto de nodos:

 

<DB>

  <RowSet>

      <Row Model="Z3 COUPE 2014"/>

      <Row Model="Z3 COUPE 2015"/>

      <Row Model="Z3 COUPE 2016"/>

      <Row Model="Z4 3.0 SI COUPE 2014"/>

      <Row Model="Z4 COUPE 2015"/>

  </RowSet>

</DB>

 

Para acceder al nombre del modelo del primer coche, la expresión XPath sería: \$MT_DBExecute_Result/DB/RowSet/Row[1]/@Model.

Para acceder a la fila del coche con el año 2016 en el nombre del modelo, la expresión XPath sería: \$MT_DBExecute_Result/DB/RowSet/Row[@Model[contains(. , '2016')]].

 

Funciones de extensión de MobileTogether

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.

 

mt-available-db-connection-names()

mt-db-any-changed-fields()

mt-db-any-changed-rows()

mt-db-deleted-original-fields()

mt-db-deleted-original-rows()

mt-db-file-path()

mt-db-modified-fields()

mt-db-modified-rows()

mt-db-new-fields()

mt-db-new-rows()

mt-db-original row()

mt-external-error-code()

mt-external-error-text()

 

 

© 2017-2023 Altova GmbH