Exemplo de Notificação Usando Consultar Dinâmica para Inserir em Tabela HTML
Este artigo fornece uma visão geral sobre como usar uma Consulta Dinâmica para inserir informações em uma tabela HTML em uma Regra de Notificação em App Builder. Existem várias etapas envolvidas para atingir esse resultado, e o artigo faz as seguintes suposições sobre o seu App Builder ambiente:
- Executando SQL 2017+, necessário para usar o
String_Agg()
função - Tabelas e dados existem na Camada de Dados para dar suporte a este cenário
- Compreensão básica da configuração da Regra de Notificação
Nota
Durante a fase de teste de implementação desta (ou de qualquer Regra de Notificação), recomendamos usar um endereço email de teste como o valor Para() na Notificação até que esteja funcionando corretamente.
Caso de Uso Empresarial
Uma empresa quer usar an App Builder aplicativo para gerenciar um processo de aprovação referente a reinicializações de servidores. Como parte dos requisitos, eles precisam enviar uma notificação email contendo uma lista de servidores para o(s) respectivo(s) proprietário(s) do servidor em um horário especificado. Eles estão procurando entender como usar uma Regra de Notificação para trabalhar dinamicamente para cada proprietário do servidor.
Por exemplo:
Há 20 servidores no total. Mary está listada como proprietária de 15 servidores. John está listado como proprietário dos 5 servidores restantes. Um servidor pode ter vários proprietários, então John também é o proprietário compartilhado em 2 dos servidores de Mary para um total de 7. Mary deve receber um email contendo seus 15 servidores e John deve receber um email contendo seus 7 servidores (5 com ele como proprietário mais os dois dos quais Mary e John são proprietários compartilhados).
A Camada de Negócios contém uma visualização existente com todas as informações necessárias para a tabela (por exemplo, proprietários de cada servidor, endereços email).
Como Configurar em App Builder
- Crie uma Regra de Subconsulta que retorne 1 registro para cada instância de um Proprietário do Servidor e do Servidor. Inclua as colunas ServerOwnerID, ServerOwner, ServerName
-
Traga a Subconsulta para uma nova Regra de Subconsulta e adicione a Coluna Server OwnerID (ou equivalente). Adicione uma nova expressão para fazer um
count(1)
. Em seguida, adicione as seguintes expressões adicionais que construirão a tabela HTML:TableBody
${String_AGG('<tr> <td>' + Subquery.ServerOwner + '</td> <td>' + Subquery.ServerName + '</td> </tr>','')}
Cabeçalho da Tabela
'<div> </div><table class="requests"> <tbody> <tr> <td>Server Owner</td> <td>ServerName</td> </tr>'
TabelaFechar
'</table><div> </div> <div>Thanks,</div> <div>Server Team</div>'
Exemplo de guia Colunas para subconsulta
-
Crie uma nova Regra de Notificação. Traga a Subconsulta que você criou com a estrutura de tabela.
- Junte a subconsulta à tabela que contém a lista de ServerOwners e seus endereços email.
- Adicione o endereço email e direcione-o para o campo Para().
-
Adicione uma nova expressão para CSS para ajudar a estilizar. Alias como CSS. Exemplo de CSS:
'<style> .requests { font-size: 14px; line-height: 20px; font-weight: 400; -webkit-font-smoothing: antialiased; font-smoothing: antialiased; margin: 0 0 40px 0; width: 50%; box-shadow: 0 1px 3px rgba(0,0,0,0.2); display: table; border-collapse: collapse; border: 1px solid black; } .requests tr:first-child { font-weight: 900; background: #D3D3D3; } .requests th { border: 1px solid black; } .requests tr { border: 1px solid black; } .requests td { padding: 6px 12px; border: 1px solid black; } </style>'
-
Adicione o cabeçalho da tabela, o corpo e feche as colunas. Crie uma nova expressão que os concatenará:
{{CabeçalhoDaTabela}} || {{TabelaCorpo}} || {{TabelaFechar}} || {{CSS}}
e Alias como Tabela.Exemplo de guia de colunas para regra de notificação
-
Na tela App Workbench > Notificações você pode modificar e testar ainda mais a regra de notificação. Neste ponto do exemplo, você pode adicionar
{{Tabela|HTML}}
para o corpo. Você pode adicionar qualquer outra mensagem que precise incluir. Neste exemplo, substituiremos o Nome do Funcionário e incluiremos um link de vinculação:Exemplo de tela de notificação