Como consultar dados?
Consultas com loadView (não tem paginação)
A API disponibiliza o serviço loadView (CRUDServiceProvider.loadView) para realizar consulta em VIEWs.<br /> Existem algumas considerações importantes que devem ser levadas em consideração antes de sua utilização. Seguem: <ul>
<li>O serviço não possui paginação nativa, portanto, a paginação deve ser feita pelo integrador que realiza a requisição.</li> <li>Caso a view não seja performática, é indicado a utilização de mecanismos de indexação para que a performance seja adequada, como Materialized Views (fique atento com as regras de atualização dos dados desse tipo de objeto).</li> <li>Para um volume muito grande de dados, pode ser utilizado um indicador de linha para criar a paginação de maneira mais simples. Segue um exemplo para ORACLE e SQL Server:</li> </ul> <b>Oracle</b>CREATE VIEW VW_ITENS_PEDIDO
AS
SELECT T.*
FROM (
SELECT ROWNUM AS LINHA
, PRO.CODPROD
, PRO.DESCRPROD
, ITE.NUNOTA
, ITE.SEQUENCIA
, ITE.QTDNEG
, ITE.VLRUNIT
, ITE.VLRTOT
FROM TGFITE ITE
INNER JOIN TGFPRO PRO ON PRO.CODPROD = ITE.CODPROD
) T
<b>SQL Server</b>
CREATE VIEW VW_ITENS_PEDIDO
AS
SELECT T.*
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY NUNOTA, SEQUENCIA) AS LINHA
, PRO.CODPROD
, PRO.DESCRPROD
, ITE.NUNOTA
, ITE.SEQUENCIA
, ITE.QTDNEG
, ITE.VLRUNIT
, ITE.VLRTOT
FROM TGFITE ITE
INNER JOIN TGFPRO PRO ON PRO.CODPROD = ITE.CODPROD
) T
Nos exemplos acima foi utilizado a TGFITE que detém um grande volume de dados, na maioria das vezes.<br /> Segue exemplo de utilização do serviço com a VIEW criada no exemplo acima:
<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.loadView&outputType=json <br /><br /><b>Corpo de requisição</b>{
"serviceName": "CRUDServiceProvider.loadView",
"requestBody": {
"query": {
"viewName": "VW_ITENS_PEDIDO",
"where": {
"$": "LINHA BETWEEN 15000 AND 15499"
},
"fields": {
"field": {
"$": "CODPROD, DESCRPROD, NUNOTA, SEQUENCIA, QTDNEG, VLRUNIT, VLRTOT"
}
}
}
}
}
<br />A requisição acima retorna 500 registros, considerando linhas de 15.000 a 15.499.
get/loadView
Response
Consulta efetuada com sucesso