Microsoft Power BI ist eine interaktive Datenvisualisierungssoftware mit dem Hauptaugenmerk auf Business Intelligence. Wenn Sie dieses Tool mit dem Fusion Operations-API-Dienst (die Dokumentation ist hier verfügbar) kombinieren, können Sie in Power BI Ihre Daten abrufen und sowohl Analysen als auch Dashboards erstellen.
In diesem Artikel werden die erforderlichen Schritte beschrieben.
Abrufen von Daten aus Fusion Operations
1. Öffnen Sie eine neue Power BI-Sitzung, klicken Sie auf (1) Get Data und (2) Blank Query.
2. Wählen Sie im oberen Menü (1) Manage Parameters aus, und erstellen Sie einen neuen Parameter.
Erstellen Sie die folgenden Parameter:
2.1 apiKey, mit dem Typ Text und obligatorisch. Der Wert für diesen Parameter kann von Ihrem Autodesk Fusion Operations-Profil bezogen werden (1).
2.2. apiSecret, mit dem Typ Text und obligatorisch. Der Wert für diesen Parameter kann ebenfalls von Ihrem Autodesk Fusion Operations-Profil bezogen werden (2).
2.3. lastNDays, mit dem Typ Dezimalzahl und obligatorisch. Dieser Parameter bestimmt, von wie vielen Tagen die Daten aus Fusion Operations abgerufen werden. Beachten Sie: Je größer diese Zahl ist, desto länger dauert die Aktualisierung des Dashboards.
2.4. retryAfter, mit dem Typ Dezimalzahl und obligatorisch. Dieser Parameter wird als Puffer (in Sekunden) zwischen aufeinanderfolgenden Anforderungen an die Fusion Operations-API verwendet. Legen Sie den Wert 0.25 fest.
Alle vier Parameter werden auf der linken Seite des Bildschirms angezeigt.
3. Wählen Sie New Source und dann Blank Query aus.
4. Doppelklicken Sie im linken Menü auf die Abfrage (1), benennen Sie sie in getProductionRecords um, und klicken Sie auf Advanced Editor (2).
5. Kopieren Sie den unten stehenden Text, und fügen Sie ihn in den Advanced Editor ein, um eine Funktion in Power BI zu erstellen.
(page as number) =>let Source = Json.Document(Web.Contents("https://fusionoperations.autodesk.com/api/authorization", [Headers= [#"Content-Type"="application/json", Authorization="Basic " & Binary.ToText(Text.ToBinary(apiKey & ":" & apiSecret), 0), #"Accept"="*/*"], Content = Json.FromValue([scopes = {"productions_write"}, random=Number.Random()]) ])), access_token= Record.ToTable(Source){2}[Value], endpointUrl = "https://fusionoperations.autodesk.com/api/productions", startTime = Number.ToText(Date.Year(Date.AddDays(DateTime.FixedLocalNow(),-lastNDays))) & "-" & Number.ToText(Date.Month(Date.AddDays(DateTime.FixedLocalNow(),-lastNDays))) & "-" & Number.ToText(Date.Day(Date.AddDays(DateTime.FixedLocalNow(),-lastNDays))), Origin = Json.Document(Web.Contents(endpointUrl, [Query=[access_token = access_token, #"start-time-after" = startTime, #"worker-name" = "true", page = Number.ToText(page)]]))in Origin
6. Wiederholen Sie die Schritte 3 und 4, benennen Sie die neue Funktion jedoch in allProductionRecords um. Falls Sie versuchen, noch andere Daten außer Produktionsdatensätzen über die API abzurufen, ändern Sie den Namen der Abfrage und die endpointUrl entsprechend.
7. Wiederholen Sie Schritt 5, kopieren Sie jedoch die unten stehenden Inhalte und fügen Sie sie ein.
let Query = List.Generate(()=>[Result = if List.IsEmpty(getProductionRecords(1)) then null else getProductionRecords(1), page=1],each [Result]<>null,each [MidRes = Function.InvokeAfter(()=>getProductionRecords([page]+1), #duration(0,0,0,retryAfter)), Result = if List.IsEmpty(MidRes) then null else MidRes,page=[page]+1],each [Result])in Query
8. Sie sollten jetzt loslegen können. Fusion Operations sollte nun eine Liste mit den Daten zurückgeben.
Verarbeiten der Daten
1. Um die Daten (im JSON-Format) zu verarbeiten, klicken Sie auf (1) To Table.
2. Wählen Sie die folgenden Optionen aus, und klicken Sie auf OK.
3. Klicken Sie auf das (1) Symbol mit den auseinandergehenden Pfeilen, um die Listen zu erweitern, und dann auf (2) Expand to New Rows.
4. Klicken Sie erneut auf das (1) Symbol mit den auseinandergehenden Pfeilen, um die Datensätze zu erweitern, wählen Sie die (2) Informationen aus, die in Power BI verarbeitet werden sollen, entfernen Sie die (3) Option Use original column as prefix, und klicken Sie auf (4) OK.
5. Klicken Sie auf die (1) auseinandergehenden Pfeile für die Spalten, die für die Erweiterung relevant sind. Dies hängt von der durchzuführenden Analyse ab.
In diesem Fall erweitern wir die Spalten (i) operation, (ii) worker, (iii) quantity, (iv) work-time, (v) start-time und (vi) end-time. Um die Bedeutung der einzelnen Spalten besser zu verstehen, sollte jetzt die Option Use original column as prefix aktiviert sein (siehe Punkt 4).
6. Klicken Sie für jede relevante Spalte (1) auf die linke Seite des Headers, und legen Sie die Daten auf den richtigen Typ fest.
In diesem Beispiel sollten operation.code und operation.product auf Text, worker.number auf Ganzzahl, quantity auf Dezimalzahl, work-time auf Text (wir müssen diesen Wert verarbeiten) sowie start-time und end-time auf Datum/Uhrzeit/Zeitzone gesetzt werden.
7. Wie bereits erwähnt, sollte die Spalte für die Dauer verarbeitet werden, da Power BI 00H00m16s nicht als Feld für eine Zeitspanne analysieren kann. Stattdessen konvertieren wir die Werte in dieser Spalte in Minuten.
7.1. Klicken Sie auf (1) Add Column und (2) Custom Column.
7.2. Geben Sie dieser benutzerdefinierten Spalte den Namen (1) work-time-minutes, und fügen Sie in das Feld (2) die folgende Formel ein. Klicken Sie auf (3) OK, um die Formel zu senden und die Spalte zu erstellen.
Number.From(Text.Start([#"work-time"],Text.Length([#"work-time"])-7))*60 +Number.From(Text.Middle([#"work-time"],Text.Length([#"work-time"])-6,2)) +Number.From(Text.Middle([#"work-time"],Text.Length([#"work-time"])-3,2))/60
7.3. Speichern Sie die Spalte work-time-minutes als Dezimalzahl.
8. Außerdem fügen wir zwei neue Spalten aus den Feldern start-time und end-time hinzu. Diese Felder werden mit start-day und end-day benannt. Diese beiden Spalten sind nützlich für das endgültige Dashboard.
8.1. Wählen Sie die (1) Spalte aus, klicken Sie auf (2) Date, und wählen Sie (3) Date Only.
8.2. Benennen Sie die (1) Spalte in start-date um.
8.3. Wiederholen Sie den Vorgang für die Spalte end-time. Nennen Sie die letzte Spalte end-date.
9. Wählen Sie die (1) Registerkarte Home aus, und klicken Sie auf (2) Close & Apply.
Erstellen eines einfachen Dashboards
1. Wählen Sie auf dem folgenden Bildschirm (1) einen Dashboard-Typ aus. Wir wählen ein gestapeltes Balkendiagramm aus. Sie können jedoch auch ein anderes auswählen. Erweitern (2) Sie anschließend den Eintrag productionRecordsList.
2. Ziehen Sie (1) die Datenfelder in die Dashboard-Felder.
3. Tippen Sie (1), um das Dashboard anzupassen. Diese Optionen hängen vom ausgewählten Dashboard-Typ ab.
4. Fügen Sie weitere Daten und Visualisierungen hinzu, und erstellen Sie Ihre benutzerdefinierten Produktions-Dashboards.
Beachten Sie, dass für die Erstellung des obigen Dashboards eine wesentlich höhere Anzahl von Schritten im Vergleich zu den in diesem Dokument beschriebenen Schritten erforderlich ist (wie Sie auf der rechten Seite der Abbildung im Menü Data sehen können).
Fehlerbehebung
Beim Übertragen der Daten von Fusion Operations nach Power BI können einige Fehler zurückgegeben werden. Eine Liste finden Sie weiter unten, und Sie erhalten Informationen zur Lösung dieser Probleme:
1. Formula.Firewall: Query 'allProductionRecords' is accessing data sources that have privacy levels which cannot be used together. Please rebuild this data combination. (Formula.Firewall: Die Abfrage allProductionRecords greift auf Datenquellen zu, die über Datenschutzebenen verfügen, die nicht zusammen verwendet werden können. Erstellen Sie diese Datenkombination erneut.)
Um diesen Fehler zu beheben, führen Sie die folgenden Schritte aus:
1.1 Klicken Sie auf Data source settings.
1.2 Wählen Sie (1) alle Fusion Operations-bezogenen Einträge aus, und klicken Sie auf (2) Edit Permissions.
1.3. Legen Sie die Datenschutzebene auf Public fest. Vergessen Sie nicht, die Änderungen zu speichern.
2. An error occurred in the ‘’ query. DataSource.Error: Web.Contents with the Content option is only supported when connecting anonymously. (In der Abfrage ‘’ ist ein Fehler aufgetreten. DataSource.Error: Web.Contents mit der Content-Option wird nur unterstützt, wenn eine anonyme Verbindung hergestellt wird.)
Details:
DataSourceKind=Web
DataSourcePath=https://fusionoperations.autodesk.com/api/authorization
Um diesen Fehler zu beheben, führen Sie die folgenden Schritte aus:
2.1 Klicken Sie auf Data source settings.
2.2 Wählen Sie https://fusionoperations.autodesk.com/api/authorization aus, und klicken Sie auf Edit Permissions.
2.3 Wählen Sie unter Credentials die Option Edit aus.
2.4 Wählen Sie im Menü links (1) Anonymous aus. Vergessen Sie nicht, die Änderungen zu (2) speichern.
Wenn Sie noch Fragen haben, können Sie sich gerne über unsere Live-Chat-Funktion an uns wenden.
Benötigen Sie Hilfe? Bitten Sie hier einen Fusion Operations-Experten, sich mit Ihnen in Verbindung zu setzen.