Elementarz wdrożeniowca – rzut okiem na akcję aktualizacji listy pozycji.

Facebooktwitterpinterestlinkedinmail
dotyczy wersji: 8.0.x; autor: Bartłomiej Spyrka

Proces wykorzystujący listę pozycji jest przeważnie procesem wymagającym poświęcenia dużej uwagi ze względu na ilość kolumn, dodawanie wierszy usuwanie i …aktualizację. Pierwsze trzy wymienione funkcjonalności na pewien sposób były udostępnione w wersjach 7.x. Wersja 8.0+ przynosi nam ciekawe rozwiązanie w postaci dedykowanej akcji do aktualizacji listy pozycji.

W tym artykule spróbujemy przyjrzeć się bliżej konstrukcji takiej akcji oraz pokazać sposób wykorzystania przy użyciu…Show Workflow Elements. Niniejszy artykuł jest nawiązaniem a poniekąd kontynuacją artykułu: Elementarz wdrożeniowca – o liście pozycji słów kilka, dostępnego na blogu.

Akcja aktualizacji listy pozycji

Akcje aktualizacji list pozycji znajdziemy w BPS Designer Studio, na zakładce akcji przy danym kroku w sekcji ‘Modyfikacje’.

lis2-p1

Rysunek 1. Aktualizacja listy pozycji

Widok konfiguracji akcji oraz opis poszczególnych części formatki zamieszczony został na poniższym zrzucie.

lis2-p2

Rysunek 2 Widok konfiguracji akcji

Odnosząc się do powyższego zrzutu:

1)    Lista pozycji – tutaj wybieramy listę pozycji którą chcemy zaktualizować. Istnieje możliwość aktualizacji tylko i wyłącznie listy pozycji na elemencie na którym wywoływana jest akcja. Innymi słowy z poziomu elementu o WFD_ID =1 nie zaktualizujemy akcją subelementów na elemencie o WFD_ID !=2

2)    Rodzaj zmiany, posiada trzy tryby pracy.

    • Dodaj nowe wartości – pozwala na dopisanie do istniejących już rekordów kolejne. Przykładowo początkowo zainicjalizowaną listę pozycji możemy uzupełnić o 5 dodatkowych rekordów dla obsługi np. kolejnych iteracji testów, czy negocjacji umów.
    • Zastąp wartości – tryb pracy powodujący całkowite wyczyszczenie listy pozycji z bieżących informacji oraz wstawienie ilości rekordów które zdefiniowane zostaną w zapytaniu SQL.
    • Aktualizacja wartości – tryb ostatni, pozwala na aktualizację istniejących już rekordów na liście pozycji. Ten tryb został wykorzystany na potrzeby niniejszego artykułu.

3)    Wartość unikalna – wartość wybierana z listy dostępnych kolumn (z dodatkowym elementem dot. Identyfikatora rekordu DET_ID). Odpowiada za poprawne sparowanie elementu aktualizowanego z zapytaniem definiowanym w ostatnim polu. W przypadku wyboru wartości unikalnej i jednoczesnym braku takiej wartości w zapytaniu SQL system wyłapie niezgodność i odpowie komunikatem jak poniżej.

4)    Zapytanie – sekcja w której budujemy odpowiednie zapytanie SQL zwracające (bądź nie) interesujące nas rekordy.

Przykład realizowanej funkcjonalności

Jak wspomniano wcześniej artykuł jest kontynuacją procesu rejestracji czasu pracy w pewnej firmie XYZ. W tej części zajmiemy się ułatwieniem pracy dalszej pracy z formularzami. Wyobraźmy sobie kierownika z 20 podwładnymi, dla których ma codziennie uzupełniać kartę czasu pracy (listę pozycji).

Przypomnijmy – istnieje obieg o poniższym schemacie.

lis2-p3a

Najistotniejszy w tym wypadku będzie

  1. krok Rejestracji i ścieżka [Techniczna] Zapis, którą posłużymy się w połączeniu z SWE
  2. Akcja aktualizacji listy pozycji
  3. SWE i masowa akceptacja

 

Konfiguracja

Krok rejestracji

w naszym obiegu wzbogacamy o ścieżkę techniczną. Ścieżka techniczna to taka, z której nie korzysta użytkownik biznesowy (jest dla nie go niedostępna / niewidoczna), pełni rolę serwisową bądź specyficzną pod obsługę konkretnej sytuacji. W naszym przypadku będzie to rola dedykowana dla uruchamiania akcji aktualizacji subelementów. Zadaniowanie na ścieżce nie ma wpływu na funkcjonalność samej akcji.

lis2-p3

Rysunek 3. Ścieżka techniczna na kroku rejestracji

Akcja aktualizacji listy pozycji

Zanim zaczniemy konfigurować akcję aktualizacji musimy zastanowić się nad tym co mamy do dyspozycji i co chcemy osiągnąć.

Do dyspozycji mamy:

1)    Skonfigurowana listę pozycji z kolumnami

  1. Data (kolumna typu data) – DET_Att2
  2. Dzień tygodnia (kolumna tekstowa) – DET_Att3
  3. Czy Obecny (kolumna bool’owska) – DET_Att1
  4. Komentarz (kolumna wiele wierszy) – DET_Longtext1

2)    Pole techniczne – wykorzystywane jako parametr – przy masowej na akceptacji SWE.

  1. Komentarz SWE – pole wielowierszowe, docelowo techniczne – z którego będziemy korzystać wstrzeliwując wartość w odpowiedni wiersz na liście pozycji.

Co chcemy osiągnąć?

1)    Ułatwić pracę osobom zarządzającym,

2)    Wprowadzić elastyczność i intuicyjność

Innymi słowy, chcemy dać osobie zarządzającej kartami nieobecności możliwość masowego odznaczania tego czy pracownik był w pracy, bądź dodanie odpowiedniego komentarza. Dane wprowadzane dnia 23-09-2014 będą musiały znaleźć się w wierszu listy pozycji odpowiadającemu danemu dniowi (23-09-2014).

Aby obsłużyć scenariusz aktualizacji odpowiednich rekordów w dniu aktualizacji musimy skorzystać z trybu aktualizacji rekordów.  Zapytanie SQL budowane jest w sposób analogiczny do inicjalizacji – mapujemy wartości na odpowiednie kolumny (1 as DET_Att1 itd.). Poniżej całe zapytanie.

lis2-p4

Rysunek 4. Zapytanie SQL do aktualizacji wartości.

W wyniku odpytania powyższego zapytania dla każdego zwróconego wiersza otrzymamy 1 dla atrybutu DET_Att1, wartość z pola techniczego Komentarz z SWE jako DET_LongText1. Jeśli wrócimy parę akapitów wzwyż, zobaczymy,  iż wykonaliśmy mapowanie na kolumny listy pozycji ‘Czy obecny’ oraz ‘Komentarz’.

Dalsza część zapytania wybiera rekordy które chcemy zaktualizować czyli tabela WFElementDetails (tutaj przechowywane są wszystkie rekordy list pozycji), w klauzuli WHERE mamy zawężenie na ID bieżącego dokumentu (DET_WFDID), zawężenie na odpowiednią kontrolkę listy pozycji (DET_WFCONID) oraz zawężenie na aktualizację JEDNEGO rekordu (chcemy aktualizować tylko ten który zawiera dzisiejszą datę przechowywana w kolumnie DET_Att2).

Tak przygotowaną akcję podpinamy pod wykonanie na ścieżce technicznej.

 

Konstrukcja raportu SWE.

Zbudowaliśmy funkcjonalność, teraz należy stworzyć użytkownikowi interfesj aby mógł naszą prace wykorzystać w wygodny dla siebie sposób. Aby tego dokonać tworzymy sobie dedykowany raport Show Workflow Elements (cała konfiguracja nie będzie tutaj omówiona). Skupimy się na wykorzystaniu ścieżki technicznej i masowej akceptacji.

W sekcji konfiguracji WebPartu SWE, dostajemy się do sekcji ‘Akcje i wydruki’. W części masowej akceptacji/wydruku dodajemy jeden wiersz i konfigurujemy analogicznie z poniższym zrzutem.

lis2-p5

Rysunek 5. Akcje masowe na SWE

Nazwa przycisku odpowiada za nazwę wyświetlaną akcji na raporcie. Nazwę ścieżki wybieramy po drzewku widocznym z prawej strony (wybieramy naszą [Techniczna] Zapis). W ten sposób skorzystamy ze ścieżki, która standardowo nie jest widoczna. Ostatnim elementem jest dodanie atrybutu Komentarza W tym celu w sekcji Atrybuty dodajemy rekord i wybieramy nasze techniczne pole ‘Komentarz SWE’. Całość zapisujemy i przechodzimy do raportu SWE.

lis2-p6

Rysunek 6. SWE z akcją masową 'Aktualizuj dzisiejszy dzien'

 

Aby skorzystać ze zbudowanej funkcjonalności wystarczy zaznaczyć checkboxem dokumenty które chcemy zaktualizować a następnie skorzystać z akcji ‘Aktualizuj dzisiejszy dzień’.

lis2-p7

Rysunek 7. Wykonanie akcji masowej na SWE

Po wciśnięciu przycisku akcji, pojawi nam się popup z polem Komentarz SWE (nasze techniczne pole). Uzupełniamy wartość i korzystamy z przycisku ‘Przejdź dalej’. Po skorzystaniu z akcji możemy wejść w aktualizwany przez nas dokument i zobaczyć efekty pracy.

lis2-p8

Rysunek 8. Zaktualizowany dokument przy pomocy SWE

Podsumowanie

Analogicznie jak w przypadku inicjalizacji tak i w powyższym wersja 8.0+ wychodzi naprzeciw oczekiwaniom oddając do naszej dyspozycji pomocne narzędzia. Narzędzia, które mogą stanowić prostą drogę do celu.