JEX - Percorrer e alterar resultado de uma grade
Neste fórum iremos mostrar como percorrer e alterar os registros mostrados pela grade de dados utilizando JEX (JS Sandbox). Abaixo estão alguns materiais que podem ajudar no entendimento do processo:
Exporte o processo em anexo ou siga as instruções abaixo:
Criamos uma atividade manual com um formulário de FK nos trará os processos e suas informações. Lembre-se, o JavaScript é case sensitive então preste atenção no IDENTIFICADOR do formulário, é importante fazer exatamente como instruído nesse tópico:
Crie uma Fk trazendo o IDPROCESSO e DESCRIÇÃO da CRM_PROCESSO.
Código JEX ao sair do formulário:
let SQL;
let arrayIdprocessoPesquisado = formulario.SELECIONAOIDPROCESSO.valor.split(',');//arrayProcessosPesquisadasCliente
let stringIdprocessoPesquisado = formulario.SELECIONAOIDPROCESSO.valor; //stringProcessosPesquisadasCliente
if(arrayIdprocessoPesquisado[0] === ""){
arrayIdprocessoPesquisado.pop(); //se o campo estiver vazio
// Remove todos registros da grade
formulario.INFORMACOESDOIDPROCESSO.registros.splice(0 ,formulario.INFORMACOESDOIDPROCESSO.registros.length);
SQL =`SELECT IDPROCESSO,
DESCRICAO,
OBJETIVO,
STATUS,
DATAHORA
FROM CRM_PROCESSO
WHERE ROWNUM < 31`;
const DadosIdprocesso = await conexaoBD.executarConsultaSQL(SQL);
if(DadosIdprocesso){ //adiciona os dados na grade
DadosIdprocesso.forEach( dados => {
const novoRegistro = new Object();
novoRegistro.IDPROCESSO = dados.idprocesso;
novoRegistro.DESCRICAO = dados.descricao;
novoRegistro.OBJETIVO = dados.objetivo;
novoRegistro.DATAHORA = dados.datahora;
novoRegistro.STATUS= dados.status;
formulario.INFORMACOESDOIDPROCESSO.registros.push(novoRegistro);
});
}
}
if(arrayIdprocessoPesquisado.length){ //se possui valor
SQL = `SELECT IDPROCESSO,
DESCRICAO,
OBJETIVO,
STATUS,
DATAHORA
FROM CRM_PROCESSO
WHERE IDPROCESSO = ${stringIdprocessoPesquisado}`//concatena com a variável;
const resultadoPesquisadasIdprocesso = await conexaoBD.executarConsultaSQL(SQL);
if(resultadoPesquisadasIdprocesso){
// Remove todos registros da grade
formulario.INFORMACOESDOIDPROCESSO.registros.splice(0, formulario.INFORMACOESDOIDPROCESSO.registros.length);
//adiciona registros
resultadoPesquisadasIdprocesso.forEach( dados => {
const novoRegistro = new Object();
novoRegistro.IDPROCESSO = dados.idprocesso;
novoRegistro.DESCRICAO = dados.descricao;
novoRegistro.OBJETIVO = dados.objetivo;
novoRegistro.DATAHORA = dados.datahora;
novoRegistro.STATUS= dados.status;
formulario.INFORMACOESDOIDPROCESSO.registros.push(novoRegistro);
});
}
}
Criamos mais um formulário do tipo grade de dados e suas respectivas colunas. Segue imagem abaixo:
Certo, criamos a grade e suas colunas. Agora vamos criar um evento para carregar a grade com alguns processos ao ENTRAR na atividade. Dessa forma, o campo de ID seria usado mais como um campo de pesquisa para ver um processo em especifico.
Evento Estrutura de repetição - carregar:
Lembre-se, o ROWNUM é utilizado em bancos ORACLE, para PostgreSQL utilize o LIMIT = 31 depois do FROM por exemplo:
- Não foi possível adicionar o gif neste tópico, clique aqui se quiser ver a demonstração no portal.
- Lembre-se, se quiser que caso o usuário não selecione nada na FK o JEX traga a mesma consulta ao entrar na atividade, deve ser modificado o JEX da forma como desejar. No exemplo deste tópico abordamos uma parte da consulta apenas.
- Em anexo está o exemplo do BPM, baixe-o e modifique caso necessário.
- Caso queira que seja salvo em variáveis o que está na grade. ao sair crie uma estrutura de percorrer a grade e retornar o valor com os eventos do sistema.