Salve, nação!
Quero pegar um determinado documento via ID e copiá-lo para uma outra pasta, mudando seu nome. Fiz o código abaixo:
// Função para fazer o upload do arquivo para outra pasta no GED
function uploadFileToFolder(documentId, newFileName, parentDocumentId) {
try {
log.info("@@@ Iniciando a cópia do documento: " + documentId);
var docDto = docAPI.newDocumentDto();
docAPI.copyDocumentToUploadArea(documentId, 1000); // pela natureza do processo, a versão sempre será 1
docDto.setDocumentId(0);
docDto.setDocumentType("2"); // 1 - Pasta; 2 - Documento; 3 - Documento Externo; 4 - Fichario; 5 - Fichas; 9 - Aplicativo; 10 - Relatorio.
docDto.setInheritSecurity(true);
docDto.setParentDocumentId(parseInt(parentDocumentId));
var attachArray = new java.util.ArrayList();
var mainAttach = docAPI.newAttachment();
mainAttach.setFileName(newFileName);
mainAttach.setPrincipal(true);
mainAttach.setAttach(false);
attachArray.add(mainAttach);
docDto.setActiveVersion(true);
docDto.setColleagueId(getValue("WKUser"));
docDto.setPublisherId(getValue("WKUser"));
var comentario =
'{"Id do anexo original": ' +
'"' +
documentId +
'",' +
'"PROTOCOLO": ' +
'"' +
getValue('WKNumProces') +
'",' +
'"Número do Edital": ' +
'"' +
hAPI.getCardValue('numeroNovoEdital') +
'",' +
'"Nome do Edital": ' +
'"' +
hAPI.getCardValue('nomeNovoEdital') +
'"' +
'}';
docDto.setAdditionalComments(comentario);
var doc = docAPI.createDocument(docDto, attachArray, null, null, null);
} catch (e) {
log.error("Erro ao copiar o documento: " + e);
throw e;
}
}
Mas tô recebendo o erro:
JavaException: com.datasul.technology.webdesk.exception.ECMInsertDocumentException: Tipo de documento informado não existe.
Já tentei os tipos 2 e 3, com a mesma situação. Não é obrigação usar a docAPI, mas me pareceu a forma mais eficiente no momento, ao invés de usar webservice ou API REST. Alguma ideia?
Valeeeu!
Faz um teste…
docDto.setDocumentType("2");
docDto.setDocumentTypeId("");
Na trave, @venturelli …mas avançamos. Obrigado!
Veja:
function uploadFileToFolder(documentId, newFileName, parentDocumentId) {
try {
log.info("@@@ Iniciando a cópia do documento: " + documentId);
var docDto = docAPI.newDocumentDto();
docAPI.copyDocumentToUploadArea(documentId, 1000); // pela natureza do processo, a versão sempre será 1
docDto.setDocumentId(0);
docDto.setDocumentType("2"); // 1 - Pasta; 2 - Documento; 3 - Documento Externo; 4 - Fichario; 5 - Fichas; 9 - Aplicativo; 10 - Relatorio.
docDto.setDocumentTypeId("");
docDto.setInheritSecurity(true);
docDto.setTopicId(2);
docDto.setParentDocumentId(parseInt(parentDocumentId));
docDto.setDocumentDescription(newFileName);
var attachArray = new java.util.ArrayList();
var mainAttach = docAPI.newAttachment();
mainAttach.setFileName(newFileName);
mainAttach.setPrincipal(true);
mainAttach.setAttach(false);
attachArray.add(mainAttach);
docDto.setActiveVersion(true);
docDto.setColleagueId(getValue("WKUser"));
docDto.setPublisherId(getValue("WKUser"));
var comentario =
'{"Id do anexo original": ' +
'"' +
documentId +
'",' +
'"PROTOCOLO": ' +
'"' +
getValue('WKNumProces') +
'",' +
'"Número do Edital": ' +
'"' +
hAPI.getCardValue('numeroNovoEdital') +
'",' +
'"Nome do Edital": ' +
'"' +
hAPI.getCardValue('nomeNovoEdital') +
'"' +
'}';
docDto.setAdditionalComments(comentario);
var doc = docAPI.createDocument(docDto, attachArray, null, null, null);
} catch (e) {
log.error("Erro ao copiar o documento: " + e);
throw e;
}
}
O único erro que tenho agora é que o Fluig não conseguiu encontrar o arquivo com o (novoNome) na pasta do original. Fiquei confuso, pois estou criando um novo documento mas com outro nome, setado em tempo de execução do código.
1 curtida
Quando um arquivo é copiado pra pasta de upload, ele não vai ter mais referencia do id. A única coisa que vai identificar ele é o nome.
Eu acredito que no docDto
até possa manter o newFileName
, mas no mainAttach.setFileName
deve ser usado o nome original do arquivo.
1 curtida
Muito obrigado, @venturelli ! Era isso mesmo, fiz confusão.
Aqui o código final caso alguém precise:
function enviaAnexosParaGED(attachmentObject, parentDocumentId) {
log.info("@@@Enviando arquivos do processo para GED...@@@");
var processNumber = getValue("WKNumProces"); // Número do processo atual
var service = fluigAPI.getDocumentService(); // Serviço do GED do Fluig
// Função para fazer o upload do arquivo para outra pasta no GED
function uploadFileToFolder(documentId, actualFileName, newFileName, parentDocumentId) {
try {
log.info("@@@ Iniciando a cópia do documento: " + documentId);
var docDto = docAPI.newDocumentDto();
docAPI.copyDocumentToUploadArea(documentId, 1000); // pela natureza do processo, a versão sempre será 1
docDto.setDocumentId(0);
docDto.setDocumentType("2"); // 1 - Pasta; 2 - Documento; 3 - Documento Externo; 4 - Fichario; 5 - Fichas; 9 - Aplicativo; 10 - Relatorio.
docDto.setDocumentTypeId("");
docDto.setInheritSecurity(true);
docDto.setTopicId(2);
docDto.setParentDocumentId(parseInt(parentDocumentId));
docDto.setDocumentDescription(newFileName);
var attachArray = new java.util.ArrayList();
var mainAttach = docAPI.newAttachment();
mainAttach.setFileName(actualFileName);
mainAttach.setPrincipal(true);
mainAttach.setAttach(false);
attachArray.add(mainAttach);
docDto.setActiveVersion(true);
docDto.setColleagueId(getValue("WKUser"));
docDto.setPublisherId(getValue("WKUser"));
var comentario =
'{"Id do anexo original": ' +
'"' +
documentId +
'",' +
'"PROTOCOLO": ' +
'"' +
getValue('WKNumProces') +
'",' +
'"Número do Edital": ' +
'"' +
hAPI.getCardValue('numeroNovoEdital') +
'",' +
'"Nome do Edital": ' +
'"' +
hAPI.getCardValue('nomeNovoEdital') +
'"' +
'}';
docDto.setAdditionalComments(comentario);
var doc = docAPI.createDocument(docDto, attachArray, null, null, null);
log.info("@@@ Documento copiado com sucesso " + doc.getDocumentId() + "para a pasta: " + parentDocumentId);
} catch (e) {
log.error("Erro ao copiar o documento: " + e);
throw e;
}
}
1 curtida