feat(po-dynamic-edit): otimiza validacao #1951
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
< po-dynammic-edit>
< #1950 >
PR Checklist [Revisor]
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.