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.
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
GetRecordsPerPageKlicken Sie auf "Fertig".
Benennen Sie die Funktion in "GetRecordsPerPage" um.
ok
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
SourceErstellen 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.