---
title: "Consultas com loadRecords (para vários registros)"
method: GET
path: "/loadRecords"
tags: ["Como consultar dados?"]
---

# Consultas com loadRecords (para vários registros)

`GET /loadRecords`

<h1>Regras de negócio</h1> A API possui um serviço genérico para aplicar consultas em todas as Entidades disponíveis no ERP: <b>CRUDServiceProvider.loadRecords</b>. Por definição, uma entidade mapeia uma tabela que está no banco de dados, vejamos a seguir alguns exemplos de Entidade:<br /> <b>•</b> Entidade Produtos mapena a tabela TGFPRO<br /> <b>•</b> Entidade Parceiros mapeia a tabela TGFPAR<br />

<br /> <h3>Exemplo de uso:</h3>
<ul>
  <li>URL Gateway Produção: https://api.sankhya.com.br/</li>
  <li>URL Gateway Sandbox: https://api.sandbox.sankhya.com.br/</li>
</ul>
<b>URL de chamada</b>: https://[URL_GATEWAY]/gateway/v1/mge/service.sbr?serviceName=CRUDServiceProvider.loadRecords&outputType=json
<br />Vejamos a seguir a estrutura completa de uma requisição do serviço loadRecords:

    {
        "serviceName": "CRUDServiceProvider.loadRecords",
        "requestBody": {
            "dataSet": {
                "rootEntity": "Produto",
                "ignoreCalculatedFields": "true",
                "useFileBasedPagination": "true",
                "includePresentationFields": "N",
                "tryJoinedFields": "true",
                "modifiedSince": "2024-04-16T12:59:59",
                "offsetPage": "0",
                "criteria": {
                    "expression": {
                      "$": "CODPROD IN ( ?, ? ) AND DESCRPROD LIKE '%?%'"
                    },
                    "parameter": [
                        {
                            "$": "1",
                            "type": "I"
                        },
                        {
                            "$": "2",
                            "type": "I"
                        },
                        {
                            "$": "QUEIJO",
                            "type": "S"
                        }
                    ]
                },
                "entity": [
                    {
                        "path": "",
                        "fieldset": {
                            "list": "CODPROD, DESCRPROD"
                        }
                    },
                    {
                        "path": "GrupoProduto",
                        "fieldset": {
                            "list": "CODGRUPOPROD, DESCRGRUPOPROD"
                        }
                    }
                ]
            }
        }
    }

Agora, vamos detalhar as propriedades utilizadas:<br /> <ul>
  <li>serviceName: nome do serviço e por padrão, sempre será: CRUDServiceProvider.loadRecords
rootEntity: nome da entidade a ser consultada.</li>
  <li>modifiedSince: faz referência a funcionalidade de logAlteracoesTabelas (<a href="https://developer.sankhya.com.br/reference/get_logalteracoestabelas">clique aqui</a> para mais detalhes sobre o recurso de LogAlteracoesTabelas). Quando esta funcionalidade está habilitada, é possível trazer apenas registros que tiveram alteração a partir de uma determinada data/hora. Vale ressaltar que este parâmetro é opcional, e ao enviar valores o serviço irá considerar “apenas” registros contidos no logAlteracoesTabelas. Caso não tenha informações logadas no sistema, o retorno do serviço será vazio (ZERO registros).</li>
  <li>ignoreCalculatedFields: quando configurado como `true`, os campos calculados são ignorados e apenas os campos persistidos em banco são retornados, reduzindo o volume de processamento e aumentando a performance da consulta. O valor padrão é false, ou seja, por padrão os campos calculados são incluídos no resultado.</li>
  <li>useFileBasedPagination: este atributo habilita a paginação baseada em disco. O padrão é utilizar memória do servidor para fazer paginações. É indicado para consultas com grande volume de dados (superior a 1000 páginas). Quando configurado como `true`, o processamento passa a ser realizado em disco, garantindo maior estabilidade e performance em cenários massivos. O valor padrão é false, mantendo a paginação tradicional para consultas comuns.</li>
  <li>offsetPage: indica a página a ser retornada. A página tem início em 0 (zero) e novas requisições devem ser realizadas, incrementando este valor, sempre que o retorno indicar mais registros através do parametro "hasMoreResult" com valor "true".</li>
  <li>criteria -> expression: condição da consulta. Sempre que houver "parâmetros" variáveis, deve ser utilizado os parâmetros (parameter) para indicar os valores para critério da consulta.</li>
  <li>criteria -> parameter: deve ser informado os valores para os parâmetros utilizados na consulta (clique aqui para mais detalhes sobre o recurso de critérios nos filtros).</li>
  <li>entity: são indicados os campos a serem retornados na consulta. Os campos estão disponíveis no <a href="https://ajuda.sankhya.com.br/hc/pt-br/articles/360044597294-Dicion%C3%A1rio-de-Dados">Dicionário de Dados</a> para identificar quais campos serão necessários em cada entidade consultada. Esta propriedade também permite obter informações de entidades com ligação direta ao registro consultado. Ex.: para buscar um parceiro, através do CODBAI é possível trazer na consulta o nome do bairro. Isso se aplica a qualquer informação com ligação similar a esta (cidade, endereço, perfil, etc.). Clique aqui e para mais detalhes sobre "join" de dados nas consultas.</li>
</ul>
<br />Vejamos agora um exemplo de consulta de parceiros do tipo "Cliente" realizado na entidade "Parceiro":

    {
        "serviceName": "CRUDServiceProvider.loadRecords",
        "requestBody": {
            "dataSet": {
                "rootEntity": "Parceiro",
                "ignoreCalculatedFields": "true",
                "useFileBasedPagination": "true",
                "includePresentationFields": "N",
                "tryJoinedFields": "true",
                "offsetPage": "0",
                "criteria": {
                    "expression": {
                      "$": "CLIENTE = ?"
                    },
                    "parameter": [
                        {
                            "$": "S",
                            "type": "S"
                        }
                    ]
                },
                "entity": [
                    {
                        "path": "",
                        "fieldset": {
                            "list": "CODPARC, NOMEPARC, NUMEND, COMPLEMENTO, CEP"
                        }
                    },
                    {
                        "path": "Endereco",
                        "fieldset": {
                            "list":"CODEND, TIPO, NOMEEND"
                        }
                    },
                    {
                        "path": "Bairro",
                        "fieldset": {
                            "list": "CODBAI, NOMEBAI"
                        }
                    },
                    {
                        "path": "Cidade",
                        "fieldset": {
                            "list": "CODCID, NOMECID, UF"
                        }
                    }
                ]
            }
        }
    }

## Response `201`

Consulta efetuada com sucesso

## Other responses

- `400` — Requisição inválida
- `500` — Erro interno do servidor

---

[API](https://skmtc.net/sankhya/apis/api-sankhya.md) · [All operations](https://skmtc.net/sankhya/apis/api-sankhya/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sankhya/api-sankhya/revisions/0a3e81ca6195/schema)
