Envio de Dashboards por E-mail
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.
Índice
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