This commit is contained in:
Andrey Cunha
2026-05-11 21:54:49 -03:00
parent ba5d7dae57
commit a71f963e37
17 changed files with 3091 additions and 4186 deletions
+10 -15
View File
@@ -64,28 +64,23 @@ function createDataset(fields, constraints, sortFields) {
return dataset;
}
// Criação das colunas
function criarEstrutura(dataset) {
dataset.addColumn("STATUS", DatasetFieldType.STRING);
dataset.addColumn("RETORNO", DatasetFieldType.STRING);
dataset.addColumn("STATUS");
dataset.addColumn("RETORNO");
}
// 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;
}
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 valor;
return "";
}
// Trim com segurança
function trim(valor) {
if (!valor) return "";
return valor.trim();
return String(valor == null ? "" : valor).trim();
}
+1 -1
View File
@@ -18,7 +18,7 @@ function createDataset(fields, constraints, sortFields) {
try {
var clientService = fluigAPI.getAuthorizeClientService();
var data = {
companyId: "1",
companyId: String(getValue("WKCompany") || "1"),
serviceCode: "Postprod",
endpoint: "/uf_mata010/",
method: "get",
@@ -4,13 +4,13 @@ function createDataset(fields, constraints, sortFields) {
dataset.addColumn("mensagem");
dataset.addColumn("erro");
log.info("### Enviando dados para Protheus com autenticação ###");
log.info("### Enviando dados para Protheus via fluigAPI ###");
try {
var jsonData = "{}";
if (constraints) {
for (var i = 0; i < constraints.length; i++) {
if (constraints[i].fieldName == "params" && constraints[i].initialValue) {
if (constraints[i].fieldName === "params" && constraints[i].initialValue) {
jsonData = constraints[i].initialValue;
break;
}
@@ -18,54 +18,25 @@ function createDataset(fields, constraints, sortFields) {
}
log.info("Dados recebidos: " + jsonData);
var url = "https://rest.grupoginseng.com.br/rest/uf_mata010";
var urlObj = new java.net.URL(url);
var httpConn = urlObj.openConnection();
var clientService = fluigAPI.getAuthorizeClientService();
var data = {
companyId: String(getValue("WKCompany") || "1"),
serviceCode: "Postprod",
endpoint: "/rest/uf_mata010",
method: "post",
timeoutService: "60000",
params: JSON.parse(jsonData),
headers: { "Content-Type": "application/json" }
};
var usuario = "fluig";
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);
var vo = clientService.invoke(JSON.stringify(data));
var response = vo ? String(vo.getResult() || "") : "";
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
log.info("Response: " + response);
dataset.addRow(["OK", response, ""]);
} catch (error) {
log.error("Erro completo: " + error.toString());
log.error("Erro: " + error.toString());
dataset.addRow(["Erro", "", error.toString()]);
}
+34 -37
View File
@@ -5,60 +5,57 @@ function onSync(lastSyncDate) {}
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
// Definir as colunas
dataset.addColumn("codigoCentroCusto");
dataset.addColumn("centroCusto");
dataset.addColumn("gestorCentroCusto");
dataset.addColumn("idGestor");
dataset.addColumn("emailGestor");
dataset.addColumn("diretorCentroCusto");
dataset.addColumn("idDiretor");
dataset.addColumn("diretorGeral");
dataset.addColumn("idDiretorGeral");
// Lista dos centros de custo
var dados = [
// Comercial dividido por estado
["41101", "Comercial Alagoas", "Raquel Tenorio ", "Analanny Magalhães", "João Marcelo"],
["41101", "Comercial Bahia", "Arianne Sodre", "Analanny Magalhães", "João Marcelo"],
["41101", "Comercial Sergipe", "Iolanda Bezerra", "Analanny Magalhães", "João Marcelo"],
["41101", "Marketing e Treinamento", "Andreia Leite", "João Marcelo", "João Marcelo"],
// Outros centros de custo (exemplo que você já tinha)
["51101", "Diretoria e Gestão", "João Marcelo", "Diogo Demetrio", "João Marcelo"],
["51102", "Operações", "Diogo Demetrio", "Ariklenyo Nascimento", "João Marcelo"],
["51103", "Controladoria", "Ariklenyo Nascimento", "Marla Palma", "João Marcelo"],
["51104", "Compliance", "Marla Palma", "Lucila Brandão", "João Marcelo"],
["51107", "Administrativo", "Lucila Brandão", "Francine Peiter", "João Marcelo"],
["51110", "Gente e Cultura", "Francine Peiter", "Igor Oliveira", "João Marcelo"],
["51113", "TI", "Igor Oliveira", "Lucas Rocha", "João Marcelo"],
["51114", "Projetos e Performance", "Lucas Rocha", "Andrey Cunha", "João Marcelo"],
["teste", "teste", "Andrey Cunha", "Andrey Cunha", "João Marcelo"]
{ cod: "41101", cc: "Comercial Alagoas", gestor: "Raquel Tenorio", diretor: "Analanny Magalhães", dg: "João Marcelo" },
{ cod: "41101", cc: "Comercial Bahia", gestor: "Arianne Sodre", diretor: "Analanny Magalhães", dg: "João Marcelo" },
{ cod: "41101", cc: "Comercial Sergipe", gestor: "Iolanda Bezerra", diretor: "Analanny Magalhães", dg: "João Marcelo" },
{ cod: "41101", cc: "Marketing e Treinamento", gestor: "Andreia Leite", diretor: "João Marcelo", dg: "João Marcelo" },
{ cod: "51101", cc: "Diretoria e Gestão", gestor: "João Marcelo", diretor: "Diogo Demetrio", dg: "João Marcelo" },
{ cod: "51102", cc: "Operações", gestor: "Diogo Demetrio", diretor: "Ariklenyo Nascimento", dg: "João Marcelo" },
{ cod: "51103", cc: "Controladoria", gestor: "Ariklenyo Nascimento", diretor: "Marla Palma", dg: "João Marcelo" },
{ cod: "51104", cc: "Compliance", gestor: "Marla Palma", diretor: "Lucila Brandão", dg: "João Marcelo" },
{ cod: "51107", cc: "Administrativo", gestor: "Lucila Brandão", diretor: "Francine Peiter", dg: "João Marcelo" },
{ cod: "51110", cc: "Gente e Cultura", gestor: "Francine Peiter", diretor: "Igor Oliveira", dg: "João Marcelo" },
{ cod: "51113", cc: "TI", gestor: "Igor Oliveira", diretor: "Lucas Rocha", dg: "João Marcelo" },
{ cod: "51114", cc: "Projetos e Performance", gestor: "Lucas Rocha", diretor: "Andrey Cunha", dg: "João Marcelo" }
];
// Função para buscar matrícula pelo nome
function getMatricula(nome) {
if (!nome) return "";
var c1 = DatasetFactory.createConstraint("colleagueName", nome, nome, ConstraintType.MUST);
var dsUser = DatasetFactory.getDataset("colleague", ["colleagueId"], [c1], null);
return dsUser.rowsCount > 0 ? dsUser.getValue(0, "colleagueId") : "";
function getColleagueById(nome) {
if (!nome) return { id: "", email: "" };
try {
var c1 = DatasetFactory.createConstraint("colleagueName", nome, nome, ConstraintType.MUST);
var ds = DatasetFactory.getDataset("colleague", ["colleagueId", "mail"], [c1], null);
if (ds && ds.rowsCount > 0) {
return {
id: String(ds.getValue(0, "colleagueId") || ""),
email: String(ds.getValue(0, "mail") || "")
};
}
} catch (e) {}
return { id: "", email: "" };
}
// Preenche dataset
for (var i = 0; i < dados.length; i++) {
var idGestor = getMatricula(dados[i][2]);
var idDiretor = getMatricula(dados[i][3]);
var idDiretorGeral = getMatricula(dados[i][4]);
var d = dados[i];
var gestor = getColleagueById(d.gestor);
var diretor = getColleagueById(d.diretor);
var dg = getColleagueById(d.dg);
dataset.addRow([
dados[i][0], // codigoCentroCusto
dados[i][1], // centroCusto
dados[i][2], // gestor
idGestor,
dados[i][3], // diretor
idDiretor,
dados[i][4], // diretor geral
idDiretorGeral
d.cod, d.cc,
d.gestor, gestor.id, gestor.email,
d.diretor, diretor.id,
d.dg, dg.id
]);
}
+4 -11
View File
@@ -11,26 +11,19 @@ function createDataset(fields, constraints, sortFields) {
log.info("### Iniciando criação do dataset de Condições de Pagamento ###");
var servicecode = 'API_CONDICAO_PAGAMENTO'; // Nome do serviço cadastrado no Fluig
var usuario = "fluig";
var senha = "Ginseng@";
// Autenticação gerenciada pelo cadastro do serviço no Fluig (sem credenciais no código)
var servicecode = 'API_CONDICAO_PAGAMENTO';
try {
log.info("Iniciando chamada para o clientService...");
var clientService = fluigAPI.getAuthorizeClientService();
var data = {
companyId: "1",
companyId: String(getValue("WKCompany") || "1"),
serviceCode: servicecode,
endpoint: "https://rest.grupoginseng.com.br/rest/api/fat/v1/paymentcondition?Fields=Code,Plots.Description&Page=1&PageSize=100",
method: 'get',
timeoutService: '60000',
params: {},
options: {
encoding: 'UTF-8',
useBasicAuth: true,
username: usuario,
password: senha
}
params: {}
};
log.info("Parâmetros da chamada: " + JSON.stringify(data));