Saltar al contenido

mvSQL en Jitterbit App Builder

Descripción general

mvSQL es el dialecto SQL propio de App Builder. Permite a los usuarios aprender y utilizar un único conjunto de sintaxis y funciones, mientras que App Builder traduce esa sintaxis a expresiones apropiadas para cada proveedor. mvSQL se puede utilizar para consultar bases de datos relacionales, almacenamiento, REST, sistemas de archivos o cualquier otro tipo de proveedor de datos que App Builder admita.

Versiones de mvSQL

Las versiones de mvSQL compatibles con App Builder se enumeran con la versión más antigua compatible apareciendo primero (Versión 1).

Versión 1

La versión heredada más antigua que App Builder admite, la Versión 1 de mvSQL es aún más estricta de lo que permitimos antes de refactorizar la gramática y el analizador. La mayoría de las aplicaciones heredadas de App Builder deberían ejecutarse con esta versión.

Versión 2

La Versión 2 de mvSQL mejora la sintaxis de paso directo, admite la capacidad de cerrarla y reanudar expresiones mvSQL regulares, y admite caracteres de escape.

Ejemplo

La Versión 1 vería esto (en MS SQL Server) ${ [vendor syntax] } || 'my example' como ${ [vendor syntax] || 'my example' } renderizando [vendor syntax] || 'my example'.

La Versión 2 lo analizaría como estaba previsto y lo renderizaría como [vendor syntax] + 'my example'. Nota que la concatenación es apropiada para el proveedor).

Versión 3

La Versión 3 de mvSQL requiere que los prefijos de tabla sean correctos. Hasta esta versión, si el prefijo de tabla era incorrecto, y App Builder podía inferirlo verificando las otras columnas, permitíamos prefijos de tabla incorrectos.

Ejemplo

En versiones anteriores de mvSQL, usar un alias de tabla que no existe, o incluso uno que existe pero que no tiene la columna referenciada, seguiría funcionando siempre que ese nombre de columna solo apareciera en una de las fuentes. Este escenario presenta un problema cuando ese mismo nombre de columna se agrega a otra fuente y la regla de negocio deja de funcionar.

Versión 4

En la Versión 4 de mvSQL, las funciones de Runtime generan un tipo apropiado, en lugar de ser siempre una cadena, y los valores nulos no se combinan en una cadena vacía.

Ejemplo

Shared(ColumnName, numeric)

  • Antes de la versión 4, App Builder generaría '0' si la columna no se proporcionaba, o '1' si se proporcionaba (nota que se renderiza como una cadena, asumiendo que el valor compartido aquí es 1 por supuesto)
  • A partir de la versión 4, App Builder ahora genera null si no se proporcionó, y 1 (sin comillas), también parametrizamos si el proveedor lo admite (@p0), ya que esto puede aprovechar un mejor rendimiento del proveedor.
  • Esto también significa que es más fácil combinar el valor, antes si querías cambiar el valor si no se proporcionaba necesitabas algo como IIF(Shared(ColumnName) = '', -1, Shared(ColumnName, numeric)), ahora puedes usar ISNULL(Shared(ColumnName, numeric), -1)
  • Las nuevas reglas se crean usando la versión más alta disponible (versión 4), pero para evitar romper reglas heredadas, las mantuvimos como estaban. Si se realizan cambios en una regla que no se verán afectados por esto (principalmente reglas sin funciones de runtime) App Builder actualizará automáticamente la versión de mvSQL.

Versión 5

En la versión 5, mvSQL trata cualquier paso directo como AGRUPABLE cuando forma parte de una consulta de agregación.

Para indicar que una expresión es un agregado, llámala con la función Expression().

Ejemplo

Expression(${Count(1)})

Expresiones de paso directo

Las expresiones de paso directo utilizan la sintaxis ${...} para inyectar SQL específico del proveedor en una consulta mvSQL (consulta Escapar SQL para detalles de sintaxis). Debido a que las expresiones de paso directo son específicas del proveedor, no son portátiles entre tipos de bases de datos, por lo que se desaconseja su uso. Si se pueden usar expresiones de paso directo depende de tu versión de App Builder:

  • En App Builder 4.65 y anteriores, se pueden usar expresiones de paso directo.

  • En App Builder 4.66 y posteriores, debes habilitar la opción Allow Passthrough Expressions en la pestaña Data Sources del App Workbench para mantener válidas las reglas que contienen expresiones de paso directo. De lo contrario, App Builder aún te permite guardar tal regla, pero la marca como inválida cuando ejecutas Validate Rules o ves los resultados de la regla.

Recursos