Versão atual:

Portal Publico iniciando varios processos no Fluig via webservice

Criei um Portal Público onde o cliente Agenda uma Montagem. Tem situações onde ele agendará duas ou mais montagens e pode escolher uma data ou várias datas.

Então eu separo essas montagens por datas e através do Webservice eu inicio os processos no Fluig. Porém, o Fluig só está iniciando o primeiro processo do laço, os outros não são iniciados.

Por exemplo, tenho um array com as Datas [29/08/2019, 30/08/2019, 31/08/2019].

Minha situação atual, ele só inicia o processo para a Data 29/08/2019, as outras não acontece nada.

Primeiro percebi que ele executava todo o laço das Datas antes de ter a resposta de inicio de processo do Widget. Depois tentei forçar um callback para o laço esperar a resposta do webservice antes de iterar para a próxima Data. Ele executa o laço todo e só depois que dá a resposta de processo iniciado, porém, só inicia da primeira data.

Gostaria de uma ajuda para tentar solucionar esse problema e iniciar o processo para todas as datas do laço.

// Laço das Datas
for(var t=0; t < temp.length; t++) {
   console.log("Processo sendo criado. Data: " + temp[t].dt_mont + ", Turno: " + temp[t].tr_mont + ", Itens: " + itens_para_montar);
   this.callbackTester(function() {
      that.criarProcessoMontagem(temp[t].dt_mont, temp[t].tr_mont, itens_para_montar);
   });
   console.log("[PROCESSO INICIADO VIA WIDGET COM SUCESSO] Hora " + new Date());
}

// Funçao de chamada do callback
callbackTester: function(callback) {
   callback();
}

// Funçao que monta os dados para enviar para o Webservice
criarProcessoMontagem: function(datamontagem, turnomontagem, itensmontagem) {
   var xml_processo = null;
   var that = this;
   // Template Envelope XML
   $.ajax({
      url : '/montagem_agendamento/resources/js/xmls/ECMWFEngineService_startProcess.xml',
      async : false,
      type : "get",
      datatype : "xml",
      success : function(xml) {
         xml_processo = $(xml);
      }
   });
   // Alterar os valores recuperados na variavel xml_processo
   xml_processo.find("companyId").text("1");
   xml_processo.find("comments").text('Processo iniciado via WIDGET pelo Portal Agendamento de Montagem de Moveis!');
   xml_processo.find("choosedState").text("6");
   xml_processo.find("colleagueIds").text("admin");
   xml_processo.find("userId").text("admin");
   xml_processo.find("completeTask").text(true);
   xml_processo.find("managerMode").text(false);
   // Preenchendo valores dos campos do formulario Montagem de Moveis 
   xml_processo.find("[name='cpfCliente']").text($("#cpf_" + this.instanceId).val());
   xml_processo.find("[name='idPedido']").text($("#pedido_" + this.instanceId).val());
   xml_processo.find("[name='nomeContato']").text($("#nomecliente_" + this.instanceId).val());
   xml_processo.find("[name='celularContato']").text($("#celularcliente_" + this.instanceId).val());
   xml_processo.find("[name='dataAgendamento']").text(datamontagem);

   var cardData = $("cardData", xml_processo);
   for(var p = 0; p < itensmontagem.length; p++) {
      var index = p + 1;
      this.addItemXML(cardData, 'idItem___' + index, itensmontagem[p].idItem); 
      this.addItemXML(cardData, 'descricaoItem___' + index, itensmontagem[p].descricaoItem);
      this.addItemXML(cardData, 'qtdeItem___' + index, itensmontagem[p].qtdeItem);
      this.addItemXML(cardData, 'valorItem___' + index, itensmontagem[p].valorItem);
      this.addItemXML(cardData, 'valorTotal___' + index, itensmontagem[p].valorTotal);
   }

   this.callbackTester(function() {
      that.enviarProcesso(xml_processo[0]);
   });
}

// Envia o Processo via webservice
enviarProcesso: function(processo) {
   console.log("Enviando Processo para Servidor!");
   // Usar o metodo WCMAPI.Create para chamar o webservice e Iniciar o Processo de Montagem de Moveis
   WCMAPI.Create({
      url : "/webdesk/ECMWorkflowEngineService?wsdl",
      contentType : "text/xml",
      dataType : "xml",
      data : processo,
      success : function(data) {
         console.log("Montagem de Moveis Agendada com Sucesso");
      }
   });
}

Versão (1):

Ver a versão formatada

Portal Publico iniciando varios processos no Fluig via webservice

Comentário

new question