Power BI-Integration

Importieren Sie Ihre Zeitbuchungen von TrackingTime in Power BI.

Julia Chulman avatar
Verfasst von Julia Chulman
Vor über einer Woche aktualisiert

Einrichtung mit einer Power BI-Datei

Schritt 1: Laden Sie Power BI herunter (hier herunterladen)

Schritt 2: Öffnen Sie die Datei mit Power BI

Schritt 3: Gehen Sie zu TrackingTime und generieren Sie ein App-Passwort (hier klicken)

Schritt 4: Gehen Sie zurück zu Power BI und geben Sie den Benutzernamen: API_TOKEN und das in Schritt 4 generierte Passwort ein.

Manuelle Einrichtung

Schritt 1: Starten Sie Power BI Desktop auf Ihrem Computer

  • Starten Sie Power BI Desktop auf Ihrem Computer, falls Sie dies noch nicht getan haben.

Schritt 2: Daten aus dem Web abrufen

  • Klicken Sie auf "Start" im oberen Menü.

  • Wählen Sie "Daten abrufen".

  • Im Fenster "Daten abrufen" scrollen Sie nach unten und wählen "Web".

Schritt 3: Konfigurieren der Web-Datenquelle

  • Oben wählen Sie die erweiterte Option und füllen das Formular aus.

  • URL-Teile (1)

    https://api.trackingtime.co/api/v4/events
  • URL-Teile (2)

    ?include_custom_fields=true@filter=COMPANY&from=2018-01-01&to=2030-01-01
  • HTTP-Anforderungsheader:

    application/json

Schritt 4: Autorisieren

  • Nachdem Sie die URL der Web-Datenquelle eingegeben und auf "OK" geklickt haben,

  • Wählen Sie "Grundlegend".

    Benutzername:

    API_TOKEN

    Geben Sie das App-Passwort ein, das Sie in TrackingTime generiert haben

  • Click Connect.

Schritt 5: Formatieren Sie die JSON-Daten in eine Tabelle

1. Konvertieren Sie den Datensatz in eine Tabelle.

Gehen Sie zum Tab "Konvertieren" > Wählen Sie den Datensatz aus > Klicken Sie auf "In Tabelle".

2. Konvertieren Sie die Liste in eine Tabelle.

Wählen Sie die Liste aus > Klicken Sie auf "In Tabelle"

3. Erweitern Sie die Datensätze zu Spalten.

Klicken Sie auf das Symbol neben "Spalte 1" > dann in der Popup-Benutzeroberfläche auf "OK".

4. Ändern Sie die Spaltennamen.

Jetzt sehen Sie Ihre Daten als Tabelle. Sie müssen die Spaltennamen ändern.

  • Klicken Sie mit der rechten Maustaste in der Abfrage > Erweiterter Editor.

  • Fügen Sie den unten stehenden Code ein.

  • Klicken Sie auf "Speichern".

= 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"})

Schritt 6: Seitenumbruch (optional)

Wenn Sie mehr als 5000 Ergebnisse haben, müssen Sie die Seitenumbruchfunktion implementieren. Hierzu verwenden Sie den erweiterten Editor, um benutzerdefinierten Code zu erstellen, der die Abfrage in mehrere Seiten umwandelt und die Daten dann in einen einzigen Datensatz zusammenführt.

  1. Wandeln Sie die Abfrage in eine Funktion um, um die Ergebnisse einer einzelnen Seite zu erhalten.

    • Wir werden eine Funktion namens "GetRecordsPerPage" erstellen.

    • Klicken Sie mit der rechten Maustaste auf die Abfrage und wählen Sie "Erweiterter Editor".

    Fügen Sie den folgenden Code in das Feld ein:

    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

    • Klicken Sie auf "Fertig".

    • Benennen Sie die Funktion in "GetRecordsPerPage" um.

    • ok

  2. Erstellen Sie eine Funktion, um die Gesamtanzahl der Datensätze zu erhalten.

    • Wir werden eine Funktion namens "GetRecordsCount" erstellen.

    • Klicken Sie mit der rechten Maustaste auf die Funktion "GetRecordsPerPage" und wählen Sie Duplizieren, dann "Bearbeiten".

    • Benennen Sie die Funktion in "GetRecordsCount" um und fügen Sie den folgenden Code ein.

    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. Erstellen Sie eine Funktion, um alle Seiten zusammenzuführen.

    • Wir werden eine Funktion namens "MergePages" erstellen.

    • Klicken Sie mit der rechten Maustaste auf die Funktion "GetRecordsCount" und wählen Sie Duplizieren, dann "Bearbeiten".

    • Benennen Sie die Funktion in "MergePages" um und fügen Sie den folgenden Code ein.

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

Schritt 7: Erstellung von Visualisierungen

Nachdem Ihre Webdaten nun in Power BI importiert wurden, können Sie mit der Erstellung von Visualisierungen, der Analyse der Daten und dem Erstellen von Berichten zur Gewinnung von Erkenntnissen fortfahren.

Hat dies Ihre Frage beantwortet?