Em diversos momentos do dia nossos clientes tem a necessidade de fazer a busca por um determinado produto de forma rápida e fácil, para isso é utilizado o browse de produtos, que agora ficou muito mais ágil.
Nosso Time de Desenvolvimento do Comércio concluiu o projeto Agilidade na busca de produtos, que teve como objetivo principal simplificar e agilizar a procura de produtos no cenário de vendas ao consumidor e permitir que o vendedor consiga localizar um produto utilizando parte de determinada informação, como descrição, apelido ou cor.
Desde o início do projeto, em todas as implementações, sempre foi priorizado manter a rapidez na busca, utilizar um visual amistoso e minimalista, além da utilização de tecnologia atual e moderna. Para tanto, juntamente com o Time Dev-Tools, a ferramenta escolhida para o projeto foi o MeiliSearch.
MeiliSearch
O MeiliSearch é uma ferramenta de busca personalizável e eficiente. Foi projetada para facilitar a implementação de funcionalidades de busca em aplicativos, sites e em outros projetos. O principal objetivo dessa ferramenta é ser uma solução pronta para uso e foi escolhida pois o propósito se alinhava com o objetivo do projeto.
Além da velocidade, outro ponto importante na escolha da ferramenta é o fato de ser possível personalizar o comportamento do retorno dos resultados obtidos, garantindo assim que esse retorno irá atender a necessidade de nossos clientes. Porém o destaque da ferramenta, que fez com que ela fosse escolhida, foram 3 fatores, suporte multilíngue, busca incremental e tolerância a erros. Isso quer dizer que por ter suporte multilíngue é possível fazer a busca em línguas diferentes, além de pesquisar com stemming¹ e acentuação, tendo o retorno de resultados esperado.
A busca incremental é uma funcionalidade que permite que os resultados obtidos sejam mostrados ao usuário conforme ele vai digitando a palavra, de forma rápida e dinâmica. Já a tolerância a erros de digitação significa que a ferramenta consegue encontrar o resultado mesmo quando o usuário digitar alguma letra errada, esquecer da letra no meio da palavra, etc.
Um exemplo de usabilidade é o usuário digitar “produ” e conseguir visualizar todos os registros que contenham essas letras em algum ponto do campo, da mesma forma que se o usuário digitar “prdu” ou “podu” conseguiria obter os mesmo resultados.
¹ Stemming ou processo de stemização é o ato de reduzir uma palavra ao seu radical. As palavras “gato”, “gata”, “gatos” e “gatas” seriam reduzidas para “gat”, por exemplo.
Busca rápida no SIGER
Configuração
A utilização deve ser configurada no menu 1.1-P, botão [Padrões p/pesquisa], marcando o campo “Utiliza Busca Rápida”, em qualquer módulo do SIGER®. Será solicitada uma senha para liberação do recurso.
Após marcar o parâmetro para utilização da busca rápida, é necessário fazer a configuração para o correto funcionamento do serviço, para isso basta acessar o menu 9.C-G e fazer as configurações.
Tabelas liberadas e liberações futuras
Por enquanto a Busca Rápida foi liberada para as tabelas de Produto e Cliente/Fornecedor, porém todos os programas e rotinas foram implementados pensando no futuro, da forma mais genérica possível, facilitando a liberação de outras tabelas do SIGER®.
Configuração da tabela
Cada tabela liberada deve ser configurada para uso, para isso é necessário acessar o menu 9.C-I/A/E/M.
As configurações são por empresa e é possível ter uma sigla principal, e fazer o compartilhamento dessas configurações. É possível indicar a quantidade de registros que serão carregados na página inicialmente, a cada pesquisa.
É importante salientar que uma das configurações disponibilizadas é a de “Sincronizar individualmente“, que significa que os registros da tabela serão atualizados no serviço da Busca Rápida quando alterados no SIGER® (alteração ou exclusão), sem a necessidade de fazer a sincronização de dados pelo menu.
A manutenção também conta com um F9-Filtros, que abre a seleção padrão da tabela, permitindo definir quais os registros devem ser levados para o serviço da Busca Rápida, com esses filtros é possível indicar que os produtos inativos não devem ser sincronizados, por exemplo.
Referente aos campos que serão utilizados na Busca Rápida é possível informar:
Legenda: Descrição que será exibida para o campo quando utilizada a visualização da Busca Rápida em cards.
Procurável: Indica se o conteúdo do campo pode ser utilizado pela Busca Rápida.
Atualizável: Define se o campo terá o seu conteúdo atualizado automaticamente para o conteúdo atual na visualização em cards.
Imagem: Indica se o campo é uma imagem.
Campo: Ao clicar no botão será aberta uma janela de seleção de campos da tabela, permitindo selecionar visualmente qual campo utilizar na Busca Rápida.
Expressão: Ao clicar no botão será aberta a janela para edição da expressão JavaScript, onde é possível criar uma expressão e unir dois campos, por exemplo.
Sincronização dos Dados
A sincronização dos dados é feita através do menu 9.C-S, onde deve ser indicadas as tabelas e as siglas que devem ser sincronizadas.
Importante lembrar que quanto mais aberta a seleção, mais demorada a sincronização será, portanto é imprescindível ser o mais específico possível na escolha dos filtros.
Ex: Ao incluir uma nova tabela ou alterar alguma configuração de uma tabela já existente, filtre apenas a tabela incluída/alterada.
Outro ponto importante para lembrar é que a sincronização pode ser chamada através de linha de comando no agendador de tarefas do SIGER®.
Ex: SIGER.EXE VS-USUARI:?????????? VS-SENUSU:?????????? VS-OPCMEN:59CS VS-FLGFUN:SWB
Enfim, a Busca Rápida…
Após toda a configuração e sincronização já é possível utilizar a Busca Rápida, para isso basta acessar algum ponto do SIGER® que utilize o browse da tabela e, ao invés de utilizar a tecla de atalho F8, utilizar o F12. Se a busca rápida estiver configurada e o serviço estiver rodando, a tela será aberta.
Existe duas possibilidades para visualizar os registros encontrados, por cards ou em lista.
- A tela conta os campos:
- Campo para pesquisa;
- Botão para limpar o texto digitado;
- RadioButton para escolher o tipo de visualização da tela (em lista ou em cards);
- Literal indicando quantos registros estão sendo visualizados e uma estimativa de quantos foram encontrados;
- Botão “F2-Carregar mais” para fazer a carga de mais itens na tela.
Falando em números
Em testes efetuados, considerando o tempo para fazer 224 buscas foi de 2 segundos, tanto no layout de grid, quanto no layout de cards.
Para carga de 9.065 linhas carregadas no grid a rotina levou cerca de 9 milésimos de segundos por linha.
Exemplos
Digitado “luvas rapa soldadr” ao invés de “luvas raspa soldador”
Digitado “quimco” ao invés de “químico”
Troca de layout e preservação da pesquisa feita
Botão “F2-Carregar mais“