17 | Sharing is Caring mit automatischem CleanUp đŸ§č

#MrPowerMagic hilft! 🔼

08.07.2021 | Alex und Ragnar Show | Folge 46

In diesem 17. Fall dreht sich alles um das automatisierte Teilen von Ordnern (und Dateien) aus Teams heraus. Dabei werde ich nicht nur einen Automatismus fĂŒr das Erstellen und Teilen von Dateien zeigen, sondern auch einen automatischen AufrĂ€umprozess hinterlegen, so dass die Dateien nach X Tagen automatisch gelöscht werden und somit nicht mehr unnötig Speicherplatz belegen. Zumal mit dem Löschen natĂŒrlich auch die Freigabe beendet ist.

Status Quo

Wir alle kennen das. Das (externe) Teilen bzw. Freigeben von Ordnern (und Dateien) ist immer mit einem hohen manuellen Aufwand verbunden. GefĂŒhlt sind immer zu viele Klicks notwendig, um das gewĂŒnschte Ergebnis zu erreichen. Und dann hat man vielleicht noch den falschen Link genommen. Und bis dieser dann auch bei der jeweiligen Person angekommen ist…

In dem konkreten Fall geht es um folgenden Workflow:

Es mĂŒssen fĂŒr fĂŒr (externe) Kunden immer wieder Austauschordner bereitgestellt werden, in denen dann gebĂŒndelt mehrere Dateien zusammen als Paket zum Abruf bereitgestellt werden. NatĂŒrlich wĂ€re es möglich, dem Kunden fĂŒr jede Datei einen entsprechenden Sharing-Link zu generieren und zukommen zu lassen. Allerdings wĂ€re in diesem Fall der Aufwand etwas höher. Aus diesem Grund hat man sich hier fĂŒr die „Austauschordner“ Lösung entschieden.

Zielsetzung

Wir wollen einen einfachen Freigabeprozess mit definierter Freigabeart. Es soll automatisch ein Ordner erstellt werden, der als Container zum Teilen von Dateien fungiert und nach einer definierten Zeit geschlossen bzw. die Inhalte in dem Ordner gelöscht werden.

Dabei soll nach Möglichkeit der Aufwand fĂŒr das Erstellen des Ordners, fĂŒr das Abrufen des Freigabe-Links als auch fĂŒr das Bereinigen der Freigabe so weit wie möglich reduziert werden. Also auch insbesondere die manuellen Schritte und Schnittstellen. Eine flexibel einstellbare Dauer der Freigabe ist ebenfalls wĂŒnschenswert, da es doch vorkommen kann, dass einige Freigaben lĂ€nger als andere vorgehalten werden mĂŒssen.

Umsetzung

HierfĂŒr wird eine kleine Power App erstellt, die mit ein, zwei Flows hinterlegt wird. Diese Power App erstellt uns einen Ordner und gibt uns direkt den Freigabelink zurĂŒck, welchen wir dann entsprechend verteilen können. Ebenso mĂŒssen wir bei der Erstellung des Ordners ein GĂŒltigkeitszeitraum angeben. Nach Ablauf der GĂŒltigkeit werden die Inhalte automatisch mitsamt dem Ordner gelöscht. Dadurch erlischt auch die Freigabe.

Demo

Wie immer bei meinen FĂ€llen von #MrPowerMagic liegt der Fokus bei der FunktionalitĂ€t und weniger beim Design oder der Formvollendung. NatĂŒrlich könnte die Power App designtechnisch und funktional noch aufgewertet werden.

Die Power App

Die Power App ist unterteilt in zwei Bereiche, der rechte Bereich als Galerie / Ordnerliste unserer Dokumentenbibliothek und der linke Bereich mit der Eingabemaske fĂŒr den Ordnernamen und den Schieberegler fĂŒr die Dauer der Freigabe in Tagen. Der Standardwert liegt hier bei 30 Tagen, maximal sind hier jedoch 90 Tage möglich.

Nach dem Klick auf den Button „Ordner erstellen“, welcher ausschließlich aktiv ist, wenn der Ordnername noch nicht vergeben ist (ebenso wie die farbige Umrandung des Eingabefelds fĂŒr den Ordnernamen), startet der erste Flow.

Dieser liefert uns in die Power App den Freigabelink fĂŒr den soeben erstellten Ordner zurĂŒck.

In der Galerie / der Ordnerliste gibt es auf der linken Seite ebenfalls eine farbige Anzeige, die uns signalisiert, ob einem Ordner ein Löschdatum zugewiesen ist (grĂŒn) oder eben nicht (rot). In diesem Fall bestĂŒnde die Möglichkeit, den Ordner samt Inhalt mittels Klick auf den Papierkorb hĂ€ndisch zu löschen. Dies wird ĂŒber die zusĂ€tzliche Spalte „Delete“ in der Dokumentenbibliothek signalisiert. Ist dort kein Datum eingetragen, wurde der Ordner i.d.R. hĂ€ndisch angelegt bzw. nicht im Kontext der Power App.

Weitere Infos zur Power App findet Ihr in der Galerie.

Die Power Automate Flows

Der erste Flow wird aus der Power App heraus gestartet, durch den Button „Ordner erstellen“.

  1. Es werden dem Flow zwei Werte mit ĂŒbergeben – der vollstĂ€ndige Ordnerpfad inkl. dem neuen Ordnernamen und die Anzahl der Tage aus dem Schieberegler.
  2. Die Anzahl der Tage wird dem Trigger „zukĂŒnftige Zeit berechnen“ ĂŒbergeben, welcher uns das Zieldatum zurĂŒck liefert.
  3. Der vollstĂ€ndige Ordnerpfad wird in eine Variable ĂŒbergeben.
  4. Aus dem vollstĂ€ndigen Ordnerpfad wird der erste Teil „Freigegebene Dokumente/“ abgeschnitten. Da es sich immer um 23 feste Zeichen handelt, können wir hier mit der festen Zahl 23 arbeiten. ZurĂŒck bleibt der Zielpfad inkl. Ordnername ab der obersten Ordnerebene.
  5. Die eigentliche Ordneranlage in der SharePoint-Bibliothek – wir nutzen als Ordnerpfad die Ausgabe aus 4.
  6. Nachdem der Ordner angelegt wurde, ergĂ€nzen wir die „Delete“-Spalte mit dem zukĂŒnftigen Löschdatum.
  7. Die Erstellung des Freigabelinks fĂŒr den neu erstellten Ordner. Hier sind angepasste Optionen (nur Lese-Rechte, nur innerhalb der Organisation, etc.) möglich.
  8. Die RĂŒckgabe des Freigabelinks an die Power App.
Visual Portfolio, Posts & Image Gallery for WordPress

Flow 1 – Power App

Flow 1 – Power App

Flow 1 – Power App

Der zweite Flow ist ein tÀglich wiederkehrender Flow.

  1. Der Flow startet jeden Tag um 23:30,
  2. Es wird eine Variable mit der aktuellen Zeit / Datum festgelegt.
  3. Der Flow fragt die Dokumentenbibliothek nach allen Ordnern ab, deren Delete-Datum heute oder frĂŒher (le -> less or equal) ist. Wichtig ist jedoch, dass es sich hier um die „Elemente abrufen“-Action handelt. Nicht um Dateien.
  4. FĂŒr alle Elemente, die in Schritt 3 ein Ergebnis geliefert haben, wird die Löschaktion eingeleitet, also durch alle Elemente durch iteriert.
  5. Die eigentliche Löschaktion. Auch hier ist die Action „Element löschen“ und nicht „Datei löschen“.
Visual Portfolio, Posts & Image Gallery for WordPress

Flow 2 – Clean Up

Flow 2 – Clean Up

Flow 2 – Clean Up

Hier könnt Ihr Euch den ganzen Fall noch einmal anschauen: