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
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.
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 }
]
}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"
}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?+
O BI consegue alterar dados do Protheus por esses caminhos?+
Dá para juntar tabelas, como notas e clientes?+
O HyperSync grava em MySQL ou envia por SFTP?+
As execuções agendadas contam como requisição?+
Em qual plano estão o banco de dados e o arquivo?+
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.