function createDataset(fields, constraints, sortFields) { var dataset = DatasetBuilder.newDataset(); dataset.addColumn("C1_FILIAL"); dataset.addColumn("C1_NUM"); dataset.addColumn("C1_ITEM"); dataset.addColumn("C1_PRODUTO"); dataset.addColumn("C1_DESCRI"); dataset.addColumn("C1_QUANT"); dataset.addColumn("C1_VUNIT"); dataset.addColumn("C1_TOTAL"); dataset.addColumn("C1_DATPRF"); dataset.addColumn("C1_CC"); dataset.addColumn("C1_CONTA"); dataset.addColumn("C1_SOLICIT"); dataset.addColumn("C1_EMISSAO"); dataset.addColumn("C1_APROV"); dataset.addColumn("C1_COTACAO"); dataset.addColumn("C1_PEDIDO"); dataset.addColumn("C1_ITEMPED"); dataset.addColumn("STATUS"); dataset.addColumn("data_consulta"); dataset.addColumn("hora_consulta"); dataset.addColumn("sucesso"); dataset.addColumn("COTACOES_JSON"); dataset.addColumn("COTACAO_ERRO"); function emptyRow() { return ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false", "", ""]; } function consultarCotacao(clientService, cotacao) { var endpoints = [ "/UF_MATA130/" + cotacao, "/rest/UF_MATA130/" + cotacao, "/rest/uf_mata130/" + cotacao ]; var ultimoErro = ""; for (var i = 0; i < endpoints.length; i++) { try { var dataCot = { companyId: "1", serviceCode: "Postprod", endpoint: endpoints[i], method: "get", timeoutService: "60000", headers: { "Content-Type": "application/json" } }; var responseCot = clientService.invoke(JSON.stringify(dataCot)); if (!responseCot || !responseCot.getResult()) { ultimoErro = "Sem resposta ao consultar cotacao"; continue; } var resultCot = JSON.parse(responseCot.getResult()); if (resultCot && resultCot.sucesso && resultCot.cotacoes && resultCot.cotacoes.length > 0) { return { sucesso: true, cotacoes: resultCot.cotacoes }; } if (resultCot && resultCot.message) { ultimoErro = String(resultCot.message); } else { ultimoErro = "Cotacao sem itens retornados"; } } catch (eCot) { ultimoErro = String(eCot); } } return { sucesso: false, erro: ultimoErro || "Falha ao consultar cotacao" }; } try { var numeroSC = null; if (constraints != null) { for (var i = 0; i < constraints.length; i++) { if (constraints[i].fieldName == "numeroSCProtheus") { numeroSC = constraints[i].initialValue; } } } if (!numeroSC) { dataset.addRow(emptyRow()); return dataset; } var data = { companyId: "1", serviceCode: "Postprod", endpoint: "/UF_MATA110/" + numeroSC, method: "get", timeoutService: "60000", headers: { "Content-Type": "application/json" } }; var clientService = fluigAPI.getAuthorizeClientService(); var response = clientService.invoke(JSON.stringify(data)); if (response && response.getResult()) { var result = JSON.parse(response.getResult()); if (result.sucesso && result.solicitacoes && result.solicitacoes.length > 0) { var sc = result.solicitacoes[0]; var cotacao = sc.C1_COTACAO || ""; if (cotacao == "000000" || cotacao == "000001") { cotacao = ""; } var cotacoesJson = ""; var cotacaoErro = ""; if (cotacao) { var consultaCot = consultarCotacao(clientService, cotacao); if (consultaCot.sucesso) { cotacoesJson = JSON.stringify(consultaCot.cotacoes || []); } else { cotacaoErro = consultaCot.erro || ""; } } dataset.addRow([ sc.C1_FILIAL || "", sc.C1_NUM || "", sc.C1_ITEM || "", sc.C1_PRODUTO || "", sc.C1_DESCRI || "", sc.C1_QUANT || "", sc.C1_VUNIT || "", sc.C1_TOTAL || "", sc.C1_DATPRF || "", sc.C1_CC || "", sc.C1_CONTA || "", sc.C1_SOLICIT || "", sc.C1_EMISSAO || "", sc.C1_APROV || "", cotacao, sc.C1_PEDIDO || "", sc.C1_ITEMPED || "", sc.STATUS || "", result.data_consulta || "", result.hora_consulta || "", "true", cotacoesJson, cotacaoErro ]); } else { dataset.addRow(emptyRow()); } } else { dataset.addRow(emptyRow()); } } catch (e) { dataset.addRow(emptyRow()); } return dataset; }