Nintex: Array von einem String erstellen

Heute war ich mal wieder mit Nintex Workflow beschäftigt, und bin auf ein kleines Problem gestoßen, das ich mit einem kleinen Umweg lösen konnte. Es ging nämlich darum, die Werte, die in einer Spalte der SharePoint-Liste (Nachschlagen in, mehrere Werte) in ein Array zu packen, um es anschließend in einer Schleife verwenden zu können.



Mit Hilfe der Aktion „Regulärer Ausdruck“ ist es nämlich möglich, den Text-String zu zerlegen, um daraus einen Array zu generieren. Die einzelnen Werte müssen durch bestimmte Zeichen getrennt sein, z.B. durch ein Komma oder Semikolon.

Die Werte in der Spalte, werden, getrennt durch ein Semikolon, dargestellt. Bei der Spalte handelt es sich um eine Nachschlage-Spalte, die mehrere Werte zulässt, und die aus einer anderen SharePoint-Liste kommen:

Wenn ich diese Spalte mit der Aktion „Regulärer Ausdruck“ splitte, so bekomme ich am Ende ein Array, bei dem der erste Wert „egruppe“ den Index „0“ bekommt usw. Allerdings hat der Array sieben Indexe, was nicht richtig ist. Auf dem rechten Screen-Shot sieht man die Ausgabe mit dem Wert und dem Index:

Wie man sieht, ist der letzte Wert, mit dem Index „7„, leer. Offensichtlich wird beim Auslesen so einer Spalte kein „sauberer“ String in der Aktion „Regulärer Ausdruck“ ausgelesen. Aus diesem Grund muss die Spalte vorher mit der Aktion „Nachschlagen in Liste“ ausgelesen, und in die String-Variable geschrieben werden. Beim genauen Hinsehen des fertigen String wird man jedoch feststellen, dass nach jedem Semikolon ein Leerzeichen hinzugefügt wurde, z.B: „text1; text2; text3“. Beim Splitten hätten wir folgende Werte: „text1″, “ text2″ und “ text3″. Die Werte text2 und text3 haben am Anfang ein Leerzeichen. In diesem Fall muss beim Splitten ein Semikolon und ein Leerzeichen berücksichtigt werden. Mit dem Regex „;\s“ (ohne Anführungszeichen) geht das ohne Probleme.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.