Com o Power BI, você pode obter insights dos seus dados. Certifique-se de ter o Power BI instalado em um computador com Windows.
Conectar o Power BI com Factorial permitirá consultar e analisar as informações da sua empresa. Esta primeira versão permite navegar por todos os funcionários e suas informações básicas.
Como integrar o Power BI com Factorial
A utilização do https://apidoc.factorialhr.com/reference é a forma preferida atualmente de integração com o Power BI.
Como começar
- Na sua barra lateral, aceda a Definições. Desloque-se para baixo até Configuração avançada e clique em Chaves de API. Criar uma nova chave de API
- Vá para o PowerBI Desktop e abra o editor do Power Query
- Clique em “Obter dados” > “Mais” > “Consulta em branco”. Copie e cole no editor de consultas numa “consulta em branco” os 3 scripts do Power BI (ver abaixo). Cada script é uma função (uma nova consulta).
3. Quando tiver as três funções: GetPage, GetAllPages e ListDataToTable, invoque-as com a sua apikey e baseURL. O URL de base foi obtido no sítio Web de referência da API pública da Fatorial (Bem-vindo ao desenvolvimento com a Fatorial). Para cada recurso (como Empregados, Versões de contrato, Turnos, etc...), invoca-se uma vez a função ListDataToTable passando a apikey e o url do endpoint da API (como https://api.factorialhr.com/api/2024-10-01/resources/attendance/shifts). O que obtém é uma tabela por recurso que pode utilizar mais tarde para criar o seu relatório no PowerBI. Assim que tiver os recursos que pretende, pode guardar estas consultas com o botão Guardar, caso pretenda modificá-las mais tarde (por exemplo, para adicionar um novo recurso) e, finalmente, “Fechar e aplicar” para sair do Power Query Editor. Com este passo, os seus dados estão prontos para serem utilizados no PowerBI.
4. É tudo! Agora pode visualizar os dados na Vista de dados ou na Vista de relatório. Em ambos os casos, utilize o menu do lado direito para adicionar colunas a partir das funções invocadas na etapa 3.
Scripts do Power BI
1. Obter uma página de dados da API pública a partir de um recurso - GetPage
= (baseURL as text, apiKey as text, page as number) =>
let
Url = baseURL & "?page=" & Text.From(page),
Response = Json.Document(Web.Contents(Url, [Headers=[#"x-api-key"= apiKey ]])),
Data = Response[data],
HasNextPage = Response[meta][has_next_page]
in
[Data = Data, HasNextPage = HasNextPage]
2. Recuperar recursivamente todas as páginas
= let
Source = (baseURL as text, apiKey as text) =>
let
GetAllPages = (baseURL as text, apiKey as text, page as number, AccumulatedData as list) =>
let
CurrentPage = GetPage(baseURL, apiKey, page),
NewData = List.Combine({AccumulatedData, CurrentPage[Data]}),
NextStep = if CurrentPage[HasNextPage] then @GetAllPages(baseURL, apiKey, page + 1, NewData) else NewData
in
NextStep,
AllData = GetAllPages(baseURL, apiKey, 1, {})
in AllData
in
Source
3. Transformar os dados da lista numa tabela
= let
Source = (baseURL as text, apiKey as text) =>
let
TableData = Table.FromList(GetAllPages(baseURL, apiKey), Splitter.SplitByNothing(), null, null)
in TableData
in
Source