Retornando registros de outras entidades em um loadRecords

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",
            "parallelLoader":"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.

Language
Click Try It! to start a request and see the response here!