Performance nas busca de registro com Xrm.WebApi

By | 19/07/2020

Olá pessoal!

Durante o final de semana, li alguns posts referente a performance com o uso do SDK e WebApi, e acabei me deparando com seguinte resultado utilizando Xrm.WebApi (Client Api) nos formulários do Power Apps e Dynamics 365.

Vamos executar um Xrm.WebApi.retrieveRecord no formulário para trazer um registro de conta por exemplo:

 
Xrm.WebApi.retrieveRecord("account","D0A19CDD-88DF-E311-B8E5-6C3BE5A8B200")
.then((data)=>{console.log(data);}) 

Vamos olhar o tempo que levou para executar a chamada do retrieveRecord:

Localizando registro com Xrm.retrieveRecord

Perceba que demorou 941ms para executar a operação. Nada mau né?
Agora vamos executar com retrieveMultipleRecords. beleza?

Xrm.WebApi.retrieveMultipleRecords("account","?$filter=accountid eq 'D0A19CDD-88DF-E311-B8E5-6C3BE5A8B200'")
.then((data)=>{console.log(data);})
Localizando registro com Xrm.retrieveMultipleRecords

Realizou em 1.18s, piorou né? mas agora vamos ajustar essa retrieveMultipleRecords, colocando $top=1.

 
Xrm.WebApi.retrieveMultipleRecords("account","?$top=1&$filter=accountid eq 'D0A19CDD-88DF-E311-B8E5-6C3BE5A8B200'")
.then((data)=>{console.log(data);})  
Localizando registro com Xrm.retrieveMultipleRecords com filtro top igual a  1

Olhe só que interessante! Utilizando o parâmetro $top1 a busca do registro ficou em 249ms! Obtendo um performance 300% mais rápida comparando com o retrieveRecord, onde pesquisa e traz somente um registro mesmo.

Com essa pequena modificação podemos ter buscas de registros muito mais performáticas! Legal não?

Espero que tenham gostado dessa dica, e até o próximo post!

Leave a Reply

Your email address will not be published. Required fields are marked *

Protected by WP Anti Spam