Saltar al contenido

Función de Tiempo de Ejecución Mvsql: ENUM()

Resumen

La Función Enum en Vinyl reemplaza la clave principal con la expresión Enum. La función Enum solo se puede usar para buscar valores en tablas que tienen una única clave principal definida (no más de una PK) y que tienen una de sus columnas marcada como tipo de uso Enum.

Un ENUM es un objeto de cadena con un valor elegido de una lista de valores permitidos que se enumeran explícitamente en la especificación de la columna en el momento de la creación de la tabla. La función Enum en Vinyl se puede utilizar para mantener legibles las reglas creadas en la capa de lógica empresarial. Usar Enum en Vinyl es útil al crear cualquier aplicación en la que trabajarán varias personas, para ayudar a simplificar la comprensión de las reglas.

Cuando la función Enum se usa en mvSQL en una cláusula Where o una declaración IIF, el panel SQL resultante en la pantalla Business SQL para la regla mostrará el valor de clave principal UUID (de la tabla donde reside la columna Enum). Esto puede resultar útil a la hora de confirmar que la regla está sustituyendo los datos correctos.

Nota

La función Enum no se puede utilizar en reglas de migración.

Debe completar los datos de la columna Enum para que la función funcione correctamente (ya sea en la capa de lógica empresarial o en la capa de interfaz de usuario de la aplicación).

Sintaxis

enum(<LookupTableName>,'<EnumValue>')

Ejemplo de uso de Enum 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.

ValorEnumeración

El valor de la columna de tipo enumerado. Esto debería ser una cuerda.

Devoluciones

La clave principal se reemplaza con el valor de enumeración buscado en la tabla de búsqueda en tiempo de ejecución. El tipo con el que se reemplaza depende del tipo de clave principal de la tabla de búsqueda que se examina.

Observaciones

La función enum se usa normalmente en la cláusula donde, pero podría usarse en otras partes de la declaración mvSQL.

Ejemplos

Ejemplo 1

En este ejemplo, Enum se utiliza en la tabla Estado, luego se agrega a una regla de lógica empresarial existente (el objeto Estado (fuente)) y luego se expone a la interfaz de usuario de la aplicación en el panel de varias filas de estado.

  1. Agregue la columna Enum a la tabla Estado, establezca el Tipo de datos lógicos en Cadena y el Uso en Enum

    Definición de enumeración

  2. Haga clic en el botón Resultados de la tabla Estado y especifique los valores para la columna Enum.

  3. Puede crear una nueva regla para aprovechar el valor de Enum o modificar una existente. En este ejemplo, agregaremos la columna Enum a la regla Estado (Fuente) existente.

    Enumeraciónlógicaempresarial

  4. Con la columna Enum agregada a una regla, podemos agregarla a la capa de interfaz de usuario de la aplicación para exponerla allí. Aquí lo agregamos como control al panel de varias filas de estado:

    Enumapp

Ejemplo #2

En este ejemplo, Enum se usa en la tabla EmployeeType y luego se agrega a una nueva regla usando la función Enum en una cláusula Where (en mvSQL).

  1. Agregue la columna Enum a la tabla EmployeeType, establezca el tipo de datos lógicos en String y el uso en Enum.

    2018 10 10 10 28 32 Ventana

  2. Haga clic en el botón Resultados de la tabla EmployeeType y especifique los valores para la columna Enum. Alternativamente, puede configurar una página de configuración en la aplicación donde los usuarios pueden especificar estos valores, o exponer la columna como un control a la interfaz de usuario de la aplicación e ingresar los datos allí.

    2018 10 10 10 25 17 Ventana

  3. Puede usar la función Enum en una regla existente, pero en este ejemplo crearemos una nueva regla dirigida a la tabla Empleado.

    2018 10 10 13 48 23 Ventana

  4. En la regla, agregaremos la función Enum a una cláusula Where en mvSQL.

    2018 10 10 10 25 49 Ventana

Ejemplo #3

Enum(EmployeeTypeLookup, 'Fulltime')

devuelve la clave principal de EmployeeTypeLookupTable. Ex:

'17457c85-b0c9-4d45-8681-5ee566429ddd'

Usada en una declaración mvSQL, la declaración 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'