Operacje na danych w WEBCON BPS

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2020.1.3.x autor: Konrad Wojtycza

 

Wprowadzenie

Częstą rozterką napotykaną podczas pracy z danymi w WEBCON BPS jest wybór sposobu dostępu do danych zamieszczonych np. w zewnętrznej bazie danych. W studio BPS dostęp i zawężenie wyświetlanych danych może zostać zrealizowane poprzez:

  1. Zdefiniowanie połączenia do danych i zapytania SQL,
  2. Utworzenie źródła danych i skorzystanie z filtrów,

W niniejszym artykule zostaną przybliżone obydwa podejścia do korzystania z danych w WEBCON BPS, różnice pomiędzy nimi a także, niebezpieczeństwa związane z konfiguracją.

 

Przykładowe dane i testowy obieg

W artykule skorzystano z danych udostępnionych przez EMSI, Economic Modeling Specialists Inc., zawierających informacje na temat zmiany struktury zatrudnienia w miastach Wielkiej Brytanii w latach 2011 i 2014, z podziałem na branże.

Wybrany arkusz danych, zawierający ponad 1300 rekordów, został zaimportowany do bazy danych UK_JOB_CHANGE (utworzonej i skonfigurowanej na potrzeby artykułu), do której dostęp posiada testowa instancja WEBCON BPS.

W testowym obiegu skonfigurowane zostały (Rys. 1):

  1. Data table – connection – atrybut typu Tabela danych, ze skonfigurowanym bezpośrednim połączeniem do bazy danych zawierającej przykładowe dane. Zapytanie SQL zdefiniowane na atrybucie zwraca wszystkie dane z tabeli EMSI_JobChange_UK.
  2. Data table – detailed query – atrybut typu Tabela danych ze skonfigurowanym bezpośrednim połączeniem do bazy danych. Zapytanie SQL zwraca dane wybrane przez szczegółowe zapytanie.
  3. Data table – data source – atrybut typu Tabela danych, ze skonfigurowanym połączeniem do źródła danych. Dane wyświetlane przez tabelę, ograniczone są poprzez użycie filtru ustawionego na tym atrybucie ze szczegółowym filtrem danych.

Rys. 1 Testowy obieg i atrybuty

 

Konfiguracja

W niniejszej sekcji opisana została konfiguracja atrybutów typu Tabela danych z wymienionymi wcześniej sposobami konfiguracji dostępu do danych.

  • Połączenie do bazy danych – ogólne zapytanie SQL

W przypadku bezpośredniego połączenia do bazy danych (Rys. 2), w polu „Data source” należy wybrać połączenie do bazy danych z zakładki „Connections” (połączenie powinno zostać uprzednio skonfigurowane w zakładce menu „Data sources”). W prezentowanym przykładzie wybrano połączenie o nazwie WDR04. W polu „SQL query” należy zdefiniować zapytanie, które ma zostać skierowane do bazy danych. W prezentowanym przypadku zapytanie zwróci wszystkie dane znajdujące się w tabeli EMSI_JobChange_UK, oznacza to, że przy ładowaniu formularza za każdym razem pobierana będzie zawartość całej tabeli danych.

Rys. 2 Konfiguracja tabeli danych z bezpośrednim połączeniem do bazy danych

 

W przypadku zapytań zwracających bardzo duże ilości danych z dużym prawdopodobieństwem napotkamy problemy wydajnościowe podczas ładowania formularza i przeglądania go. Możliwym rozwiązaniem tego problemu jest włączenie opcji stronicowania na atrybucie typu Tabela danych. Aby aktywować stronicowanie, w Zaawansowanej konfiguracji atrybutu należy zaznaczyć checkbox „Stronicowanie” oraz ustawić liczbę wyświetlanych na pojedynczej stronie wierszy (domyślnie 10) (Rys. 3).

Rys. 3 Włączenie opcji Stronicowania w konfiguracji zaawansowanej atrybutu typu Tabela danych

 

Widok formularza z Tabel danych z włączonym stronicowaniem, widoczny jest na Rys. 4.

Rys. 4 Widok formularza z atrybutem typu Tabela danych z włączonym stronicowaniem

 

Mimo zaprezentowanego rozwiązania, nie zaleca się konfigurowania w WEBCON BPS atrybutów z ogólnymi zapytaniami do bazy danych. Dotyczy to dużych, ale także relatywnie małych tabel z danymi, ponieważ należy pamiętać, że każda tabela może kiedyś rozrosnąć się do rozmiarów powodujących problemy z wydajnością podczas pobierania zawartości na formularz.

  • Połączenie do bazy danych – zapytanie SQL z warunkiem

Konfiguracja w obecnym przykładzie (Rys. 5) różni się od przedstawionej na Rys. 2 zawężeniem zapytania zdefiniowanego w polu „SQL query” poprzez dopisanie warunku WHERE. Z tabeli EMSI_JobChange_UK pobrane zostaną jedynie wiersze dla których wartość Industry = Education.

Rys. 5 Konfiguracja tabeli danych z bezpośrednim połaczeniem do bazy danych i zawężonym zapytaniem

 

Prezentacja danych wybranych przez powyższe zapytanie SQL na formularzu przedstawiona została na Rys. 6.

Rys. 6 Prezentacja danych wybranych przez zapytanie widoczne na Rys. 4 na formularzu

 

Z punktu widzenia wydajności ładowania formularza bardzo korzystne jest zawężanie ilości danych, które są wybierane poprzez zapytanie SQL. Zawężenie ilości pobieranych danych można zrealizować również poprzez użycie źródła danych z filtrem z Rys. 7.

Należy jednak pamiętać, że w przypadku konfiguracji połączenia do bazy danych i zdefiniowania zapytania (Rys. 5), możliwość edycji zapytania będzie możliwa jedynie na atrybucie należącym do konkretnej aplikacji, w odróżnieniu od rozwiązania wykorzystującego źródło danych MSSQL (Rys. 8), które będzie ogólnie dostępne w zakładce Data sources > MSSQL database. Dodatkowo, z biznesowego punktu widzenia, w razie potrzeby modyfikacji zakresu danych zwracanych przez zapytanie, osoba edytująca zapytanie SQL powinna znać składnię języka Structured Query Language.

Rys. 7 Źródło danych z zawężonym zapytaniem do bazy danych

 

Źródło danych z filtrem

Skonfigurowanie źródła danych MSSQL możliwe jest w zakładce Data sources > MSSQL database. Podczas konfiguracji źródła danych należy ustawić wykorzystywane połączenie do bazy danych pole „Connection” oraz zapytanie SQL w polu „SQL query”.

Rys. 8 Źródło danych UK Jobs Change z zapytaniem zwracającym wszystkie rekordy z tabeli EMSI_JobChange_UK

 

Na Rys. 8 zapytanie zdefiniowane w polu „SQL query” będzie zwracać wszystkie rekordy z tabeli EMSI_JobChange_UK. W przypadku korzystania ze źródła danych, ostatecznie wyświetlane rekordy mogą zostać zawężone poprzez użycie filtru (Rys. 9).

Z punktu widzenia wydajności formularza, nie jest to optymalne rozwiązanie, ponieważ podczas ładowania formularza, najpierw zostaną pobrane wszystkie rekordy z tabeli EMSI_JobChange_UK, które dopiero w kolejnym kroku zostaną przefiltrowane, a wynik filtrowania zostanie wyświetlony na formularzu. Natomiast z  biznesowego punktu widzenia, podczas korzystania z filtrów nie jest konieczna znajomość składni SQL.

Rys. 9 Konfiguracja tabeli danych i filtr danych działający na źródle danych UK Jobs Change

 

Z punktu widzenia prezentowanych danych, zastosowanie filtru z Rys. 9  zwróci takie same dane jak użycie zapytania z Rys. 7.

Rys. 10 Prezentacja danych zawężonych przez filtr widoczny na Rys. 8 na formularzu

 

Na Rys. 10 zaprezentowany został widok formularza z tabelą danych z rekordami wybranymi poprzez filtr danych.

 

Podsumowanie

  Sposób pobierania danych Wybór danych Zawężanie danych Wskazówki/ ograniczenia
Bezpośrednie połączenie Wszystkie dane zwrócone przez zapytanie SQL Na atrybucie, Przy użyciu zapytania SQL Na atrybucie, Przy użyciu zapytania SQL Unikanie zapytań zwracających szeroki zakres danych, konieczna znajomość składni SQL
Źródło danych Dane zwrócone przez zapytanie SQL Na źródle danych – przy użyciu zapytania SQL, na atrybucie – filtr danych Na źródle danych – przy użyciu zapytania SQL, na atrybucie – filtr danych Dane zwrócone przez źródło danych mogą zostać przefiltrowane przez filtr danych, znajomość składni SQL na poziomie filtru nie jest konieczna.