Envio de E-mail com Anexo

Bom dia,

Na tarefa 2 do meu processo eu anexo um arquivo, na tarefa 3 outro arquivo. Vou criar uma atividade de serviço que envia um e-mail e neste e-mail preciso adicionar os anexos deste processo. Como posso fazer isso?

Você pode disponibilizar esses documentos através de um link publico do seu GED, usando a api /api/public/2.0/documents/getDownloadURL/IDDOCUMENTOGED onde vc gerá o link e envia esse link no corpo do e-mail.


var url = fluigAPI.getDocumentService().getDownloadURL(787);

Mas eu consigo forçar para que um anexo postado no processo seja público? Ou torná-lo público via código?

quando vc utiliza a api citada pelo @Daivid, ela retorna uma url publica do anexo, ou seja, gera uma url que não precisa estar logado no fluig para conseguir acessar o documento

Entendi, vocês tem um exemplo utilizando esta API?

@David editei meu comentário com um exemplo utilizando o fluigAPI que por trás faz a chamada dessa mesma função

Ótimo, obrigado, vc tem um exemplo de como recuperar os IDs dos documentos de um processo?

vc pode utilizar esse código dentro de alguma função do evento beforeTaskSave do processo



var attachments = hAPI.listAttachments();

var array_ids_anexos; // armazena os ids dos anexos
for (var i = 0; i < attachments.size(); i++)
{ 
    var attachment = attachments.get(i);

    array_ids_anexos[i] = attachment.getDocumentId(); // aqui vc pega o id de cada anexo e adiciona no array
}


Ele processou, mas no log aconteceu o seguinte erro:
Falha ao executar evento de serviço - Processo=inc_devolucao, versão=48 - [Solicitação: 1902] - Thread atual: 0 - Atividade Atual: 57 - Evento executado: servicetask57 - Erro ocorrido: Wrapped com.fluig.sdk.api.common.SDKException: com.fluig.sdk.api.common.SDKException: java.lang.NullPointerException (#14)

function servicetask57(attempt, message) {
log.info("URL ENTROU1… ");
var attachments = hAPI.listAttachments();
log.info("URL ENTROU2… ");
// armazena os ids dos anexos

log.info("URL..." + attachments.size());
for (var i = 0; i < attachments.size(); i++) {

	var attachment = attachments.get(i);

	log.info("URL2... " + attachment.getDocumentId());
	var idDocumento = attachment.getDocumentId();
	var url = fluigAPI.getDocumentService().getDownloadURL(idDocumento);
	log.info("URL3... " + url);
}

}

esta retornando ID no log:
URL ENTROU1…
2017-08-14 10:54:03,903 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (Thread-11 (ActiveMQ-client-global-threads-596234104)) URL ENTROU2…
2017-08-14 10:54:03,903 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (Thread-11 (ActiveMQ-client-global-threads-596234104)) URL…8
2017-08-14 10:54:03,904 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (Thread-

Ja pegaram essa situação?

nunca passei por essa situação, mas segue alguns links que podem ajudar vc pegar os ids dos anexos

http://tdn.totvs.com/display/public/fluig/hAPI

http://tdn.totvs.com/display/public/fluig/docAPI

Os ids ele está pegando corretamente o erro está ocorrendo na fluigapi quando vai gerar o link do arquivo.

onde vc esta utilizando a api pra gerar os links? no evento do processo?

criei uma atividade de serviço e coloquei no script desta atividade dentro do processo

ok, entendi. eu tbm tentei fazer dessa forma mas não deu certo na hora de pegar o retorno da api. o que fiz foi fazer uma função no javascript do formulário do processo utilizando a api pra gerar os links

Mas deveria funcionar no script da atividade?

Não encontrei nenhum restrição a isso, então deveria funcionar, correto?

deveria funcionar sim, pois até tem exemplo na documentação. no meu caso tive problemas em pegar o retorno da função que gera o link do arquivo anexado