Prezado(a), como fazer o botão do formulário efetuar o download de documento que fica no anexo de processo sem que usuário precise baixar pela aba do anexo de processo. é o seguinte, em uma atividade o usuário anexar o documento no processo através de botão com sucesso e em outra atividade verificar se possui anexo para habilitar o botão download, e ao efetuar clique no botão, o documento é baixado.
Boa tarde, Arthur!
Cara, não sei se a nível do formulário sem utilizar eventos de formulário/processo você conseguirá realizar essa customização.
Imaginei que você possa utilizar listAttachments()
da API (http://tdn.totvs.com/display/public/fluig/hAPI) para listar e alguma outra função para realizar o download, vou ver se encontro alguma coisa pois não precisei fazer nada parecido ainda.
Referências: http://tdn.totvs.com/display/public/fluig/Guia+de+Propriedades+dos+Objetos#GuiadePropriedadesdosObjetos-DocumentDto
Abraços
é porque eu consegui executar via javascript para fazer upload de anexo do processo, e surgiu esta nesta de baixar o documento do anexo.
Para baixar todos os anexos, você pode utilizar a própria API do Fluig e criar uma função para capturar o retorno. Como você também vai precisar do ID do processo, vai precisar obter essa informação. Uma forma é no evento de formulário. Eu utilizo o displayFields dessa forma:
displayFields.js
function displayFields(form,customHTML){
var instanceId = getValue('WKNumProces');
customHTML.append("<script>");
customHTML.append("var INSTANCEID = " + instanceId + ";");
customHTML.append("</script>");
}
E no script do formulário
function baixarAnexos() {
let endpoint = 'bpm/api/v1/requests/{processInstanceId}/attachments/download';
const serverURL = parent.WCMAPI.serverURL;
endpoint = endpoint.replace('{processInstanceId}', INSTANCEID);
const URL = serverURL + endpoint;
fetch(URL)
.then(resp => resp.blob())
.then(blob => {
const url = window.URL.createObjectURL(blob);
const e = document.createElement('e');
e.style.display = 'none';
e.href = url;
e.download = 'Anexos.zip';
document.body.appendChild(e);
e.click();
window.URL.revokeObjectURL(url);
})
.catch(() => alert('Erro :('));
}
Depois é só definir o evento onClick do componente para a função baixarAnexos().
Obs: Não funciona no Mobile