E ae João… blz? Você tem que fazer seu update em um dataset… vou montar um exemplo aqui
De início você criar um serviço JDBC no Fluig para seu SQL Server (Painel de Controle > Serviços)
Dataset para executar o Update
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 = "";
var id = "";
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;
}
if (constraints[i].fieldName == "id" && constraints[i].initialValue && constraints[i].initialValue != "") {
id = constraints[i].initialValue;
}
}
}
//#endregion
var dataSource = "/jdbc/SQLSERVER"; //Nome do serviço cadastrado no Fluig
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
var query = "update {Tabela} " +
"set filial = " + filial +
" ,tipo_doc + '" + tipo_doc + "'" +
" ,num_pedido = '" + num_pedido + "' " +
" ,cr_nivel = " + cr_nivel + "' " +
" ,dbm_user = '" + dbm_user + "' " +
"where id = " + id;
log.info(query);
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])
return Dataset;
}
Para chamar o dataset ao chegar ao fim do processo, eu costumo usar o beforeTaskSave e pego a etapa atual (getValue(“WKCurrentState”) ) , que no seu caso vai ser a tarefa “UPDATE”, para caso der algum erro popar na tela antes de finalizar.
Para chamar o dataset nele é assim:
var c1 = DatasetFactory.createConstraint("filial", filial, filial, ConstraintType.MUST);
var c2 = DatasetFactory.createConstraint("tipo_doc", tipo_doc, tipo_doc, ConstraintType.MUST);
var c3 = DatasetFactory.createConstraint("num_pedido", num_pedido, num_pedido, ConstraintType.MUST);
var c4 = DatasetFactory.createConstraint("cr_nivel", cr_nivel, cr_nivel, ConstraintType.MUST);
var c5 = DatasetFactory.createConstraint("dbm_user", dbm_user, dbm_user, ConstraintType.MUST);
var c6 = DatasetFactory.createConstraint("cr_nivel", id, id, ConstraintType.MUST);
var ds = DatasetFactory.getDataset("{nome_dataset}", null, [c1, c2, c3, c4, c5, c6], null);
if (ds.getValue(0, "Erro") == "0") {
log.info(ds.getValue(0, "Message"));
} else {
log.error(ds.getValue(0, "Message"));
throw ds.getValue(0, "Message");
}
Testa aí… boa sorte!
Abs