@Lucas, bom dia!!
Não vai rolar consultar o ws na atividade em que é inserido o anexo, também não funciona transferir para o GED e depois executar o ws ainda na mesma atividade. Tem duas saídas:
- Utilizar atividades de serviço automatizadas. Aí nela é consumido o webservice e retornado os bytes e pode tratar os dados do arquivo e caso tenha algum erro ou validação da sua regra de negócio, pode-se dar throw e a solicitação é encaminhada para a atividade configurada no evento de captura de erro. Tenho preferência por essa opção, algo mais padrão da ferramenta.
- Caso queira tratar na própria atividade, pode-se utilizar o beforeTaskSave, porém não vai conseguir consumir o ws, pois está na mesma atividade, porém já é possível pegar a URL do documento e assim consegue pegar os bytes do arquivo utilizando java, segue exemplo:
function beforeTaskSave(colleagueId,nextSequenceId,userList){
importPackage(java.net);
importPackage(java.io);
try {
if (nextSequenceId == 2 && getValue("WKCompletTask").equals("true")) {
var docs = hAPI.listAttachments();
for (var i = 0; i < docs.size(); i++) {
var doc = docs.get(i);
var bytesBuffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 8192);
log.info("URL: " + fluigAPI.getDocumentService().getDownloadURL(doc.getDocumentId()));
var url = new URL(fluigAPI.getDocumentService().getDownloadURL(doc.getDocumentId()));
var is = url.openStream();
var baos = new ByteArrayOutputStream(doc.getPhisicalFileSize());
var len = 0;
while ((len = is.read(bytesBuffer, 0, bytesBuffer.length)) != -1) {
baos.write(bytesBuffer, 0, len);
}
var content = baos.toByteArray();
log.info("content: " + content);
}
}
} catch (e) {
throw "### Erro beforeTaskSave: " + e;
}
}