sexta-feira, 30 de setembro de 2022

Limite de 300 registros na call REST api ao SharePoint

 Olá pessoal –

Meio que sem querer, me deparei recentemente com uma limitação do SharePoint no que se refere a quantidade de registros que podem ser obtidos através de uma call à sua api, ao utilizar o Power Automate.

Tanto aqui no blog quanto no meu canal do YouTube eu falo bastante sobre a utilização do Power Automate para turbinar o uso do Project Online, e na quase totalidade dos casos eu acabo utilizando a opção de realizar uma call ao SharePoint através da ação Send an HTTP Request to SharePoint, dada sua versatilidade e flexibilidade.

Pois bem... ao realizar um trabalho para um cliente, eu tinha a necessidade de obter a lista de todos os projetos salvos no Project Online, para então executar uma série de ações em alguns projetos específicos. Acontece que, ao estabelecer a conexão entre o Power Automate e o SharePoint, o número de registros obtidos do banco de dados era bem menor do que o número de projetos que de fato existiam no ambiente. Pra ser mais preciso, apenas 300 registros estavam sendo obtidos toda vez que o fluxo era iniciado:


Após bater um pouco a cabeça e entender que não havia nada nos filtros que estivesse limitando o número de registros obtidos pela consulta, percebi que havia uma limitação do próprio conector do SharePoint, que fixava em 300 o número máximo de registros que poderiam ser disponibilizados ao Power Automate a cada chamada feita à sua API.

Dessa forma, caso você esteja criando flows que obtenham dados do SharePoint, mantenha-se atento a essa restrição, pois ela pode acabar gerando alguns problemas não disponibilizando todos os registros que efetivamente deveriam ser processados. No meu caso específico, minha consulta estava obtendo dados da entidade projetos – porém, existem inúmeras outras entidades que tendem a ter um número muito maior de registros (como Tarefas e Atribuições, por exemplo).

Para resolver o meu problema, tive que limitar a consulta para um tipo de projeto específico, de modo a aplicar as ações apenas ao grupo de projetos que deveriam ser submetidos ao fluxo (conforme exemplo abaixo):


Entretanto, se no seu caso a necessidade seja executar a ação para todos os projetos independentemente do tipo, uma solução viável talvez seja agrupar os projetos por uma determinada categoria (Tipo, Proprietário, Status, Departamento...) e então executar as ações para cada um desses grupos individualmente, de modo que o limite de 300 registros não seja ultrapassado. A mesma lógica se aplica a qualquer outro tipo de registros a serem obtidos (por exemplo, ao tentar obter informações de tarefas, a melhor opção é primeiro filtrar por projeto, assim as tarefas serão obtidas de maneira individual, de acordo com o projeto ao qual pertençam, reduzindo assim o escopo de registros a serem processados na chamada).

Enfim, para você que desenvolve automações e utiliza o Power Automate e o Project Online (SharePoint) com frequência, fica aí uma lição aprendida que deve ser observada com atenção nos seus próximos desenvolvimentos 😉.

Um forte abraço e até a próxima!