Con Power BI, puedes obtener información de tus datos. Asegúrate de tener Power BI instalado en un equipo con Windows.
Conectar Power BI con Factorial te permitirá consultar y analizar la información de tu empresa. Esta primera versión permite navegar por todos los/as empleados/as y su información básica.
Cómo integrar Power BI con Factorial
La opción de referencia para la integración de PowerBI es a través de nuestra API https://apidoc.factorialhr.com/reference.
Cómo empezar
- En la barra lateral, ir a Configuración. Desplazarse hasta Configuración avanzada y hacer clic en claves API. Crear una nueva clave API**.
- Ir a PowerBI Desktop y abrir el editor de Power Query.
- Hacer clic en «Obtener datos» > «Más» > «Consulta en blanco». Copiar y pegar en el editor de consultas en una «consulta en blanco» los 3 scripts de Power BI (ver más abajo). Cada script es una función (una nueva consulta).
3. Una vez que tengas las tres funciones: GetPage, GetAllPages y ListDataToTable las invocas con tu apikey y tu baseURL. La baseURL la has obtenido de la web de referencia de la API pública de Factorial (Bienvenido al desarrollo con Factorial). Para cada recurso (como Employees, ContractVersions, Shifts, etc...) haces una invocación de la función ListDataToTable pasando el apikey y la url del endpoint de la API (como https://api.factorialhr.com/api/2024-10-01/resources/attendance/shifts). Lo que obtienes es una tabla por recurso que luego puedes utilizar para crear tu informe en powerBI. Una vez tengas los recursos que quieres, puedes guardar estas consultas con el botón guardar por si más adelante quieres modificarlas (por ejemplo, para añadir un nuevo recurso) y finalmente «Cerrar y aplicar» para salir del Power Query Editor. Con este paso, tus datos están listos para ser utilizados en powerBI.
4. Eso es todo. Ahora puedes visualizar los datos en la Vista de Datos o en la Vista de Informe, en ambos casos utiliza el menú de la derecha para añadir columnas desde las funciones invocadas que hiciste en el paso 3.
Scripts de Power BI
1. Obtener una página de datos de la API pública de un 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 las 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 los datos de la lista en una tabla - ListDataToTable
= let
Source = (baseURL as text, apiKey as text) =>
let
TableData = Table.FromList(GetAllPages(baseURL, apiKey), Splitter.SplitByNothing(), null, null)
in TableData
in
Source