BusEmailFunc
Esta função retorna o e-mail Particular (na variável EmaPar) e o e-mail Comercial (na variável EmaCom) do funcionário informado nos parâmetros NumEmp, TipCol e NumCad. Para utilizá-la devemos informar o NumEmp, TipCol e NumCad do funcionário cujo e-mail deseja-se saber, e duas variáveis que retornarão o e-mail Particular e o e-mail Comercial (EMAPAR e EMACOM). A rotina então faz uma busca na tabela R034CPL segundo os dados informados e preenche as variáveis com o e-mail Particular e o e-mail Comercial. Desta forma, esta rotina pode ser utilizada dentro de regras.
Sintaxe: BusEmailFunc(Numero NumEmp, Numero TipCol, Numero NumCad, Alfa EmaPar, Alfa EmaCom);
Parâmetros:
Nome | Tipo | Descrição |
NumEmp | Numérico | Empresa do colaborador. |
TipCol | Numérico | Tipo do colaborador. |
NumCad | Numérico | Cadastro do colaborador que se deseja saber o e-mail. |
EmaPar | Alfa | Retorna o e-mail particular. |
EmaCom | Alfa | Retorna o e-mail comercial. |
Exemplo 1:
vNumEmp = R034FUN.NumEmp;
vTipCol = R034FUN.TipCol;
vNumCad = R034FUN.NumCad;
BusEmailFunc(vNumEmp,vTipCol,vNumCad, vEmaPar,vEmaCom) ;
Se (vEmaCom = "")
ret = Mensagem(Retorna,"Informe o e-mail comercial do colaborador");
Exemplo 2: Regra que informa via e-mail ao chefe de um funcionário, que este está retornando de férias.
/* // Retorno de Férias // */
/* 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 vTipChe;
definir numero vCadche;
/* Cursor que vai procurar os aniversariantes */
Definir cursor CAfa;
/* Carrega variáveis default com os dados da tabela */
vRmtEmaDef = RmtEma;
vDstEmaDef = DstEma;
vCcpEmaDef = CcpEma;
vAssEmaDef = AssEma;
vTxtEmaDef = TxtEma;
vAnxEmaDef = AnxEma;
/* Carrega cursor */
CAfa.SQL "SELECT R038AFA.NUMEMP,R038AFA.TIPCOL,R038AFA.NUMCAD, \
R034FUN.NOMFUN,R034FUN.TIPSEX,R038AFA.SITAFA,R010SIT.TIPSIT \
FROM R038AFA,R034FUN,R010SIT \
WHERE (R034FUN.NUMEMP=R038AFA.NUMEMP \
AND R034FUN.TIPCOL=R038AFA.TIPCOL \
AND R034FUN.NUMCAD=R038AFA.NUMCAD) \
AND R038AFA.DATTER=TO_DATE(SYSDATE+1) \
AND ((R038AFA.STATUS=1) OR (R038AFA.STATUS=0)) \
AND (R038AFA.SITAFA = R010SIT.CODSIT)";
CAfa.AbrirCursor();
Enquanto( CAfa.Achou )
inicio
Se (CAfa.TipSit=2) /* férias */
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 = CAfa.NUMEMP;
vTipCol = CAfa.TIPCOL;
vNumCad = CAfa.NUMCAD;
vNomFun = CAfa.NomFun;
vDatBas = DatSis;
vTipSex = CAfa.TipSex;
/* Procura e-mail do chefe do funcionário (Destinatário)*/
BusCadChefe( vNumEmp,vTipCol,vNumCad,vDatBas,vTipChe,vCadche);
BusEmailFunc( vNumEmp,vTipChe,vCadChe,vEmaPar,vEmaCom); {Vai buscar o
e-mail do Chefe do Funcionário, que também é um funcionário}
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á retornando de férias amanhã!";
/* Envia o e-mail */
EnviaEMail( RmtEma,DstEma,CcpEma,AssEma,TxtEma,AnxEma);
fim;
/* Pega o próximo registro e volta para o início do loop */
CAfa.Proximo();
fim;
CAfa.FecharCursor();
Utilização: Gerador de relatórios, regras de apuração, regras de integração.