Walidatory to komponenty użytkownika, umożliwiające sprawdzenie formularza podczas akceptacji zadania oraz zablokowanie akceptacji, gdy jakieś dane nie są prawidłowe. Przykładowe walidatory mogą np.
Stworzone walidatory dostępne są w edytorze procesów i mogą być łatwo wykorzystane w procesie biznesowym umożliwiając tym samym realizacje logiki biznesowej. Ich zachowanie może być dodatkowo konfigurowane za pomocą parametrów.
Walidatory tworzone są w oparciu o ich definicję stworzoną przez użytkownika. Definicja taka musi zawierać następujące elementy:
com.suncode
)Przykładowa definicja przedstawiona jest poniżej:
@Validator public class PeselValidator { private final String PESEL_REGEX = "^\\d{11}$"; @Define public void definition( ValidatorDefinitionBuilder builder ) { builder .id( "pesel-validator" ) .name( "validator.pesel" ) .description( "validator.pesel.desc" ) .category( Categories.TEST ) .parameter() .id( "pesel_param" ) .name( "validator.pesel.parameter.name" ) .description( "validator.pesel.parameter.desc" ) .type( Types.VARIABLE) .create(); } //Metoda walidująca public void validate( @Param( value = "pesel_param" ) Variable pesel, ValidationErrors errors, Translator translator ) { boolean isPesel = Pattern.matches( PESEL_REGEX, (String) pesel.getValue() ); if ( isPesel == false ) { errors.add( translator.getMessage( "validator.pesel.invalid" ), pesel.getId() ); } } } |
Walidator musi posiadać metodę walidującą o nazwie validate. Metoda może posiadać następujące typy parametrów:
W celu przerwania akceptacji zadania i wyświetlenia stosownego komunikatu należy dodać wiadomość do obiektu . Jeżeli żadna wiadomośc nie zostanie dodana, to akceptacja zadania przejdzie do kolejnego etapu.
Jeżeli walidator jest definiowany we wtyczce to należy dodatkowo zaznaczyć, że wtyczka ta udostępnia komponenty. W tym celu należy w pliku suncode-plugin.xml dodać wpis:
<!-- Udostępnianie walidatorów --> <workflow-components key="components" /> |