2025-08-26 14:12:50 -03:00

74 lines
2.7 KiB
JavaScript

function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("status");
dataset.addColumn("mensagem");
dataset.addColumn("erro");
log.info("### Enviando dados para Protheus com autenticação ###");
try {
var jsonData = "{}";
if (constraints) {
for (var i = 0; i < constraints.length; i++) {
if (constraints[i].fieldName == "params" && constraints[i].initialValue) {
jsonData = constraints[i].initialValue;
break;
}
}
}
log.info("Dados recebidos: " + jsonData);
var url = "http://187.72.204.233:8099/rest_teste/uf_mata010";
var urlObj = new java.net.URL(url);
var httpConn = urlObj.openConnection();
var usuario = "ezequiel.falcao";
var senha = "Ginseng@";
var authString = usuario + ":" + senha;
var authBytes = new java.lang.String(authString).getBytes("UTF-8");
var encodedAuth = java.util.Base64.getEncoder().encodeToString(authBytes);
httpConn.setDoOutput(true);
httpConn.setRequestMethod("POST");
httpConn.setRequestProperty("Content-Type", "application/json");
httpConn.setRequestProperty("Accept", "application/json");
httpConn.setRequestProperty("Authorization", "Basic " + encodedAuth);
httpConn.setConnectTimeout(30000);
httpConn.setReadTimeout(30000);
var outputStream = httpConn.getOutputStream();
var writer = new java.io.OutputStreamWriter(outputStream, "UTF-8");
writer.write(jsonData);
writer.flush();
writer.close();
outputStream.close();
// Ler resposta ou erro
var response = "";
try {
var inputStream = httpConn.getInputStream();
var scanner = new java.util.Scanner(inputStream, "UTF-8");
response = scanner.useDelimiter("\\A").hasNext() ? scanner.next() : "";
scanner.close();
} catch (e) {
var errorStream = httpConn.getErrorStream();
if (errorStream != null) {
var scanner = new java.util.Scanner(errorStream, "UTF-8");
response = scanner.useDelimiter("\\A").hasNext() ? scanner.next() : "";
scanner.close();
}
}
log.info("Response bruto: " + response);
// Adiciona no dataset sempre, sem depender do status HTTP
dataset.addRow(["OK", response, ""]);
} catch (error) {
log.error("Erro completo: " + error.toString());
dataset.addRow(["Erro", "", error.toString()]);
}
return dataset;
}