Avec Power BI, vous pouvez obtenir des informations précieuses à partir de vos données. Veuillez vous assurer que Power BI est installé sur un ordinateur fonctionnant sous Windows.
Connecter Power BI à Factorial vous permettra d’interroger et d’analyser toutes les données de votre entreprise exposées via l’API publique de Factorial.
Comment intégrer Power BI avec Factorial
L’unique méthode prise en charge pour intégrer Power BI consiste à utiliser la documentation disponible à l’adresse suivante : https://apidoc.factorialhr.com/reference.
Premiers pas
- Dans la barre latérale, accédez à Paramètres. Faites défiler jusqu’à Configuration avancée et cliquez sur Clés API. Créez une nouvelle clé API.
- Ouvrez Power BI Desktop et accédez à l’éditeur Power Query.
- Cliquez sur "Obtenir des données" > “Autres” > “Requête vide”. Collez dans une requête vide les trois scripts Power BI (voir ci-dessous). Chaque script correspond à une fonction (une nouvelle requête).
3. Une fois que vous avez les trois fonctions : GetPage, GetAllPages et ListDataToTable, invoquez-les avec votre clé API et l’URL de base. Vous pouvez obtenir l’URL de base sur la documentation de l’API publique de Factorial (Bienvenue dans le développement avec Factorial). Pour chaque ressource (comme Employees, ContractVersions, Shifts, etc.), vous devez exécuter la fonction ListDataToTable en y passant votre clé API et l’URL de l’endpoint (ex : https://api.factorialhr.com/api/2024-10-01/resources/attendance/shifts). Le résultat est une table par ressource, que vous pouvez utiliser dans vos rapports Power BI. Une fois toutes les ressources ajoutées, vous pouvez enregistrer les requêtes à l’aide du bouton “Enregistrer” pour les modifier ultérieurement (par exemple pour ajouter une ressource), puis cliquez sur “Fermer et appliquer” pour quitter l’éditeur Power Query. À ce stade, vos données sont prêtes à être utilisées dans Power BI.
4. C’est tout ! Vous pouvez désormais visualiser les données dans la vue Données ou la vue Rapport. Dans les deux cas, utilisez le menu latéral droit pour ajouter les colonnes issues des fonctions invoquées à l’étape 3.
Scripts Power BI
- Obtenir une page de données depuis l’API publique pour une ressource donnée – 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. Récupérer toutes les pages de manière récursive – GetAllPages
= 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. Convertir la liste de données en table – ListDataToTable
= let
Source = (baseURL as text, apiKey as text) =>
let
TableData = Table.FromList(GetAllPages(baseURL, apiKey), Splitter.SplitByNothing(), null, null)
in TableData
in
Source