Pular para o conteúdo
Guia

Como levar dados do Protheus para o BI (Power BI, banco de dados ou arquivo)

Por Cesar Ramalho (abre em nova aba), HSB Consultoria · Atualizado em

Com o HyperSync, os dados do Protheus chegam ao BI por três caminhos: consulta na hora pela API (tipo Query SQL), cópia num banco SQL Server, PostgreSQL ou Oracle pelo Schedule do Protheus (tipo Banco de Dados) ou arquivo CSV ou TXT num FTP, também pelo Schedule (tipo Arquivo). Os três partem de uma consulta SQL configurada no endpoint, sem fonte ADVPL. A execução roda no Protheus de vocês e os dados vão direto para o destino, sem passar pela HSB.

  • A trava de SQL deixa a consulta só ler: nada é alterado no Protheus.
  • Banco de Dados e Arquivo são sempre assíncronos e rodam na frequência que vocês configurarem.
  • Cada execução fica na Auditoria, com empresa e filial, retorno e tempo.

Os três caminhos lado a lado

Tipo do endpoint
Pela APIQuery SQL
Num bancoBanco de Dados
Num arquivoArquivo
Quem inicia
Pela APIA ferramenta que chama a API, com POST.
Num bancoO Schedule do Protheus.
Num arquivoO Schedule do Protheus.
Execução
Pela APISíncrona ou assíncrona.
Num bancoSempre assíncrona.
Num arquivoSempre assíncrona.
Onde o dado chega
Pela APIEm JSON, na resposta da chamada ou, no assíncrono, pelo ticket.
Num bancoNuma tabela do SQL Server, PostgreSQL ou Oracle de vocês.
Num arquivoNum CSV ou TXT com separador, no FTP de vocês.
Atualização
Pela APIA cada chamada.
Num bancoNa frequência do Schedule. Atualiza ou insere pela chave escolhida.
Num arquivoNa frequência do Schedule.
Combina com
Pela APIPainel que precisa do dado do momento, planilha ou app, com filtro e paginação.
Num bancoPower BI e data warehouse lendo de um banco.
Num arquivoProcesso de carga ou ferramenta que já lê arquivo.
Teste e acompanhamento
Pela APISandbox com cURL e collection do Postman. Cada chamada na Auditoria.
Num bancoSem sandbox. Cada execução na Auditoria.
Num arquivoSandbox com cURL e collection do Postman. Cada execução na Auditoria.

Cada caminho é um endpoint configurado em 6 passos, sem compilar e sem patch no RPO. Como a rota única e a autenticação funcionam está no guia API REST no Protheus sem ADVPL.

Quando usar cada um

Consulta pela API

Quando o painel precisa do dado do momento e o volume cabe num filtro com paginação. Quem chama precisa do token do REST do Protheus e manda empresa e filial no header tenantId.

Cópia num banco

Quando o BI lê muito e com frequência, como o Power BI atualizando um modelo. O BI consulta o banco de vocês, e o Protheus só roda a consulta na hora agendada.

Arquivo no FTP

Quando quem consome trabalha com arquivo: um processo de carga, outra ferramenta ou uma rotina que já lê CSV ou TXT.

Exemplo: o faturamento da SF2 pelos três caminhos

O BI precisa das notas fiscais de saída: número, série, cliente, emissão e valor bruto.

1

Pela API, na hora

Um endpoint Query SQL na SF2. Quem chama escolhe os campos em fields, manda o filtro do período em params, quando o endpoint permite parâmetros, e divide o resultado com page e pageSize.

Sem paginação volta tudo o que a consulta trouxer: o limite vem da própria consulta. A resposta traz os campos em minúsculas.

POST /api/v1/hypersync/execute
Authorization: Bearer <token do REST do Protheus>
tenantId: 99,01

{
  "id": 44,
  "data": {
    "fields": ["F2_DOC", "F2_SERIE", "F2_CLIENTE", "F2_EMISSAO", "F2_VALBRUT"],
    "params": "F2_EMISSAO >= '20261001'",
    "page": 1,
    "pageSize": 500
  }
}
{
  "result": [
    { "f2_doc": "000184521", "f2_serie": "1", "f2_cliente": "000231", "f2_emissao": "20261001", "f2_valbrut": 4890 },
    { "f2_doc": "000184522", "f2_serie": "1", "f2_cliente": "000117", "f2_emissao": "20261001", "f2_valbrut": 12350.4 }
  ]
}
2

Num banco, pelo Schedule

Um endpoint do tipo Banco de Dados roda a consulta pelo Schedule do Protheus e grava o resultado numa tabela do SQL Server, PostgreSQL ou Oracle de vocês. Se a tabela de destino não existe, ele cria; depois, atualiza ou insere pela chave escolhida, aqui o R_E_C_N_O_.

Esse tipo não tem sandbox: o retorno de cada execução fica na Auditoria.

SELECT R_E_C_N_O_, F2_DOC, F2_SERIE, F2_CLIENTE, F2_EMISSAO, F2_VALBRUT
  FROM SF2010
 WHERE D_E_L_E_T_ = ' '

Retorno na Auditoria:

{
  "result": "Registros atualizados: 0 | Registros inseridos: 3 | Erros: 0"
}
3

Num arquivo no FTP, pelo Schedule

Um endpoint do tipo Arquivo roda a mesma consulta pelo Schedule e envia um CSV ou TXT para o FTP de vocês, com o separador escolhido. O retorno da execução, na Auditoria, aponta o arquivo gerado.

Consulta
O mesmo SELECT na SF2
Formato
CSV ou TXT
Separador
Pipe, vírgula, ponto e vírgula ou tab
Destino
O conector de FTP de vocês
Execução
Assíncrona, pelo Schedule

Retorno na Auditoria:

{
  "result": "\\hypersync\\45\\20261006060000.csv"
}

Agendamento pelo Schedule do Protheus

Banco de Dados e Arquivo não esperam ninguém chamar: rodam pelo Schedule do próprio Protheus e são sempre assíncronos.

Frequência

Definida no Schedule do Protheus, na frequência que vocês configurarem: a cada hora, toda madrugada, o que o BI precisar.

Acompanhamento

Cada execução fica na Auditoria com empresa e filial, status (Pendente ou Concluído), início, fim, duração e retorno.

Aviso ao terminar

Opcional: ao concluir, o Protheus chama um webhook de vocês (POST, PUT ou PATCH), sempre, só no sucesso ou só no erro. Serve, por exemplo, para avisar o processo de carga que o dado chegou.

Os dados não passam pela HSB

  • A consulta roda no Protheus de vocês, e o resultado vai direto para o banco ou o FTP de vocês, ou volta na resposta da chamada.
  • O serviço de filas do assíncrono só organiza a ordem de execução, sem dado nenhum.
  • A validação da licença envia só a chave.
  • A trava de SQL deixa os endpoints de consulta só lerem.

Os detalhes estão na página de segurança, e os limites de cada plano em preços.

Perguntas frequentes

Qual caminho usar para o Power BI?+
Para atualizar um modelo com frequência, o mais direto é o tipo Banco de Dados: o Protheus grava o resultado da consulta num SQL Server, PostgreSQL ou Oracle de vocês, e o Power BI lê de lá com o conector desse banco. A consulta pela API serve quando o painel precisa do dado do momento, com filtro e paginação.
O BI consegue alterar dados do Protheus por esses caminhos?+
Não. A trava de SQL deixa os endpoints de consulta só lerem, e os tipos Banco de Dados e Arquivo só levam para fora o resultado de uma consulta. Gravar no Protheus é outro tipo de endpoint, de entrada, com a sua própria lista de usuários autorizados.
Dá para juntar tabelas, como notas e clientes?+
Sim. A consulta do endpoint pode juntar tabelas, por exemplo a SF2 com a SA1 para trazer o nome do cliente, ou a SD2 para o faturamento por produto.
O HyperSync grava em MySQL ou envia por SFTP?+
O tipo Banco de Dados grava em SQL Server, PostgreSQL ou Oracle, e o tipo Arquivo envia para um FTP. MySQL e SFTP a HSB confirma antes de vocês contarem com eles.
As execuções agendadas contam como requisição?+
Contam. Cada chamada a um endpoint é uma requisição, síncrona ou assíncrona, e as execuções agendadas de Banco de Dados e Arquivo também entram na conta. Na consulta pela API, cada página é uma chamada. A requisição não tem custo próprio: o plano tem um limite de volume por mês.
Em qual plano estão o banco de dados e o arquivo?+
Em todos, inclusive no Hobby, que é grátis: nenhum plano bloqueia tipo de endpoint. Os planos mudam o volume de requisições, o número de endpoints e de CNPJs.

Veja a saída do Protheus para o BI ficar pronta.

A demonstração monta o endpoint numa conversa, no visual do configurador. Nenhum Protheus real é acessado.