Olá Fluiggers! tudo bem? estou com um problemão que estou tentando desvendar, será que alguem consegue me ajudar?
Quando eu chego em um determinado processo e tento envia-lo, o meu programa deve fazer um update no banco para atualizar as informações de outro sistema por meio de uma procedure. A mensagem que me retorna é esta:
Onde o meu codigo de update é este:
/**
*
*
* @param {string[]} fields Campos Solicitados
* @param {Constraint[]} constraints Filtros
* @param {string[]} sorts Campos da Ordenação
* @returns {Dataset}
*/
function createDataset(fields, constraints, sortFields) {
var Dataset = DatasetBuilder.newDataset();
var result = "";
//#region Constraints
var filial = "";
var tipo_doc = "";
var num_pedido = "";
var cr_nivel = "";
var dbm_user = "";
if (constraints != null) {
for (var i = 0; i < constraints.length; i++) {
if (constraints[i].fieldName == "filial" && constraints[i].initialValue && constraints[i].initialValue != "") {
filial = constraints[i].initialValue;
}
if (constraints[i].fieldName == "tipo_doc" && constraints[i].initialValue && constraints[i].initialValue != "") {
tipo_doc = constraints[i].initialValue;
}
if (constraints[i].fieldName == "num_pedido" && constraints[i].initialValue && constraints[i].initialValue != "") {
num_pedido = constraints[i].initialValue;
}
if (constraints[i].fieldName == "cr_nivel" && constraints[i].initialValue && constraints[i].initialValue != "") {
cr_nivel = constraints[i].initialValue;
}
if (constraints[i].fieldName == "dbm_user" && constraints[i].initialValue && constraints[i].initialValue != "") {
dbm_user = constraints[i].initialValue;
}
}
}
//#endregion
var dataSource = "//ip que eu retirei"; //Nome do serviço cadastrado no Fluig"
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
var query = "EXEC APROVACAO_FLUIG" +
" @filial = '" + filial + "'," +
" @tipo_doc = '" + tipo_doc + "'," +
" @num_pedido = '" + num_pedido + "'," +
" @cr_nivel = '" + cr_nivel + "'," +
" @dbm_user = '" + dbm_user + "'";
var erro = "";
var result = "";
try {
var conn = ds.getConnection();
var stmt = conn.createStatement();
stmt.execute(query);
erro = 0;
result = "Dados atualizados";
} catch (e) {
log.error("ERRO==============> " + e.message);
erro = 1;
result = "Erro ao atualizar (Linha: " + e.lineNumber + "): " + String(e.message.replace("com.microsoft.sqlserver.jdbc.SQLServerException:", "")) + " Query => " + query;
} finally {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
Dataset.addColumn("Erro");
Dataset.addColumn("Message");
Dataset.addRow([erro, result])
log.error(Dataset)
return Dataset;
}
E o meu script de BeforeTaskSave do update é este:
```javascript
function beforeTaskSave(colleagueId, nextSequenceId, userList) {
var state = getValue("WKCurrentState");
if (state == 35) {
var constraints = [];
var filial = hAPI.getCardValue("filial").replace(" ", "").split("-")[0];
var tipo_doc = hAPI.getCardValue("crtipo")
var num_pedido = hAPI.getCardValue("crnum")
var cr_nivel = hAPI.getCardValue("crnivel")
var dbm_user = hAPI.getCardValue("dbmitem")
// Adicione suas restrições aqui
constraints.push(DatasetFactory.createConstraint("filial", filial, filial, ConstraintType.MUST));
constraints.push(DatasetFactory.createConstraint("tipo_doc", tipo_doc, tipo_doc, ConstraintType.MUST));
constraints.push(DatasetFactory.createConstraint("num_pedido", num_pedido, num_pedido, ConstraintType.MUST));
constraints.push(DatasetFactory.createConstraint("cr_nivel", cr_nivel, cr_nivel, ConstraintType.MUST));
constraints.push(DatasetFactory.createConstraint("dbm_user", dbm_user, dbm_user, ConstraintType.MUST));
var dataset = DatasetFactory.getDataset("ds_update_compras", null, constraints, null);
if (dataset.getValue(0, "Erro") == 0) {
log.info("Atualizado com sucesso!");
} else {
log.error("Erro ao atualizar ==> " + dataset.getValue(1, "Message"));
throw "Erro ao atualiiizar ==> " + dataset.getValue(1, "Message");
}
}
}
alguem poderia me ajudar?