5.50_v.1.05.2 Hotfix
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