Este conteúdo não recebe atualizações, pois é referente a uma versão do sistema que foi descontinuada. Acesse a documentação da versão 6.10.3 aqui

Envio de E-mail através de regras

A regra abaixo busca os funcionários que farão aniversário no dia seguinte a sua execução e envia um e-mail para os chefes desses funcionários:

 

/*  Aniversários  */
/* Variáveis default para o E-Mail */
definir alfa vRmtEmaDef;
definir alfa vDstEmaDef;
definir alfa vCcpEmaDef;
definir alfa vAssEmaDef;
definir alfa vTxtEmaDef;
definir alfa vAnxEmaDef;
/* Variáveis com valores da R034FUN */
definir alfa vTipSex;
definir alfa vNomFun;
definir numero vNumEmp;
definir numero vTipCol;
definir numero vNumCad;
definir numero vDatBas;
/* Variáveis para identificar o chefe */
definir alfa vEmaCom;
definir alfa vEmaPar;
definir numero vEmpChe;
definir numero vTipChe;
definir numero vCadche;
/* Variáveis para converter a data */
/*Oracle*/
definir alfa vDiaAtual;
definir alfa vMesAtual;
definir numero vNumDiaAtual;
definir numero vNumMesAtual;
/* Cursor que vai procurar os aniversariantes */
Definir cursor CAniv;
/* Carrega variáveis default com os dados da tabela */
vRmtEmaDef = RmtEma;
vDstEmaDef = DstEma;
vCcpEmaDef = CcpEma;
vAssEmaDef = AssEma;
vTxtEmaDef = TxtEma;
vAnxEmaDef = AnxEma;
/* Converte data do sistema em duas strings dd-mm */
RetornaDiaData(DatSis,vNumDiaAtual);
RetornaMesData(DatSis,vNumMesAtual);
/*Oracle*/
se (vNumDiaAtual < 10)
  vDiaAtual = "0" + Formatar(vNumDiaAtual, "%1.0f");
senao
  vDiaAtual = Formatar(vNumDiaAtual, "%2.0f");
se (vNumMesAtual < 10)
  vMesAtual = "0" + Formatar(vNumMesAtual, "%1.0f");
senao
  vMesAtual = Formatar(vNumMesAtual, "2.0f");
/* Carrega cursor */
/*Oracle*/
CAniv.SQL "SELECT NUMEMP,TIPCOL,NUMCAD,NOMFUN,TIPSEX,DATNAS FROM R034FUN \
           WHERE TO_CHAR(DATNAS-1,'DD') = :vDiaAtual AND 
TO_CHAR(DATNAS-1,'MM')
 = :vMesAtual";
/*Anywhere*/
CAniv.SQL "SELECT NUMEMP,TIPCOL,NUMCAD,NOMFUN,TIPSEX,DATNAS FROM R034FUN \
           WHERE Day(DATNAS) = :vNumDiaAtual AND Month(DATNAS)
 = :vNumMesAtual";
CAniv.AbrirCursor();
Enquanto( CAniv.Achou )
inicio
  /* Carrega E-Mail com as variáveis default */
  RmtEma = vRmtEmaDef; /* Remetente */
  DstEma = vDstEmaDef; /* Destinatário */
  CcpEma = vCcpEmaDef; /* Com Cópia Para */
  AssEma = vAssEmaDef; /* Assunto */
  TxtEma = vTxtEmaDef; /* Texto */
  AnxEma = vAnxEmaDef; /* Anexos */
  /* Preenche variáveis com valores do Cursor */
  vNumEmp = CAniv.NUMEMP;
  vTipCol = CAniv.TIPCOL;
  vNumCad = CAniv.NUMCAD;
  vNomFun = CAniv.NomFun;
  vDatBas = DatSis;
  vTipSex = CAniv.TipSex;
  /* Procura E-Mail do chefe do funcionário (Destinatário)*/
  BusCadChefe( vNumEmp,vTipCol,vNumCad,vDatBas,1,"S",
vEmpChe,vTipChe,vCadche);
  BusEmailFunc( vNumEmp,vTipChe,vCadChe,vEmaPar,vEmaCom);
  Se (vEmaCom <> "")
    DstEma=vEmacom;
  Senao
    Se (vEmaPar <> "")
      DstEma=vEmaPar;
    Senao
    inicio
      TxtEma = "Não foi possível enviar este E-Mail para o superior ";
      se (vTipSex="F")
        TxtEma = TxtEma + "da funcionária " + vNomFun + ": ";
      senao
        TxtEma = TxtEma + "do funcionário " + vNomFun + ": ";
    fim;
 
    /* Preenche mensagem do E-Mail (Texto) */
    se (vTipSex="F")
      TxtEma = TxtEma + "A funcionária " + vNomFun;
    senao
      TxtEma = TxtEma + "O funcionário " + vNomFun;
      
    TxtEma = TxtEma + " estará de aniversário amanhã!";
    /* Envia o E-Mail, pega o próximo registro e volta para o 
início do loop */
    EnviaEMail( RmtEma,DstEma,CcpEma,AssEma,TxtEma,AnxEma);
    CAniv.Proximo();
  fim;
  CAniv.FecharCursor();
  /* Fim da Regra de Enviar E-Mails de Aniversários */

Este artigo ajudou você?