Formularze to podstawa komunikacji na stronie WWW. Formularzem są pola logowania, rejestracji, pola danych podczas zakupów. Możemy sprawdzać ich zawartość w czasie rzeczywistym, walidując ich poprawność już na etapie wpisywania (czasem uciążliwe dla użytkownika), jak i podczas wysyłania formularza (mniej ingeruje w reakcję user – strona, ale błąd jest widoczny po wysłaniu formularza, co czasem jest kłopotliwe, bo powrót do takiego błędnego formularza z definicji kasuje np. takie pola jak hasło, recaptcha, które trzeba podawać ponownie, nawet jeśli to nie w tym polu wystąpił błąd. Sposób walidacji wybieramy zazwyczaj intuicyjnie, na podstawie zakresu zbieranych w całym systemie danych – tak by wszystkie formularze były spójne, dostosowane do tego w systemie, który ma najwięcej walidacji.
Zbieranie dużej ilości danych
Czasem jednak ilość danych do zebrania jest ogromna, a co ważniejsze, kolejne pytania często zależą od odpowiedzi na wcześniejsze pytania. Z takim m.in. zadaniem zwróciło się do nas NiceFlight – portal reklamacji lotniczych. Ich formularz musiał nie tylko zbierać dane o pasażerach i locie którego reklamacja dotyczyła, ale także szczegółowo pytać o okoliczności odwołania, a na ich podstawie, o czynności, do których linię lotniczą zobowiązywało w danym przypadku prawo. Czyli pasażer, który zgubił swój bagaż musiał odpowiedzieć na pytania o jego zawartość, koszt odtworzenia czy działania linii (nowa walizka, odszkodowanie, bony itd.). Z kolei pasażer któremu opóźniono lot musiał być zapytany o powody (pogoda, strajk, awaria samolotu itd.), czas opóźnienia, o działania linii (ale tym razem inne, np. czy zapewniono mu wyżywanie, jeśli opóźnienie było odpowiednio długie).
Aby umożliwić realizację takiego formularza, podzieliliśmy go na kilka etapów, użytkownik cały czas widzi postęp wypełniania formularza. Kolejne kroki zależą od poprzednich, i nie da się do nich dojść, nie odpowiadając na wcześniejsze pytania. Dodatkowym wyzwanie była tu kwestia pełnej zarządzalności tymi pytaniami. Były to bowiem pytania zamknięte, do każdego z nich portal przygotował listę odpowiedzi do wyboru. Zamknięte listy pytań pozwoliły osiągnąć automatyzację tłumaczenia. Pasażer wypełnia reklamację lotu w swoim języku, a jego odpowiedzi wysyłane są do linii lotniczej języku taki, jaki obsługuje dana linia. W najprostszym przypadku linia dostaje wiadomość dwujęzyczną – w języku pasażera i po angielsku. Pasażer wypełniający formularz nie musi więc znać języka operator jego rejsu.
Kiedy nie wiemy ile będzie pytań
Najtrudniejsze formularze to te, które nie mają zamkniętej listy pytań (tak, pytań, nie odpowiedzi). Można zrobić taki formularz, który zbierz dowolne dane, i możecie to Państwo w niektórych naszych produktach zdefiniować samodzielnie. Np. w webSzkole jest kreator budowania testów on-line, w którym nie ma narzuconej listy pytań ani odpowiedzi – wszystko można wyklinać samodzielnie. Taki zestaw pytań i odpowiedzi trzymamy w bazie systemu, ale już trzymanie odpowiedzi na nie było by kłopotliwe, no bo pytanie można wyedytować, wtedy odpowiedź zmieniła by swój kontekst. W takich przypadkach system zapamiętuje cały wynik testu jako tekst – pytanie + odpowiedź + ewentualna dobra odpowiedź, gdy udzielona była zła. W ten sposób nawet najbardziej złożone i nieprzewidywalne formularze możemy z powodzeniem dla Państwa przygotowywać i automatycznie weryfikować.