Dotyczy wersji 2020.1.x; autor: Marcin Pisarek
Wstęp
Projektując procesy i poszczególne obiegi w WEBCON BPS, dobrze jest mieć świadomość, w jaki sposób przechowywane są dane w tabelach, jakie są relacje i jak poszczególne informacje wyświetlane są na formularzu.
W niniejszym artykule opisana została tabela przechowująca dane nagłówkowe – WFElements.
Relacje w tabeli
Tabela WFElements zawiera dane o wszystkich elementach (formularzach) w systemie. Przechowuje zarówno dane systemowe, jak i wartości pól formularzy zdefiniowanych w procesach. Każdy element obiegu jest jednoznacznie identyfikowany za pomocą unikalnego ID (WFD_ID).
Rysunek 1. Formularz – pola systemowe i konfigurowalne
Na powyższym obrazie (Rysunek 1) oznaczono dane następującymi kolorami:
- Czerwonym – pola systemowe, np.: ID elementu, sygnatura, proces, obieg, bieżący krok, typ formularza, data modyfikacji, data utworzenia, autor, zmodyfikowane przez, aktualna wersja dokumentu, pole komentarz.
- Niebieskim – pola zdefiniowane w procesie (konfigurowalne), np.: pola tekstowe, pola liczbowe, pola wyboru.
Klucze w tabeli WFElements:
- WFD_ID – klucz główny (ID elementu).
- WFD_STPID – ID kroku obiegu, w jakim znajduje się dany element. Klucz główny (STP_ID) w tabeli WFSteps.
- WFD_WFDID – ID elementu nadrzędnego. Klucz główny (WFD_ID) w tabeli WFElements.
- WFD_WFRID – ID punktu rejestracji. Klucz główny (WFR_ID) w tabeli WFRegisterPoints.
- WFD_COMID – ID spółki. Klucz główny (COM_ID) w tabeli Companies.
- WFD_DTYPEID – ID typu formularza. Klucz główny (DTYPE_ID) w tabeli WFDocTypes.
Przechowywanie danych
W zależności od typu danego atrybutu dane przechowywane są w odpowiednim polu w tabeli. Pole w tabeli jest niezmienne i przypisywane automatycznie podczas dodawania atrybutu w systemie.
Rysunek 2. Atrybut – pole w tabeli
Poniżej przedstawiono wybrane typy atrybutów wraz z ich odpowiednikami w tabeli WFElements:
- Pole tekstowe:
- Pojedynczy wiersz tekstu – kolumna AttText, type varchar(255)
- Wiele wierszy tekstu – kolumna AttLong, typ text
- E-mail – kolumna AttLong, typ text
2. Pola wyboru:
- Wybór Tak/Nie – kolumna AttBool, typ bit
- Pole wyboru – kolumna AttChoose, typ varchar(1000)
- Data i godzina – kolumna AttDateTime, typ datetime
- Osoba lub grupa – kolumna AttPeople, typ varchar(1000)
3. Pola liczbowe:
- Liczba całkowita – kolumna AttInt, typ int
- Liczba zmiennoprzecinkowa – kolumna AttDecimal, typ decimal(21,6)
Konfiguracja
Na potrzeby artykułu wykorzystano szablon aplikacji Zarządzanie flotą (ang. Car Fleet Management), w której w skład wchodzą dwa obiegi: Car Management, Use Registry. Obiegi te służą kolejno do rejestrowania samochodów, zgłaszania zapotrzebowania na ich wypożyczenie.
Rysunek 3. Konfiguracja obiegu „Car Management” – schemat
Prezentacja
Obieg rozpoczyna się krokiem „Registration”, w którym użytkownik uzupełnia niezbędne dane o pojeździe, a następnie przechodzi ścieżką „Move to Car Management”. Przejście dowolną ścieżką wywołuje zapis danych dla danego elementu.
Rysunek 4. Formularz – uzupełnienie niezbędnych danych
Dane w trybie odczytu formularza prezentowane są w następujący sposób:
Rysunek 5. Formularz – widok w trybie odczytu formularza po zarejestrowaniu dokumentu
Wartości części pól (daty, pola liczbowe, pola wyboru…) w tabeli WFElements są przechowywane w innym formacie od tego, w jakim wyświetlane są na formularzu danego elementu.
Poniższe zapytanie SQL zwraca wszystkie uzupełnione pola na formularzu dla powyższego dokumentu (Rysunek 4) — zarejestrowanego samochodu marki Infiniti:
Rysunek 6. Zapytanie SQL – przechowywanie danych o elemencie
Analizując wynik takiego zapytania SQL, należy zwrócić uwagę, że wartości atrybutów „Year of production” i „Fuel Type” (pola wyboru) są zapisywane w postaci „ID#Nazwa”. Pozwala to na identyfikowanie wartości za pomocą ich unikalnych ID.
Szczegółowe informacje o gotowych funkcjach SQL znajdują się w artykule:
Czy jest możliwość znalezienia w bazie danych jakie jest przypisanie danych atrybutów z tabeli WFElements do tego co się tam znajduje?
Skąd Pan wiedział, że np. WFD_AttChoose1 to YearOfProduction? Czy takie informację są gdzieś do znalezienia na bazie danych?
W WEBCON Designer Studio wchodząc w konfigurację atrybutu można zobaczyć jego ID oraz Pole (czyli np. WFD_AttChoose1 z Pańskiego przykładu).
W tabeli WFConfigurations można odnaleźć konfigurację dla danego pola filtrując zapytanie po ID z konfiguracji w Designer Studio.