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/.