1. Visão geral
Robôs são customizações que podem ser integradas à nossa plataforma para uma ampla gama de funcionalidades, tais como execução automática de atividades, envio de e-mails e abertura de processos.
O propósito desta página é exemplificar a codificação de um robô simples para envio de e-mails. Para uma compreensão mais abrangente sobre o processo de criação e implementação de robôs, é recomendada a leitura prévia da página Robôs.
2. Dependências no pom.xml
Quando um robô é criado na plataforma, ele é estruturado conforme o padrão de projeto Maven, incluindo o arquivo pom.xml, onde são especificadas as dependências necessárias para o desenvolvimento.
No nosso caso, tal utilizaremos a biblioteca WFMail
, que é disponibilizada pelo time de Produto e Tecnologia e importada por meio da dependência robot-parent
.
Bloco de código | ||
---|---|---|
| ||
<parent>
<groupId>br.com.lecom</groupId>
<artifactId>robot-parent</artifactId>
<version>1.0.1-RELEASE</version>
<relativePath/>
</parent> |
Nos robôs criados pela plataforma, essa dependência já está preenchida no arquivo.
3. Classe de execução do robô
Dentro da estrutura do projeto do robô, encontra-se uma classe com a anotação @RobotModule
. Essa classe deve conter o código de execução do robô, acionado através do método execute
, anotado com @Execution
.
Bloco de código | ||
---|---|---|
| ||
@Component
@RobotModule("Radarroboenviaemail")
@Version({ 1, 0, 0 })
public class Radarroboenviaemail {
private static final Logger LOGGER = LoggerFactory.getLogger(Radarroboenviaemail.class);
@Execution
public void execute() {
LOGGER.debug("Running robot");
}
} |
4. Implementando o envio de e-mail
Agora, faremos as alterações necessárias em nossa classe para implementar o envio de e-mail.
...
Para uma compreensão mais abrangente sobre a estrutura de um projeto de robôs, é recomendada a leitura prévia da página Estrutura básica de um robô.
2. WFMail
Declararemos um objeto do tipo WFMail
para realizar o envio de e-mails. Este objeto é proveniente da biblioteca WFMail
, importada anteriormente através da dependência robot-parent
.
Bloco de código | ||
---|---|---|
| ||
private static final WFMail wfMailWFMAIL = new WFMail(); |
O objeto WFMail
possui um método chamado enviaEmailMessage
que faz o envio, e requer um objeto do tipo EmailMessage
como parâmetro.
...
3.
...
EmailMessage
O EmailMessage
também faz parte da biblioteca WFMail
, então agora precisamos apenas importá-lo em nossa classe.
...
Para este exemplo, utilizaremos esses parâmetros de forma estática, declarando-os no início da classe.
Bloco de código | ||
---|---|---|
| ||
private static final String subjectSUBJECT = "Demonstração - Envio de e-mail"; private static final String messageMESSAGE = "Esta é uma demonstração de envio de e-mail para o projeto Radar."; private static final String fromFROM = "Demonstração - Envio de e-mailvinicius.henrique@lecom.com.br"; private static final String toTO = "Demonstração - Envio de e-mailvinicius.henrique@lecom.com.br"; private static final boolean isEmailHtmlIS_EMAIL_HTML = true; |
Em seguida, instanciaremos no método execute
um novo objeto do tipo EmailMessage
, passando as variáveis criadas como parâmetros.
Bloco de código | ||
---|---|---|
| ||
EmailMessage emailMessage = new EmailMessage(subjectSUBJECT, messageMESSAGE, fromFROM, toTO, isEmailHtmlIS_EMAIL_HTML); |
4.
...
Envio do e-mail
Por fim, chamaremos o método enviaEmailMessage
do objeto WFMail
, passando nosso objeto EmailMessage
como parâmetro.
Bloco de código | ||
---|---|---|
| ||
wfMailWFMAIL.enviaEmailMessage(emailMessage); |
A chamada do método enviaEmailMessage
pode gerar uma exceção do tipo EmailMessageException
em caso de falha no envio. Capturaremos essa exceção e a registraremos como log de erro.
Bloco de código | ||
---|---|---|
| ||
try { EmailMessage emailMessage = new EmailMessage(subjectSUBJECT, messageMESSAGE, fromFROM, toTO, isEmailHtmlIS_EMAIL_HTML); wfMailWFMAIL.enviaEmailMessage(emailMessage); } catch (EmailMessageException e) { LOGGER.error("Erro ao enviar o e-mail", e); } |
...