O serviço padrão "CRUDServiceProvider.loadRecords" é considerado padrão para realizar consultas em entidades que estão no SankhyaOm. O retorno natural é trazer os dados que estão na entidade. O objetivo deste tutorial é apresentar as vantagens de utilizar as ligações nativas entre as entidades para retornar dados complementares aos registros, como por exemplo, é possível retornar além do Código do Grupo do Produto, também a descrição, informação esta que está em outra entidade. O código a seguir ilustra como esta consulta pode ser realizada:
Exemplo de uso:
URL de chamada: https://api.sankhya.com.br/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 = ?"
},
"parameter": [
{
"$": "1",
"type": "I"
}
]
},
"entity": [
{
"path":"", // fica em branco, representa a entidade principal
"fieldset": {
"list": "CODPROD, DESCRPROD"
}
},
{ // adicione as entidades que deseja fazer join
"path":"GrupoProduto", // nome da entidade
"fieldset": {
"list":"CODGRUPOPROD, DESCRGRUPOPROD" // campos a retornar
}
}
]
}
}
}
Agora vamos analisar o código com e sem a utilização das ligações. A principal mudança está na tag “entity”. Veja:
Sem utilizar ligações:
"entity": {
"fieldset": {
"list": "CODPROD, DESCRPROD"
}
}
Utilizando ligações:
"entity": [
{
"path":"",
"fieldset": {
"list": "CODPROD, DESCRPROD"
}
},
{
"path":"GrupoProduto",
"fieldset": {
"list":"CODGRUPOPROD, DESCRGRUPOPROD"
}
},
{
"path":"Volume",
"fieldset": {
"list":"CODVOL, DESCRVOL"
}
}
]
O exemplo acima, retorna o cadastro de produto, a descrição do grupo de produto, bem como a descrição do volume principal.