dotyczy wersji 2016.1.x; autor: Damian Matuła
W niemalże każdym procesie biznesowym występują tzw. „aktorzy” : Twórcy dokumentu(np. pracownik rejestrujący delegację), akceptanci(przełożony w urlopach, Księgowy w dokumencie kosztowym) i wszystkie inne osoby ,które biorą udział ,lub których dotyczy proces(np. osoby współtworzące procedury obowiązujące w firmie).
W WEBCON BPS istnieje kilka sposobów tworzenia pól przechowujących informację o osobie :
- Pole wyboru, którego źródłem jest cachowana z Active Directory(AD) tabela lub zewnętrzne źródło.
- Pole osoby
- Pole wyboru, którego źródłem są użytkownicy domenowi ( bezpośrednio z AD).
W artykule „podstawy cache-ad” opisany został proces mapowania atrybutów z usługi Active Directory do tabeli CacheOrganizationStructure wykorzystywanej przez WEBCON BPS.
W tym artykule przybliżę inny sposób na pobieranie danych z AD. Metoda ta będzie łatwa nawet dla osób, które nie posługują się językiem SQL.
Podstawowe różnice między źródłem opartym na tabeli CacheOrganizationStructure, a źródłem z zasobów AD.
CacheOrganizationStructure | AD | |
Sposób pobierania danych | Cyklicznie o określonych godzinach serwis programu WEBCON BPS synchronizuje dane z AD zapisując je(aktualizując) w tabeli CacheOrganizationStructure w bazie danych. | Dynamicznie wywoływana jest funkcja zwracająca dane zgodnie określonymi parametrami. |
Wydajność | Duża, ogranicza się do odczytu z tabeli SQL. | Mniejsza, każde użycie źródła wymaga wywołania funkcji pobierającej dane. Wolniejsze. |
Ilość danych | Ilość kolumn jest niewielka w stosunku do ilości atrybutów w AD. Zawiera najczęściej wykorzystywane dane, aby zsynchronizować dane z atrybutu, który nie ma domyślnej kolumny, należy zmapować go do jednej z 30 dodatkowych kolumn COS_ExtensionAttribute [1-30] | Dane pobierane dynamicznie, nie ma potrzeby przechowywania danych w bazie. |
1 .Tworzenie źródła danych z AD
Aby utworzyć źródło danych osoby z usługi Active Directory, w WEBCON BPS Designer Studio przechodzimy do zakładki „źródła danych”. Spośród dostępnych szukamy „Użytkownicy domeny”, a następnie tworzymy nowe klikając ikonę „Nowy”. Nasze źródło nazwiemy „Pracownicy”
Rysunek 1 Widok na konfigurację źródła danych „Użytkownicy domenowi”
2.Konfiguracja.
User story.
Chcę zbudować proces dla osób zarządzających projektami, ale w taki sposób aby każdy z nich mógł wybierać tylko spośród własnych podwładnych oraz siebie. Zmniejszy to liczbę wyników oraz ograniczy omyłkowy wybór osób.
Aby osiągnąć wyżej opisany cel, możemy użyć jednego z istniejących zapytań lub też utworzyć własne(Rys.2). Budowanie zapytań do źródła AD (LDAP) opisane zostało w dodatku niżej.
Rysunek 2 Sekcja ustawienia pozwala na filtrowanie zwracanych wierszy.
W naszym przypadku wybieramy „Bezpośredni podwładni zalogowanego użytkownika(dołącz użytkownika)”
Sekcja kolumn
Aby wybrać kolumnę, która ma zostać zwrócona, zaznaczamy widoczny obok niej checkbox.
Istnieje możliwość dodania kolumny z wartością z atrybutu z AD. W tym celu klikamy w ikonkę ’+’
Następnie uzupełniamy nazwę atrybutu z Active Directory, który chcemy zmapować oraz opcjonalnie go opisujemy (Rys.3).
W konfiguracji na załączonym zrzucie ekranowym dodane zostały atrybuty title( stanowisko/typ pracy) oraz employeeid(w którym klient przechowuje ID z zewnętrznego systemu ERP)
Dodatkowe kolumny ułatwią wyszukiwanie pracowników, którym będziemy przydzielać zadanie.
W konfiguracji wybrano również kolumny które nie są używane w przykładowym obiegu( departament, description…) mogą jednak być przydatne w innych procesach.
Szczegółowa dokumentacja konfiguracji tego typu źródła danych znajduje się w pomocy programu WEBCON BPS Designer Studio.
W dodatku 2 opisana została część atrybutów z AD, które mogą zostać użyte przy tworzeniu tego rodzaju źródeł .
3.Wykorzystanie
Źródło takie możemy wykorzystać do zasilenia :
- pola z wyszukiwaniem SharePoint Picker
- listy z autouzupełnianiem
Ze względu na wydajność, nie zalecamy używania źródła jako słownik dla listy rozwijanej.
Rysunek 4 Typu pola wyboru
Na potrzeby procesu dodajemy pola tekstowe (Rys. 5,6) :
- Mail ( z adresem mailowym )
- ERP ID ( Numer pracownika z systemu ERP)
- Stanowisko (Tytuł bądź stanowisko pracy)
Oraz pole „Pracownik” typu SharePointPicker zasilone utworzonym przez nas źródłem danych „Pracownicy”(Rys. 7)
Rysunek 5 Tworzenie pola tekstowego
Rysunek 6 Utworzone pola tekstowe
Rysunek 7 Utworzenie pola wyboru
W konfiguracji( przycisk „Konfiguracja zaawansowana”) ostatniego konieczne jest zdefiniowanie kolumny z unikalnym identyfikatorem osoby , oraz nazwy jaka będzie wyświetlana na formularzu.
Jako identyfikator osoby, możemy użyć loginu domenowego lub też numeru ERP ( np. w sytuacji gdy proces będzie integrował się z zewnętrznymi systemami , w których identyfikowany jest tylko przez wspomniany wyżej numer – sytuacja występująca często w np. procesach urlopowych ) .
Rysunek 8 Konfiguracja pola „Pracownik”. Według widocznych ustawień pola „mail”, „ERP ID” oraz „Stanowisko” zostaną automatycznie wypełnione danymi z AD na podstawie wybranego użytkownika.
Ponadto wybieramy interesujące nas kolumny, jeśli wartości powinny zostać przekazane do innych pól(Rys.8,9,10 ) uzupełniamy kolumnę „pole docelowe” (wartości zostaną automatycznie uzupełnione na formularzu) oraz zaznaczamy odpowiednie checkboxy dotyczące widoczności kolumny w oknie wyszukiwania oraz tego czy system ma szukać dopasowania na jej podstawie.
Rysunek 9 Okienko wyszukiwania SharePoint Picker, pole „Pracownik”.
Rysunek 10 . Po wybraniu pracownika, pola na formularzu zostają automatycznie uzupełnione
-
Dodatek 1. Filtrowanie przez zapytania LDAP*
Jeśli potrzebujemy zawęzić zwracane dane możemy użyć filtrowania.
Jako rodzaj zapytania należy wybrać „niestandardowe”.
Sposób budowania zapytań :
(Atrybut_AD parametr argument)
Proste zapytanie ‘=’
(Argument=wartość)
Np. (title=Manager)
Alternatywa ‘|’
(|(Argument1=wartość1) (Argument2=wartość2))
Np. (|(title=Manager)(Division=Management))
Koniunkcja ‘&’
(&(Argument1=wartość1) (Argument2=wartość2))
Np. (&(title=Manager)(Division=Management))
Negacja ‘!’
(!Argument=wartość)
Np. (!title=Manager)
Wartość dowolna ‘*’
(!Argument=*) zwróci wszystkie niepuste
(!Argument=ab*) zwróci wszystkie zaczynające od ‘ab’
Np. (&(l=*sk)(streetaddress=*)) zwróci zasoby z miast kończących się na ‘sk’ z uzupełnionym adresem.
Większy/mniejszy ‘<’ ,’>’,’>=’,’<=’
(Argument>n)
Np. (logoncount>50) zwróci konta osób, które logowały się więcej niż 50 razy.
5.Dodatek 2. Opis części atrybutów z AD
Poniżej znajdują się przykłady atrybutów z Active Directory.
Część z nich jest nieobligatoryjna, istnieje więc prawdopodobieństwo, że atrybut jest nieuzupełniony.
Nazwa atrybutu w AD | Opis |
Displayname | Nazwa wyświetlana |
Sn | Nazwisko |
Name | Nazwa w postaci ‘Imię nazwisko’ |
Givenname | Imię |
Company | Organizacja/Firma |
Countrycode | Kod kraju |
Title | Stanowisko |
Department | Dział |
Info | Informacja o koncie AD |
Homedirectory | Folder domowy użytkownika |
Lastlogon | Data ostatniego logowania |
Lastlogontimestamp | Ostatnia aktywność |
Logoncount | Liczba logowań |
Whenchanged | Ostatnia modyfikacja |
Whencreated | Kiedy utworzono |
Comment | Komentarz |
Login | login w formacie DOMENA\login |
Description | Opis konta z AD |
samaccounttype* | Typ konta |
Mobile | Telefon komórkowy |
Homephone | Telefon |
Pager | Pager |
physicalDeliveryOfficeName | Adres biura |
Postalcode | Kod pocztowy |
Localeid | Kod regionu, np. kraju, miasta itd. |
St | Jednostka administracyjna(stan/województwo…) |
Streetaddress | Ulica nr |
Postofficebox | Skrzynka pocztowa |
telephonenumber | Telefon |
Wwwhomepage | Strona WWW |
Employeetype | Typ wykonywanej pracy |
employeeID | ID pracownika |
l | Lokalizacja(np. miasto) |
*COS_AD_samaccounttype – pole przydatne do odfiltrowania kont użytkowników od innych zasobów.
Aby zapytanie zwróciło wyłącznie rekordy z kontami użytkowników należy dołączyć
(Samaccounttype=805306368)