Regra por processo 883 - Alterar programação de eventos

Esta regra será executada ao alterar informações da guia Programação da tela Administração de Eventos (FR234EVN) do módulo Treinamento.

Desta forma, a regra será executada nos seguintes momentos:

O registro da tabela Cadastro de Eventos (R234EVN) permanece disponível para consulta na regra, assim como a variável de sistema vExecucaoRegra, para identificar se a regra está sendo chamada antes (vExecucaoRegra = 0) ou depois (vExecucaoRegra = 1) da alteração. É possível abortar a gravação das alterações utilizando o Cancel().

Exemplo:

<div class="Code"><p>Definir Alfa xNomEvn;<br></br>Definir Alfa xIdeEvn;<br></br>Definir Alfa xAssuntoEmail;<br></br>Definir Alfa xTextoEmail;<br></br>Definir Cursor CurR234HOR;<br></br>Definir Cursor CurR234INS;<br></br>Definir Cursor CurR033PES;<br></br>Definir Alfa xCar13;<br></br>Definir Alfa xCar10;<br></br>Definir Data xDatIni;<br></br>Definir Alfa xStrDatIni;<br></br>Definir Alfa xStrDatFim;<br></br>Definir Alfa xStrHorIni;<br></br>Definir Alfa xStrHorFim;<br></br>Definir Alfa xInstrutores;</p><p>RetornaAscII(13, xCar13);<br></br>RetornaAscII(10, xCar10);</p><p>xCodEvn = R234EVN.CodEvn;<br></br>xNomEvn = R234EVN.NomEvn;<br></br>xIdeEvn = R234EVN.IdeEvn;</p><p>@ vExecucaoRegra: 0 - Antes, vExecucaoRegra: 1 - Depois @<br></br>Se (vExecucaoRegra = 0)<br></br>{ xAssuntoEmail = "Programação do evento " + R234EVN.IdeEvn + " - Antes"; }</p><p>Senao<br></br>{ xAssuntoEmail = "Programação do evento " + R234EVN.IdeEvn + " - Depois"; }</p><p>xTextoEmail = "Evento: " + R234EVN.IdeEvn + " - " + R234EVN.NomEvn + xCar13 + xCar10;</p><p>ConverteMascara (3, R234EVN.DatIni, xStrDatIni, "DD/MM/YYYY");<br></br>ConverteMascara (3, R234EVN.DatFim, xStrDatFim, "DD/MM/YYYY");</p><p>xTextoEmail = xTextoEmail + "Período: " + xStrDatIni + " à " + xStrDatFim + xCar13 + xCar10;</p><p>xTextoEmail = xTextoEmail + "Programação: " + xCar13 + xCar10;</p><p>CurR234HOR.SQL "SELECT * FROM R234HOR WHERE CODEVN = :xCodEvn";<br></br>CurR234HOR.AbrirCursor();<br></br>Enquanto (CurR234HOR.Achou)<br></br>{<br></br>xDatIni = CurR234HOR.DatIni;<br></br>xHorIni = CurR234HOR.HorIni;<br></br>xHorFim = CurR234HOR.HorFim;</p><p>ConverteMascara (3, xDatIni, xStrDatIni, "DD/MM/YYYY");<br></br>ConverteMascara (4, xHorIni, xStrHorIni, "HH:MM");<br></br>ConverteMascara (4, xHorFim, xStrHorFim, "HH:MM");</p><p>xTextoEmail = xTextoEmail + " - " + xStrDatIni + " - " + xStrHorIni + " às " + xStrHorFim;</p><p> xInstrutores = "";<br></br>CurR234INS.SQL "SELECT CODPES FROM R234INS WHERE CODEVN = :xCodEvn AND DATINI = :xDatIni AND HORINI = :xHorIni";<br></br>CurR234INS.AbrirCursor();<br></br>Se (CurR234INS.Achou)<br></br>{<br></br>Enquanto (CurR234INS.Achou)<br></br>{<br></br>EstaNulo(xInstrutores, xNulo);<br></br>Se (xNulo = 0)<br></br>xInstrutores = xInstrutores + ", ";</p><p>xCodPes = CurR234INS.CodPes;<br></br>CurR033PES.SQL "SELECT NOMPES FROM R033PES WHERE CODPES = :xCodPes";<br></br>CurR033PES.AbrirCursor();<br></br>Se (CurR033PES.Achou)<br></br>{ xInstrutores = xInstrutores + CurR033PES.NomPes; }</p><p>CurR033PES.FecharCursor();</p><p>CurR234INS.Proximo();<br></br>}</p><p>xTextoEmail = xTextoEmail + " - Instrutores: " + xInstrutores;<br></br>}<br></br>CurR234INS.FecharCursor();</p><p>xTextoEmail = xTextoEmail + xCar13 + xCar10;</p><p>CurR234HOR.Proximo();<br></br>}<br></br>CurR234HOR.FecharCursor();</p><p>EnviaEmail ("usuario@senior.com.br", "usuario@senior.com.br", "", "", xAssuntoEmail, xTextoEmail, "", 0);</p></div>

Utilização: ao alterar informações na guia Programação da tela Administração de Eventos (FR234EVN), inclusive ao gerar horários recorrentes.

Disponível para o módulo: Treinamento.

Este artigo ajudou você?