Función de tiempo de ejecución mvSQL Enum() en Jitterbit App Builder
Resumen
La función Enum del App Builder reemplaza la clave principal por la expresión Enum. Esta función solo se puede usar para buscar valores en tablas que tengan una sola clave principal definida (no más de una clave principal) y que tengan una de sus columnas marcada como tipo de uso Enum.
Un ENUM es un objeto de cadena con un valor seleccionado de una lista de valores permitidos que se enumeran explícitamente en la especificación de la columna al crear la tabla. La función Enum de App Builder permite mantener las reglas creadas en la capa de lógica de negocio legibles. Usar Enum en App Builder es útil al crear aplicaciones en las que colaboran varias personas, ya que facilita la comprensión de las reglas.
Cuando se utiliza la función Enum en mvSQL, ya sea en una cláusula Where o en una sentencia IIF, el panel SQL resultante en la pantalla SQL de negocios de la regla mostrará el UUID del valor de la clave principal (de la tabla donde reside la columna Enum). Esto puede ser útil para confirmar que la regla sustituye los datos correctos.
Nota
La función Enum no se puede usar en las reglas de migración.
Debe rellenar los datos de la columna Enum para que la función funcione correctamente (ya sea en la capa de lógica de negocio o en la capa de interfaz de usuario de la aplicación).
Sintaxis
enum(<LookupTableName>,'<EnumValue>')
Ejemplo de uso de una enumeración en una cláusula Where con múltiples valores:
TableID IN (Enum(LookupTableName, 'EnumValue'), Enum(LookupTableName, 'EnumValue'), Enum(LookupTableName, 'EnumValue'), ...)
Parámetros
Nombre de tabla de búsqueda
El nombre de la tabla en la que buscaremos el valor enumerado.
Valor de enumeración
El valor de la columna de tipo enumerado. Debe ser una cadena.
Devoluciones
La clave principal se reemplaza con el valor de enumeración buscado en la tabla de búsqueda durante la tiempo de ejecución. El tipo de clave que se reemplaza depende del tipo de clave principal de la tabla de búsqueda examinada.
Observaciones
La función de enumeración se utiliza normalmente en la cláusula where, pero podría emplearse en otras partes de la instrucción mvSQL.
Ejemplos
Ejemplo #1
En este ejemplo, se utiliza Enum en la tabla Estado, se agrega a una regla de lógica de negocio existente (el objeto Estado (Origen)) y se muestra en la interfaz de usuario de la aplicación en el panel Estado Multifila.
-
Agregue la columna Enum a la tabla Estado, establezca el tipo de dato lógico en Cadena y el uso en Enum.
-
Haga clic en el botón Resultados de la tabla Estado y especifique los valores de la columna Enumeración.
-
Puede crear una nueva regla para aprovechar el valor de la Enumeración o modificar una existente. En este ejemplo, agregaremos la columna Enumeración a la regla Estado (Origen) existente.
-
Con la columna Enum añadida a una regla, podemos añadirla a la capa de interfaz de usuario de la aplicación para exponerla allí. Aquí la añadimos como control al panel de estado multifila:
Ejemplo #2
En este ejemplo, se usa Enum en la tabla EmployeeType y luego se agrega a una nueva regla mediante la función Enum en una cláusula Where (en mvSQL).
-
Agregue la columna Enum a la tabla EmployeeType, establezca el tipo de dato lógico en String y el uso en Enum.
-
Haga clic en el botón Resultados de la tabla EmployeeType y especifique los valores de la columna Enum. Como alternativa, puede configurar una página en la aplicación donde los usuarios puedan especificar estos valores, o bien, mostrar la columna como un control en la interfaz de usuario de la aplicación e introducir los datos allí.
-
Puede usar la función Enum en una regla existente, pero en este ejemplo crearemos una nueva regla dirigida a la tabla Empleados.
-
En la regla, agregaremos la función Enum a una cláusula Where en mvSQL.
Ejemplo #3
Enum(EmployeeTypeLookup, 'Fulltime')
Devuelve la clave principal de la tabla EmployeeTypeLookupTable. Ejemplo:
'17457c85-b0c9-4d45-8681-5ee566429ddd'
Usado en una sentencia mvSQL, la sentencia típica donde se usaría es:
select * from Employee where EmployeeTypeId = enum(EmployeeTypeLookup,'Fulltime')
en vez de:
select * from Employee where EmployeeTypeId = '17457c85-b0c9-4d45-8681-5ee566429ddd'