Quicktipp: RegEx in Business Central

Es empfiehlt sich in bestimmten Szenarien Regular Expressions im Feld OnValidate() Trigger zu verwenden. In Business Central kann dafür die neue Codeunit 3001 DotNet_Regex genutzt werden.

Hier ein Beispielcode um Platzhalter (%1..) zu validieren:

procedure RegexMatch(Input: Text; Pattern: Text): Boolean
    var
        DotNet_Regex: Codeunit DotNet_Regex;
    begin
        IF DotNet_Regex.IsMatch(Input, Pattern) THEN
            exit(true)
        ELSE
            exit(false);
    end;

Und hier der entsprechende OnValidate-Trigger:

trigger OnValidate()
var
PlaceholderErr: Label 'The Input does not match the expression "%XX" where XX must be numeric. Examples: %1 or %10.';

begin
 IF NOT RegexMatch(FIELDNAME, '%(?:[1-9](?:00?)?)') then
  ERROR(PlaceholderErr);
end;

Wichtig: Die Syntax von RegEx wird in der Regel mit einem führenden und abschließenden “/” geschrieben. Dies ist hier nicht der Fall.

Die korrekte Schreibweise in unserem Fall ist:

'%(?:[1-9](?:00?)?)'

und nicht:

'/%(?:[1-9](?:00?)?)/'

Zum Erstellen von einer RegEx kann folgendes Tool hilfreich sein:
https://ibnuhx.com/regex-generator und zum Validieren folgendes Tool: https://regexr.com/.

Teile deine Gedanken

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