Power BI und Excel
Deine Costfluent-Kosten nach Monat, Dienst und Unterkonto mit einer Power-Query-Abfrage über die Public API und einem Workspace-API-Token mit Leserechten in Power BI Desktop oder Excel laden.
Die Costfluent-Abfrage für Power Query liest die Kosten eines Workspaces aus der Public API in eine Tabelle: eine Zeile je Monat, Dienst und Unterkonto über die letzten 12 Monate, oder weniger, wenn der Plan weniger Verlauf aufbewahrt, mit Kosten, amortisierten Kosten, Listenkosten und Währung. Power BI Desktop und Excel führen beide Power Query aus, daher funktioniert dieselbe Abfrage in beiden, und Aktualisieren liest die neuesten Kosten erneut. Um die Zahlen eines Berichts einmalig in eine Tabellenkalkulation zu holen, exportiere ihn stattdessen; siehe Als CSV oder Excel exportieren.
Bevor du beginnst
Verfügbar im Pro-, Business- und Custom-Tarif. Tarife vergleichen
- Das Token zu erstellen erfordert die Organisationsrolle Eigentümer, Integrationsverantwortliche Person oder Bearbeiter; siehe API-Authentifizierung.
- Power BI Desktop oder Excel für Microsoft 365.
- Die ID des Workspaces: Einstellungen, dann Arbeitsbereiche, listet sie in der Spalte ID mit einer Kopierschaltfläche. Seine Währungseinstellungen bestimmen, wie die Beträge dargestellt werden; siehe Währungseinstellungen.
Token erstellen
- Öffne Einstellungen, dann API-Token, und wähle API-Token erstellen.
- Gib einen Name ein, der sagt, wo das Token genutzt wird, etwa
Power-BI-Finanzbericht. - Wähle unter Zugriff den Arbeitsbereich, den der Bericht liest.
- Wähle unter Vorlage die Vorlage Nur lesen und entferne dann jede Berechtigung außer Kosten anzeigen, der einzigen, die die Abfrage braucht.
- Wähle den Ablauf, etwa 90 Tage, und wähle API-Token erstellen.
- Kopiere das Token aus Ihr API-Token. Es wird nur einmal angezeigt.
Die Abfrage
Kopiere die Abfrage unten oder lade costfluent-costs.pq herunter. Ersetze die drei Werte oben: ApiToken durch dein Token, WorkspaceId durch die ID des Workspaces und Months, wenn du mehr oder weniger als 12 Monate willst. Months nimmt eine ganze Zahl ab 1; jeder andere Wert hält die Abfrage mit einem Fehler an, der das sagt.
Code
In Power BI Desktop laden
- Öffne auf Start die Schaltfläche Daten abrufen und wähle Leere Abfrage. Der Power Query-Editor öffnet sich.
- Wähle Erweiterter Editor, ersetze den Inhalt durch die Abfrage und wähle Fertig.
- Wenn Power BI fragt, wie es sich mit
https://api.costfluent.comverbinden soll, wähle Anonym und dann Verbinden. Das Token reist im eigenenAuthorization-Header der Abfrage, den Power Query nur für eine anonyme Quelle sendet. - Benenne die Abfrage um, etwa
Costfluent-Kosten, und wähle Schließen und übernehmen.
In Excel laden
- Öffne auf Daten die Schaltfläche Daten abrufen, dann Aus anderen Quellen, und wähle Leere Abfrage.
- Wähle Erweiterter Editor, ersetze den Inhalt durch die Abfrage und wähle Fertig.
- Wenn Excel fragt, wie es sich mit
https://api.costfluent.comverbinden soll, wähle Anonym und dann Verbinden. - Wähle Schließen und laden. Die Kosten landen in einer Tabelle auf einem neuen Blatt; Alle aktualisieren auf Daten liest sie erneut.
Das Token steht im Klartext in der Abfrage, daher kann jede Person, die die .pbix-Datei oder die Arbeitsmappe öffnet, damit deine Kosten lesen. Bevor du die Datei teilst oder den Bericht veröffentlichst, ersetze das Token durch einen Platzhalter oder lege die Datei dort ab, wo nur Personen sie öffnen können, die diese Kosten sehen dürfen. Wenn jemand, der die Datei hatte, das Unternehmen verlässt oder das Token nach außen gelangt sein könnte, widerrufe es unter API-Token mit Token widerrufen und erstelle ein neues.
Wie es sich verhält
- Jede Zeile ist ein Monat, ein Dienst und ein Unterkonto, mit
Cost,Amortized costundList costals Zahlen undCurrencydaneben. Die Abfrage liest mit den Voreinstellungen der Public API: amortisiert, Erstattungen und Steuern einbezogen, Gutschriften ausgelassen; siehe Kostenbeträge. Ein Monat, Dienst und Unterkonto ohne Kostendaten hat keine Zeile: Eine fehlende Zeile bedeutet, dass Costfluent dafür keine Daten hat, nicht Kosten von null. Der laufende Monat reicht nur bis zum letzten Tag, den die Anbieter geliefert haben. - Das Verlaufslimit des Plans gilt; die Planmarkierung oben verlinkt die Limits jedes Plans. Bewahrt der Plan weniger Monate auf, als
Monthsverlangt, meldet die API den frühesten Tag, den er aufbewahrt, und die Abfrage beginnt mit dem ersten ganzen Monat ab diesem Tag, damit kein Monat nur einen Teil seiner Kosten zeigt. Der früheste Monat in der SpalteMonthzeigt, wo der Verlauf des Plans beginnt. - Die API sendet jeden Betrag als exakte Dezimalzahl. Power BI und Excel halten eine Zahl mit 15 signifikanten Stellen, daher wird ein Betrag mit mehr Stellen in seinen letzten Stellen gerundet; der CSV-Export ist exakt.
- Ein Lesevorgang reicht bis 100.000 Zeilen, 20 Seiten zu 5.000. Hält der ganze Zeitraum mehr, liest die Abfrage ihn Monat für Monat. Ein einzelner Monat mit mehr als 100.000 Zeilen scheitert mit dem Fehler der API; entferne
"subAccount"ausgroupBy, um weniger Zeilen zu brauchen, wodurch die SpalteSub-accountleer bleibt. - Jede Aktualisierung sendet eine Anfrage, um zu erfahren, wie viele Zeilen der Zeitraum hält, dann eine je Seite mit bis zu 5.000 Zeilen, mindestens eine für den ganzen Zeitraum oder mindestens eine je Monat, wenn der Zeitraum geteilt wird. Verschiebt der Verlauf des Plans den Beginn nicht, wiederholt die erste Seite diese erste Anfrage, die Power Query aus seinem Cache beantworten kann. Jede Anfrage zählt gegen die Limits des Tokens; siehe Rate Limits.
- Antwortet die API mit
429, weil das Token sein Rate Limit erreicht hat, versucht Power Query die Anfrage bis zu dreimal erneut, jeweils nach den Sekunden, die der HeaderRetry-Afterder API nennt, wie Microsoft es fürWeb.Contentsdokumentiert (Statuscodes mit Web.Contents behandeln). Eine Aktualisierung, die das Rate Limit erreicht, wird dadurch langsamer. Eine Anfrage, die die API danach weiter ablehnt oder mit einem anderen Fehler beantwortet, lässt die Aktualisierung mit dem Fehler der API scheitern, und die nächste Aktualisierung versucht es erneut. - Bei einem abgelaufenen oder widerrufenen Token antwortet die API mit
401. Power Query meldet das als Fehler bei den Anmeldeinformationen und fragt unter Umständen nach Anmeldeinformationen. Andere Anmeldeinformationen helfen dort nicht, weil das Token in der Abfrage steht: Erstelle ein neues Token und ersetze es in der Abfrage. - Microsoft begrenzt Aktualisierungen im Power BI-Dienst: bis zu 8 geplante Aktualisierungen am Tag mit Power BI Pro und 48 mit Premium-, Premium-pro-Benutzer- oder Fabric-Kapazität, jede in höchstens zwei Stunden auf gemeinsam genutzter Kapazität, und ein Zeitplan pausiert nach zwei Monaten ohne Besuch des Berichts (Datenaktualisierung in Power BI).
Die Aktualisierung im Power BI-Dienst ist von Costfluent nicht getestet. Microsoft dokumentiert, dass eine Webquelle, die mit fester Basis-URL und ihren Optionen RelativePath und Query aufgerufen wird, wie diese Abfrage es tut, im Dienst aktualisiert werden kann, eine zur Laufzeit gebaute URL dagegen nicht. Welche Anmeldeinformationen eine solche Abfrage dort braucht, dokumentiert Microsoft nicht. Setze nach dem Veröffentlichen die Quelle https://api.costfluent.com unter den Anmeldeinformationen der Datenquelle des semantischen Modells auf Anonym und wähle Testverbindung überspringen; scheitert die Aktualisierung trotzdem, aktualisiere in Power BI Desktop und veröffentliche erneut.