Data de liberação : 27/09/2022
Melhoria
APLICAÇÃO EXTERNA
Padronizamos uma pasta para armazenar os arquivos estáticos, como por exemplo PDF, XLSX, DOC etc. Essa demanda surgiu a partir da atualização do Spring Boot que não estava sendo possível fazer download quando utilizava a rota
{url_ambiente}/bpm/upload/cadastros/{pasta}/{arquivo}
). Isso facilitará o nosso processo de atualização e evitará problema de falta de arquivo. (e-PLT-2550 e e-PLT-2577)
De "/opt/lecom/custom/web-content/"
Para "/opt/lecom/custom/static-files/"
Correções
FORMULÁRIO
Ajustamos o download do assinador digital feito através do campo template, utilizado no formulário. (i-PLT-2566)
DOCUMENTOS
Ajustamos o carregando das informações do “Inventário ECM”, pois não estava mostrando nenhuma informação. Para isso atualizamos a versão do log4j nas dependências do componente “atos-components”. (i-PLT-2558)
Liberamos a URL de compartilhamento de arquivos, no filtro de autenticação, pois com o link gerado não era permitido fazer o download. (e-PLT-2229)
Pontos de Impacto
Customização (Controller)
Devido à atualização do Spring Boot, não é mais possível deixar a mesma pasta com conteúdo estático e dinâmico juntos. Sendo que, o conteúdo estático são os arquivos como, por exemplo, PDF, XLSX e DOC. Já os dinâmicos, são os controllers personalizados.
Ou seja, não há mais a possibilidade de baixar arquivos estáticos (templates ou arquivos de exemplos/ modelos), localizados no diretório “/opt/lecom/app/[TOMCAT]/webapps/bpm/upload/cadastros/
”.
Anteriormente, os arquivos estáticos eram colocados na pasta: “/opt/lecom/custom/web-content/
”
E rodando o comando “bpm –u update”, eram copiados para a pasta: “/opt/lecom/app/tomcat_aceite/webapps/bpm/upload/cadastros/
”
Agora, eles deverão ser inseridos no diretório: “/opt/lecom/custom/static-files/
”
Esse diretório static-files é apagado e sobrescrito após executar o comando “bpm -u update
”, da mesma forma como acontecia no webcontent
E, com o mesmo comando, serão clonados para a pasta: “/opt/lecom/storage/static-files/”
Para os casos em que é necessário disponibilizar ao usuário, os arquivos para download, há duas soluções:
Colocar o arquivo dentro do módulo de Documento (no ECM) e utilizar o link do mesmo com o ID do documento conforme o exemplo abaixo, se possível;
https://url_ambiente/bpm/view?dl=true&documentId=idDocumento
Ou, criar um controller que faça o download dos arquivos estáticos que estarão na pasta “
/opt/lecom/storage/static-files/
”, conforme o exemplo a seguir:
package com.lecom.workflow.cadastros.template; <<import>> @WebServlet(“/upload/cadastros/templates/”*) public class TemplateController extends HttpServlet implements Servlet { private static final String STATIC_FILES_PATH = “/opt/lecom/storage/static-files/”; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String pasta = URLDecoder.decode(request.getRequestURI()) .substring(request.getRequestURI().indexOf(“upload/cadastros/templates/”)); File file = new File(STATIC_FILES_PATH.concat(pasta)); try (FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream bos = new ByteArrayOutputStream(); BufferedInputStream bis = new BufferedInputStream(fis);) { byte[] buf = new byte[4 * 1024]; int bytesRead; while ((bytesRead = bis.read(buf)) != -1) { bos.write(buf, 0, bytesRead); } response.setContentType(“application/download”); try (OutputStream out = response.getOutputStream()) { out.write(bos.toByteArray()); } } } }
Pacote
Disponível na pasta Z:\produtos\workflow\versoes\versao5.50\pacotes\RTM\1.05.2