92 lines
2.9 KiB
JavaScript
92 lines
2.9 KiB
JavaScript
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;
|
|
}
|
|
|
|
// Criação das colunas
|
|
function criarEstrutura(dataset) {
|
|
dataset.addColumn("STATUS", DatasetFieldType.STRING);
|
|
dataset.addColumn("RETORNO", DatasetFieldType.STRING);
|
|
}
|
|
|
|
// Função para buscar parâmetro nas constraints
|
|
function getParametro(constraints, campo) {
|
|
var valor = "";
|
|
if (constraints && constraints.length > 0) {
|
|
for each (var c in constraints) {
|
|
if (c.getFieldName().trim().toUpperCase() === campo.trim().toUpperCase()) {
|
|
valor = c.getInitialValue();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return valor;
|
|
}
|
|
|
|
// Trim com segurança
|
|
function trim(valor) {
|
|
if (!valor) return "";
|
|
return valor.trim();
|
|
}
|