Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(po-dynamic-edit): otimiza validacao #1951

Merged

Conversation

carlosdiego
Copy link

< po-dynammic-edit>

< #1950 >


PR Checklist [Revisor]

  • Padrão de Commit (Coeso, de acordo com o que está sendo realizado)
  • Código (Boas práticas, nome de variavéis/métodos, etc.)
  • Testes unitários (Cobre a situação implementada e coverage está mantido)
  • Documentação (Clara, objetiva e com exemplos caso necessário)
  • Samples (A implementação possui exemplo no Labs/Caso de uso)
  • Rodado em navegadores suportados (Chrome, FireFox, Edge)

Qual o comportamento atual?
Ao clicar no botão gravar no PoPageDynamicEdit, o componente valida seus campos obrigatórios. No entanto, se houver campos do tipo lookup já preenchidos (obrigatórios ou não), ao gravar, uma alteração no model é feita. Isso dispara o método writeValue do componente lookup, que executa um GET no serviço para recarregar as informações, mesmo que desnecessariamente. Esse comportamento resulta em um custo adicional para o servidor, especialmente em telas com vários componentes lookup, onde múltiplas requisições GET são enviadas desnecessariamente apenas para validar o formulário.

Qual o novo comportamento?
Com a melhoria proposta, alterações no model serão feitas apenas quando estritamente necessário, evitando requisições GET desnecessárias para campos do tipo lookup já preenchidos. Isso otimiza o uso dos recursos do servidor e melhora a performance da aplicação. A validação dos campos obrigatórios no PoPageDynamicEdit será mantida, mas o processo de atualização do model será otimizado para evitar disparar o writeValue de componentes lookup quando não houver necessidade real de recarregar os dados, reduzindo assim o número de requisições ao servidor.

Simulação
Para simular o comportamento atual, pode-se criar uma tela no PoPageDynamicEdit com vários campos do tipo lookup, marcá-los como obrigatórios ou não, preencha todos os campos exceto um dos obrigatórios e acione o botão de gravar. Observa-se que, mesmo sem alterações nos campos lookup, requisições GET são feitas para cada um deles.

Para simular o novo comportamento, após implementar a melhoria, o mesmo processo deverá resultar em nenhuma requisição GET adicional para os componentes lookup preenchidos, a menos que haja uma alteração real nos dados que exija a atualização do model. Isso pode ser verificado monitorando as chamadas de rede através das ferramentas de desenvolvedor do navegador ou de logs no servidor.

@anderson-gregorio-totvs anderson-gregorio-totvs merged commit de84187 into po-ui:master Feb 2, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants