Beheben eines Learn365-Flows, der den Parameter LoginName verwendet

Der LMS365-Connector ermöglicht die Verwendung von Learn365-Daten in Microsoft Power Automate-Flows. Mithilfe verschiedener Trigger können Sie unterschiedliche Ausgaben erhalten. Wenn Sie jedoch den Parameter LoginName verwenden, kann dies dazu führen, dass Ihr Flow fehlschlägt, auch wenn es so aussieht, als wäre der Ausführungsversuch erfolgreich gewesen.

Dieser Artikel enthält einfache Schritte, um dieses Verhalten zu beheben und den Parameter LoginName in Power Automate-Flows erfolgreich zu verwenden.

 

In diesem Artikel

 

Beschreibung des Problems

Erstellen wir einen einfachen Flow, der die Benutzerdaten löscht, nachdem sie in Microsoft Entra ID gelöscht oder deaktiviert wurden.

 

 

Wenn Sie den Trigger testen, sollte dieser Flow gut funktionieren, und es wird so aussehen, als wäre die Ausführung erfolgreich gewesen.

Wenn Sie jedoch die Benutzerdaten über die API prüfen, werden Sie sehen, dass der Datensatz aus irgendeinem Grund nicht gelöscht wurde. In den Flow-Ausgaben sollten Sie auch einen Fehler finden:

 

 

Lösung für das Problem

Der Grund für dieses Verhalten ist das Format der LoginName-Ausgabe. Das kann so aussehen:

 

i:0#.f|membership|ivanivanov@efisup.onmicrosoft.com
i:0#.f|membership|ivanivanov_google.com#EXT#@efisup.onmicrosoft.com

 

In beiden Fällen ist es das Symbol #, das den Fehler verursacht. Daher müssen wir dieses Symbol entfernen, damit der Flow funktioniert. Dafür gibt es mehrere Methoden:

 

1. #-Symbole manuell durch %23 ersetzen

Das funktioniert bei Flows, bei denen Sie den Login-Namen manuell eingeben.

 

2. Variable initialisieren und „Compose“-Aktion verwenden, um # automatisch zu ersetzen

Es gibt zwei Funktionen, die verwendet werden können: encodeUriComponent (weitere Informationen zur Verwendung von Encode Uri in Power Automate finden Sie hier) und replace.

Im Folgenden ist ein Beispiel dafür, wie die encodeUriComponent-Funktion in manuell ausgelösten Flows verwendet werden kann:

 

 

Wie Sie sehen, wird der Ausdruck encodeUriComponent(variables('OriginalUserLogin')) in der Aktion Compose verwendet. Für die Funktion „Replace“ sollte der Ausdruck replace(variables('OriginalUserLogin'), '#', '%23') lauten.

 

3. Eine andere Ausgabe verwenden 

Für einen automatisierten Flow können Sie eine andere Ausgabe verwenden, die keine Sonderzeichen enthält.

Für die Bereinigungsaktion können Sie den Parameter DirectoryObjectId  verwenden. Wenn Sie „LoginName“ durch diesen Parameter ersetzen, sollte der Flow funktionieren. So verwenden Sie die Ausgabe: Users('@{items('Apply_to_each')?['DirectoryObjectId']}')/Purge im Feld Uri.

 

 

War dieser Beitrag hilfreich?
1 von 1 fanden dies hilfreich

Kommentare

Zu diesem Beitrag können keine Kommentare hinterlassen werden.