Ograniczenie liczby atrybutów

Facebooktwitterpinterestlinkedinmail
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.