Critérios em Consultas loadRecords

Quando temos parâmetros variáveis, como é o caso da expressão aqui usada, devemos colocar um '?' onde o valor do parâmetro será injetado. Para cada '?' na expressão devemos ter um elemento 'parameter'. Os possíveis valores para o atributo 'type' são:

  • D = Data sem horário
  • H = Data com horário (no seguinte formato: DD/MM/AAAA HH:MM:SS)
  • F = Número decimal (decimal separado por '.')
  • I = Número inteiro
  • S = Texto

IMPORTANTE: Sempre usar parâmetro para critérios do tipo data, pois colocar a data direto no SQL pode não funcionar corretamente devido ao charset, formato e tipo do banco de dados.

Segue exemplo utilizando filtro com parâmetros

  • URL Gateway Produção: https://api.sankhya.com.br/
  • URL Gateway Sandbox: https://api.sandbox.sankhya.com.br/
URL de chamada: https://[URL_GATEWAY]/gateway/v1/mge/service.sbr?serviceName=CRUDServiceProvider.loadRecords&outputType=json

Corpo de requisição

{
    "serviceName": "CRUDServiceProvider.loadRecords",
    "requestBody": {
        "dataSet": {
            "rootEntity": "Produto",
            "includePresentationFields": "N",
            "tryJoinedFields":"true",
            "offsetPage": "0",
            "criteria": {
                "expression": {
                  "$": "CODPROD IN ( ?, ? )"
                },
                "parameter":
                    [
                        {
                            "$": "1",
                            "type": "I"
                        },
                        {
                            "$": "2",
                            "type": "I"
                        }
                    ]
            },
            "entity": {
                "fieldset": {
                    "list": "CODPROD, DESCRPROD"
                }
            }
        }
    }
}


Este exemplo retorna os produtos com código 1 e 2. A seguir um exemplo de utilização com cada tipo de parâmetro, focando na tag “criteria” onde a mudança é necessária:
Aplicando filtro com número inteiro:

...
            "criteria": {
                "expression": {
                  "$": "NUNOTA = ?"
                },
                "parameter": [
                    {
                        "$": "9120",
                        "type": "I"
                    }
                ]
            },
...


Aplicando filtro com número inteiro utilizando IN:

...
            "criteria": {
                "expression": {
                  "$": "NUNOTA IN (?, ?, ?)"
                },
                "parameter": [
                    {
                        "$": "9120",
                        "type": "I"
                    },
                    {
                        "$": "9141",
                        "type": "I"
                    },
                    {
                        "$": "9159",
                        "type": "I"
                    }
                ]
            },
...


Aplicando filtro com data e hora:

...
            "criteria": {
                "expression": {
                  "$": "DTFATUR >= ?"
                },
                "parameter": [
                    {
                        "$": "20/05/2022 09:31:43",
                        "type": "H"
                    }
                ]
            },
...


Aplicando filtro entre datas:

...
            "criteria": {
                "expression": {
                  "$": "DHBAIXA IS NULL AND DTVENC BETWEEN ? AND ?"
                },
                "parameter": [
                    {
                        "$": "01/05/2022",
                        "type": "D"
                    },
                    {
                        "$": "31/05/2022",
                        "type": "D"
                    }
                ]
            },
...


Aplicando filtro com texto:

...
            "criteria": {
                "expression": {
                  "$": "USOPROD = ? AND DESCRPROD LIKE '%?%'"
                },
                "parameter": [
                    {
                        "$": "V",
                        "type": "S"
                    },
                    {
                        "$": "CHEVE",
                        "type": "S"
                    }
                ]
            },
...
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Responses
201

Cadastro efetuado com sucesso

400

Requisição inválida

500

Erro interno do servidor

Language
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here!