Microsoft Power Automate (Flow) dient zur Automatisierung von wiederkehrenden Prozessen. Dabei bietet Microsoft Power Automate bereits vorgefertigte Aktionen, mit welchen diverse Anforderungen implementiert werden können (z.B. das Erstellen eines neuen SharePoint-Listenelements). Durch Einsatz der Aktion „HTTP-Anforderung an SharePoint senden“ lassen sich fortgeschrittene Szenarien entwerfen (z.B. der Zugriff auf bestehende SharePoint-Dokumenten-Versionen).
IntraConnect Blog
Herzlich Willkommen in unserem Blog! Wir möchten Ihnen eine Informationsplattform zu aktuellen IT-Themen bieten, insbesondere im Hinblick auf Modernes Arbeiten mit Microsoft 365, IT-Sicherheit in der Cloud sowie Digitalisierung von Geschäftsprozessen. Darüber hinaus gewähren wir Ihnen einen kleinen Einblick in unser Unternehmen, unsere Erfahrungen und Kompetenzen. Viel Spaß beim Lesen.
Wiederherstellen der letzten Dokumentenhauptversion mit Power Automate
In diesem Blogbeitrag möchte ich zeigen, wie mit Hilfe von Microsoft Power Automate auf bestehende SharePoint-Dokumenten-Versionen zugegriffen werden kann. Dabei soll das Ziel sein, die letzte Dokumenten-Hauptversion wiederherzustellen. Ein solches Szenario ist von Nöten, wenn beispielsweise in einer Qualitätsmanagementlösung auf Basis von SharePoint Online vorhandende Dokumente mit einer Entwurfsversion, zum Beispiel 4.3, auf die letzte Hauptversion 4.0 zurückgesetzt werden sollen (weil z.B. das Dokument in einem Genehmigungs-Flow abgelehnt wurde). Dabei ist zu beachten, dass das Wiederherstellen einer bestehenden Dokumenten-Version immer eine neue Version erzeugt. Das heißt, möchte man ein Dokument mit der Version 4.3 auf die Version 4.0 zurücksetzen, so wird automatisch eine neue Hauptversion 5.0 erstellt (mit dem Inhalt der Hauptversion 4.0).
Flow
Abbildung 1 enthält die jeweilis benötigte Trigger-Aktion (hier sollte ein Trigger in Abhängigkeit der Lösungsanforderung ausgewählt werden). Anschließend wird eine Variable „Comment“ initialisiert. Danach müssen die Dateimetadaten und Dateieigenschaften abgerufen werden, da diese für den nachfolgenden HTTP-Aufruf benötigt werden.
Mit der Aktion „HTTP-Anforderung an SharePoint senden“ (HTTP-Request) in Abbildung 2 wird die aktuelle Dokument-Version als auch weitere Dokumenteigenschaften über die SharePoint-API abgerufen. Dabei wird die Methode „GET“ verwendet.
URL:
_api/web/GetFolderByServerRelativeUrl('<Ordnerpfad_aus_der_Aktion_Dateieigenschaften-abrufen>')/Files('<Dateiname_mit_Erweiterung_aus_der_Aktion_Dateieigenschaften-abrufen>')
Header:
Accept | application/json;odata=verbose |
Content-Type | application/json;odata=verbose |
Anschließend muss über die Aktion „JSON analysieren“ die zurückgelieferten Ergebnisse des HTTP-Requests verarbeitet werden. Um das Schema zu erhalten, ist es empfehlenswert, den bisherigen Flow auszuführen und die Ausgabe der Aktion „HTTP-Anforderung an SharePoint senden“ zu kopieren und in das Schema der Aktion „JSON analysieren“ einzufügen (siehe Abbildung 3). Anschließend wird auf die Variable „Comment“ der Rückgabewert „UIVersionLabel“ aus der Aktion „JSON analysieren“ gespeichert. Somit beinhaltet diese Variable die aktuelle Dokumenten-Version (z. B. die Version 4.3).
In Abbildung 4 wird eine neue Array-Variable „LetzteHauptversion“ erstellt und mit Wert „split(variables('Comment'),'.')“ festgelegt. Mit Hilfe der split-Funktion wird der Inhalt der Variable „Comment“ anhand des Zeichens „.“ (Punkt) in zwei Teile aufgeteilt. Somit besitzt das Array zwei Werte. Wert 0: „4“ und Wert 1: „3“. Daraufhin wird eine weitere Zeichenfolge-Variable „FirstIndex“ erstellt und mit dem Wert „variables('LetzteHauptversion')[0]“ festgelegt. Somit wird die Variable mit dem Wert 0 aus dem Array „LetzteHautpversion“ initialisiert. Daher besitzt die Variable „FirstIndex“ den Wert „4“. Jetzt muss diese Versionsnummer dem Dokument zugewiesen werden, welches durch einen weiteren HTTP-Request durchgeführt wird. Dabei wird die Methode „POST“ verwendet.
URL:
_api/web/GetFolderByServerRelativeUrl('<Ordnerpfad_aus_der_Aktion_Dateieigenschaften-abrufen>')/Files('<Dateiname_mit_Erweiterung_aus_der_Aktion_Dateieigenschaften-abrufen>')/Versions/restoreByLabel('<Variable_FirstIndex>')
Würde jetzt der Flow ausgeführt werden, wird der Inhalt der Version 4 wiederhergestellt werden. Aber Achtung: In der Versions-Spalte der SharePoint-Bibliothek wird lediglich die Nebenversion hochgezählt und nicht die Hauptversion. Als ich den Flow erstellt habe, wunderte ich mich, warum der Flow nichts tut, aber der Flow-Durchlauf erfolgreich war.
Möchte man das Dokument mit einer Hauptversion versehen, muss das Dokument mit Hilfe von Flow veröffentlicht werden. Das geht wie folgt. Zuerst erhält das Dokument den Status „Submit“ (Ausstehend) und anschließend den Status „Approve“ (Genehmigt). Der Status „Submit“ ist erforderlich, da sonst das Dokument nicht korrekt genehmigt/veröffentlicht werden kann (Siehe folgende Abbildung).
Der komplette Flow sieht wie folgt aus:
Fazit
Mit diesem Flow ist es möglich, automatisiert die letzte Hauptversion eines Dokuments wiederherzustellen. Das könnte unter anderem Bestandteil eines Genehmigungsprozesses sein, sobald ein Dokument abgelehnt wird. Mit Hilfe eines HTTP-Request werden Dokumenteigenschaften abgefragt, die darin enthaltene Dokumenten-Versionsnummer bearbeitet (split) und letztendlich die letzte Dokument-Hauptversion per HTTP-Request wiederhergestellt.
Themen
Informiert bleiben
Erhalten Sie max. einmal im Monat Neuigkeiten rund um Microsoft 365, Einblicke in neue Funktionen sowie Tipps und Tricks.
RSS Feed einbinden
Die smarte Lösung für aktuelle Beiträge direkt im Microsoft Teams Kanal. So gehts.
Feedback
Haben Sie Anregungen zum Blog oder Wünsche für Themen? Dann senden Sie uns Ihr Feedback an
redaktion@intraconnect.de.