Estou tentando fazer o Mecanismo de atribuição abaixo porém, ele nao entra no primeiro if sempre entra no segundo, poderiam me dizer o que esta errado?
var userList = new java.util.ArrayList();
var achouAprovador = 0
var dataset = DatasetFactory.getDataset('ds_recupera_pai_filho_GB', null, null, null)
var valorTotalSolicit = hAPI.getCardValue('valorTotal')
for (var i = 0; i < dataset.rowsCount; i++) {
var valorAprovador = dataset.getValue(i, "Valor da Aprovação")
var idAprovador = dataset.getValue(i, "ID Aprovador")
if (valorTotalSolicit <= valorAprovador) {
userList.add(idAprovador)
achouAprovador = 1
return
}
}
if (achouAprovador == 0) {
userList.add('dev')
}
return userList;
Verifique no log o vai ser impresso. Linha antes do for.
var userList = new java.util.ArrayList();
var achouAprovador = 0
var dataset = DatasetFactory.getDataset('ds_recupera_pai_filho_GB', null, null, null)
var valorTotalSolicit = hAPI.getCardValue('valorTotal')
log.info("Quantidade de registro: "+dataset.rowsCount);
for (var i = 0; i < dataset.rowsCount; i++) {
var valorAprovador = dataset.getValue(i, "Valor da Aprovação")
var idAprovador = dataset.getValue(i, "ID Aprovador")
if (valorTotalSolicit <= valorAprovador) {
userList.add(idAprovador)
achouAprovador = 1
return
}
}
if (achouAprovador == 0) {
userList.add('dev')
}
return userList;
Seus dados de retorno estão vindo como Numérico? Talvez precise dar um parseFloat neles. Ele pode estar conseguindo comparar o “igual” mas quando é “menor” ele se perde para string.
Opa, tudo bem?
Resolvi esse mesmo problema com as seguintes linhas abaixo.
O valor do dataset (valorAprovador) é capturado com um ponto ( . ) e o valorTotalSolicit vem com uma vírgula ( , ). Acontece que a condição do IF não estava sendo satisfeita por este motivo. Isso é resolvido com o replace(). E como os dois valores da condição são strings, creio que seja mais viável transformá-las em float com parseFloat
var valorTotalSolicit = parseFloat(hAPI.getCardValue("valorTotal").replace(',', '.'));
var valorAprovador = parseFloat(dataset.getValue(index, 'Valor Aprovador'));