Estou publicando o anexo de um form no GED, mas estou enfrentando problemas, esta dano o erro: Atividade de serviço executada com falha: Tentativa: 1 - Erro Wrapped java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 (#38) - Tempo de Execução 4 s
var documento = [];
var documentoInvertido = [];
var dataCriacao = "";
var dataExpiracao = "";
var nomeDocumento = "";
var i;
var n = parseInt(hAPI.getCardValue('numeroAdmissionais'));
function servicetask57(attempt, message) {
publicaoDocumentoAdmissional()
consultaDocumentoExistente();
}
function publicaoDocumentoAdmissional(){
var processo = getValue("WKNumProces");
var campos = hAPI.getCardData(processo);
var contador = campos.keySet().iterator();
while (contador.hasNext()) {
var id = contador.next();
if (id.match(/nomeDocumentoPessoal___/)) {
var campo = campos.get(id);
var seq = id.split("___");
documento.push(campos.get("nomeDocumentoPessoal___" + seq[1]));
var filho2 = campos.get("dataCriacaoPessoal___" + seq[1]);
}
}
documento.toString();
//documentoInvertido = documento.reverse();
}
function publicaDocumento(){
var docs = hAPI.listAttachments();
for (i = n; i < docs.size(); i++) {
var docDto = docs.get(i); \\####Erro Linha 38
if (docDto.getDocumentType() == "7") {
docAPI.copyDocumentToUploadArea(docDto.getDocumentId(), docDto.getVersion());
docDto.setDocumentId(0);
docDto.setParentDocumentId(parseInt(hAPI.getCardValue("pastaControleAdmissional")));
var attachArray = new java.util.ArrayList();
var mainAttach = docAPI.newAttachment();
mainAttach.setFileName(docDto.getPhisicalFile());
mainAttach.setPrincipal(true);
mainAttach.setAttach(false);
attachArray.add(mainAttach);
docDto.setActiveVersion(true);
docDto.setColleagueId(getValue("WKUser"));
docDto.setPublisherId(getValue("WKUser"));
docDto.setDocumentDescription(documento[i-n]);
var aprovador = docAPI.newApproverDto();
aprovador.setCompanyId(getValue("WKCompany"));
aprovador.setColleagueId(getValue("WKUser"));
aprovador.setDocumentId(docDto.getDocumentId());
aprovador.setVersion(1);
aprovador.setLevelId(1);
aprovador.setApproverType(0);
var aprovadoresArray = new java.util.ArrayList();
aprovadoresArray.add(aprovador);
try {
var doc = docAPI.createDocument(docDto, attachArray, null, aprovadoresArray, null);
log.info("DOCUMENTO CRIADO COM O ID: " + doc.getDocumentId());
idDoc = doc.getDocumentId();
} catch (e) {
log.error("Problemas na criação do documento:\n" + e);
}
}
if (i == docs.size())//Correção
break;
}
hAPI.setCardValue("numeroPessoais", i);
}
Pelo que entendi o erro diz que estou tentado pegar o valor de um índice que não existe na array anexos, mas no caso a array tem 3 itens,e no for eu pego o índice 1 e 2 e pronto...
— Allan LB 07 de Feb de 2019O laço de repetição não estava parando, coloquei um if (i == docs.size()) break;no fim do for e o problema foi resolvido, desculpe pessoal.
— Allan LB 07 de Feb de 2019