1 Solicitação de compras Solicitação de compra - Ginseng Este flow permite abertura de solicitação de compras automatizadas, informando qual item será comprado e direcionado para as aprovações corretas. true false Default Compras - Testes <AssignmentController><Group>TIC</Group></AssignmentController> 0 0 0 Default false 1 true false 0 0 true 1 Solicitação de compra - Ginseng 8 9305 true false false true false false 0 2 false false false 1 Solicitação de compras 1 1 Solicitar compra Solicitar compra Inicio da atividade 0 false 0 1 true false false 0 0 0 0 false 0 true true false 100 30 0 0 false false 0 0 false Default 0 10 0 false 0 0 0 0 false 1 Solicitação de compras 1 18 Receber o produto/serviço Receber o produto/serviço 604800 false 0 Executor Atividade <AssignmentController><BaseActivity>1</BaseActivity><Returns>Last</Returns></AssignmentController> 1 false false false 0 0 0 0 false 0 true true false 1440 13 0 0 false false 0 0 false 0 80 0 false 0 0 0 0 false 0 1 Solicitação de compras 1 24 Verificar problema Verificar problema 172800 false 0 Pool Grupo <AssignmentController><Group>ComprasIndiretos</Group></AssignmentController> 1 false false false 0 0 0 0 false 0 true true false 1560 415 0 0 false false 0 0 false 0 80 0 false 0 0 0 0 false 0 1 Solicitação de compras 1 73 Tratar erro Tratar erro 0 false 0 Pool Grupo <AssignmentController><Group>TIC</Group></AssignmentController> 1 false true false 3600 3600 0 0 false 0 true false false 970 640 0 0 false false 0 0 false 0 80 0 false 0 0 0 0 false 0 1 Solicitação de compras 1 82 Enviar SC Enviar SC 0 false 0 1 false false false 0 0 0 0 false 0 true false false 560 632 0 0 false false 0 0 false 0 82 0 false 0 0 0 0 false 1 1 Solicitação de compras 1 105 Selecionar cotação Selecionar cotação 0 false 0 Executor Atividade <AssignmentController><BaseActivity>1</BaseActivity><Returns>Last</Returns></AssignmentController> 1 false true false 3600 3600 0 0 false 0 true false false 620 21 0 0 false false 0 0 false 0 80 0 false 0 0 0 0 false 0 1 Solicitação de compras 1 114 Integrador Cotação Integrador Cotação 0 false 0 1 false false false 0 0 0 0 false 0 true false false 560 225 0 0 false false 0 0 false 0 82 0 false 0 0 0 0 false 1 1 Solicitação de compras 1 118 Cotação fora do prazo Cotação fora do prazo 0 false 0 Pool Grupo <AssignmentController><Group>ComprasIndiretos</Group></AssignmentController> 1 false true false 3600 3600 0 0 false 0 true false false 640 327 0 0 false false 0 0 false 0 80 0 false 0 0 0 0 false 0 1 Solicitação de compras 1 121 Analisar necessidade de compra Analisar necessidade de compra 0 false 0 Campo Formulário <AssignmentController><FormField>gestor_cc</FormField></AssignmentController> 1 false true false 3600 3600 0 0 false 0 true false false 460 100 0 0 false false 0 0 false 0 80 0 false 0 0 0 0 false 0 1 Solicitação de compras 1 133 Aprovação Centro de custo Aprovação Centro de custo 0 false 0 Campo Formulário <AssignmentController><FormField>gestor_cc</FormField></AssignmentController> 1 false true false 3600 3600 0 0 false 0 true false false 910 110 0 0 false false 0 0 false 0 80 0 false 0 0 0 0 false 0 1 Solicitação de compras 1 137 Aprovação Compras Aprovação Compras 0 false 0 1 false true false 3600 3600 0 0 false 0 true false false 800 225 0 0 false false 0 0 false 0 80 0 false 0 0 0 0 false 0 1 Solicitação de compras 1 147 Aprovação GERF Aprovação GERF 0 false 0 1 false true false 3600 3600 0 0 false 0 true false false 1060 429 0 0 false false 0 0 false 0 80 0 false 0 0 0 0 false 0 1 Solicitação de compras 1 158 Aprovação CEO Aprovação CEO 0 false 0 1 false true false 3600 3600 0 0 false 0 true false false 1340 520 0 0 false false 0 0 false 0 80 0 false 0 0 0 0 false 0 1 Solicitação de compras 1 85 Intermediário Intermediário Evento intermediário do processo 0 false 0 0 false true false 1 1 0 0 false 0 true false false 630 662 0 0 false false 0 false 0 43 0 false 0 false 82 1 Solicitação de compras 1 117 Intermediário Intermediário Evento intermediário do processo 0 false 0 0 false true false 1 1 0 0 false 0 true false false 630 265 0 0 false false 0 false 0 43 0 false 0 false 114 1 Solicitação de compras 1 46 Validar compra Validar compra false false false 0 true 1580 5 false 1 120 0 0 false 1 Solicitação de compras 1 128 Alçada Alçada false false false 0 true 710 217 false 1 120 0 0 false 1 Solicitação de compras 1 150 Valor N1 Valor N1 false false false 0 true 1090 100 false 1 120 0 0 false 1 Solicitação de compras 1 154 Valor N2 Valor N2 false false false 0 true 1220 230 false 1 120 0 0 false 1 Solicitação de compras 1 39 Cancelado Cancelado Atividade final do processo 0 false 0 0 false true false 0 1 0 0 false 0 false true false 360 126 0 0 false false 0 0 false 6 65 0 false 0 false 1 Solicitação de compras 1 52 Fim Fim Atividade final do processo 0 false 0 0 false true false 0 1 0 0 false 0 false false false 1670 41 0 0 false false 0 0 false 6 60 0 false 0 false 1 Solicitação de compras 1 8 46 hAPI.getCardValue("validacaoItens") == "entregue" 52 0 1 Solicitação de compras 2 8 46 true 24 0 1 Solicitação de compras 1 8 128 parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 100000.00 137 <AssignmentController><User>001142</User></AssignmentController> Usuário 0 1 Solicitação de compras 1 8 150 parseFloat(hAPI.getCardValue("valorTotalCotacao")) >= 5001.00 && parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 50000.00 147 <AssignmentController><User>AriNascimento</User></AssignmentController> Usuário 0 1 Solicitação de compras 2 8 150 true 18 <AssignmentController><User>andrey.cunha</User></AssignmentController> Usuário 0 1 Solicitação de compras 1 8 154 parseFloat(hAPI.getCardValue("valorTotalCotacao")) > 50000.00 158 <AssignmentController><User>900010</User></AssignmentController> Usuário 0 1 Solicitação de compras 2 8 154 parseFloat(hAPI.getCardValue("valorTotalCotacao")) < 50000.00 18 <AssignmentController><BaseActivity>1</BaseActivity><Returns>Last</Returns></AssignmentController> Executor Atividade 0 1 Solicitação de compras 1 26 false 24 18 false false 0 1 Solicitação de compras 1 47 false 18 46 false false 0 1 Solicitação de compras 1 48 false 46 24 Reprovar false false 0 1 Solicitação de compras 1 78 false 46 52 false false 0 1 Solicitação de compras 1 86 false 85 73 false false 0 1 Solicitação de compras 1 88 false 73 82 false false 0 1 Solicitação de compras 1 97 false 73 false false 0 1 Solicitação de compras 1 119 false 117 118 false false 0 1 Solicitação de compras 1 120 false 118 114 false false 0 1 Solicitação de compras 1 124 Rejeitar false 121 39 false false 0 1 Solicitação de compras 1 125 false 1 121 false false 0 1 Solicitação de compras 1 126 Aprovar false 121 82 false false 0 1 Solicitação de compras 1 127 false 82 114 false false 0 1 Solicitação de compras 1 129 Enviar para gestão false 105 128 false false 0 1 Solicitação de compras 1 138 false 128 137 false false 0 1 Solicitação de compras 1 142 false 114 105 false false 0 1 Solicitação de compras 1 144 false 137 133 false false 0 1 Solicitação de compras 1 151 false 133 150 false false 0 1 Solicitação de compras 1 152 false 150 18 false false 0 1 Solicitação de compras 1 153 false 150 147 false false 0 1 Solicitação de compras 1 155 false 147 154 false false 0 1 Solicitação de compras 1 156 false 154 18 false false 0 1 Solicitação de compras 1 159 false 154 158 false false 0 1 Solicitação de compras 1 160 false 158 18 false false 0 1 Solicitação de compras 1 161 Ajustar Solicitação false 121 1 false false 0 1 servicetask82 Solicitação de compras 1 function toProtheusDate(d) { if (!d) return ""; if (d.indexOf("/") > -1) { var parts = d.split("/"); return parts[2] + parts[1] + parts[0]; // dd/MM/yyyy -> yyyyMMdd } if (d.indexOf("-") > -1) { return d.replace(/-/g, ""); // yyyy-MM-dd -> yyyyMMdd } return d; // já está no formato certo } function hojeProtheus() { var d = new Date(); var yyyy = d.getFullYear(); var mm = d.getMonth() + 1; var dd = d.getDate(); if (mm < 10) mm = "0" + mm; if (dd < 10) dd = "0" + dd; return "" + yyyy + mm + dd; // yyyyMMdd } function servicetask82(attempt, message) { log.info("🚀 Iniciando servicetask82"); var qtdItens = hAPI.getChildrenIndexes("tbItens"); log.info("📦 Total de itens na tabela: " + qtdItens.length); var itens = []; for (var i = 0; i < qtdItens.length; i++) { var index = qtdItens[i]; var item = { "C1_PRODUTO": String(hAPI.getCardValue("Codproduto___" + index)), "C1_QUANT": Number(hAPI.getCardValue("qtd___" + index)), "C1_DATPRF": toProtheusDate(String(hAPI.getCardValue("dataNec___" + index))) }; itens.push(item); log.info("📌 Item adicionado: " + JSON.stringify(item)); } var payload = { "C1_SOLICIT": String(hAPI.getCardValue("usuarioSolicitante")), "C1_EMISSAO": hojeProtheus(), "C1_FILENT": String(hAPI.getCardValue("filialProtheus")).trim(), "C1_OBS": String(hAPI.getCardValue("observacoes")), "itens": itens }; log.info("📦 Payload montado:"); log.info(JSON.stringify(payload)); var data1 = { companyId: '1', serviceCode: 'Postprod', endpoint: '/rest/UF_MATA110', method: 'post', timeoutService: '100', params: payload, // objeto puro headers: { 'Content-Type': 'application/json' } }; try { var clientService = fluigAPI.getAuthorizeClientService(); var response = clientService.invoke(JSON.stringify(data1)); // SEMPRE stringify aqui log.info("📬 Resposta da API Protheus:"); log.dir(response); if (response && response.getResult()) { var result = JSON.parse(response.getResult()); if (result.sucesso) { hAPI.setCardValue("numeroSCProtheus", result.C1_NUM || ""); hAPI.setCardValue("statusSCProtheus", "SC cadastrada com sucesso"); hAPI.setCardValue("solicitanteSCProtheus", result.C1_SOLICIT || ""); hAPI.setCardValue("emissaoSCProtheus", result.C1_EMISSAO || ""); hAPI.setCardValue("qtdItensSCProtheus", String(result.quantidade_itens || "")); hAPI.setCardValue("dataCadastroSCProtheus", result.data_cadastro || ""); hAPI.setCardValue("horaCadastroSCProtheus", result.hora_cadastro || ""); } else { hAPI.setCardValue("statusSCProtheus", "Erro: " + result.erro); throw "Erro Protheus: " + result.message; } } else { throw "Sem resposta da API Protheus"; } } catch (e) { log.error("❌ Erro ao enviar SC para o Protheus: " + e); throw e; } log.info("🏁 Finalização da servicetask82"); } 1 servicetask114 Solicitação de compras 1 function servicetask114(attempt, message) { log.info("🚀 ST92 — Verifica se já existe código de cotação no formulário"); var numSC = hAPI.getCardValue("numeroSCProtheus"); var numCot = hAPI.getCardValue("cotacaoSCProtheus"); log.info("📌 SC: " + numSC + " | Cotação: " + numCot); if (!numSC) { throw "❌ Número da SC não informado no formulário."; } // se não tiver cotação ainda, força o loop da atividade if (!numCot || numCot === "000000" || numCot === "000001") { throw "⏳ Cotação ainda não disponível para a SC " + numSC; } // se já tiver código, só registra log e deixa o processo seguir log.info("✅ Cotação " + numCot + " encontrada no formulário. Processo segue."); } FFFFFF 715 1710 11 6 Solicitação de compras 1 0 1 Solicitação de compras 1 1 82b0b7 102 1680 41 6 Solicitante 2 1 1 Solicitação de compras 1 2 d0daae 102 1680 41 210 Compras 2 1 1 Solicitação de compras 1 3 d6e0d0 102 1680 41 108 Gestor CC 2 1 1 Solicitação de compras 1 4 adc9ac 103 1680 41 618 TI 2 1 1 Solicitação de compras 1 5 C0C0C0 102 1680 41 312 Compras 2 1 1 Solicitação de compras 1 6 c9c3ac 102 1680 41 414 GERF 2 1 1 Solicitação de compras 1 7 9fc1c6 102 1680 41 516 CEO 2 1 1 Solicitação de compras 1 8 1 Solicitação de compras 8 26 1 1492 452 1 Solicitação de compras 8 125 1 512 47 1 Solicitação de compras 8 126 1 513 662 1 Solicitação de compras 8 127 1 612 498 1 Solicitação de compras 8 129 1 739 61 1 Solicitação de compras 8 142 1 612 48 1 Solicitação de compras 8 144 1 852 155 1 Solicitação de compras 8 152 1 1120 96 1 Solicitação de compras 8 152 2 1120 59 1 Solicitação de compras 8 161 1 511 47 1 Solicitação de compras descProduto descProduto 1 1 Solicitação de compras empresa empresa 2 1 Solicitação de compras estabelecimento estabelecimento 3 1 Solicitação de compras filialdest filialdest 4 1 Solicitação de compras numeroSCProtheus numeroSCProtheus 5 1 Solicitação de compras pedidoSCProtheus pedidoSCProtheus 6 1 Solicitação de compras quantidade quantidade 7 1 Solicitação de compras solicitanteSCProtheus solicitanteSCProtheus 8 1 Solicitação de compras urgencia urgencia 9 1 Solicitação de compras valorTotalCotacao valorTotalCotacao 10 1 Solicitação de compras 1 82 5 Solicitação enviada com sucesso 1 0 1 Solicitação de compras 1 114 5 Integração executada com sucesso 1 2