Consultas com loadView (não tem paginação)

A API disponibiliza o serviço loadView (CRUDServiceProvider.loadView) para realizar consulta em VIEWs.
Existem algumas considerações importantes que devem ser levadas em consideração antes de sua utilização. Seguem:

  • O serviço não possui paginação nativa, portanto, a paginação deve ser feita pelo integrador que realiza a requisição.
  • 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).
  • 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:
Oracle
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

SQL Server

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.
Segue exemplo de utilização do serviço com a VIEW criada no exemplo acima:

Exemplo de uso

  • 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.loadView&outputType=json

Corpo de requisição
{
    "serviceName": "CRUDServiceProvider.loadView",
    "requestBody": {
        "query": {
            "viewName": "VW_ITENS_PEDIDO",
            "where": {
                "$": "LINHA BETWEEN 15000 AND 15499"
            },
            "fields": {
                "field": {
                    "$": "CODPROD, DESCRPROD, NUNOTA, SEQUENCIA, QTDNEG, VLRUNIT, VLRTOT"
                }
            }
        }
    }
}


A requisição acima retorna 500 registros, considerando linhas de 15.000 a 15.499.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Responses
201

Consulta efetuada 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!