Função de Tempo de Execução Mvsql - Enum()
Resumo
A Função Enum em App Builder substitui a Chave Primária pela expressão Enum. A função Enum só pode ser usada para procurar valores em tabelas que tenham uma única Chave Primária definida (não mais do que uma PK) e que tenham uma de suas colunas marcadas como o tipo de uso Enum.
Um ENUM é um objeto de string com um valor escolhido de 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 em App Builder pode ser usado para manter as regras criadas na camada de lógica de negócios legíveis por humanos. Usando Enum em App Builder é útil ao criar qualquer aplicativo no qual várias pessoas trabalharão, para ajudar a simplificar o entendimento das regras.
Quando a Função Enum é usada no mvSQL em uma cláusula Where ou uma instrução IIF, o painel SQL resultante na tela Business SQL para a Regra exibirá o valor da Chave Primária UUID (da tabela onde a coluna Enum reside). Isso 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 múltiplos 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.
Valor Enumerado
O valor na coluna do tipo enumerado. Deve ser uma string.
Devoluções
A Chave Primária é substituída pelo valor enum pesquisado na tabela de consulta em tempo de execução. O tipo com o qual ela é substituída depende do tipo da Chave Primária da tabela de consulta 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, depois adicionado a uma Regra de Lógica de Negócios existente (o Objeto Status (Origem)) e depois exposto à IU do Aplicativo no Painel de Várias 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 Results para a 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 (Source) existente
-
Com a coluna Enum adicionada a uma Regra, podemos adicioná-la à Camada de UI do Aplicativo para expô-la lá. Aqui, adicionamos como um Controle ao Painel de Várias Linhas de Status:
Exemplo #2
Neste exemplo, Enum é usado na tabela EmployeeType e então adicionado a uma nova Rule usando a função Enum em uma cláusula Where (no mvSQL).
-
Adicione a coluna Enum à tabela EmployeeType, defina o Logical Data Type como String e o Usage como Enum
-
Clique no botão Results para a tabela EmployeeType e especifique os valores para a coluna Enum. Como alternativa, 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 visando a 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 da EmployeeTypeLookupTable. Ex:
'17457c85-b0c9-4d45-8681-5ee566429ddd'
Usado em uma declaração mvSQL, a declaraçã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'