Envio de Dashboards por E-mail

Revisão de 21h08min de 24 de outubro de 2026 por Admin (discussão | contribs) (→‎Exemplo)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

O objeto do cadastro de Dashboards (classe TPHSDB_Dashboards) pode ser utilizado para enviar um dashboard por e-mail por meio de script, com os gráficos, as grades e os indicadores como aparecem na tela, calculados no momento do envio. Executado por um agendamento do tipo Script, permite enviar um dashboard automaticamente, nos dias e nos horários definidos, para os destinatários informados no script.

Uso gerencial

Com o envio agendado, gestores e equipes recebem a posição do dia, da semana ou do mês na caixa de entrada, inclusive no celular, sem precisar entrar no sistema para consultar. Como o e-mail usa os mesmos widgets do dashboard, o que chega por e-mail é igual ao que se vê na tela, e um ajuste no dashboard vale para os dois. Alguns usos:

  • Todos os dias úteis, no início do expediente, o dashboard da Tesouraria vai para a diretoria e para o financeiro.
  • Toda segunda-feira, o dashboard de vendas vai para cada gerente regional, com o filtro da região dele.
  • No fim de cada mês, o dashboard de indicadores de produção vai para a gerência industrial, com cópia oculta para a controladoria.

Parâmetros

Informados pelo ParamByName do objeto antes de chamar o procedimento.

Nome Tipo Descrição
Dashboard String Nome do dashboard, como está no campo Nome do cadastro de Dashboards. Obrigatório.
Para String E-mail do destinatário. Pode-se utilizar mais de um e-mail utilizando a separação por ';'. Obrigatório.
CC String E-mail de destinatário de cópia. Pode-se utilizar mais de um e-mail utilizando a separação por ';'.
CCO String E-mail de destinatário de cópia oculta. Pode-se utilizar mais de um e-mail utilizando a separação por ';'.
ServidorEmail Integer Quando informado o ID do Servidor de E-mail, o e-mail será enviado por este servidor, com o usuário do servidor como remetente, ao invés de considerar as configurações de envio do usuário.
Assunto String Descrição do assunto do e-mail. Quando não informado, o assunto é a legenda do dashboard seguida da data do envio.
Mensagem String Texto exibido no início do e-mail, abaixo do cabeçalho.
Link String Endereço do botão "Abrir no PHERP". Quando não informado, o e-mail é enviado sem o botão.
Filtros String Filtro do dashboard em JSON: uma lista com o Nome do campo do formulário do dashboard e o Valor. Exemplo: [{"Nome":"VENDEDOR","Valor":"5"}]. Quando não informado, vale o filtro padrão do formulário do dashboard.

Procedimentos

  • GetMetodo('EnviarEmail'): Monta o e-mail do dashboard e realiza o cadastro junto ao cadastro de e-mails do sistema (DB_EMAIL). O envio ocorre conforme determinado no agendamento de envio de e-mails.
  • SetFiliaisCorrente(Filiais:String): Procedimento do script que define as filiais dos dados, separadas por ','. Deve ser chamado antes do envio, pois os widgets buscam os dados das filiais da execução e a execução do agendamento não tem filial definida.

Como o e-mail é montado

  • Cabeçalho: a legenda do dashboard, com a data e a hora em que os valores foram calculados.
  • Mensagem: o texto do parâmetro Mensagem, quando informado.
  • Itens: um abaixo do outro, na ordem do dashboard. Os gráficos vão como imagem; as grades vão como tabela, com a linha de soma das colunas marcadas em Totalizar; os indicadores vão como blocos com o valor em destaque. Um item que não puder ser carregado aparece com a mensagem do erro, e os demais itens são enviados normalmente.
  • Botão "Abrir no PHERP": quando informado o parâmetro Link.
  • Rodapé: a data e a hora dos valores.

O e-mail se ajusta à largura da tela: no computador, dois gráficos estreitos seguidos ficam lado a lado e os indicadores ficam na mesma linha; no celular, tudo fica em uma coluna.

Pontos de atenção

  • Os gráficos são desenhados pelo navegador instalado no servidor do PHERP, que precisa ter o Microsoft Edge ou o Google Chrome. Sem navegador, o envio é recusado.
  • Sem o parâmetro ServidorEmail, o usuário que executa o script (no agendamento, o usuário do agendamento) precisa ter a conta de e-mail configurada no seu cadastro.
  • Sem filial definida, o envio é recusado.
  • Um e-mail inválido em Para, CC ou CCO, ou um ServidorEmail que não está no cadastro, faz o envio ser recusado.
  • Os destinatários recebem todos os dados do dashboard. A escolha de quem recebe é de quem escreve o script.
  • No agendamento, os erros do envio ficam registrados no log do agendamento.

Exemplo

Script PH_EnviarDashboardEmail, para ser executado por um agendamento do tipo Script. As configurações do envio ficam nas constantes do início do script.

 const
   DASHBOARD      = 'DASH_TESOURARIA';
   PARA           = 'financeiro@exemplo.com.br;diretoria@exemplo.com.br';
   CC             = ;
   CCO            = ;
   FILIAIS        = '1';
   SERVIDOR_EMAIL = 0;
   ASSUNTO        = ;
   MENSAGEM       = 'Bom dia! Segue a posição da tesouraria.';
   LINK           = ;
   FILTROS        = ;
 var
   Dash: TPHServerClass;
 begin
   SetFiliaisCorrente(FILIAIS);
   Dash := NewPHServerClassName('TPHSDB_Dashboards');
   try
     Dash.ParamByName('Dashboard').AsString      := DASHBOARD;
     Dash.ParamByName('Para').AsString           := PARA;
     Dash.ParamByName('CC').AsString             := CC;
     Dash.ParamByName('CCO').AsString            := CCO;
     Dash.ParamByName('ServidorEmail').AsInteger := SERVIDOR_EMAIL;
     Dash.ParamByName('Assunto').AsString        := ASSUNTO;
     Dash.ParamByName('Mensagem').AsString       := MENSAGEM;
     Dash.ParamByName('Link').AsString           := LINK;
     Dash.ParamByName('Filtros').AsString        := FILTROS;
     Dash.GetMetodo('EnviarEmail');
   finally
     Dash.Free;
   end;
   AddLog('Dashboard ' + DASHBOARD + ' enviado para ' + PARA + '.');
 end.

Assuntos Relacionados

Dashboards

Widgets

Agendamentos