Dotyczy wersji 2020.1.x; autor: Piotr Poniedziałek
Wprowadzenie
Z każdą wersją W BPS, pojawiają się nowe funkcjonalności, które pozwalają na wdrażanie coraz bardziej skomplikowanych i rozbudowanych procesów. Często jednak rozwinięcie procesu, wiąże się ze zwiększeniem liczby wykorzystanych atrybutów, mimo, że nie zawsze jest to konieczne. Więcej informacji na temat można znaleźć w artykule WEBCON BPS – Ograniczenia ilość pól i kolumn.
Artykuł ten podsumowuje ograniczenia ilościowe atrybutów w wersji WEBCON BPS 2020 oraz przedstawia dobre praktyki w planowaniu i konfiguracji procesów – tak aby tych limitów nie osiągnąć.
Wszystkie poniższe ograniczenia wynikają bezpośrednio ze struktur tabel SQL: WFElements (dla pól formularza) oraz WFElementDetails (dla list pozycji).
Tabele limitów
Pola globalne formularza
Limit globalnych pól formularza, dotyczy całej konfiguracji systemu. Oznacza to, że niezależnie od liczby procesów, obiegów i ich atrybutów może istnieć tylko tyle pól globalnych, ile zostało podanych w tabeli poniżej.
Typ pola globalnego | Maksymalna ilość |
Data | 5 |
Tekstowe | 10 |
Wyboru | 10 |
Pola formularza
Poniższe zestawienie odnosi się do limitów pojedynczego procesu. Liczba obiegów w procesie nie wpływa na limity poszczególnych rodzajów pól.
Typ pola | Maksymalna ilość |
Tekstowe | 80 |
Tekstowe – wielowierszowe | 25 |
Liczba całkowita | 30 (łącznie)* |
Ankietowe – ocena w skali | |
Liczba zmiennoprzecinkowa | 50 |
Wyboru | 90 (łącznie)* |
Ankietowe – wybór opcji | |
Data | 50 |
Tak / Nie | 20 |
Osoby | 15 |
Wiersz danych (SQL Row) | Bez ograniczeń |
Tabela danych (SQL Grid) | Bez ograniczeń |
Wykres | Bez ograniczeń |
Mapa Google | 3 |
Wykres Gantta | 2 |
Grafik urlopowy | 1 |
Podsumowanie urlopów | 1 |
Kontrolka użytkownika (SDK) | Bez ograniczeń |
Lista pozycji | Bez ograniczeń |
*Pola ankietowe dzielą limity z innymi rodzajami pól formularza, ponieważ są jedynie reprezentacją tych rodzajów atrybutów. Jeżeli w procesie istnieje już 30 pól liczb całkowitych, niemożliwe jest dodanie pola ankietowego (oceny w skali). To samo dotyczy pól wyboru oraz pól ankietowych (wybór opcji).
Kolumny listy pozycji
Chociaż liczba list pozycji na formularzu nie jest ograniczona, każdy z typów kolumn listy pozycji również posiada limit. W tym wypadku natomiast, liczba typów kolumn jest dodatkowo ograniczona przez sumowanie kolumn tekstowych z kolumnami wyboru. Połączenie takie pozostawia jednak możliwość decyzji, których kolumn powinno być więcej w konfigurowanej liście pozycji.
Typ kolumny | Maksymalna ilość |
Tekst – wiele wierszy | 5 |
Liczba zmiennoprzecinkowa | 30 |
Tekst oraz pole wyboru (niezależnie od jego rodzaju)* | W sumie 40 |
Wiersz danych (SQL Select) | 5 |
*W przypadku listy pozycji, pola tekstowe oraz pola wyboru przechowywane są w kolumnach tego samego rodzaju (DET_AttX) pod jednym typem danych – varchar.
Dobre praktyki
Istnieje kilka sposób na upewnienie się, że limity pól nie zostaną osiągnięte. Poniżej znajduje się lista technik, pozwalająca na takie planowanie i konfigurację procesów, aby nie osiągnąć limitów atrybutów, a nawet aby pozostawić pewien margines na ewentualną rozbudowę procesu lub pola techniczne.
- Wykorzystanie pól globalnych – jeśli niektóre pola pojawiają się w wielu procesach oraz spełniają podobną funkcję, warto rozważyć zamianę pojedynczych pól formularza w pola globalne. Dobrym przykładem zastosowania pola globalnego jest pole „Kontrahent”, który zwykle jest wybierany w wielu procesach, ale posiada ten sam zbiór danych. Dodatkowo, ustawienia pola globalnego można nadpisać w obrębie każdego procesu.
- W przypadku, gdy pola formularza pełnią wyłącznie funkcję informacyjną (np. wyświetla dane z innego obiegu), powinny zostać zastąpione przez atrybuty typu wiersz danych lub tablica danych. Atrybuty te nie posiadają ograniczeń a przy okazji mogą znacznie zmniejszyć czas ładowania formularza (np. gdy zastępują listę pozycji).
- Jeśli główny obieg systemu jest bardzo skomplikowany oraz jest wspierany przez kilka obiegów zależnych, można rozdzielić je na dwa oddzielne, ale wciąż powiązane procesy.
- Warto upewnić się czy utworzenie pól, które służą jedynie do obliczania innych atrybutów lub sterowania akcjami (np. pola techniczne) jest uzasadnione. W większości przypadków wartość z takiego pola (jeśli nie jest wykorzystywana w wielu miejscach) można bezpośrednio pobrać i zapisać w regułach biznesowych.
- Tak samo jak w pkt. 2, zamiast tabeli danych można skorzystać z listy pozycji, która zastąpi kilka pól formularza kolumnami. Jednak regularne stosowanie tej metody i dodawanie wielu list pozycji w celu obejścia limitów może znacznie wydłużyć czas ładowania formularza oraz utrudnić realizację innych funkcji systemu.
Ogólne uwagi do powyższych porad i limitów:
Pomimo tego, że listy pozycji oraz tabele danych nie posiadają ograniczeń, wykorzystanie ich w nadmiarze może doprowadzić do znacznego wydłużenia ładowania formularza i redukcji wydajności. Szczególnie jeśli lista pozycji posiada wiele wierszy, a tabela danych wywołuje skomplikowane zapytanie.
Grupy atrybutów oraz panele wraz z zakładkami w żaden sposób nie wpływają na ograniczenia pól formularza.
Tryb działania oraz podtyp pola wyboru nie mają wpływu na limit.
Podsumowanie
Jak widać istnieje wiele technik i możliwości minimalizowania liczby atrybutów w pojedynczych procesach. Wielkie znaczenie ma również odpowiednie zaplanowanie systemu i rozdzielenie jego logicznych części składowych między zależne procesy. Stosując się do powyższych zaleceń, obecne limity atrybutów powinny być wystarczające nawet dla najbardziej skomplikowanych systemów.