Central de Ajuda
  • Dúvidas Frequentes
    • Administração
    • Arquitetura
    • Configuração
    • Documentos
    • Formulários
    • Indicadores
    • Infraestrutura
    • Mobile
    • Processos
    • Outros
  • Treinamentos
    • BPM
    • Central de Tarefas
    • Configurações Gerais
    • Formulários
    • Geral
    • Gestão de Processos
  • Tutoriais
  • Vídeos
Central de Ajuda
  • Dúvidas Frequentes
    • Administração
    • Arquitetura
    • Configuração
    • Documentos
    • Formulários
    • Indicadores
    • Infraestrutura
    • Mobile
    • Processos
    • Outros
  • Treinamentos
    • BPM
    • Central de Tarefas
    • Configurações Gerais
    • Formulários
    • Geral
    • Gestão de Processos
  • Tutoriais
  • Vídeos
  • Siga-nos

Como utilizar QLRawFilter

O rawfilter é um filtro utilizado para buscar objetos no banco dentro das classes JAVA, também denominado adapter. Ele é o filtro mais semelhante com SQLs/querys executadas em bancos de dados convencionais. Abaixo dois exemplos de como realizá-los:

Situação 1: buscar na tabela NeoUser um usuário a partir do nome completo

Passo 1: criar a instância da classe QLGroupFilter, passando qual o tipo de parâmetro, esse parâmetro pode ser comparado ao complemento WHERE, onde existem apenas dois operadores: AND e OR.
QLGroupFilter filter = new QLGroupFilter(“AND”);

Passo 2: criar a instância da classe QLRawFilter que recebe como parâmetro a query para realizar a busca. É possível definir as variáveis apenas com a seguinte expressão: :param1.
QLRawFilter rawFilter = new QLRawFilter(“fullName LIKE :param1 OR neoId > :param2”);

Passo 3: definir quais são os dados que realmente devem ser utilizados para cada parâmetro.
rawFilter.addParam(“:param1”, “Cristiano%”);
rawFilter.addParam(“:param2”, 19668785L);

Passo 4: Incluir o filtro secundário, com a query, no filtro principal – QLGroupFilter.
filter.addFilter(rawFilter);

Passo 5: incluir filtro na variável que recebe os objetos de retorno, é preciso especificar qual tipo de será retornado, tanto na tipagem da variável como nos parâmetros da classe PersistEngine, que realiza a busca dos registros a partir do filtro especificado.


Situação 2: buscar o número de TaskInstances em que um usuário específico possui gestão

Passo 1: criar a instância da classe QLGroupFilter, passando qual o tipo de parâmetro, esse parâmetro pode ser comparado ao complemento WHERE, onde existem apenas dois operadores: AND e OR.
QLGroupFilter gf = new QLGroupFilter(“AND”);

Passo 2: criar a instância da classe QLRawFilter que recebe como parâmetro a query para realizar a busca, é possível utilizar cláusulas de JOIN e a definição de parâmetros.
QLRawFilter rawFilter1 = new QLRawFilter(“$id in (select ti2.id from TaskInstance ti2 join ti2.managers m where m.neoId in (:param1))”);

Passo 3: buscar IDs dos papéis e grupos que o usuário com id 123124 possui.
List<Long> listIds = this.getUserRoles(123124L);

Passo 4: definir quais são os dados que realmente devem ser utilizados para cada parâmetro. Incluir o filtro secundário, com a query, no filtro principal – QLGroupFilter. Aqui é possível perceber, que o parâmetro na verdade pode ser uma cadeia de strings.
rawFilter1.addParam(“:param1”, listIds);

Passo 5: incluir o filtro secundário, com a query, no filtro principal – QLGroupFilter.
gf.addFilter(rawFilter1);

Passo 6: incluir outro filtro secundário para buscar as TaskInstances que possuem o status completo.
gf.addFilter(new QLOpFilter(“status”, “<>”, TaskStatus.COMPLETED.ordinal()));

Passo 7: utilizar o método countObjects da classe PersistEngine que retorna à quantidade de registros para a classe especificada no primeiro parâmetro e utilizando o filtro do segundo parâmetro.
Long count = PersistEngine. countObjects(TaskInstance.class, gf);

Observações importantes: o segundo parâmetro do método addParam() aceita qualquer Object, mas é necessário, atentar para utilizar o tipo de dado que corresponde à coluna que será buscada na query

Publicações recentes

  • Criando Relatório do Início ao Fim
  • Executando um Processo do Início ao Fim
  • Realizando e Exportando Resultado das Consultas
  • Central de Tarefas

Atualizações recentes

Release Notes 3.6 (Novas Funcionalidades)
Release Notes 3.5 (Novas Funcionalidades)
Release Notes 3.4 (Novas Funcionalidades)

Manual de Instalação 3.6 (Pacote de Correções)
Manual de Instalação 3.5 (Pacote de Correções)
Manual de Instalação 3.4.1 (Pacote de Correções)
Manual de Instalação 3.4.0
Manual 3.3.0

Release Notes 3.2.3.17 (Pacote de Correções)
Release Notes 3.2.3.16 (Pacote de Correções)

Fale conosco

Telefones: (47) 2101-0969 ou (47) 2101-0971
E-mail: chamado@neomind.com.br


Não encontrou o que precisava?

© 2019 Neomind. Todos os direitos reservados.