Kilka słów o walidacji na obiegach

Facebooktwitterpinterestlinkedinmail

dotyczy wersji: 8.2.x, autor: Kamil Nędza

Czyli co robić, aby uchronić użytkownika od niepotrzebnych pomyłek?

Walidacja pełni w obiegach bardzo ważną rolę. Dzięki niej możemy zabezpieczyć system przed potencjalnymi prostymi pomyłkami np. brak jednej cyfry w peselu lub wymusić na użytkowniku wypełnienie niezbędnych danych, dodanie załączników lub niedopuszczenia do dalszego procesowania, jeżeli wartość atrybutów przekroczyła określony limit. Ilość zastosowań jest nieograniczona. W tym artykule przedstawione zostanie kilka sposobów w jaki sposób skonfigurować walidacje danych wprowadzanych na formularzu.

 

Bezwarunkowa wymagalność atrybutu

Najprostszą formą walidacji uzupełnienia jest ustawienie na matrycy atrybutów wymagalności danego atrybutu. Dzięki temu system nie pozwoli użytkownikowi na przejście ścieżką przejścia, jeżeli nie zostaną uzupełnione wymagane atrybuty:

1

Rys.1. Ustawienie wymagalności atrybutów na kroku rejestracji

 

Pola wymagane do uzupełnienia na formularzu oznaczone są czerwoną gwiazdką:

2

Rys.2. Widok atrybutów na formularzu

 

Jeżeli użytkownik nie uzupełni jednego z wymaganych atrybutów i spróbuje przejść ścieżką przejścia, otrzyma komunikat, że na formularzu znajdują się jeszcze nieuzupełnione pola wymagane:

3

Rys.3. Komunikat w przypadku braku uzupełnienia wszystkich wymaganych atrybutów

 

Wyrażenia regularne

Wyrażenia regularne (zwane też Regex) są wzorcami symboli. Dzięki nim można określić jaką formę powinien mieć wpisany tekst. Dla przykładu: polski pesel zawsze składa się z 11 cyfr. Dzięki temu, aby uniknąć prostych pomyłek takich jak wpisanie za dużej lub za małej ilości cyfr. W zakładce „Styl i zachowanie” w sekcji „Wyrażenie regularne” należy określić, że wpisany w atrybucie tekst musi się składać dokładnie z 11 cyfr:

4

Rys.4. Konfiguracja wyrażenia regularnego dla atrybutu „Pesel”

 

 

W efekcie kiedy na formularzu użytkownik wpisze tekst nie spełniający wymagań, automatycznie pojawi się informacja, że wpisana wartość jest błędna:

5

Rys.5. Widok formularza gdy wpisano błędny pesel

 

Walidacja akcją na ścieżce przejścia

Dzięki akcji walidacji formularza można za pomocą zapytania SQL określić, czy dany dokument może przejść do następnego kroku. W przypadku, gdy warunek walidacji nie zostanie spełniony, dokument nie przejdzie ścieżką przejścia. Dla przykładu, można sprawdzić na podstawie peselu, czy wprowadzany do systemu klient już w nim istnieje. W tym celu należy utworzyć akcję walidacji formularza na ścieżce przejścia „Zarejestruj”, która będzie sprawdzała, czy istnieje zarejestrowany dokument klienta z danym peselem:

6

Rys.6. Dodanie akcji walidacyjnej na ścieżce przejścia

 

7

Rys.7. Konfiguracja akcji „Czy pesel się nie powtarza?”

 

Jeżeli w systemie istnieje już zarejestrowany inny dokument klienta o wpisanym peselu, wyświetlony zostanie odpowiedni komunikat i dokument nie zostanie zarejestrowany:

8Rys.8. Komunikat na stronie w przypadku dodania kolejnego klienta o tym samym peselu

 

Dodatkowa walidacja przy wyborze ścieżki (JavaScript na ścieżce przejścia)

Dodatkową walidację można zastosować na ścieżce przejścia z wykorzystaniem skryptu. Na przykład zaimplementować powiadomienie dla użytkownika, że nie wpisał numeru telefonu i zapytać czy jest pewien, czy chce kontynuować. Skrypt należy umieścić w oznaczonej na poniższym screenie sekcji, w zakładce „Parametry” konfiguracji ścieżki przejścia.

9Rys.9. Dodanie skryptu dodatkowej walidacji na ścieżce „Zarejestruj”

 

 

W efekcie przy przejściu ścieżką przejścia bez uzupełnionego atrybutu „Telefon”, wyświetlony zostanie komunikat, który zapyta użytkownika, czy jest pewien, że chce kontynuować. Jeżeli wciśnie „Anuluj” dokument nie przejdzie ścieżką przejścia i pozostanie w bieżącym kroku.

10

Rys.10. Komunikat na stronie

2 thoughts to “Kilka słów o walidacji na obiegach”

  1. W nagłówku artykułu jest wzmianka o wymuszaniu na użytkowniku dodanie załączników. Jak w takim razie wywołać taką akcję przed przejściem do kolejnego kroku? Np. komunikat o konieczności załączenia pliku, w przeciwnym przypadku przejście do kolejnego kroku nie będzie możliwe.

    Wydaje się być to istotne w przypadku obiegu dokumentów, gdzie załączenie pliku jest częstą czynnością. Z góry serdecznie dziękuję za odpowiedź, pozdrawiam!

    1. Można np tak SQL-em:

      IF
      exists (select 1
      FROM [WebConBPS_Att].[dbo].[WFAttachmentFiles] where ATF_WFDID = {WFD_ID} and ATF_IsDeleted = 0)
      SELECT 1
      ELSE
      SELECT 0

      Tu trzeba pamiętać jaka baza załączników jest podpięta pod obieg, dodatkowo można zawęzić do typu pliku itp..

Komentarze są zamknięte.