in-STEP BLUE inTEAM: Drei Fälle für RegEx

by | 10.05.2021 | in-STEP BLUE anwenden

Es gibt im Alltag eines in-STEP BLUE Systemverantwortlichen (ich bleibe hier bei der männlichen Form, da ich über meine Erfahrung schreibe) viele Situationen, in denen das Anwenderverhalten oder die Anwenderanforderungen das System oder die Administration vor Herausforderungen stellen. Anhand von drei Beispielen aus meinem Alltag möchte ich hier Probleme und Lösungsansätze vorstellen.

Allen gemein ist die Anwendung von RegEx. Die Verwendung von RegEx ist seit Version 6.5 von in-STEP BLUE möglich. Dabei wird der Dialog „Formel eingeben“ im Rahmen einer Zustandsaktion „Eigenschaften setzen“ konfiguriert. Die Verwendung ist nicht ganz selbsterklärend, wenn man in der Welt der Programmierung nicht gerade zu Hause ist. Um RegEx zu nutzen, muss man sich zum Glück keinen teuren Wälzer kaufen, sondern kann sich hervorragend mit dem Internet helfen. RegEx, genauer „Regular Expression“, hilft, eine Zeichenkette in einer Formel (vereinfacht) darzustellen [1]. Neben Implementierungen in Programmiersprachen verarbeiten auch viele Texteditoren reguläre Ausdrücke in der Funktion „Suchen und Ersetzen“. Ein einfacher Anwendungsfall von regulären Ausdrücken sind Wildcards. [2]. Bei den folgenden drei Use Cases werden RegEx Zeichenketten genutzt, um Eingaben in in-STEP BLUE zu verbessern.

Für die unterschiedlichen Anwendungsfälle helfen unterschiedliche Seiten, aber vielleicht sind einfache Ausdrücke auch mit etwas Übung schnell selbst gebaut. Tutorials helfen sicher immer [3]-[6].

Bevor ich nun endlich zu meinen Use Cases komme, möchte ich hier noch auf eine notwendige und hilfreiche Seite verweisen, mit der man den selbst gebauten (oder aus dem Internet gemopsten) Ausdruck testen kann: regex101:

Drei Fälle für ReqEx - Check mit RegEx

Fall 1: Zuviel kopiert, geschickt geschnitten

Für die Anlage eines besonderen Produkts in in-STEP BLUE wird bei uns (VOITH) eine Materialnummer aus SAP benötigt. Allerdings nicht die komplette Nummer, sondern nur die ersten 10 Zeichen. Die User kopieren daher entweder die ersten 10 Zeichen (9 Ziffern und ein Punkt nach der dritten Ziffer) aus SAP oder den gesamten Ausdruck, um diesen nach dem Einfügen in in-STEP BLUE auf die richtige Länge zu kürzen. Aber was passiert, wenn vergessen wird, den Eintrag auf die 10 Zeichen zu kürzen? Dann könnte doch in-STEP BLUE den Eintrag auf die gewünschte, notwendige Länge verkürzen. Nur wie richtet man das ein?

Ein einfacher Trick hilft schon weiter: Bei der Rückgabe des Produktes (Zustandsaktion) wird der Eigenschaftswert „Materialnummer“ über „Eigenschaften setzen“ mit sich selbst über Formel ersetzt, dabei kürzt ein RegEx-Ausdruck bei Bedarf den Wert:

Drei Fälle für RegEx - SAP Materialnummer nach in-STEP BLUE

Ob es funktioniert, überprüft man dann per regex101:

Drei Fälle für RegEx - RegEx 101 Test1

Aktuell habe ich einen Sonderfall damit noch nicht abgedeckt: Der User tippt von Hand den Wert ab und vergisst den Punkt nach der 3. Stelle, der aber unbedingt eingetragen werden muss. Für diesen Fall habe ich folgende Formel gebaut (ich bin ganz stolz, denn das ist mein erster komplett selbst gebauter Ausdruck nach Studium der Tutorials):

Drei Fälle für RegEx - RegEx 101 Test2

Fall 2: Falsches Zeichen = kein Projekt. Muss nicht sein!

Ein berechtigter User legt mit Hilfe eines Formulars ein Projekt in in-STEP BLUE an. Der Taskmanager bricht jedoch ab, wenn bestimmte Sonderzeichen im geplanten Projektnamen erscheinen. Das Projekt wird dann nicht erstellt. Lösung: Trotz fehlerhafter Eingabe sind diese Zeichen durch „_“ zu ersetzen.

Drei Fälle für RegEx - Projektname in in_STEP BLUE

Dieser Ausdruck sieht mir noch recht umständlich aus, das geht bestimmt auch leichter? Und auch das Ergebnis überprüfe ich mit regex101:

Drei Fälle für RegEx - RegEx 101 Test3

Klappt doch super! Und wenn man jetzt auch noch keine Umlaute im Namen erlauben möchte, können diese auch ausgeschlossen werden.

Fall 3: Speichere nur das Jahr. Na klar!

Ein Anwender möchte, dass in-STEP BLUE bei der Erstellung eines Produkts nur das Jahr der Erstellung als alphanumerischen Wert speichert.

Hierzu wird bei der Anlage des Produkts im Rahmen einer initialen Startaktion über eine Formel die interne Datums-Eigenschaft „CreationDate“ in die Alphanumerische Eigenschaft „Jahr“ geschrieben. Da in-STEP BLUE den Wert aber als „TT.MM.JJJJ hh:mm:ss“ schreibt, muss dieser Ausdruck wieder als RegEx formuliert werden und $3 (also der dritte Block = JJJJ) bleibt stehen. Bei mir sieht der Ausdruck dann am Ende so aus:

Drei Fälle für RegEx - Produktrevision Jahreszahl in in-STEP BLUE

Auch hier teste ich lieber, ob es funktioniert mit regex101:

Drei Fälle für RegEx - RegEx Test4

Fazit

In diesen drei Beispielen konnte ich zeigen, wie nützlich die RegEx Erweiterung von in-STEP BLUE ist. Bei den ersten beiden Fällen helfe ich Anwendern, Fehler zu vermeiden und schaffe so mehr Akzeptanz. Mit dem dritten Beispiel habe ich direkt eine Anwenderanforderung umsetzen können. Mit Sicherheit ist das nur die berühmte Spitze des Eisbergs an Möglichkeiten. Können Sie auch von spannenden Use Cases dazu berichten? Über entsprechende Kommentare unten würde ich mich sehr freuen.

 

Quellen:

[1] https://tipps.computerbild.de/software/systemsoftware/regex-was-ist-das-das-sollten-sie-wissen-798941.html

[2] Regulärer Ausdruck – Wikipedia

[3] Reguläre Ausdrücke (RegEx) – Kurzübersicht | AutoHotkey (ahkde.github.io)

[4] Reguläre Ausdrücke – danielfett.de

[5] Regex zum Suchen und Ersetzen nutzen (dev-insider.de)

[6] Reguläre Ausdrücke – eine Sammlung (koepferl.de)