Użycie CONCAT wewnątrz funkcji LIKE na potrzeby filtrowania Źródeł danych

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji: 2023 R3 i powyżej; autor: Krystyna Gawryał

 

Wprowadzenie

Wraz z wersją 2023 R3 wprowadzono możliwość wykorzystania funkcji CONCAT wewnątrz funkcji LIKE na potrzeby tworzenia zaawansowanych warunków filtrujących odnoszących się do Źródeł danych. Znajduje to szczególne zastosowanie podczas konfiguracji atrybutów typu Pole wyboru, umożliwiając zawężenie listy zwracanych wartości do tych wymaganych przez użytkownika.

Niniejszy artykuł zawiera opis funkcjonalności wraz z biznesowym przypadkiem jej użycia.

 

Podstawowe definicje i założenia funkcjonalne

LIKE i CONCAT to funkcje, które w WEBCON BPS można stosować do tworzenia reguł biznesowych, reguł formularza, zapytań SQL, pobierania wartości ze źródeł danych.

Funkcja CONCAT łączy wartości tekstowe w jeden ciąg znaków i jest dostępna wśród funkcji dedykowanych dla tekstu. Dzięki CONCAT można pobierać stałe globalne, stałe procesu, wartości atrybutów i łączyć je w bardziej rozbudowany tekst.

Przykład: CONCAT [‘06’][‘_‘][‘Małopolskie’] zwróci wartość „06_Małopolskie”.

LIKE sprawdza, czy tekst (np. wartość atrybutu) zawiera podaną wartość tekstową. Operatorami, które można użyć podczas definiowania wartości są:

  • % – zastępuje dowolny ciąg znaków,
  • _ – zastępuje pojedynczy znak,
  • [] – zastępuje pojedynczy znak z podanego zakresu,
  • [^] – zastępuje pojedynczy znak, który nie występuje w podanym zakresie.

Przykład: [‘Dane za okres 2022/2023’] LIKE [‘%2024%’] zwróci „FALSE”.

Do tej pory w definicji filtra nałożonego na źródło danych, korzystając z funkcji LIKE można było wprowadzać tylko pojedyncze wartości tekstowe, pojedyncze atrybuty formularza lub atrybuty systemowe itd.

Udostępnienie w tym miejscu również funkcji CONCAT sprawiło, że możliwe jest obecnie złożenie tekstu pobieranego z różnych elementów, a tym samym tworzenie bardziej złożonych reguł filtrujących.

 

Poniżej przedstawiono przykład wykorzystania zaktualizowanej funkcji LIKE w środowisku biznesowym.

 

Przypadek biznesowy

Producent opraw oświetlenia podstawowego przygotował dla swoich klientów katalog produktów, w którym znajduje się wykaz wszystkich opraw z rodziny Ultra LED Panel. Każdy produkt z tej rodziny został zarejestrowany w systemie za pomocą oddzielnego formularza, posiada swój unikalny numer seryjny i w katalogu przewidziana jest dla niego karta danych technicznych, która jednocześnie stanowi załącznik do takiego formularza.

Przykładowy formularz rejestracji oprawy

 

Na numer seryjny oprawy oświetleniowej składa się alfanumeryczny ciąg znaków rozdzielonych łącznikami. Każda sekcja numeru seryjnego (pomiędzy łącznikami) to oznaczenie parametru oprawy zgodnie z danymi zawartymi na formularzu. Poniżej przykład numeru seryjnego wraz z objaśnieniami:

① – rodzaj oprawy, dostępne warianty: RC – wpuszczana (recessed), SP – zwieszana (suspended),
SM – natynkowa (surface-mounted)

② – typ zasilacza, dostępne warianty: SE2 – elektroniczny, SD2 – DALI

③ – kształt i rozmiar oprawy (w mm), dostępne warianty: SQ595 – oprawa kasetonowa (square), standard europejski; SQ622 – oprawa kasetonowa (square), standard niemiecki, RE295 – oprawa prostokątna (rectangular) o wymiarach 295 x 1125 mm

④ – moc oprawy, dostępne warianty: 28W, 31W, 34W

⑤ – temperatura barwowa światła (w stopniach Kelvina, K), dostępne warianty: 3000, 4000, 6500

⑥ – kolor oprawy, dostępne warianty: WH – biały (white), BL – czarny (black), GR – szary (gray)

⑦ – współczynnik efektu olśnienia, dostępne warianty: U19, U22, U25.

W związku z powyższym numer seryjny produktu z przykładu sugeruje, że jest to oprawa wpuszczana (montowana podtynkowo), z zasilaczem elektronicznym, kasetonowa, o mocy 34 W, temperaturze barwowej 3000 K, z obudową w kolorze białym, dla której współczynnik efektu olśnienia wynosi U22.

Biorąc pod uwagę powyższe parametry i ich dostępne kombinacje, wykaz produktów będzie zawierał dokładnie 1458 opraw oświetleniowych:

 

Klient zamawiający oprawy oświetleniowe na potrzeby swojego obiektu chciałby jednak otrzymać ofertę dotyczącą opraw natynkowych (SM), z zasilaczem elektronicznym (SE2), do montażu kasetonowego (SQ595, SQ622), o mocy 34W, dowolnej temperaturze barwowej (3000, 4000, 6500), w czarnej obudowie (BL) i o dowolnym współczynniku olśnienia (U19, U22, U25).

Pracownik producenta odpowiedzialny za przygotowanie dokumentacji ofertowej ma do dyspozycji formularz „Oferta” zawierający Pole wyboru Oprawa, dla którego źródłem danych jest powyższy wykaz „ULTRA LED PANEL – Lista opraw”.
Warto nadmienić, że po wybraniu wartości tego pola, tj. numeru seryjnego oprawy oświetleniowej, automatycznie uzupełniane są wartości Nazwa produktu i Cena jednostkowa na liście pozycji Wycena, a jako załącznik do oferty pobierana i dodawana jest karta danych technicznych wskazanej oprawy.

Przykładowy formularz oferty

 

Jednak pracownik chciałby móc wybierać na formularzu wyłącznie te oprawy, które spełniają wymagania klienta. Tak więc konieczne jest skonfigurowanie odpowiedniego zapytania filtrującego dla pola wyboru Oprawa, tak aby zwracane były wyłącznie te wartości kolumny źródła danych, które spełniają określone warunki:

 

Do utworzenia takiego warunku filtrującego najskuteczniej będzie użyć funkcji LIKE, która, wykorzystując CONCAT, odpowiednie argumenty i operatory, zwróci tylko te spośród 1458 numerów seryjnych opraw, które odnoszą się do parametrów zdefiniowanych przez klienta.

Zapytanie to może wyglądać następująco:

 

Przy testowaniu zapytania zwracanych jest 18 pozycji, a po ich sprawdzeniu widać, że wszystkie spełniają założenia określone przez klienta.

 

Po zapisaniu ustawień wartości dostępne w polu Oprawa na formularzu spełniają zdefiniowane kryteria:

 

Podsumowanie

Zastosowanie funkcji CONCAT wewnątrz funkcji LIKE umożliwia tworzenie precyzyjnych zapytań zawierających wartości tekstowe, operatory oraz wartości różnych typów atrybutów. Rozwiązanie to usprawnia proces filtrowania źródeł danych oraz tworzenia reguł, które w przypadku licznych, złożonych i dynamicznie zmieniających się wartości pozwolą zautomatyzować pracę i jeszcze wydajniej zarządzać wielorekordowymi bazami danych.