Salvar anexo de um processo no GED

Pessoal, tenho esse script abaixo ao qual consigo salvar anexo de um processo em questão no GED, porém verifiquei que quando tem mais de um anexo ele só salva o primeiro e os outros não, podem me ajudar?

function wfCriarPasta(parametros, pastaPai){
    try{
         log.info("Parametros: "+parametros);
         log.info("Pasta Pai: "+pastaPai);
         var cUsrAdm = "user";
         var cPass    = "senha";

         var comentario = "Currículo "+hAPI.getCardValue("nm_nome")+" - "+hAPI.getCardValue("dt_abertura");

         var nm_nome  = hAPI.getCardValue("nm_nome");
         nm_nome = nm_nome.split(" ").join("");

         var cb_IndcInt  = hAPI.getCardValue("cb_IndcInt");
         cb_IndcInt = cb_IndcInt.split(" ").join("");

         var aux_profissoes = hAPI.getCardValue("aux_profissoes");
         aux_profissoes = aux_profissoes.split(",").join(" ");

         var aux_area = hAPI.getCardValue("aux_AreaAtu");
         aux_area = aux_area.split(",").join(" ");

         var aux_OutrasTags = hAPI.getCardValue("ds_OutrasTags");
         aux_OutrasTags = aux_OutrasTags.split(" ").join("");

         var indicador  = hAPI.getCardValue("zoom_Func");
         indicador = indicador.split(" ").join(".");

         var palavraschave = "currículos"+ " " + cb_IndcInt + " " + aux_profissoes + " " + hAPI.getCardValue("nm_cidade") + " "
         + aux_area + " " + aux_OutrasTags + " " + hAPI.getCardValue("cb_formacao") + " " + hAPI.getCardValue("cb_procSel") + " " + indicador;

         var desc_versaorevisao = "Versão Inicial";
         var versaoRevisao = "1.000";
         var dateD = getDate();
         var dtValido;
         var doc_expira = false;
         var dtExpira;
         var tipo_docto_H = "Cadastros";
         var assunto_H = "9";    //Currículos
         var notificaEMail = false;
         var permiteDownload = true;
         var autor_H = cUsrAdm;
         var existeNivel = false;
         var idPastaCriada = 0;

         //var idPastaCriadaNova = " ";
         log.info("Instanciando webservice pastas");
         var folderServiceProvider = ServiceManager.getServiceInstance("wsFolderService");
         log.info("Instanciando Locator pastas");
         var folderServiceLocator = folderServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.ECMFolderServiceService");
         var folderService = folderServiceLocator.getFolderServicePort();
         log.info("Instanciando port pastas");

         for(var x=0; x < parametros.length; x++){
             log.info(">>>>>>> Parametros Length: "+parametros.length);
             log.info(">>>>>>> Valor do x:"+x);
             existeNivel = false;
                  if(x == 0){
                      log.info("True");
                      log.info("Folder Service:");
                      var user = cUsrAdm;//getValue("cUsrAdm").toString();
                      log.info("Usuario: "+user);
                     var folders = folderService.getSubFolders(
                                 cUsrAdm,
                                   cPass,
                                   parseInt(getValue("WKCompany")), 
                                   parseInt(pastaPai),
                                   user);

                      log.info("Folder Depois:");
                  }else{
                      log.info("False");
                     var folders = folderService.getSubFolders(
                             cUsrAdm,
                                   cPass,
                                   getValue("WKCompany"), 
                                   idPastaCriada,
                                   cUsrAdm);
                                   //getValue("cUsrAdm")); 
                  }
                  log.info("Folder get Item:"+folders.getItem());
                 if(!folders.getItem().isEmpty()){
                     log.info("Dentro Get Item");
                     log.info("Folder Get Item Length: "+folders.getItem().size()); 
                     for(var y = 0; y < folders.getItem().size(); y++){
                         log.info("dentro for y");
                         var pasta = folders.getItem().get(y);
                         var nome_pasta = "";
                         var nome_pasta_publicacao = "";
                         //var nome_Subpasta_publicacao = "";
                         nome_pasta = pasta.getDocumentDescription();
                         log.info("Nome Pasta: "+nome_pasta);


                         if(parametros[x].data == false){
                             log.info("Data false");
                             if(nome_pasta != parametros[x].nomePasta){
                                 existeNivel = false;
                                 log.info("False " + pasta.getDocumentDescription() + " Nivel " + parametros[x].nomePasta  );
                                 nome_pasta_publicacao = parametros[x].nomePasta;
                                 //nome_Subpasta_publicacao = parametros[x].nomePasta;
                             }else{
                                 existeNivel   = true;
                                 idPastaCriada = pasta.getDocumentId();
                                 log.info("True " + pasta.getDocumentDescription() + " Nivel " + parametros[x].nomePasta   + " Pasta " + pasta.getDocumentId());
                                 break;
                             }

                         }else{
                             log.info("False");
                              var dataSplit;
                              if(parametros[x].campoData == null){
                                  log.info("nulo >>>>>>>>>");
                                  var data = new Date();
                                  var dataSplitTemp = getFormattedDate(data);
                                  dataSplit = dataSplitTemp.split("/");    
                                  log.info("nulo >>>>> 1 "  + dataSplitTemp);
                              }else{
                                 dataSplit = parametros[x].campoData.split("/");
                                 log.info("nao nulo >>>> " + dataSplit);
                              }

                             var dataAtual = new Date(dataSplit[2],dataSplit[1],dataSplit[0]);
                             var mes = ('0' + (dataAtual.getMonth())).slice(-2); 
                             var ano = dataAtual.getFullYear();
                             var mesAno = ano + "/" + mes;

                             if(nome_pasta != mesAno){
                                 existeNivel = false;
                                 log.info("False " + pasta.getDocumentDescription() + " Nivel " + parametros[x].nomePasta  );
                                 nome_pasta_publicacao = mesAno;
                                 //nome_Subpasta_publicacao = mesAno;
                             }else{
                                 existeNivel   = true;
                                 idPastaCriada = pasta.getDocumentId();
                                 log.info("True " + pasta.getDocumentDescription() + " Nivel " + parametros[x].nomePasta   + " Pasta " + pasta.getDocumentId());
                                 break;
                             }
                         }

                     }
                 }else{

                     if(parametros[x].data == false){
                         log.info("Data False...");
                         log.info("X: "+x);
                         log.info("Nome Publicacao: "+parametros[x].nomePasta);
                         nome_pasta_publicacao = parametros[x].nomePasta;
                         //nome_Subpasta_publicacao = parametros[x].nomePasta;
                         log.info("Nome Publicacao: "+nome_pasta_publicacao);
                     }else{
                         log.info("Data True...");
                             var dataSplit;
                              if(parametros[x].campoData == null){
                                  log.info("nulo >>>>>>>>>");
                                  var data = new Date();
                                  var dataSplitTemp = getFormattedDate(data);
                                  dataSplit = dataSplitTemp.split("/");    
                                  log.info("nulo >>>>> 1 "  + dataSplitTemp);
                              }else{
                                 dataSplit = parametros[x].campoData.split("/");
                                 log.info("nao nulo >>>> " + dataSplit);
                              }

                             var dataAtual = new Date(dataSplit[2],dataSplit[1],dataSplit[0]);
                             var mes = ('0' + (dataAtual.getMonth())).slice(-2); 
                             var ano = dataAtual.getFullYear();
                             var mesAno = ano + "/" + mes;

                            nome_pasta_publicacao = mesAno;
                            //nome_Subpasta_publicacao = mesAno;
                     }

                 }
                 log.info("Existe Nivel: "+ existeNivel);
                 if(existeNivel == false){
                          log.info("Existe Nivel False...");
                          var idPastaCriadaTemp = "";
                          if(x == 0){
                             log.info("X: "+x);
                               idPastaCriadaTemp = pastaPai;
                          }else{
                               log.info("X: "+x);
                               idPastaCriadaTemp = idPastaCriada;
                          }
                          try{
                               log.info("Criando a nova pasta...");
                               log.info("Nome nova pasta: "+nome_pasta_publicacao);
                               idPastaCriadaNova = folderService.createSimpleFolder(
                                                   cUsrAdm,
                                                    cPass,
                                                    java.lang.Integer(getValue("WKCompany")),
                                                    java.lang.Integer(idPastaCriadaTemp),
                                                    cUsrAdm,//getValue("cUsrAdm"),
                                                    nome_pasta_publicacao);

                          }catch(e){
                             log.info("Erro"+e);
                         }
                         for(var propriedade in idPastaCriada) {
                             log.info(propriedade + ": " + idPastaCriadaNova[propriedade]);
                         }
                         log.info("Pasta Criada:"+idPastaCriada);
                         log.info("Funcoes Pasta Criada Nova:"+idPastaCriadaNova);

                         log.info("Novo id pasta nivel " + idPastaCriadaNova.getItem().get(0).getDocumentId());
                         idPastaCriada = idPastaCriadaNova.getItem().get(0).getDocumentId();
                         log.info("Nome pasta criada: "+idPastaCriadaNova.getItem().get(0).getDocumentDescription());
                 }

         }

         var pastaPublicacao = idPastaCriada;

         log.info("Pasta publicacao" + pastaPublicacao)
         var processConstraint = DatasetFactory.createConstraint("processAttachmentPK.processInstanceId", getValue("WKNumProces"),getValue("WKNumProces"), ConstraintType.MUST);
         var companyConstraint = DatasetFactory.createConstraint("processAttachmentPK.companyId",getValue("WKCompany"), getValue("WKCompany"), ConstraintType.MUST);
         var attachFields = new Array("documentId", "processAttachmentPK.attachmentSequence", "version");
         var attachConstList = new Array(processConstraint, companyConstraint);

         var attachDataset = DatasetFactory.getDataset("processAttachment", attachFields, attachConstList, new Array("processAttachmentPK.attachmentSequence"));
         var fichario;

         for(var i = 0; i < attachDataset.rowsCount; i++) {

          log.info("Fichario: "+fichario);
          fichario = getValue("WKCardId");
          log.info("Fichario: "+fichario);
          if(attachDataset.getValue(i,"documentId") !=  fichario) {
                   log.info("Instanciando webservice");
                   var documentServiceProvider = ServiceManager.getServiceInstance("wsDocumentService");
                   log.info("Instanciando Locator");
                 var documentServiceLocator = documentServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.ECMDocumentServiceService");
                 log.info("Instanciando port");
                 var documentService = documentServiceLocator.getDocumentServicePort();
                 log.info("documentService: "+documentService);
                 log.info("Chamando webservice de vers?o");
                 log.info("Document ID:"+attachDataset.getValue(i,"documentId"));
                 log.info("Document Version:"+attachDataset.getValue(i,"version"));
                 //log.info("Usr:"+getValue("cUsrAdm").toString());
                 log.info("Empresa:"+parseInt(getValue("WKCompany")));
                 var document = documentService.getDocumentVersion(
                         cUsrAdm,
                                                                   cPass,
                                                                   parseInt(getValue("WKCompany")), 
                                                                   parseInt(attachDataset.getValue(i,"documentId")),
                                                                   parseInt(attachDataset.getValue(i,"version")),
                                                                   cUsrAdm);
                                                                   //getValue("cUsrAdm").toString());
                 log.info("Document: "+document);
                    var doc = document.getItem().get(0);
                    var xmlCalendar = doc.getValidationStartDate();
                    log.info("xml Calendar: "+xmlCalendar);
                    doc.setDocumentId(0);
                    doc.setVersion(0);
                    doc.setParentDocumentId(new java.lang.Integer(pastaPublicacao));

                    doc.setAdditionalComments(comentario);
                    doc.setKeyWord(palavraschave);
                    doc.setVersionDescription(desc_versaorevisao);
                    doc.setDocumentTypeId(tipo_docto_H);
                    doc.setDownloadEnabled(permiteDownload);
                    doc.setExpires(doc_expira);
                    doc.setUserNotify(notificaEMail);
                    doc.setTopicId(new java.lang.Integer(assunto_H));
                    doc.setPublisherId(autor_H);
                    doc.setColleagueId(autor_H);
                    doc.setInheritSecurity(true);
                    var pos = versaoRevisao.indexOf(".");
                    doc.setVersion(new java.lang.Integer(versaoRevisao.substring(0, pos) + versaoRevisao.substring(pos +1)));

                    doc.setVersionOption("0");

                    doc.setVolumeId("Default");
                    try
                    {
                        doc.setUpdateIsoProperties(false);
                    }catch(e){}
                    document.getItem().add(0, doc);
                       log.info("Chama WS Conteudo do arquivo");            
                    var fContent = documentService.getDocumentContent(
                            cUsrAdm,
                                                                        cPass,
                                                                        getValue("WKCompany"),
                                                                        attachDataset.getValue(i,"documentId"),
                                                                        cUsrAdm,//getValue("cUsrAdm"),
                                                                        attachDataset.getValue(i,"version"),
                                                                        doc.getPhisicalFile()
                                                                        );


                    var attach = documentServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.Attachment");
                    attach.setFileName(doc.getPhisicalFile());
                    attach.setFilecontent(fContent);
                    attach.setPrincipal(true);
                    attachArray = documentServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.AttachmentArray");
                    attachArray.getItem().add(0,attach);

                    var relatedArr = documentServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.RelatedDocumentDtoArray");
                    var related  = new Array();

                    log.info("Chamando webservice de criacao de documentos");
                    var securityDTOArray = documentServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.DocumentSecurityConfigDtoArray");
                    log.info("Security: "+securityDTOArray);
                    var approversDTOArray = documentServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.ApproverDtoArray");
                    log.info("Approvers: "+approversDTOArray); 
                    var createDoc = documentService.createDocument(
                            cUsrAdm,
                      cPass,
                      getValue("WKCompany"),
                      document, attachArray, securityDTOArray, approversDTOArray, relatedArr);

                    var wsm =  createDoc.getItem().get(0);
                    log.info("Document Description: "+wsm.getDocumentDescription());
                    log.info("Document ID: "+wsm.getDocumentId());
                    return "ok";

          }
         }
    }catch(e) {
        log.info("ERRO AO PUBLICAR DOCUMENTO: " + e.message);
         throw e.message;
    }    


    }
    function getFormattedDate(date) {
      var year = date.getFullYear();
      var month = (1 + date.getMonth()).toString();
      month = month.length > 1 ? month : '0' + month;
      var day = date.getDate().toString();
      day = day.length > 1 ? day : '0' + day;
      return day + '/' + month + '/' + year;
    }
    function getDate() {
    var fullDate = new Date();

    var date = fullDate.getDate().toString();
    if (date.length == 1) {
        date =0+date;
    }
    var month = (fullDate.getMonth()+1).toString();
    if (month.length == 1) {
        month =0+month;
    }
    var dateD = {
        dia: date,
        mes: month,
        ano: fullDate.getFullYear().toString(),
        hora: fullDate.getHours().toString(),
        minuto: fullDate.getMinutes().toString(),
        segundo: fullDate.getMonth().toString()    
    };
    return dateD;

}

function retiraMascara(valor){
    //especialChar = especialChar;
    especialChar = String(valor);
  /*  if (valor.indexOf(',') == -1) {
    } else {*/
        //valor = valor.replace(/\D/g, '');
  //  }
   // valor = parseFloat(valor).toFixed(2);
    //return valor;
    especialChar = especialChar.replace('/_+/', '_'); //
}
compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags anexos ged ou faça a sua própria pergunta.