Dotyczy wersji 2020.1.x; autor: Marcin Pisarek
Wprowadzenie
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 WFElementDetails.
Relacje w tabeli
Tabela WFElementDetails zawiera wszystkie wiersze z list pozycji, w tym dane wprowadzane przez użytkowników oraz dane systemowe. Każdy wiersz listy pozycji jest jednoznacznie identyfikowany za pomocą unikalnego ID (DET_ID).
Dane systemowe, jakie są przechowywane w tabeli WFElementDetails, to np.:
- data wstawienia wiersza (DET_TSInsert),
- data aktualizacji wiersza (DET_TSUpdate),
- wersja elementu (DET_Version),
- autor (DET_CreatedBy),
- zmodyfikowane przez (DET_UpdatedBy).
Wybrane klucze w tabeli WFElementDetails:
- DET_ID – klucz główny (ID wiersza).
- DET_WFDID – ID elementu. Klucz główny (WFD_ID) w tabeli WFElements.
- DET_WFCONID – ID listy pozycji. Klucz główny (WFCON_ID) w tabeli WFConfigurations.
Przechowywanie danych
Każdy atrybut w WEBCON BPS ma przypisany swój unikalny identyfikator. Ten identyfikator często wykorzystywany jest podczas konfigurowania obiegów z atrybutami typu Lista pozycji.
Rysunek 1. Lista pozycji – identyfikator
W zależności od typu danej kolumny listy pozycji dane przechowywane są w odpowiednim polu w tabeli. Pole w tabeli jest niezmienne i przypisywane automatycznie podczas dodawania kolumny listy pozycji w systemie.
Rysunek 2. Kolumna Listy pozycji – pole w tabeli
Poniżej przedstawiono wybrane typy kolumn listy pozycji wraz z ich odpowiednikami w tabeli WFElementDetails:
- Pola tekstowe:
- Pojedynczy wiersz tekstu – kolumna Att, typ varchar(1000) / nvarchar(1000).
- Wiele wierszy tekstu – kolumna LongText, typ text.
- Pola wyboru – kolumna Att, typ varchar(1000) / nvarchar(1000).
- Pola liczbowe – kolumna Value, typ decimal(21,6).
Prezentacja
Na potrzeby tego artykułu wykorzystano dokument opisywany w ramach artykułu o przechowywaniu danych w tabeli WFElements na przykładzie obiegu „Car Management”:
Rysunek 3. Formularz – widok w trybie odczytu formularza dla dokumentu obiegu „Car Management”
W trybie edycji formularza uzupełnione zostały wiersze w liście pozycji „Report of service events”:
Rysunek 4. Formularz – Lista pozycji „Report of service events”
Po przejściu ścieżką „Make available” – prowadzącej do następnego kroku, w którym formularz jest w trybie do odczytu – dane na formularzu przedstawiają się w następujący sposób:
Rysunek 5. Formularz – Uzupełniona lista pozycji „Report of service events”
Wartość wyświetlana w kolumnie ID (Lp.) nie jest zapisywana w bazie danych, służy tylko do określenia kolejności wierszy. Kolumna ta jest wyświetlana po zaznaczeniu opcji „Pokazuj kolumnę Lp.” w konfiguracji atrybutu typu Lista pozycji.
Poniższe zapytanie SQL zwraca wszystkie uzupełnione dane z listy pozycji „Report of service events” dla omawianego dokumentu:
Rysunek 6. Zapytanie SQL – przechowywanie danych atrybutu typu Lista pozycji
Przykładowe zapytanie zwracające informacje o wizytach serwisowych — wraz z informacją o danym samochodzie — w przeciągu ostatnich 30 dni:
Rysunek 7. Zapytanie SQL – wyświetlenie wszystkich wizyt serwisowych w przeciągu ostatnich 30 dni
Powyższy przykład przedstawia możliwy sposób otrzymania, zarówno danych z pól formularza, jak i danych z listy pozycji.
Kiedy wprowadzicie w listach pozycji dane liczbowe typu całkowitego? Obecnie dane trzeba przechowywać w wartościach typu decimal co w przypadku dużych baz danych ma istotny wpływ na wydajność systemu