Używanie JavaScript w BPS

Facebooktwitterpinterestlinkedinmail
dotyczy wersji 8.0.x; autor: Kamil Nędza

Opis funkcjonalności:

Podczas korzystania z WorkFlow z poziomu przeglądarki internetowej, często niezbędne jest, aby formularz wyglądał lub zachowywał się w odpowiedni sposób. W tym celu wykorzystuje się JavaScript. Za jego pomocą jesteśmy w stanie między innymi zmieniać wartości atrybutów, ukryć widoczność pól, zapewnić dodatkowe warunki walidacyjne. WEBCON BPS – Designer Studio pozwala na wykorzystanie JavaScript na wiele sposobów:

  • Jako skrypt do wykonania przy zmianie wartości atrybutu
  • Jako skrypt do zarejestrowania na stronie
  • Globalnie jako skrypt do uruchomienia przy ładowaniu strony
  • Globalnie jako skrypt do uruchomienia przy ładowaniu strony i postbackach
  • Jako skrypt dodatkowej walidacji przy wyborze ścieżki

Dodatkowo WEBCON BPS – Designer Studio posiada kreator JavaScript – narzędzie wspomagające tworzenie skryptów. Dzięki niemu użytkownik może wprowadzić skrypty ręcznie, lub skorzystać z gotowych dostępnych skryptów.

js-r1

Rys. 1. Okno kreatora JavaScript

 

Przykład realizowanej funkcjonalności:

Na istniejącym obiegu budżetu (Opis obiegu znajduje się w artykule: Sterowanie obiegiem) chcemy dodać dwie funkcjonalności:

  1. Dodanie na formularzu w kroku „Realizacja budżetu” checboxa „Zmień Kwotę początkową”. Po jego zaznaczeniu, na formularzu pojawi się pole „Nowa kwota początkowa”. Przejście ścieżką przejścia „Zmień kwotę początkową” spowoduje zmianę „Kwoty początkowej”.
  2. Dodanie ścieżki przejścia „Anuluj budżet”. Przejście tą ścieżką przejścia, spowoduje przejście dokumentu do kroku „Anulowane”. Chcemy, aby na ścieżce przejścia był dodany JavaScript, który wyświetli okienko dialogowe, pytające, czy jesteśmy pewni, że chcemy anulować budżet.

 

Konfiguracja:

Do istniejącego już obiegu Budżetu dodajemy atrybut typu wybór Tak/Nie (checkbox)  „Zmień Kwotę początkową” oraz atrybut „Nowa kwota początkowa”. Dodajemy nową ścieżkę przejścia ”Zmień kwotę początkową”, krok negatywny „Anulowane” oraz ścieżkę „Anuluj” prowadzącą do tego kroku. Na dodanej ścieżce przejścia ”Zmień kwotę początkową dodajemy akcję, która zmienia wartość atrybutu „Kwota początkowa” na wartość z atrybutu „Nowa kwota początkowa”.

js-r2

Rys. 2. Konfiguracja akcji „Zmień [Kwota początkowa]”

 

Dodatkowo niezbędna będzie akcja, która na wejście do kroku będzie liczyła pozostałe środki w ramach budżetu:

js-r3

Rys. 3. Konfiguracja akcji na wejście do kroku „Realizacja budżetu” liczącej pozostałe fundusze.

Po wprowadzonych zmianach obieg powinien wyglądać następująco:

js-r4

Rys. 4. Schemat graficzny obiegu budżetu

 

Teraz przystępujemy do konfiguracji JavaScript. Wchodzimy w atrybut „Zmień kwotę początkową” i przechodzimy do zakładki „Styl i zachowanie”.

js-r5

Rys. 5. Okno z konfiguracją stylu i zachowania atrybutu

 

Korzystając z kreatora JavaScript tworzymy prosty warunek:

js-r6

Rys. 6. Tworzenie skryptu w kreatorze

 W tym momencie mamy już ustawiony warunek, że w momencie zmiany wartości checkboxa „Zmień kwotę początkową”, zostanie pokazany lub ukryty atrybut „Nowa kwota początkowa”. Jednak wciąż domyślnie jest ona wyświetlana. Przechodzimy więc do edycji kroku „Realizacja budżetu”:

js-r7

Rys. 7. Wchodzimy w edycję kroku „Realizacja budżetu”

Następnie w polu wklejamy JavaScript do uruchomienia przy ładowaniu strony. Tutaj również jesteśmy w stanie skorzystać z kreatora i wybrać go z gotowych podpowiedzi.

js-r8

Rys. 8. Ukrycie atrybutu „Nowa kwota początkowa” przy ładowaniu strony

 

Należy jeszcze zadbać, aby podczas przejścia ścieżką „Zmień kwotę początkową” nie było możliwości wpisania do atrybutu „Nowa kwota początkowa” wartości pustej. Do tego celu również użyjemy JavaScript. Wchodzimy w edycję ścieżki „Zmień kwotę początkową” i klikamy zakładkę „Parametry” i wchodzimy w edytor JavaScript.

js-r9

Rys. 9. Parametry ścieżki „Zmień kwotę początkową”

 

Tym razem musimy się już posłużyć własnym skryptem, który w przypadku, gdy nie wprowadzimy żadnej wartości, wyświetli komunikat i uniemożliwi przejście ścieżką:

js-r10

Rys. 10. JavaScript uniemożliwiający przejście ścieżką, jeśli „Nowa kwota początkowa” będzie nieuzupełniona

Pozostaje jeszcze realizacja drugiej funkcjonalności – okna , w którym musimy potwierdzić chęć anulowania budżetu. W tym celu przechodzimy do szczegółów ścieżki anuluj na kroku „Realizacja budżetu”.

js-r11

Rys. 11. Parametry ścieżki „Anuluj”

Podobnie jak miało to miejsce dla walidacji dla ścieżki „Zmień kwotę początkową”, teraz również należy użyć własnego skryptu. Jego zadaniem jest wyświetlenie okna dialogowego z wyborem OK/Anuluj. Jeżeli użytkownik potwierdzi, dokument przejdzie ścieżką przejścia.

js-r12

Rys. 12. JavaScript  na okienko, proszące o potwierdzenie decyzji

 

Weryfikacja działania funkcjonalności

Rejestrujemy dokument, aby znalazł się w kroku „Realizacja budżetu”:

js-r13

Rys. 13. Rejestracja budżetu

 Następnie weryfikujemy działanie checkboxa. Widzimy, że atrybut „Nowa kwota początkowa” jest niewidoczny. Dopiero zaznaczenie opcji „Zmień kwotę początkową” spowoduje wyświetlenie tego atrybutu.

js-r14

Rys. 14. Widok formularza tuż po załadowaniu strony

 

Po kliknięciu w checkbox, pozostawiamy pusty atrybut „Nowa kwota początkowa” i próbujemy przejść ścieżką przejścia „Zmień kwotę początkową”.

js-r15

Rys. 15. Wynik działania dodatkowej walidacji JavaScript

 

Uzupełniamy więc wymagany atrybut i ponownie próbujemy przejść ścieżką przejścia.

js-r16

Rys. 16. Zmiana kwoty początkowej

Udało się. Na Rys. 17. widzimy, że „Kwota początkowa „i „Pozostałe fundusze” zostały ustawione poprawnie, Teraz pozostaje sprawdzić tylko, czy działa dodatkowa walidacja na ścieżce „Anuluj”. Po kliknięciu „Anuluj” pojawia się okienko dialogowe, które pyta nas, czy na pewno chcemy anulować dokument.

js-r17

Rys. 17. Wynik działania dodatkowej walidacji JavaScript

Kliknięcie „Anuluj” spowoduje pozostanie w bieżącym kroku. W przypadku kliknięcia „OK” przejdziemy ścieżką przejścia „Anuluj”.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *