...
Tip | ||
---|---|---|
| ||
Walidator
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.
Definiowanie walidatora
Walidatory tworzone są w oparciu o ich definicję stworzoną przez użytkownika. Definicja taka musi zawierać następujące elementy:
...
Code Block | ||||
---|---|---|---|---|
| ||||
@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() ); } } } |
Implementacja funkcji walidującej
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
Javadoc | ||||
---|---|---|---|---|
|
Rejestracja walidatora we wtyczce
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:
Code Block | ||
---|---|---|
| ||
<!-- Udostępnianie walidatorów --> <workflow-components key="components" /> |
Callback przy błędzie walidatora
Możliwe jest dodanie JavaScriptowej funkcji, która zostanie wywołana zamiast wyświetlenia okienka systemowego po zgłoszeniu błędu przez walidator.
...
Jeżeli chcemy zatwierdzić nasz walidator, żeby przepuścić akceptację dalej, musimy wywołać metodę walidatora this.confirm(). Jeżeli zostanie wywołane zatwierdzenie, to automatycznie zostanie wywołany callback kolejnego walidatoro (jeżeli taki będzie). W momencie, gdy wszystkie callbacki zostaną zatweirdzone, to nastąpi akceptacji z pominięciem tych walidatorów.
Przekazanie argumentu do callbacka
Warning |
---|
Funkcjonalność nie jest jeszcze dostępna. |
...
Code Block | ||
---|---|---|
| ||
callback : function(exampleObject) { console.log(exampleObject.prop1); console.log(exampleObject.prop2); console.log(exampleObject.prop3); } |
Komunikat błędu lub potwierdzenia walidacji
Możliwe jest określenie w PWE komunikatu błędu walidacji oraz komunikatu potwierdzenia akceptacji formularza pomimo błędu walidacji. Aby w PWE wyświetlone zostały te pola należy w builderze walidatora określić, jakie typy komunikatów mogą zostać skonfigurowane.
...