Ir para conteúdo
  • 0

API Sankhya


Victor Rossafa

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
Em 05/05/2024 em 11:58, Victor Rossafa disse:

Estou com dificuldade na conexão do power bi com o Sankhya, já tenho a appkey, token, fiz a consulta e mesmo assim da erro. Se tiver alguém interessado em me ajudar, será remunerado. Meu whats é 17991080659.

Bom dia! Abaixo estão os passos exemplificados para a conexão com uma das APIs:


Documentação: https://developer.sankhya.com.br/reference/requisições-via-gateway

Passo 1 - Criar parâmetros de autenticação:

- App Key
- Token
- email
- password

Passo 2 - Criar função de autenticação:
Desenvolva uma função que utilize os parâmetros acima para autenticar no sistema. No nosso caso chamaremos nossa função de ObterToken.

let
    AutenticarAPI = () => 
        let
            url = "https://api.sankhya.com.br/login",
            payload = "{}",
            headers = [
                #"Appkey" = Appkey,
                #"Token" = Token,
                #"Username" = email,
                #"Password" = password
            ],
            options = [
                Headers = headers,
                Content = Text.ToBinary(payload),
                IsRetry = false
            ],
            response = Web.Contents(url, options),
            jsonResponse = Json.Document(response),
            BearerToken = if Record.HasFields(jsonResponse, "bearerToken") then jsonResponse[bearerToken] else null
        in
            BearerToken
in
    AutenticarAPI

Passo 3 - Consultar uma tabela específica:
Você pode fazer consultas em tabelas específicas conforme sua necessidade. Para cada consulta, utilize uma URL específica junto com um tipo de 'request body'. No exemplo a seguir, utilizamos a consulta à Tabela de Preços, conforme a documentação disponível em: https://developer.sankhya.com.br/reference/get_tabelapreco

let
    // Obtém o token de acesso para autenticação na API.
    AcessToken = ObtemToken(),

    // Define a URL base da API para consulta de produtos.
    url = "https://api.sankhya.com.br/gateway/v1/mgecom/service.sbr?serviceName=ConsultaProdutosSP.consultaProdutos&outputType=json",

    // Prepara o corpo da requisição, definindo filtros e critérios para a consulta de produtos.
    requestBody = [
        filtros = [
            criterio = [
                resourceID = "br.com.sankhya.com.cons.consultaProdutos",
                PERCDESC = "0",
                CODPROD = Record.FromList({"$"}, {"6"})
            ],
            isPromocao = "false",
            isLiquidacao = "false"
        ]
    ],

    // Monta o payload final da requisição com o corpo preparado.
    payload = Json.FromValue([
        serviceName = "ConsultaProdutosSP.consultaProdutos",
        requestBody = requestBody
    ]),

    // Configura os cabeçalhos da requisição, incluindo o tipo de conteúdo e a autorização.
    headers = [
        #"Content-Type" = "application/json",
        #"Authorization" = "Bearer " & AcessToken
    ],

    // Define as opções da requisição, como cabeçalhos e conteúdo.
    options = [
        Headers = headers,
        Content = payload,
        IsRetry = false
    ],

    // Executa a requisição à API e captura a resposta.
    response = Web.Contents(url, options),
    jsonResponse = Json.Document(response),
    responseBody = Record.Field(jsonResponse, "responseBody"),

    // Verifica se existe o campo 'responseBody' e converte para tabela, caso contrário retorna nulo.
    tabela = if Record.HasFields(jsonResponse, "responseBody") then 
                Table.FromRecords({responseBody}) 
             else 
                null,

    // Expande colunas do registro 'produtos' para acessar detalhes específicos de cada produto.
    #"produtos Expandido" = Table.ExpandRecordColumn(tabela, "produtos", ["existemMaisRegistros", "maxregconsprod", "produto"], ["produtos.existemMaisRegistros", "produtos.maxregconsprod", "produtos.produto"]),
    #"produtos.produto Expandido" = Table.ExpandListColumn(#"produtos Expandido", "produtos.produto"),
    #"produtos.produto Expandido1" = Table.ExpandRecordColumn(#"produtos.produto Expandido", "produtos.produto", ["ISPROMOCAO", "ISLIQUIDACAO", "Cadastro_CODPROD", "Cadastro_DESCRPROD", "TIPCONTEST", "TIPLANCNOTA", "Preço_1", "DECQTD", "ORDEMMEDIDA", "CORSEMESTOQUE", "Estoque_1", "DECVLR", "CODVOL", "DESCRPROD", "CODPROD", "TEMIMAGEM", "PRECOBASE"], ["produtos.produto.ISPROMOCAO", "produtos.produto.ISLIQUIDACAO", "produtos.produto.Cadastro_CODPROD", "produtos.produto.Cadastro_DESCRPROD", "produtos.produto.TIPCONTEST", "produtos.produto.TIPLANCNOTA", "produtos.produto.Preço_1", "produtos.produto.DECQTD", "produtos.produto.ORDEMMEDIDA", "produtos.produto.CORSEMESTOQUE", "produtos.produto.Estoque_1", "produtos.produto.DECVLR", "produtos.produto.CODVOL", "produtos.produto.DESCRPROD", "produtos.produto.CODPROD", "produtos.produto.TEMIMAGEM", "produtos.produto.PRECOBASE"]),
    // Processo continua para cada coluna necessária com detalhes expandidos até alcançar o resultado final.
in
    // Retorna a última tabela expandida com todos os detalhes de produtos.
    #"produtos.produto.DECVLR Expandido"

 

  • Like 1
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...