function createDataset(fields, constraints, sortFields) { var dataset = DatasetBuilder.newDataset(); criarEstrutura(dataset); try { log.info("🚀 Iniciando dsPostPedidoCompra"); // Captura os parâmetros via constraints var estabelecimento = trim(getParametro(constraints, "estabelecimento")); var numeroPedido = trim(getParametro(constraints, "numeroPedido")); var dataAbertura = trim(getParametro(constraints, "dataAbertura")); var fornecedor = trim(getParametro(constraints, "fornecedor")); var condPagamento = trim(getParametro(constraints, "condPagamentoIndica")); var userCompras = trim(getParametro(constraints, "userValidacaoCompras")); // Monta o payload var payload = { "C7_FILIAL": estabelecimento, "C7_NUM": numeroPedido, "C7_EMISSAO": dataAbertura, "C7_FORNECE": fornecedor, "C7_LOJA": "01", "C7_COND": condPagamento, "C7_CONTATO": userCompras, "C7_FILENT": estabelecimento, "C7_TPFRETE": "C", "C7_FRETE": "0", "C7_ITENS": [fornecedor] // você pode ajustar isso para ser um array com objetos, se necessário }; log.info("📤 Payload: " + JSON.stringify(payload)); // Monta a chamada para o serviço var data = { companyId: "01", serviceCode: "Integrador Pedido de compra", endpoint: "/REST/PEDIDO/", method: "post", timeoutService: "100", params: payload, headers: { 'Content-Type': 'application/json' } }; var clientService = fluigAPI.getAuthorizeClientService(); var response = clientService.invoke(JSON.stringify(data)); var result = response.getResult(); log.info("✅ Retorno da API: " + result); if (!result || result.indexOf("ERRO") !== -1) { throw result || "Erro desconhecido na integração."; } dataset.addRow(["SUCESSO", result]); } catch (e) { var erro = "❌ Erro: " + e.message; log.error("[dsPostPedidoCompra] " + erro); dataset.addRow(["FALHA", erro]); } return dataset; } function criarEstrutura(dataset) { dataset.addColumn("STATUS"); dataset.addColumn("RETORNO"); } function getParametro(constraints, campo) { if (!constraints) return ""; var campoUpper = String(campo || "").trim().toUpperCase(); for (var i = 0; i < constraints.length; i++) { var c = constraints[i]; if (String(c.fieldName || "").trim().toUpperCase() === campoUpper) { return String(c.initialValue || ""); } } return ""; } function trim(valor) { return String(valor == null ? "" : valor).trim(); }