Ir para o conteúdo

Regra de notificação para construir uma tabela HTML a partir de uma consulta dinâmica

Introdução

Esta página fornece um exemplo de como enviar uma notificação contendo dados formatados em HTML.

O exemplo considera o caso de uso de uma empresa que precisa de um aplicativo para gerenciar um processo de aprovação de reinicialização de servidor. O aplicativo deve ser capaz de enviar um email para o gerente de sistema designado de cada servidor. Os servidores podem ter mais de um gerente designado. O email deve conter uma tabela HTML mostrando os servidores a serem reiniciados.

Para configurar este exemplo, siga os passos em cada seção.

Configurar as configurações de email

Para configurar as configurações de email do seu aplicativo, siga estes passos:

  1. Configure o servidor SMTP:

    1. Selecione IDE > Servidores de Notificação.
    2. Clique no ícone abrir registro para a entrada SMTP. O diálogo Endpoint de Notificação é aberto.
    3. No campo Endereço de Remetente, insira o endereço de email do remetente.
    4. No campo Uri, insira o endereço do seu servidor SMTP, incluindo o prefixo do protocolo (smtp:// ou smtps://), e o sufixo do número da porta (geralmente :587, mas pode ser um dos :25, :465 ou :2525).
    5. Expanda a seção Segurança.
    6. Insira as credenciais do servidor SMTP nos campos Nome de Usuário e Senha.
    7. Expanda a seção Teste.
    8. Insira endereços de email válidos nos campos De e Para, em seguida, clique no botão Testar Email. Isso envia um email para e a partir desses endereços via o servidor SMTP configurado.
    9. Quando o teste for bem-sucedido, feche o diálogo Endpoint de Notificação.
  2. Configure seu endereço de email:

    1. Selecione > Ver Perfil do Usuário. O diálogo Perfil do Usuário é aberto.
    2. No campo Endereço de Email, insira um endereço de email válido. (Este é o endereço do qual os emails parecem ser enviados.)
    3. Pressione Enter, em seguida, feche o diálogo.
  3. Defina a URL do site padrão:

    1. Selecione IDE > Provedores de Segurança.
    2. No painel Configuração, selecione Mais > Sites.
    3. Clique no ícone abrir registro para a linha marcada como padrão. O diálogo Site é aberto.
    4. Clique no botão Editar.
    5. No campo URL, insira um valor para a URL do aplicativo.
    6. Clique no botão Salvar.
    7. Feche o diálogo.

Criar um aplicativo

  1. No menu do site, clique no botão + App.
  2. No campo Nome, insira ServerOwners, e depois clique no botão Criar App.

Nota

Se você quiser usar um aplicativo existente, selecione o valor correto para Fonte de Dados ao configurar as regras nesta página.

Criar tabelas

Para configurar as tabelas para este exemplo, selecione > App Workbench > Tabelas, e depois use os botões + Tabela e + Coluna para adicionar as tabelas e colunas nesta seção.

Importante

Para cada tabela, clique no botão Publicar na Camada de Negócios, e depois clique no botão Publicar na Camada de UI, selecionando os padrões Início para a localização do menu e Grade e Formulário para o tipo de painel.

Tabela: Servidores

Esta tabela armazena os detalhes dos seus servidores:

Nome da coluna Tipo de dado Chave
primária
Chave
estrangeira
Obrigatório
ServerID ID Único
ServerName String
ServerLocation String
(Opcional) Detalhes adicionais sobre o servidor conforme necessário.

Tabela de servidores

Tabela: Proprietários

Esta tabela armazena os detalhes das pessoas responsáveis pelos servidores:

Nome da coluna Tipo de dado Chave
primária
Chave
estrangeira
Obrigatório
OwnerID ID Único
OwnerName String
OwnerEmailAddress Email
(Opcional) Detalhes adicionais sobre os proprietários conforme necessário.

Tabela de Proprietários

Tabela ServerOwners

Esta tabela conecta proprietários com servidores:

Nome da coluna Tipo de dado Chave primária
Chave estrangeira
Obrigatório
ServerOwnerID ID Único
ServerID ID Único
OwnerID ID Único

Tabela ServerOwners

Dica

Para esta tabela, selecione a aba Colunas, em seguida clique no ícone na coluna FK para adicionar as chaves estrangeiras.

Adicionar dados de exemplo

Para adicionar dados de exemplo, faça o seguinte:

  1. No App Workbench, clique no ícone Configurações do App para executar o app.

  2. Na página Início do app, para cada um de Proprietários, Servidores e Proprietários de Servidores, selecione a opção, clique no botão Criar, e adicione entradas suficientes para que o exemplo faça sentido para você. Por exemplo:

    Dados de exemplo de Proprietários

    Dados de exemplo de Servidores

    Dados de exemplo de ServerOwners

Criar regras

Regra: ServerOwners (Subconsulta)

Esta regra de subconsulta gera os dados na regra ServerOwners (Regra de Negócio), com a adição dos nomes dos proprietários e servidores:

  1. Criar a regra:

    1. Abra seu app, em seguida selecione > App Workbench > Regras.

    2. Clique no botão + Regra.

    3. No painel Regra na página Construtor de Regras, defina os seguintes valores:

      • Nome: ServerOwners (Subconsulta)
      • Propósito: Subconsulta
      • Fonte de Dados: ServerOwners
      • Alvo: ServerOwners
    4. Clique no botão Criar (ou pressione Control+S).

  2. Adicionar tabelas:

    • Proprietários:

      1. Na guia Tabelas, clique no botão + Tabelas. Um diálogo se abre.
      2. Clique no botão Adicionar na entrada Proprietários. O diálogo se fecha.
    • Servidores:

      1. Clique no botão + Tabelas.
      2. Clique no botão Adicionar na entrada Servidores.
  3. Selecionar colunas: Selecione as seguintes colunas:

    • OwnerName na tabela Proprietários.
    • ServerName na tabela Servidores.
    • ServerOwnerID na tabela ServerOwners.

      Regra de subconsulta ServerOwners

  4. Verificar a regra:

    1. Clique no botão Validar.
    2. (Opcional) Verifique os resultados da regra na guia Resultados:

      Resultados da regra de subconsulta ServerOwners

Regra: ServerOwnersTable (Subconsulta)

Esta regra de subconsulta produz o HTML usado na notificação do corpo.

  1. Criar a regra:

    1. Selecione > App Workbench > Regras.
    2. Clique no botão + Regra.
    3. No painel Regra na página Construtor de Regras, defina os seguintes valores:

      • Nome: ServerOwnersTable (Subconsulta)
      • Propósito: Subconsulta
      • Fonte de Dados: ServerOwners
      • Alvo: ServerOwners
    4. Clique no botão Criar.

  2. Adicionar tabelas:

    • ServerOwners (Subconsulta):

      1. Clique no botão + Tabelas.
      2. Clique no botão Adicionar para a regra ServerOwners (Subconsulta).
  3. Juntar tabelas: Arraste e solte a coluna ServerOwnerID de ServerOwners para a mesma coluna em ServerOwners (Subconsulta).

  4. Selecionar colunas: Selecione todas as colunas na regra ServerOwners (Subconsulta):

    Regra de subconsulta ServerOwnersTable

  5. Adicionar colunas:

    1. Coluna count:

      1. Clique no botão + Coluna.
      2. No painel Coluna ou Expressão, insira o seguinte:

        count(1)
        
      3. Clique no botão Salvar.

    2. Coluna TableHeader:

      1. Clique no botão + Coluna.
      2. No painel Coluna ou Expressão, insira o seguinte:

        '<table><tbody><tr><td>Proprietário do Servidor</td><td>Nome do Servidor</td></tr>'
        
      3. No campo Alias, insira TableHeader.

      4. Clique no botão Salvar.
    3. Coluna TableBody:

      1. Clique no botão + Coluna.
      2. No painel Coluna ou Expressão, insira o seguinte:

        GroupConcat('<tr><td>' || SOS.OwnerName || '</td><td>' || SOS.ServerName || '</td></tr>','')
        
      3. No campo Alias, insira TableBody.

      4. Clique no botão Salvar.
    4. Coluna TableClose:

      1. Clique no botão + Coluna.
      2. No painel Coluna ou Expressão, insira o seguinte:

        '</table><div>&nbsp;</div> <div>Obrigado,</div> <div>Equipe do Servidor</div>'
        
      3. No campo Alias, insira TableClose.

      4. Clique no botão Salvar.
    5. Coluna TableStyle:

      1. Clique no botão + Coluna.
      2. No painel Coluna ou Expressão, insira o seguinte:

        '<style>table, th, td { border: 1px solid black; border-collapse: collapse; }</style>'
        

        Nota

        Isso fornece um estilo de tabela mínimo.

      3. No campo Alias, insira TableStyle.

      4. Clique no botão Salvar.

        ServerOwnersTable

  6. Verificar a regra:

    1. Clique no botão Validar.
    2. (Opcional) Verifique os resultados da regra na aba Resultados:

      ServerOwnersTable results

Regra: ServerOwners (Notificação)

Esta regra gera a notificação enviada aos proprietários do servidor.

  1. Criar a regra:

    1. Selecione > App Workbench > Notificações.
    2. Clique no botão + Notificação.
    3. No painel Regra na página Construtor de Regras, defina os seguintes valores:

      • Nome: ServerOwners (Notificação)
      • Finalidade: Notificação
      • Método de Entrega: Email

        Dica

        Durante os testes, ou quando você não tiver um servidor SMTP, defina o Método de Entrega para Alerta do App Builder.

    4. Clique no botão Criar.

  2. Adicionar tabelas:

    • ServerOwnersTable (Subconsulta):

      1. Clique no botão + Tabelas.
      2. Clique no botão Adicionar para a entrada ServerOwnersTable (Subconsulta).
    • ServerOwners (Objeto de Negócio):

      1. Clique no botão + Tabelas.
      2. Clique no botão Adicionar para a entrada ServerOwners (Objeto de Negócio).
    • Owners (Objeto de Negócio):

      1. Clique no botão + Tabelas.
      2. Clique no botão Adicionar para a entrada Owners (Objeto de Negócio).
  3. Juntar tabelas: Arraste e solte a coluna ServerOwnerID de ServerOwnersTable (Subconsulta) para a mesma coluna em ServerOwners (Objeto de Negócio).

    Dica

    A junção OwnerID entre ServerOwners (Objeto de Negócio) e Owners (Objeto de Negócio) é feita automaticamente.

  4. Adicionar colunas:

    1. Coluna To():

      1. Selecione a aba Colunas.
      2. Clique no botão + Coluna.
      3. No painel Coluna ou Expressão, insira o seguinte:

        OBO.OwnerEmailAddress
        
      4. No campo Alias, insira OwnerEmail.

      5. Abra o menu Alvo, e então selecione To().
      6. Clique no botão Salvar.
    2. Coluna Binding():

      1. Clique no botão + Coluna.
      2. No painel Coluna ou Expressão, insira o seguinte:

        SOBO.ServerOwnerID
        
      3. Abra o menu Alvo, em seguida, selecione Binding().

      4. Clique no botão Salvar.
    3. Coluna Table:

      1. Clique no botão + Coluna.
      2. No painel Coluna ou Expressão, insira o seguinte:

        GroupConcat(SOTS.TableStyle || SOTS.TableHeader || SOTS.TableBody || SOTS.TableClose, '')
        
      3. No campo Alias, insira Table.

      4. Clique no botão Salvar.

        ServerOwners (Notification) columns

    4. Verifique a regra:

      1. Clique no botão Validar.
      2. (Opcional) Verifique os resultados da regra na aba Resultados:

        ServerOwners (Notification) results

Teste

  1. (Opcional) Execute o aplicativo, selecione a página Owners, e verifique se os endereços de email dos proprietários são válidos.
  2. Selecione > App Workbench > Notificações.
  3. No painel Regras de Notificação, selecione ServerOwners (Notification). (Isso já está selecionado se for a única regra de notificação.)
  4. No painel Mensagem, clique no botão Editar.
  5. No campo Assunto, insira sua escolha de assunto.
  6. No painel de edição Corpo, insira o seguinte:

    {{Table|HTML}}
    
  7. Clique no botão Salvar.

  8. Clique no botão Testar, em seguida, clique no botão Prosseguir.
  9. Verifique sua caixa de entrada de email pela mensagem. (Se você estiver testando com um App Builder Alert, uma mensagem de toast aparece contendo o corpo da mensagem.)