74 lines
2.7 KiB
JavaScript
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;
|
|
}
|