Como consultar dados?
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: <ul>
<li>D = Data sem horário</li> <li>H = Data com horário (no seguinte formato: DD/MM/AAAA HH:MM:SS)</li> <li>F = Número decimal (decimal separado por '.')</li> <li>I = Número inteiro</li> <li>S = Texto</li> </ul> <br />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. <h3>Segue exemplo utilizando filtro com parâmetros</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 /><br /><b>Corpo de requisição</b>
{
"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"
}
}
}
}
}
<br />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: <br />Aplicando filtro com número inteiro:
...
"criteria": {
"expression": {
"$": "NUNOTA = ?"
},
"parameter": [
{
"$": "9120",
"type": "I"
}
]
},
...
<br />Aplicando filtro com número inteiro utilizando IN:
...
"criteria": {
"expression": {
"$": "NUNOTA IN (?, ?, ?)"
},
"parameter": [
{
"$": "9120",
"type": "I"
},
{
"$": "9141",
"type": "I"
},
{
"$": "9159",
"type": "I"
}
]
},
...
<br />Aplicando filtro com data e hora:
...
"criteria": {
"expression": {
"$": "DTFATUR >= ?"
},
"parameter": [
{
"$": "20/05/2022 09:31:43",
"type": "H"
}
]
},
...
<br />Aplicando filtro entre datas:
...
"criteria": {
"expression": {
"$": "DHBAIXA IS NULL AND DTVENC BETWEEN ? AND ?"
},
"parameter": [
{
"$": "01/05/2022",
"type": "D"
},
{
"$": "31/05/2022",
"type": "D"
}
]
},
...
<br />Aplicando filtro com texto:
...
"criteria": {
"expression": {
"$": "USOPROD = ? AND DESCRPROD LIKE '%?%'"
},
"parameter": [
{
"$": "V",
"type": "S"
},
{
"$": "CHEVE",
"type": "S"
}
]
},
...
get/CriteriosLoadRecords
Response
Cadastro efetuado com sucesso