Technik suchen

  • Oranger Gürtel
  • Standard
  • Tipp 146

Apostrophe und Sonderzeichen richtig codieren

Quizfrage

Wie schützt du einen Apostroph in einem OData-Filter?

Auflösung

  1. A) Du codierst ihn mit encodeUriComponent()Falsch. encodeUriComponent() gehört in URLs. Im OData-Filter zerstört es die Syntax der Abfrage.
  2. B) Du setzt einen Backslash davorFalsch. Ein Backslash maskiert in OData keinen Apostroph. Der Text endet trotzdem an dieser Stelle.
  3. C) Du verdoppelst ihn mit replace()Richtig. In OData stehen zwei Apostrophe für einen Apostroph im Wert, und der Filter bleibt gültig.

Worum es geht

Sonderzeichen in Werten brechen Abfragen und Anfragen, weil der Flow sie als Teil der Syntax liest. Welche Lösung passt, hängt davon ab, wohin der Wert geht. In einem OData-Filter wie Title eq 'Tom's Diner' beendet der Apostroph den Text zu früh. Du verdoppelst ihn mit replace(), dann steht in der Abfrage 'Tom''s Diner'. Für Werte in einer URL nutzt du encodeUriComponent(), das Leerzeichen, Fragezeichen und Apostrophe in Prozent-Codes umwandelt. Codierte Werte von aussen liest du mit decodeUriComponent() zurück. Für Text im Body einer JSON-Anfrage baust du das Objekt mit setProperty() und json() auf. Dann maskiert der Flow Anführungszeichen, Backslashes und Zeilenumbrüche selbst.

Der Ausdruck aus dem Tipp

replace(Title,'''','''''')

Wann einsetzen, wann nicht

Einsetzen

Wenn Namen, Titel oder Freitext in Filtern, URLs oder JSON-Anfragen landen.

Lieber nicht

Wenn der Wert nur angezeigt oder in ein Feld geschrieben wird und nie Teil einer Abfrage oder URL ist.

Häufigster Fehler

encodeUriComponent() in einem OData-Filter einsetzen. Das codiert auch die Syntax, und die Abfrage scheitert.

Lizenz

Standard Läuft ohne Premium-Connector, also mit der Lizenz aus Microsoft 365. Beleg bei Microsoft Learn: Power Automate licensing FAQ. Für deinen ganzen Flow: Lizenz-Check.

Ganzer Tipp mit Screenshots auf powerplatformtip.comPowerPlatformTip #146, auf Englisch

Teilen

Kurzadresse: powerautomate.ninja/146

Quelle: PowerPlatformTip #146, Microsoft Learn: Reference for functions in workflow expressions.