Rufen Sie frühere Versionen von SharePoint-Listenelementen in Flow ab

parseJSON
Inhalt

    In Flow gibt es noch keine Aktion, um auf den Versionsverlauf von SharePoint-Listenelementen (oder Dokumenten) zuzugreifen. Wie können wir also zu älteren Versionen eines Listenelements in Flow gelangen, einschließlich aller alten Spaltenwerte? Ein Kunde hat heute gefragt, ob es eine Möglichkeit gibt, mit einem Flow zu erkennen, ob sich eine bestimmte Spalte geändert hat (bei Artikeländerung), und dann … Dinge zu tun.

    Zum Glück haben wir alles, was wir brauchen, um dies mit Hilfe unseres besten Freundes zu erreichen: Senden Sie eine HTTP-Anfrage an SharePoint.

    Hier sind die Hauptschritte:
    Auslöser für ein Element, das von geändert erstellt wurde, Triggerbedingung hinzufügen, damit es beim Erstellen nicht ausgelöst wird (da dies unnötige Läufe auslöst)
    Berechnen Sie die vorherige Versionsnummer, damit wir wissen, nach welcher Version wir suchen müssen
    Rufen Sie mithilfe der HTTP-Anforderung alle SharePoint-Listenelementversionen von SharePoint ab
    Analysieren Sie das Ergebnis (JSON) aus SharePoint
    Schleifen Sie alle Versionen und ziehen Sie die gewünschte Version heraus (vorherige Version)
    Sachen machen.

    Konfigurieren Sie den Trigger mit Bedingung
    Gehen Sie zunächst zu den Einstellungen des Triggerschritts:

    triggersetting
    Rufen Sie frühere Versionen von SharePoint-Listenelementen in Flow ab 9

    Fügen Sie dann die folgende Bedingung hinzu, um sicherzustellen, dass der Flow nur ausgeführt wird, wenn die Version NICHT 1.0 ist:

    triggercondition
    Rufen Sie frühere Versionen von SharePoint-Listenelementen in Flow ab 10
    not(contains(triggerBody()?[‘{VersionNumber}’],’1.0′))

    Berechnen Sie die vorherige Nummer
    Der nächste Schritt besteht darin, die vorherige Zahl mithilfe einer Aktion „Verfassen“ zu berechnen. Wir können dies tun, indem wir den Unterausdruck mit einer verschachtelten int-Funktion verwenden, um die Versionsnummer in eine Ganzzahl zu konvertieren (so dass ’sub‘ zwei Ganzzahlen zum Arbeiten erhält). Und dann fügen wir nach dem Ausdruck einfach „.0“ hinzu, um das richtige Format zu erhalten („2.0“ und nicht nur „2“).

    previousnumber
    Rufen Sie frühere Versionen von SharePoint-Listenelementen in Flow ab 11
    sub(int(triggerBody()?[‘{VersionNumber}’]),1)

    Rufen Sie SharePoint auf und rufen Sie den Versionsverlauf der SharePoint-Liste ab
    Um die Version unseres Listenelements zu erhalten, rufen wir HTTP auf und übergeben die ID des Listenelements. Beachten Sie, dass der Titel der Liste der Anzeigename und nicht der Systemname / die URL ist. Selbst wenn Sie ein guter Entwickler waren und der Liste den Systemnamen „catvisitorslog“ gegeben haben, um eine schöne und saubere URL zu erhalten, möchte der HTTP-Aufruf „cat Besucher Log“.

    getversions
    Rufen Sie frühere Versionen von SharePoint-Listenelementen in Flow ab 12

    Analysieren Sie das JSON-Ergebnis
    Dieser ist etwas kniffliger, wenn Sie zuvor noch nicht mit JSON gearbeitet haben. Bevor Sie die Aktion selbst hinzufügen. Speichern Sie den Flow und führen Sie ihn aus, um zu testen, ob der HTTP-Aufruf zum Abrufen von Versionen funktioniert. Kopieren Sie dann den gesamten JSON-Block aus dem Body-Abschnitt unter den Ausgaben:

    getversionsoutput
    Rufen Sie frühere Versionen von SharePoint-Listenelementen in Flow ab 13

    Gehen Sie dann zurück, um den Ablauf zu bearbeiten, und fügen Sie die Aktion JSON analysieren hinzu. Fügen Sie den Ausgabetext aus dem HTTP-Aufruf „Versionen abrufen“ als Inhalt hinzu und klicken Sie dann auf „Beispielnutzlast verwenden …“, um den gerade kopierten JSON-Code einzufügen. Dadurch wird dem Flow mitgeteilt, wie die Datenstruktur aussieht und wie sie analysiert wird.

    parseJSON
    Rufen Sie frühere Versionen von SharePoint-Listenelementen in Flow ab 14

    Alle Versionen schleifen und … Sachen tun Unser letzter Schritt besteht darin, die Versionen zu durchlaufen, die wir gerade analysiert haben, zu ermitteln, welche Version wir ziehen möchten, und dann etwas zu tun. In diesem Beispiel speichere ich den Wert der Spalte „Bürostandort“, um zu sehen, wo sich etwas entfernt hat. Erstellen Sie zunächst für jede eine Apply und geben Sie die Ergebnisse aus der „Parse VersionHistory from JSON“ an, da diese alle unsere Versionen enthält. Fügen Sie dann eine Bedingung hinzu, die das VersionLabel aus dem geloopten Element übernimmt (unter „Parse VersionHistory from JSON“), und vergleichen Sie diese mit der Ausgabe des zuvor erstellten Schritts „Calculate PreviousVersionNumber“. Dadurch wird jede Schleife auf die Version überprüft Die Nummer der Schleife ist in der Tat die vorherige Version, auf die wir abzielen möchten. Wenn beispielsweise 4 Versionen des Elements vorhanden sind, wird die Version 1.0, 2.0 durchlaufen und auf false validiert. Wenn sie jedoch auf 3.0 kommt, wird sie auf validiert wahr und wir können anfangen, unsere Magie zu wirken! In diesem Beispiel greife ich nur nach dem Wert für Bürostandort und Speichern für weitere Logik. Wenn Sie es also ausführen, erhalten Sie den Standortwert:

    officelocation
    Rufen Sie frühere Versionen von SharePoint-Listenelementen in Flow ab 15

    Quelle: https://www.catapultsystems.com/blogs/get-previous-versions-of-sharepoint-list-items-in-flow/

    Dieser Beitrag ist auch verfügbar auf: English (Englisch)

    Aktualisiert am3. November 2020
    War das hilfreich?

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert