<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://wiki.phsys.com.br/index.php?action=history&amp;feed=atom&amp;title=Envio_de_Dashboards_por_E-mail</id>
	<title>Envio de Dashboards por E-mail - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.phsys.com.br/index.php?action=history&amp;feed=atom&amp;title=Envio_de_Dashboards_por_E-mail"/>
	<link rel="alternate" type="text/html" href="http://wiki.phsys.com.br/index.php?title=Envio_de_Dashboards_por_E-mail&amp;action=history"/>
	<updated>2026-10-26T09:26:48Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.31.10</generator>
	<entry>
		<id>http://wiki.phsys.com.br/index.php?title=Envio_de_Dashboards_por_E-mail&amp;diff=7442&amp;oldid=prev</id>
		<title>Admin: /* Exemplo */</title>
		<link rel="alternate" type="text/html" href="http://wiki.phsys.com.br/index.php?title=Envio_de_Dashboards_por_E-mail&amp;diff=7442&amp;oldid=prev"/>
		<updated>2026-10-25T00:08:12Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pt-BR&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Edição das 00h08min de 25 de outubro de 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l116&quot; &gt;Linha 116:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 116:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Widgets|Widgets]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Widgets|Widgets]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Agendamentos&lt;/del&gt;|Agendamentos]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Agendamento_de_Processos&lt;/ins&gt;|Agendamentos]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.phsys.com.br/index.php?title=Envio_de_Dashboards_por_E-mail&amp;diff=7441&amp;oldid=prev</id>
		<title>Admin: Criou página com &#039;O objeto do cadastro de Dashboards (classe &#039;&#039;&#039;TPHSDB_Dashboards&#039;&#039;&#039;) pode ser utilizado para enviar um dashboard por e-mail por meio de script, com os gráficos, as grades e os...&#039;</title>
		<link rel="alternate" type="text/html" href="http://wiki.phsys.com.br/index.php?title=Envio_de_Dashboards_por_E-mail&amp;diff=7441&amp;oldid=prev"/>
		<updated>2026-10-25T00:07:27Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;O objeto do cadastro de Dashboards (classe &amp;#039;&amp;#039;&amp;#039;TPHSDB_Dashboards&amp;#039;&amp;#039;&amp;#039;) pode ser utilizado para enviar um dashboard por e-mail por meio de script, com os gráficos, as grades e os...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;O objeto do cadastro de Dashboards (classe &amp;#039;&amp;#039;&amp;#039;TPHSDB_Dashboards&amp;#039;&amp;#039;&amp;#039;) 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.&lt;br /&gt;
&lt;br /&gt;
===Uso gerencial===&lt;br /&gt;
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:&lt;br /&gt;
*Todos os dias úteis, no início do expediente, o dashboard da Tesouraria vai para a diretoria e para o financeiro.&lt;br /&gt;
*Toda segunda-feira, o dashboard de vendas vai para cada gerente regional, com o filtro da região dele.&lt;br /&gt;
*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.&lt;br /&gt;
&lt;br /&gt;
===Parâmetros===&lt;br /&gt;
Informados pelo ParamByName do objeto antes de chamar o procedimento.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
!Nome&lt;br /&gt;
!Tipo&lt;br /&gt;
!Descrição&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard&lt;br /&gt;
|String&lt;br /&gt;
|Nome do dashboard, como está no campo Nome do cadastro de Dashboards. Obrigatório.&lt;br /&gt;
|-&lt;br /&gt;
|Para&lt;br /&gt;
|String&lt;br /&gt;
|E-mail do destinatário. Pode-se utilizar mais de um e-mail utilizando a separação por &amp;#039;;&amp;#039;. Obrigatório.&lt;br /&gt;
|-&lt;br /&gt;
|CC&lt;br /&gt;
|String&lt;br /&gt;
|E-mail de destinatário de cópia. Pode-se utilizar mais de um e-mail utilizando a separação por &amp;#039;;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
|CCO&lt;br /&gt;
|String&lt;br /&gt;
|E-mail de destinatário de cópia oculta. Pode-se utilizar mais de um e-mail utilizando a separação por &amp;#039;;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
|ServidorEmail&lt;br /&gt;
|Integer&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|Assunto&lt;br /&gt;
|String&lt;br /&gt;
|Descrição do assunto do e-mail. Quando não informado, o assunto é a legenda do dashboard seguida da data do envio.&lt;br /&gt;
|-&lt;br /&gt;
|Mensagem&lt;br /&gt;
|String&lt;br /&gt;
|Texto exibido no início do e-mail, abaixo do cabeçalho.&lt;br /&gt;
|-&lt;br /&gt;
|Link&lt;br /&gt;
|String&lt;br /&gt;
|Endereço do botão &amp;quot;Abrir no PHERP&amp;quot;. Quando não informado, o e-mail é enviado sem o botão.&lt;br /&gt;
|-&lt;br /&gt;
|Filtros&lt;br /&gt;
|String&lt;br /&gt;
|Filtro do dashboard em JSON: uma lista com o Nome do campo do formulário do dashboard e o Valor. Exemplo: &amp;lt;nowiki&amp;gt;[{&amp;quot;Nome&amp;quot;:&amp;quot;VENDEDOR&amp;quot;,&amp;quot;Valor&amp;quot;:&amp;quot;5&amp;quot;}]&amp;lt;/nowiki&amp;gt;. Quando não informado, vale o filtro padrão do formulário do dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Procedimentos===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;GetMetodo(&amp;#039;EnviarEmail&amp;#039;):&amp;#039;&amp;#039;&amp;#039; 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.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;SetFiliaisCorrente(Filiais:String):&amp;#039;&amp;#039;&amp;#039; Procedimento do script que define as filiais dos dados, separadas por &amp;#039;,&amp;#039;. 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.&lt;br /&gt;
&lt;br /&gt;
===Como o e-mail é montado===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Cabeçalho:&amp;#039;&amp;#039;&amp;#039; a legenda do dashboard, com a data e a hora em que os valores foram calculados.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Mensagem:&amp;#039;&amp;#039;&amp;#039; o texto do parâmetro Mensagem, quando informado.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Itens:&amp;#039;&amp;#039;&amp;#039; 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.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Botão &amp;quot;Abrir no PHERP&amp;quot;:&amp;#039;&amp;#039;&amp;#039; quando informado o parâmetro Link.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Rodapé:&amp;#039;&amp;#039;&amp;#039; a data e a hora dos valores.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Pontos de atenção===&lt;br /&gt;
*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.&lt;br /&gt;
*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.&lt;br /&gt;
*Sem filial definida, o envio é recusado.&lt;br /&gt;
*Um e-mail inválido em Para, CC ou CCO, ou um ServidorEmail que não está no cadastro, faz o envio ser recusado.&lt;br /&gt;
*Os destinatários recebem todos os dados do dashboard. A escolha de quem recebe é de quem escreve o script.&lt;br /&gt;
*No agendamento, os erros do envio ficam registrados no log do agendamento.&lt;br /&gt;
&lt;br /&gt;
===Exemplo===&lt;br /&gt;
Script &amp;#039;&amp;#039;&amp;#039;PH_EnviarDashboardEmail&amp;#039;&amp;#039;&amp;#039;, para ser executado por um agendamento do tipo Script. As configurações do envio ficam nas constantes do início do script.&lt;br /&gt;
&lt;br /&gt;
  const&lt;br /&gt;
    DASHBOARD      = &amp;#039;DASH_TESOURARIA&amp;#039;;&lt;br /&gt;
    PARA           = &amp;#039;financeiro@exemplo.com.br;diretoria@exemplo.com.br&amp;#039;;&lt;br /&gt;
    CC             = &amp;#039;&amp;#039;;&lt;br /&gt;
    CCO            = &amp;#039;&amp;#039;;&lt;br /&gt;
    FILIAIS        = &amp;#039;1&amp;#039;;&lt;br /&gt;
    SERVIDOR_EMAIL = 0;&lt;br /&gt;
    ASSUNTO        = &amp;#039;&amp;#039;;&lt;br /&gt;
    MENSAGEM       = &amp;#039;Bom dia! Segue a posição da tesouraria.&amp;#039;;&lt;br /&gt;
    LINK           = &amp;#039;&amp;#039;;&lt;br /&gt;
    FILTROS        = &amp;#039;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
  var&lt;br /&gt;
    Dash: TPHServerClass;&lt;br /&gt;
  begin&lt;br /&gt;
    SetFiliaisCorrente(FILIAIS);&lt;br /&gt;
&lt;br /&gt;
    Dash := NewPHServerClassName(&amp;#039;TPHSDB_Dashboards&amp;#039;);&lt;br /&gt;
    try&lt;br /&gt;
      Dash.ParamByName(&amp;#039;Dashboard&amp;#039;).AsString      := DASHBOARD;&lt;br /&gt;
      Dash.ParamByName(&amp;#039;Para&amp;#039;).AsString           := PARA;&lt;br /&gt;
      Dash.ParamByName(&amp;#039;CC&amp;#039;).AsString             := CC;&lt;br /&gt;
      Dash.ParamByName(&amp;#039;CCO&amp;#039;).AsString            := CCO;&lt;br /&gt;
      Dash.ParamByName(&amp;#039;ServidorEmail&amp;#039;).AsInteger := SERVIDOR_EMAIL;&lt;br /&gt;
      Dash.ParamByName(&amp;#039;Assunto&amp;#039;).AsString        := ASSUNTO;&lt;br /&gt;
      Dash.ParamByName(&amp;#039;Mensagem&amp;#039;).AsString       := MENSAGEM;&lt;br /&gt;
      Dash.ParamByName(&amp;#039;Link&amp;#039;).AsString           := LINK;&lt;br /&gt;
      Dash.ParamByName(&amp;#039;Filtros&amp;#039;).AsString        := FILTROS;&lt;br /&gt;
      Dash.GetMetodo(&amp;#039;EnviarEmail&amp;#039;);&lt;br /&gt;
    finally&lt;br /&gt;
      Dash.Free;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
    AddLog(&amp;#039;Dashboard &amp;#039; + DASHBOARD + &amp;#039; enviado para &amp;#039; + PARA + &amp;#039;.&amp;#039;);&lt;br /&gt;
  end.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Assuntos Relacionados&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Dashboards|Dashboards]]&lt;br /&gt;
&lt;br /&gt;
[[Widgets|Widgets]]&lt;br /&gt;
&lt;br /&gt;
[[Agendamentos|Agendamentos]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>