Todos os artigos
FT-ODATA-PAGINATION-V1· 1.0.0Integrações

OData pagination — como o Lefia busca todas as páginas do SAP

Quando o SAP retorna mais documentos do que cabe em uma página, o Lefia segue automaticamente o link da próxima até esgotar (com limites de segurança).

Atualizado em 8/6/2026
Toda integração com SAP via OData S/4HANA recebe respostas paginadas quando o resultset passa do $top configurado. O servidor inclui um link pra próxima página em duas convenções:

  • OData V2 (clássico SAP): d.__next apontando pra URL com $skiptoken
  • OData V4 (moderno): @odata.nextLink no top-level


O Lefia segue automaticamente esses links até esgotar a entity ou bater em algum limite de segurança. Sem isso, mensagens depois da primeira página seriam silenciosamente perdidas.

Limites de segurança



Para evitar travar a integração se o SAP estiver mal-configurado (loop infinito de pagination), o Lefia para em:

  • 100 páginas (maxPages) — qualquer paginação bem comportada acaba muito antes
  • 5000 records (maxRecords) — limite de memória da função


Quando algum dos dois é atingido, o resultado é truncado e o Lefia loga um aviso:

[sap/odata] Pagination truncada (max_records) após 100 páginas / 5000 records.
Aumente maxPages/maxRecords ou use $filter mais específico.


Como destravar quando a pagination é truncada



  1. Use $filter mais específico na URL base da conexão
- Exemplo: ?$filter=CreationDate ge datetime'2026-01-01' pega só recentes
  1. Aumente $top na conexão (default 50). SAP costuma cap em 1000.
  2. Crie 2 integrações separadas com $filter diferentes em vez de 1 grande


Verificando se sua integração está sendo truncada



Procure no log pagination truncada em /admin/errors ou no Sentry. Se aparecer regularmente, é sinal de que o volume cresceu além do limite default.

Histórico de versões

  • 1.0.0

    Pagination automática OData V2 (__next) e V4 (@odata.nextLink) no client SAP. Limites maxPages/maxRecords como safety net. Truncation reportada via console.warn.

    5/7/2026 · new