Generowanie certyfikatu – wydruk PDF

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2020.1.x; autor: Franciszek Sakławski

 

Wprowadzenie

Systemy klasy Workflow dzięki swojej uniwersalności pomagają w automatyzacji wielu procesów istniejących w przedsiębiorstwie. WEBCON BPS Portal jako przedstawiciel klasy Workflow proponuje nam wiele narzędzi wspomagających zarządzanie procesami w firmie. Automatyzacja procesów biznesowych może objąć na przykład generowanie certyfikatów dla pracowników, którzy ukończyli szkolenie z danego tematu.

W niniejszym artykule zaprezentowano jak stworzyć i oprogramować proces tego typu oraz jak wygenerować i wysłać mailem certyfikat świadczący o pozytywnym ukończeniu szkolenia.

Opis procesu

Proces będzie składał się z dwóch obiegów:

  1. Obieg szkolenia – przechowujący uczestników szkolenia
  2. Obieg generowania certyfikatów – osobna instancja dla każdego uczestnika szkolenia

Dodatkowo proces będzie się posiłkował systemowym procesem Szablonów dokumentów w celu dodania szablonu certyfikatu który będziemy generować dla uczestników.

Użytkownik rozpocznie proces rejestrując instancję obiegu szkolenia w systemie. Następnie, gdy dokument będzie już zarejestrowany, zostanie wygenerowany certyfikat dla każdego uczestnika szkolenia który taki certyfikat chce otrzymać a następnie przesłany na wskazany adres email.

Przypadek biznesowy

Obiegi i formularze

Rys. 1 Obieg szkolenia

 

Na formularzu zdefiniowano kilka atrybutów przechowujących dane o szkoleniu i jego uczestnikach.

Rys. 2 Formatka szkolenia

 

Na liście przechowującej dane uczestników, przy każdym nazwisku widnieje checkbox o nazwie „Is certificate needed”. Według tego pola system będzie sprawdzał dla kogo należy wygenerować i wysłać certyfikat.

Obieg Generowania certyfikatu jest również prostym obiegiem składającym się z dwóch kroków.
Rys. 3 Obieg generowania certyfikatu

 

Formularz Generowania certyfikatu prezentuje się w następujący sposób.

Rys. 4 Formularz generowania certyfikatu

 

Konfiguracja akcji

Na obiegach zdefiniowane są 4 akcje:

  1. Na obiegu szkolenia
    1. Akcja startująca podobiegi generowania certyfikatów oraz przesuwająca je do kroku „Certificate generated”.
  2. Na obiegu Generowania certyfikatu
    1. Akcja generowania certyfikatu w formacie MS Word – .docx
    2. Akcja konwersji pliku .docx na .pdf
    3. Wysyłka certyfikatu oraz gratulacji mailem do uczestnika szkolenia

Pierwsza akcja zamieszczona jest na ścieżce wychodzącej z kroku „Training registered” o nazwie „Generate certificates”. W celu wejścia w jej konfigurację należy kliknąć dwukrotnie w krok z którego ścieżka wychodzi a następnie przejść na zakładkę „Akcje” (ang. „Actions”). Jak widzimy na screenie poniżej, jest to akcja typu Uruchom podobieg (SQL) (ang. „Start a subworkflow (SQL)”).

Rys. 5 Okno konfiguracji akcji

 

Jak można zauważyć w polu „Warunek wykonania” (ang. „Execution condition”) zagnieżdżone zostało zapytanie SQL. Wciskając ikonę trzech kropek z prawej strony napisu „SQL COMMAND” wejdziemy w konfigurację zapytania.

Rys. 6 Dodawanie zapytania ograniczającego wykonanie

 

Jako że zapytanie jest warunkiem wykonania, musi zwracać wartość typu boolean (1 – true – akcja wykona się, 0 – false – wykonanie akcji zostanie wstrzymane). Użyjemy trybu warunkowego dostępnego w języku T-SQL – IF EXISTS.

W zapytaniu sprawdzamy czy istnieje jakikolwiek wpis w naszą tabelę uczestników. Jeżeli bowiem szkolenie nie ma zarejestrowanych użytkowników nie ma sensu generowania certyfikatów.

Wpisy na listach pozycji znajdują się w tabeli WFElementDetails a odnajdziemy je po kolumnie DET_WFDID przechowującej ID elementu na którym znajduje się dana lista. Jako że na naszym dokumencie znajduje się tylko jedna lista nie musimy zawężać zapytania do typu listy. Każdy zwrócony wpis dla danego elementu będzie instancją danej listy.

Jeżeli czytając ten artykuł nie znasz języka SQL zamieszczę poniżej przetłumaczenie zapytania na język polski. Jeżeli jednak rozumiesz co znajduje się na screenie, zachęcam do pominięcia następnego akapitu.

Zapytanie SQL przedstawione wyżej można by przetłumaczyć w następujący sposób:
„Jeżeli na dokumencie istnieje jakikolwiek wpis w tabelę WFElementDetails, zwróć proszę 1(true), jeżeli nie ma takich wpisów zwróć 0(false)”.

Po zdefiniowaniu warunku wykonania możemy przejść do konfiguracji akcji. W tym celu klikamy przycisk „Konfiguruj” (ang. „Configure”) w prawym dolnym rogu okna akcji.

Rys. 7 Zakładka „Podstawowa” konfiguracji akcji

 

Na zakładce „Podstawowa” (ang. „Basic”) wybieramy który obieg ma się rozpocząć oraz jaką ścieżka ma wyjść z pierwszego kroku. Jak widzimy na screenie powyżej wybieramy obieg Generowania certyfikatu i domyślną, jedyną ścieżkę „Generate certificate”. Na dole okna znajduje się lista wyboru „Sposób wystartowania obiegów” (ang. „Workflows start mode”) zostawiamy w niej opcję domyślną – „Jako podobiegi aktualnego elementu” (ang. „As a subworkflows of current instance). Jest to ważne, ponieważ dzięki tej opcji obiegi podrzędne wobec naszego będą widniały z prawej strony ekranu na panelu informacyjnym. Następnie przechodzimy na zakładkę Dane (ang. „Data”).

Jako że akcja uruchamia podobieg (SQL) musimy stworzyć kolejne zapytanie informujące system o ilości podobiegów do wystartowania oraz jakie dane mają się znajdować w stworzonych elementach.

Rys. 8 Zapytanie SQL zwracające dane do utworzenia podobiegów

 

Zapytanie może wydawać się niejasne ze względu na użycie tagów. Jednak nic bardziej mylnego. Tagi pomagają użytkownikowi zorientować się w zapytaniu.

Więcej o użyciu tagów przy konstruowaniu formularzy i ich konfigurowaniu możemy poczytać w już opublikowanym artykule: https://kb.webcon.pl/tagi-w-bps/.

Zapytanie SQL przedstawione na screenie definiuje pola które mają się znaleźć w nowej instancji obiegu. W ten sposób z dokumentu szkolenia przepisujemy pola dotyczące firmy, uczestnika oraz szkolenia i wpisujemy je w odpowiadające pola na formularzu Generowania certyfikatu.

Dodatkowo warto zajrzeć w klauzulę WHERE na zapytaniu. Pierwszy warunek jest taki sam jak w naszym zapytaniu zdefiniowanym na Warunku wykonania akcji, natomiast drugi warunek definiuje czy użytkownik na liście uczestników potrzebuje certyfikatu. Jeżeli checkbox jest zaznaczony oznacza to, że dla danego użytkownika certyfikat zostanie wygenerowany.

Przejdźmy więc do akcji zdefiniowanych na obiegu Generowania certyfikatów.

Pierwsza akcja jest wygenerowaniem pliku .docx z wpisanymi danymi z formularza. Przed skonfigurowaniem akcji musimy zrobić jeszcze 2 czynności:

  1. Utworzyć szablon dokumentu przy użyciu dodatku WEBCON BPS do programu MS Word.
    Omówione w artykule: https://kb.webcon.pl/dodatek-webcon-bps-do-ms-word/
  2. Dodać szablon do obiegu szablonów dokumentów.

Omówione w artykule: https://kb.webcon.pl/sposoby-przechowywania-szablonow-dokumentow/#a2 a dokładnie w rozdziale „Proces słownikowy dla wzorców dokumentów”

Utworzono szablon certyfikatu prezentujący się w następujący sposób:

Rys. 9 Certyfikat ze skonfigurowanymi polami

 

A następnie dodano go do obiegu szablonu dokumentów i skopiowano jego numer GUID (Globally Unique Identifier) znajdujący się w górnej części formularza.

Rys. 10 Formularz szablonu dokumentu

 

Mając za sobą powyżej opisane czynności możemy przejść do konfiguracji obiegu. Pierwsza akcja jest akcją typu „Generuj/Aktualizuj plik Word” (ang. „Generate/Update a Word file”).

Rys. 11 Okno konfiguracji akcji

 

Wciśnij przycisk „Konfiguruj” (ang. „Configure”). Na zakładce „Szablon” (ang. „Template”) z listy rozwijanej „Tryb działania” (ang. „Mode”) wybieramy opcję „Nowy plik” (ang. „Create new file”), z listy rozwijanej „Wybór szablonu” (ang. „Template”) wybieramy opcję „Z procesu szablonów dokumentów” (ang. „From document templates process”). W pole „Szablon dokumentu” (ang. „Document template”) wpisujemy „/DOCTEMP/” + Numer GUID który skopiowaliśmy z naszego szablonu dokumentów kilka chwil wcześniej.

Rys. 12 Konfiguracja generowania pliku .docx

 

Następnie należy przejść na zakładkę „Wynik” (ang. „Output”) i zaznaczamy checkbox „Zapisz jako załącznik” (ang. „Save as attachment”) w polu poniżej „Nazwa pliku” (ang. „File name”) wpisujemy nazwę jaką chcemy by widniała przy wygenerowanym certyfikacie. Można posiłkować się danymi z formularza korzystając z panelu w prawej części okna.

Rys. 13 Konfiguracja generowania pliku .docx

 

W kolejnej akcji należy przekonwertować plik do formatu .pdf. W tym celu udajmy się do jej konfiguracji. Jedynym polem które musimy zmienić jest pole „Konwertuj” (ang. „Convert”) na wartość „Tylko najnowszy załącznik” (ang. „The newest attachment”)

Rys. 14 Konfiguracja konwersji pliku do formatu .pdf

 

Należy wspomnieć iż akcja konwertuj Word na PDF dodaje do załączników kolejny plik nie usuwając poprzedniego. Dlatego po udanej konwersji do naszego dokumentu powinny być przyczepione dwa pliki – oryginał w formacie .docx oraz konwersja w formacie .pdf.

Ostatnią akcją jest wysłanie konfigurowalnego maila do uczestnika szkolenia wraz z certyfikatem w formacie .pdf.

W konfiguracji akcji na zakładce „Odbiorcy” (ang. Recipients”) zaznaczamy checkbox z lewej strony pola „Zawsze do (osoby)” (ang. „Always to (people)”) a następnie w edytorze wyrażenia wybieramy „Atrybuty formularza” (ang. „Form fields”) -> „Participant” -> „Email”.

Rys. 15 Konfiguracja akcji wysyłania maila

 

Następnie przechodzimy na zakładkę „Treść wiadomości” (ang. „Message content”) i ustawiamy treść maila według preferencji. Możemy posiłkować się edytorem z prawej strony ekranu w celu zamieszczenia w mailu danych z formularza.

Rys. 16 Konfiguracja akcji wysyłania maila – treść

 

Po uzupełnieniu treści przechodzimy na zakładkę „Załączniki” (ang. „Attachments”) i z listy rozsuwanej „Załączniki” wybieramy opcję „Wyślij ostatni” (ang. „Send last”). W ten sposób zostanie wysłany ostatni wygenerowany załącznik czyli w naszym przypadku certyfikat w formacie .pdf.

Rys. 17 Konfiguracja akcji wysyłania maila – załącznik

 

W ten sposób skonfigurowaliśmy proces, możemy przejść do przetestowania rozwiązania.

Prezentacja obiegów

Zaczniemy od zarejestrowania obiegu szkolenia i uzupełnienia danych.

Jak widzimy obieg stoi na kroku „Training registrated”. Wciśnijmy więc przycisk „Generate certificates”. Jeżeli wszystkie akcje na obiegu zostały poprawnie skonfigurowane system powinien wygenerować dokument dla każdego uczestnika zdefiniowanego na liście z zaznaczonym checkboxem „Is certificate needed” a następnie wysłać maila z poprawnie wygenerowanym certyfikatem ukończenia szkolenia.

Rys. 18 Formatka szkolenia

 

Po wykonaniu akcji na panelu informacyjnym z prawej strony powinny pojawić się dwa (bo było dwóch uczestników) linki do dokumentów reprezentujących certyfikaty dla uczestników.

Rys. 19 Panel informacyjny elementu (prawa strona formatki)

 

Jak widzimy na powyższym screenie dokumenty wygenerowały się poprawnie. Wejdźmy więc w jeden z nich i sprawdźmy poprawność danych.

Rys. 20 Formatka Generowania certyfikatu

 

W sekcji załączników widnieją dwa dokumenty. Jeden w formacie .docx drugi w .pdf. Dodatkowo poprawnie wysłał się konfigurowalny email z załącznikiem.

Rys. 21 Email z wygenerowanym certyfikatem

 

Sprawdźmy jeszcze, czy certyfikat który dostałem został poprawnie wygenerowany.

 

Certyfikat prezentuje się dobrze. Oznacza to, że cały proces został zakończony sukcesem.

Podsumowanie 

Na powyższym przykładzie możemy zaobserwować, że dzięki poprawnie skonfigurowanym akcjom w systemie ingerencja człowieka w proces jest znikoma. Tak naprawdę ogranicza się do uzupełnienia danych i dwukrotnym przejściu ścieżka obiegu. Całą „czarną robotę” robi system.

Proces generowania certyfikatów do szkolenia jest również świetnym przykładem tego jak różnorodne działania przedsiębiorstwa mogą być automatyzowane. O ile szkolenie dla dwóch uczestników wydaje się błahostką to wyobraźmy sobie ręczne wysyłanie certyfikatów dla grupy 50 osób lub więcej.