Função de Tempo de Execução mvSQL - ENUM()¶
Resumo¶
A Função Enum no Vinyl substitui a Chave Primária pela expressão Enum. A função Enum só pode ser usada para pesquisar valores em tabelas que tenham uma única chave primária definida (não mais de uma PK) e que tenham uma de suas colunas marcada como o tipo de uso Enum.
Um ENUM é um objeto string com um valor escolhido em uma lista de valores permitidos que são enumerados explicitamente na especificação da coluna no momento da criação da tabela. A função Enum no Vinyl pode ser usada para manter as regras criadas na camada de lógica de negócios legíveis por humanos. Usar Enum no Vinyl é útil ao construir qualquer aplicativo no qual várias pessoas trabalharão, para ajudar a simplificar a compreensão das regras.
Quando a Função Enum é usada no mvSQL em uma cláusula Where ou em uma instrução IIF, o painel SQL resultante na tela Business SQL para a Regra exibirá o UUID do valor da Chave Primária (da tabela onde reside a coluna Enum). Isto pode ser útil ao confirmar que a Regra está substituindo os dados corretos.
Nota
A função Enum não pode ser usada em regras de migração.
Você deve preencher os dados da coluna Enum para que a função funcione corretamente (na camada de lógica de negócios ou na camada de UI do aplicativo).
Sintaxe¶
enum(<LookupTableName>,'<EnumValue>')
Exemplo de Enum sendo usado em uma cláusula Where com vários valores:
TableID IN (Enum(LookupTableName, 'EnumValue'), Enum(LookupTableName, 'EnumValue'), Enum(LookupTableName, 'EnumValue'), ...)
Parâmetros¶
Nome da Tabela de Pesquisa¶
O nome da tabela na qual procuraremos o valor enumerado.
EnumValue¶
O valor na coluna de tipo enumerado. Isso deve ser uma string.
Devoluções¶
A chave primária é substituída pelo valor enum pesquisado na tabela de pesquisa em tempo de execução. O tipo pelo qual ele é substituído depende do tipo de chave primária da tabela de pesquisa que está sendo examinada.
Observações¶
A função enum é normalmente usada na cláusula where, mas pode ser usada em outras partes da instrução mvSQL.
Exemplos¶
Exemplo 1¶
Neste exemplo, Enum é usado na tabela Status e, em seguida, adicionado a uma regra de lógica de negócios existente (o objeto Status (Origem)) e, em seguida, exposto à interface do usuário do aplicativo no painel de múltiplas linhas de status.
-
Adicione a coluna Enum à tabela Status, defina o Tipo de Dados Lógicos como String e o Uso como Enum
-
Clique no botão Resultados da tabela Status e especifique os valores para a coluna Enum
-
Você pode criar uma nova regra para aproveitar o valor Enum ou modificar uma existente. Neste exemplo, adicionaremos a coluna Enum à regra Status (Fonte) existente
-
Com a coluna Enum adicionada a uma regra, podemos adicioná-la à camada de UI do aplicativo para expô-la lá. Aqui nós o adicionamos como um controle ao painel de múltiplas linhas de status:
Exemplo #2¶
Neste exemplo, Enum é usado na tabela EmployeeType e depois adicionado a uma nova regra usando a função Enum em uma cláusula Where (no mvSQL).
-
Adicione a coluna Enum à tabela EmployeeType, defina o tipo de dados lógicos como String e o uso como Enum
-
Clique no botão Resultados da tabela EmployeeType e especifique os valores para a coluna Enum. Alternativamente, você pode configurar uma página de configuração no aplicativo onde os usuários podem especificar esses valores ou expor a coluna como um controle para a interface do usuário do aplicativo e inserir os dados lá.
-
Você pode usar a função Enum em uma regra existente, mas neste exemplo criaremos uma nova regra direcionada à tabela Employee
-
Na Regra, adicionaremos a função Enum a uma cláusula Where no mvSQL
Exemplo #3¶
Enum(EmployeeTypeLookup, 'Fulltime')
retorna a chave primária do EmployeeTypeLookupTable. Ex:
'17457c85-b0c9-4d45-8681-5ee566429ddd'
Usado em uma instrução mvSQL, a instrução típica onde isso seria usado é:
select * from Employee where EmployeeTypeId = enum(EmployeeTypeLookup,'Fulltime')
em vez de:
select * from Employee where EmployeeTypeId = '17457c85-b0c9-4d45-8681-5ee566429ddd'