Dynamics 365 – Novo Limite de chamadas via API


Olá pessoal,

Eu já havia escrito anteriormente sobre o limite de chamadas através das API neste post. Porém, o cenário era de “nenhum limite” para 60 mil chamadas por usuário em uma intervalo de 5 minutos. Apesar de já ter adicionado um menção de que o limite mudou novamente no meu primeiro post. Vou utilizar deste post para informá-lo do novo limite.

Observações antes de nos aprofundarmos…

O limite vale apenas para as versões online do Dynamics 365 CE, se você tem a on-premises, este post não é para você! rs

Plugins e custom workflows são executados dentro do servidor independentemente de algum usuário loagado, desta forma não nenhuma chamada feita por eles irá contar contra o limite.

A mudança

Pois bem, em março deste ano (2019), a Microsoft decidiu diminuir um pouco mais o limite de chamadas de um mesmo usuário em um intervalo de 5 minutos de 60 mil para 4 mil!

Aparentemente a redução mostra-se como algo ruim e que irá impactar muita gente, mas fazendo algumas contas, digamos que estamos fazendo requests (CRUD e outras funções) em batches (blocos) de 100, assim teremos 400.000 registros a cada 5 minutos. Em 1 hora, 4.800.000, algo muito, mas bom! (porém, eu não acredito que o próprio servidor irá dar conta de orquestrar toda essa quantidade de registros, mas ai é outra história…).

Apenas para lembrar que chamadas em batch (ExecuteMultipleRequest) contam como apenas uma chamada, independente de quantos registros fazem parte do batch.

O mesmo se aplica para o RetrieveMultiple, pouco importa se retornou 1 ou 1000 registros, será considerado apenas uma chamada. Porém, caso exista paginação, ou seja, mais de 5.000 registros, será contabilizado uma chamada para cada página.

Mitos desmitificados, vamos aos detalhes…

Com o novo limite em ação, ganhamos bons controles em cada de excedermos os limites de chamadas, exceções serão lançadas e podemos tratá-las de forma que nossas chamadas não se percam no limbo e sejam cuidadas ou re-chamadas posteriormente.

Temos três tipos de messagens de erro:

Código do erro Menssagem
-2147015902 Número de chamadas excedeu o limite de 4000 em menos de 300 segundos.
-2147015903 O tempo de execução combinado das solicitações recebidas excedeu o limite de 1.200.000 milissegundos ao longo do intervalo de 300 segundos. Diminua o número de solicitações simultâneas ou reduza a duração das solicitações e tente novamente mais tarde.
-2147015898 Número de chamadas simultâneas excedeu o limite de X

Como eu disse anteriormente, podemos tratá-los através de FaultException<OrganizationServiceFault>. Existe um exemplo prático no post oficial, para ajudar a aplicá-lo na prática!

Bom, post curto, mas acredito que cumpra seu papel de avisar sobre mudança. Já estou escrevendo outro sobre o que muda com as novas lincenças do Release de Outubro (2019) em relação ao limite de chamadas! Sim, além do “limite técnico”, teremos um limite de acordo com a licença do usuário… MAS ISSO É ASSUNTO PARA DEPOIS…

[]’s,

Tiago

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.