O uso de um formato no template não define que o anexo será disponibilizado neste mesmo formato. Nas aplicações mais típicas, o template é um arquivo ".docx" ou ".odt" e o anexo no e-mail será um ".pdf".
Para maiores detalhes em como criar um template, veja Templates de documentos.
CUSTOM.ENVIO_CONTRATO.TEMPLATEOnde "ENVIO_CONTRATO" remete ao que estamos fazendo e as palavras "CUSTOM" e "TEMPLATE" seriam fixas.
Para cadastrar a preferência, basta acessar a interface Preferências e criar um registro assim:
[img:pref-template]
Depois de cadastrada, basta fazer o upload do template:
[img:upload-template]
Acesse a interface Operações customizadas e cadastre a rotina. Novamente, o nome é livre mas sugere-se utilizar o mesmo que foi utilizado para a preferência, apenas mudando o final .TEMPLATE para .ROTINA:
CUSTOM.ENVIO_CONTRATO.ROTINAA implementação pode ser feita em qualquer linguagem script que esteja sendo suportada pelo Eligo. Sugerimos utilizar Groovy:
A implementação em Groovy seguiria o seguinte modelo:
import br.com.eligo.ent.EntAtividades; import br.com.telescope.adsrt.dom.DomAttachedFile; import br.com.telescope.adsrt.lib.AdsException; import br.com.telescope.adsrt.lib.BaseRuntime; import br.com.telescope.t2.config.Config; import br.com.telescope.t2.exception.UnexpectedException; import br.com.telescope.template.Template; import br.com.telescope.util.MailMessage; import br.com.telescope.util.MailSender; import br.com.telescope.util.WebFileTemp; import java.io.File; import java.io.IOException; try { // Pega o objeto que disparou o evento EntAtividades ativ = (EntAtividades) ctx.getEvent().getObject(); // Verifica a condição para enviar o documento if (ativ.getTitulo().isModified()) { // Pega o arquivo que será usado como template DomAttachedFile tempFile = new DomAttachedFile(); tempFile.setValue(Config.getInstance().get("CUSTOM.ENVIO_CONTRATO.TEMPLATE")); File file = new File(tempFile.getFilePath()); Template template = br.com.telescope.template.Template.newInstance(file); // Registra as variáveis permitidas template.getProperties().putAll(ativ.findTipoAtividade().asMap()); template.getProperties().putAll(ativ.asMap()); // Gera o documento WebFileTemp temp = WebFileTemp.createInstance("pdf"); template.generate(temp.getFile()); // Monta a mensagem a ser enviada por e-mail MailMessage msg = MailMessage.create("Corpo da mensagem") .attach(temp.getFile()); // Envia o e-mail MailSender sender = new MailSender(); sender.to("destino@eligo.com.br") .subject("Atividade " + ativ.valueOfAtividade()) .message(msg) .run(); } } catch (IOException ex) { throw new UnexpectedException(ex); }
Para maiores detalhes sobre envent-listeners, acesse Eventos de sistema