Substituição Dinâmica
Substituição dinâmica é um tipo de sintaxe que pode ser usada em {{nm.ab}} para substituir dinamicamente no resultado de uma expressão na Camada de Lógica de Negócios e/ou na Camada de IU do Aplicativo. Na Camada de Lógica de Negócios, é usado para fins de substituição dinâmica de dados e, na Camada de IU do Aplicativo, é usado para substituir dinamicamente no valor resultante que está sendo exibido. A substituição dinâmica também pode ser usada em Notificações, onde você deseja substituir informações que estão sendo exibidas, por exemplo {{NomedoCliente}}
.
Ao usar Substituição Dinâmica na Camada de UI do Aplicativo, você precisa atribuir a Página a um Objeto de Negócios para usar a substituição dinâmica. Essas informações são configuradas no nível da Página, então todos os campos necessários para a substituição precisarão estar disponíveis no Objeto de Negócios da Página.
Os benefícios de usar a substituição dinâmica na Lógica de Negócios são que ela permite simplificar a quantidade de informações contidas em uma Expressão e torna as Expressões mais legíveis para humanos.
Sintaxe de Substituição Dinâmica
A sintaxe a ser usada para Substituição Dinâmica é:
`{{AliasName}}`
Aqui, as chaves {{ }} (ou chaves nos EUA) circundam o valor Alias que será usado para a substituição dinâmica. É recomendado que o valor real contido dentro das chaves seja um valor Alias em vez de um valor Column Name ou Expression, pois com o tempo um valor Alias é geralmente considerado mais estático do que um Column Name ou Expression.
Exemplo de Lógica de Negócios
Substituição Dinâmica é muito útil em cláusulas Where, bem como simplifica cálculos na Camada de Lógica de Negócios. Aqui, veremos exemplos específicos onde podemos alavancar Substituição Dinâmica.
Para este exemplo, usaremos o banco de dados Northwinds como nossa fonte e assumiremos que estamos olhando para uma página Orders contendo informações sobre pedidos feitos por meio de um aplicativo de atendimento de pedidos. Primeiro, veremos como podemos usar a Substituição Dinâmica em uma Regra de Lógica de Negócios para que restrinjamos as informações de Orders exibidas apenas aos Orders feitos nos últimos 3 anos:
- Navegue até a página Pedidos do aplicativo, vá para Gaveta de ações > Live Designer
- Analise o ícone engrenagem SQL do Painel de Pedidos
- Copie o Objeto de Negócios Order (Source) e renomeie-o. Por exemplo: Orders (Last Few Years)
- Para a nova Regra, na aba Colunas crie uma nova Expressão que calcule o número de anos desde que um Pedido foi feito usando
DATEDIFF
e forneça um valor de Alias para esta Expressão. Este Alias é o que será usado para substituição dinâmica. Por exemplo: DateDiff - Defina a Cast Option apropriada para o Logical Data Type para a Expression. Aqui, definimos como Number.
- Validar para verificar se os resultados são os esperados
Em seguida, usaremos a substituição dinâmica na cláusula Where do nosso Objeto de Negócio para restringir os resultados que queremos retornar.
- Navegue até a tela Lógica de Negócios onde você está configurando a Regra acima
- Clique para selecionar a aba Onde
- Clique em + Where Clause e adicione a sintaxe Dynamic Substitution, usando nosso valor Alias da Expression recém-criada e forneça informações sobre como você deseja restringir os resultados. Por exemplo:
- Esquerda = {{DateDiff}}
- Operador = <=
- Direita = 3
- Validar e verificar se os registros retornados são apenas os Pedidos feitos nos últimos 3 anos
Por fim, com este exemplo, veremos como podemos simplificar um cálculo usando substituição dinâmica. Continuando a trabalhar com o Objeto de Negócios criado para o exemplo que temos, o modificaremos para incluir uma Expressão adicional que usa substituição dinâmica para encadear o número de anos desde que um Pedido foi feito com a palavra 'anos'.
- Clique em {{nm.ab}} Botão Voltar para retornar à tela Lógica de Negócios onde você está configurando a Regra
- Clique para selecionar a aba Colunas
- Clique em + Coluna e adicione uma Expressão que converte o valor de substituição dinâmica e o une à palavra 'anos':
- Por exemplo:
CAST({{DataDiff}} as string) || 'years'
- Por exemplo:
- Forneça um valor de Alias para esta Expressão. Por exemplo: Anos
- Validar resultados
Exemplo de URL
Se você estiver procurando substituir dinamicamente uma URL em um objeto de dados, você pode usar uma sintaxe como a do exemplo a seguir:
'www.webpage.com/path/path/' || {{Substituição Dinâmica}}
Exemplo de Expressão Complexa
Se você estiver trabalhando com substituição dinâmica em uma Expressão mais complexa, tenha cuidado com a sintaxe. Pode haver casos em que você precise adicionar um conjunto adicional de parênteses para que a sintaxe funcione corretamente (ou como você espera).
Por exemplo, se você fosse usar a seguinte Expressão {{nm.ab}} retornará um erro de Divisão por Zero:
IIF({{Sum}} = 0, 0,({{ContagemConcluída}}/{{Sum}})*100)
Isso ocorre porque o processo e a ordem em que a Expressão está sendo avaliada exigem um conjunto adicional de parênteses para gerar os resultados desejados. Aqui está a versão corrigida da sintaxe:
IIF(({{Sum}}) = 0, 0,((CAST({{ContagemConcluída}} AS DECIMAL(15,5)))/(CAST({{Sum}} AS DECIMAL(15,5))))*100)
Exemplo de Nome de Página Ou Painel
Substituições dinâmicas também podem ser usadas para nomes de páginas ou painéis. Neste cenário de exemplo, usaremos Substituição dinâmica para um nome de painel para o painel Formulário de página de funcionários. Aqui, substituiremos dinamicamente o Nome completo do funcionário como o Nome do painel para o Formulário de funcionário.
- Navegue até a página em seu aplicativo onde você deseja substituir o Nome do Painel. Por exemplo: Funcionário
- Clique no menu Action Drawer, selecione Live Designer
- Selecione o Objeto de Negócios que contém o valor da coluna que você usará para Origem em Opções de Página
- Clique na aba Label Options para o painel que você deseja modificar o Nome do painel. Por exemplo: Employee
-
Modifique o campo Rótulo para conter o valor da coluna que você está usando, usando a sintaxe adequada para Substituição Dinâmica.
- Por exemplo:
{{NomeCompleto}}
- Por exemplo:
-
Clique em Salvar
- Navegue de volta para a página no aplicativo, atualize seu navegador da web e teste
{{nm.ab}} validações
Se você quiser usar substituições dinâmicas com {{nm.ab}} mensagens de Validação, você precisará colocar o valor Substituição Dinâmica na própria Mensagem de Validação e também no Objeto de Negócio do Painel.
Exemplo de Mensagem de Validação: Não pode exceder {{Desconto Máximo}}
Limitações
A seguir estão as limitações conhecidas ao trabalhar com substituições dinâmicas:
- Não há suporte atualmente para nomes de colunas em um gráfico
- A formatação de moeda estrangeira não permite substituição dinâmica no momento. A solução alternativa é formatar no objeto de dados e converter como string, o que faz com que a função total funcione.