L'intégration de Power BI

Importez vos entrées de temps depuis TrackingTime dans Power BI.

Julia Chulman avatar
Écrit par Julia Chulman
Mis à jour cette semaine

Configuration à l'aide d'un fichier Power BI

Étape 1: Téléchargez le fichier Power Bi (téléchargez ici)

Étape 2: Ouvrez le fichier avec Power Bi

Étape 3: Rendez-vous sur TrackingTime et générez un mot de passe d'application

Étape 4: Retournez dans Power Bi et saisissez le nom d'utilisateur : API_TOKEN, et le mot de passe que vous avez généré à l'étape 4.

Configuration manuelle

Étape 1: Lancez Power BI Desktop sur votre ordinateur

  • Lancez Power BI Desktop sur votre ordinateur si ce n'est pas déjà fait.

Étape 2: Obtenez des données à partir du Web

  • Cliquez sur "Accueil" dans le menu supérieur.

  • Sélectionnez "Obtenir des données".

  • Dans la fenêtre "Obtenir des données", faites défiler vers le bas et choisissez "Web".

Étape 3: Configurez la source de données Web

  • En haut, sélectionnez l'option avancée et remplissez le formulaire.

    Parties de l'URL (1)

    https://api.trackingtime.co/api/v4/events
  • Parties de l'URL (2)

    ?include_custom_fields=true&filter=COMPANY&from=2018-01-01&to=2030-01-01
  • En-tête de la requête HTTP :

    application/json

Étape 4: Autoriser

  • Après avoir saisi l'URL de la source de données Web et cliqué sur "OK",

  • Sélectionnez "Base"

  • Nom d'utilisateur:

    API_TOKEN

    Saisissez le mot de passe d'application que vous avez généré dans TrackingTime.

  • Cliquez sur "Se connecter".

Étape 5: Formatez les données JSON en tableau

  1. Convertissez l'enregistrement en données de tableau

    Allez dans l'onglet "Convertir" > Sélectionnez l'enregistrement de données > Cliquez sur "En tableau".

  2. Convertir la liste en tableau

    Sélectionnez la liste > Cliquez sur "En tableau".

  3. Développez les enregistrements en colonnes

    Cliquez sur l'icône à côté de Column1 > puis dans la fenêtre contextuelle, cliquez sur OK.

  4. Modifiez les noms de colonnes

    Maintenant, vous verrez vos données sous forme de tableau. Vous devrez alors changer les noms de colonnes.

    • Cliquez avec le bouton droit dans la requête > Éditeur avancé

    • Collez le code ci-dessous

    • Cliquez sur Enregistrer

    = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "s", "e", "d", "se", "seid", "c", "cid", "p", "pid", "pn", "pif", "t", "tid", "tt", "tv", "tl", "dd", "et", "a", "u", "uid", "uhr", "uhc", "uau", "tz", "n", "co", "r", "b", "bd", "to", "er", "rf", "re", "rgi", "ety", "uci", "cci", "sci", "has_files", "toi", "users"}, {"ID", "Start", "End", "Duration", "Service", "Service Id", "Customer", "Customer Id", "Project", "Project Id", "Project Notes", "Project is favorite", "Task", "Task Id", "Task Type", "Task Visibility", "Task List", "Due Date", "Estimated Time", "Is Archived", "User", "User Id", "User Hourly Rate", "User Hourly Cost", "User Avatar Url", "Timezone", "Notes", "Color", "Hourly Rate", "Is Billable", "Is Billed", "Icalendar Token", "Event Repeat", "Repeat Rrequency" , "Repeat Every", "Repeat Group Id", "Event Type", "User Color Index", "Customer Color Index", "Service Color Index", "Has files", "Time Off Id", "Users"})

Étape 6: Pagination (optionnelle)

Si vous avez plus de 5000 résultats, vous devrez mettre en œuvre la pagination. Pour ce faire, vous devez utiliser l'éditeur avancé pour implémenter un code personnalisé qui transforme la requête pour récupérer plusieurs pages, puis fusionne les données en un seul jeu de données.

  1. Transformez la requête en une fonction pour obtenir les résultats d'une seule page.

    • Nous allons créer une fonction appelée "ObtenirEnregistrementsParPage"

    • Cliquez avec le bouton droit de la souris sur la requête, puis sélectionnez "Éditeur avancé".

    • Collez le code suivant dans la zone:

    let
    GetRecordsPerPage = (page) =>
    let
    Source = Json.Document(Web.Contents("https://api.trackingtime.co/api/v4/events/min?include_custom_fields=true&filter=COMPANY&from=2016-01-01&to=2030-01-01&page=" & Text.From(page) & "&page_size=1000", [Headers=[#"Content-Type"="application/json"]])),
    #"Converted to Table1" = Record.ToTable(Source),
    Value = #"Converted to Table1"{1}[Value],
    #"Converted to Table" = Table.FromList(Value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "s", "e", "d", "se", "seid", "c", "cid", "p", "pid", "pn", "pif", "t", "tid", "tt", "tv", "tl", "dd", "et", "a", "u", "uid", "uhr", "uhc", "uau", "tz", "n", "co", "r", "b", "bd", "to", "er", "rf", "re", "rgi", "ety", "uci", "cci", "sci", "has_files", "toi", "users"}, {"ID", "Start", "End", "Duration", "Service", "Service Id", "Customer", "Customer Id", "Project", "Project Id", "Project Notes", "Project is favorite", "Task", "Task Id", "Task Type", "Task Visibility", "Task List", "Due Date", "Estimated Time", "Is Archived", "User", "User Id", "User Hourly Rate", "User Hourly Cost", "User Avatar Url", "Timezone", "Notes", "Color", "Hourly Rate", "Is Billable", "Is Billed", "Icalendar Token", "Event Repeat", "Repeat Rrequency" , "Repeat Every", "Repeat Group Id", "Event Type", "User Color Index", "Customer Color Index", "Service Color Index", "Has files", "Time Off Id", "Users"})
    in
    #"Expanded Column1"
    in
    GetRecordsPerPage

    • Cliquez sur "Terminé".

    • Définissez le nom "ObtenirEnregistrementsParPage".

    • D'accord.

  2. Créez une fonction pour obtenir le nombre total d'enregistrements que vous avez.

    • Nous allons créer une fonction appelée "ObtenirNombreEnregistrements"

    • Cliquez avec le bouton droit de la souris sur la fonction "ObtenirEnregistrementsParPage", puis cliquez sur "Dupliquer" et enfin sur "Modifier".

    • Définissez le nom "ObtenirNombreEnregistrements" et collez le code ci-dessous.

      let
      Source = () => let
      Source = Json.Document(Web.Contents("https://api.trackingtime.co/api/v4/events/count?filter=COMPANY&from=2016-01-01&to=2030-01-01", [Headers=[#"Content-Type"="application/json"]])),
      #"Converted to Table1" = Record.ToTable(Source),
      Value = #"Converted to Table1"{1}[Value],
      #"Converted to Table" = Record.ToTable(Value)
      in
      #"Converted to Table"
      in
      Source

  3. Créez une fonction pour fusionner toutes les pages.

    • Nous allons créer une fonction appelée "FusionnerPages"

    • Cliquez avec le bouton droit de la souris sur la fonction "ObtenirNombreEnregistrements", puis cliquez sur "Dupliquer" et enfin sur "Modifier".

    • Définissez le nom "FusionnerPages" et collez le code ci-dessous.

    let
    NumPages = (List.First(GetCountRecords()[Value]) / 1000) + 1,

    Data = Table.Combine(List.Generate(
    () => [Page = 0, Information = GetRecordsPerPage(0)],
    each [Page] < NumPages,
    each [Page = [Page] + 1, Information = GetRecordsPerPage([Page])],
    each [Information]
    ))

    in
    Data

Step 7: Create Visualizations

Avec vos données Web maintenant importées dans Power BI, vous pouvez procéder à la création de visualisations, à l'analyse des données et à la construction de rapports pour obtenir des informations.

Avez-vous trouvé la réponse à votre question ?