Olá pessoal, preciso fazer uma consulta quando o usuário pesquisa o nome do fornecedor e nota fiscal deve bater no banco de dados pra vê se esses dados já existem, fiz um script como beforeTaskSave, porém devo ta fazendo algo errado
function beforeTaskSave(atv) {
var atv = getValue("WKNumState");
if (atv == 10 || atv == 0) {
var buscarFornecedor = hAPI.getCardValue("fornecedor");
var buscarNF = hAPI.getCardValue('nf');
var c1 = DatasetFactory.createConstraint("fornecedor", " ", " ", ConstraintType.MUST);
var c2 = DatasetFactory.createConstraint('nf',"","", ConstraintsType.MUST);
var constraints = new Array(c1,c2);
var fornecedores = DatasetFactory.getDataset("DSFormulariodeteste", null, constraints, null);
var notaFiscal = DatasetFactory.getDataset("DSFormulariodeteste", null, constraints,null);
if(buscarFornecedor == fornecedores.values && buscarNF == notaFiscal.values) {
alert('O fornecedor com essa nota fiscal já existem!!')
}
}
}
Além do alert que deve ser um throw, quando voce ta criando a constraints "var c1 = DatasetFactory.createConstraint(“fornecedor”, " ", " “, ConstraintType.MUST);” voce ta passando o valor vazio, deveria ser a variavel buscarFornecedor.
logo abaixo, o if pra verificar se os valores são iguais tb ta errado, primeiro precisa saber se o dataset trouxe dados pra poder fazer o if, ex:
if (fornecedores.rowsCount > 0){ // achou }…
Helena, eventos de processo não tem acesso ao método alert() do Browser, para disparar erros na tela do usuário utilizando eventos de processo deve utilizar o evento beforeStateEntry e no lugar do alert, utilize "throw". Ficando assim:
...
throw "O frnecedor com essa nota..."
...
Todos os eventos do Fluig são executados em BackEnd. São convertidos pra Java e rodados no aplicativo Fluig, não no navegador. Por isso o alert não funciona.
Pra jogar um erro você usa o throw, como indicado pelo Alef.
Você pode acessar o dataset no próprio formulário, no seu JS. Cria um evento usando a JQuery, por exemplo, e então faz essa consulta.
Pra acessar dataset nos JS do formulário siga a documentação https://tdn.totvs.com/display/public/fluig/Acessando+Datasets#AcessandoDatasets-Formul%C3%A1rios