Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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
languagexml
<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
languagejava
@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
languagejava
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
languagejava
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
languagejava
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
languagejava
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
languagejava
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);
}

...