Silnik reguł – konstrukcja językowa [nazwa pola odnośnik].[nazwa pola]
Wprowadzenie
Wraz z wydaniem 231231 systemu AMODIT wprowadziliśmy nową konstrukcję językową do silnika reguł:
[nazwa pola odnośnika do źródła zewnętrznego].[nazwa kolumny]
albo
[nazwa pola odnośnika do procesu].[nazwa pola]
Wprowadzona konstrukcja językowa jest podobna do notacji obiektowej w językach programowania. Głównymi celami rozszerzenia silnika reguł o taką możliwość były:
- Zwiększenie czytelności kodu reguł. Dotychczas w przypadku pola typu odnośnik do procesu trzeba było (i nadal można) korzystać z wywołań funkcji Get() lub pętli: foreachcase(), forcase().
- Możliwość dostępu do danych ze źródła zewnętrznego na poziomie reguł. Takiej bezpośredniej możliwości nie było w poprzednich wydaniach systemu AMODIT. Trzeba było to obchodzić np. poprzez wykorzystanie funkcji ExecuteSQL() na tabelach, z których korzystało zewnętrzne źródło danych.
W dalszej części artykułu opisujemy, jak korzystać z tej nowej notacji.
DO CZEGO TO NIE SŁUŻY
UWAGA! Za pomocą wspomnianej konstrukcji językowej można tylko odczytać dane ze sprawy wskazanej w polu odnośnika do procesu lub z kolumny wiersza wskazanego w polu odnośnika do źródła zewnętrznego. Za pomocą tej konstrukcji nie można zmienić wartości w polach na innej sprawie lub w źródle zewnętrznym.
Patrz również rozdział „Wstawianie danych we wskazanej sprawie …” na końcu artykułu.
Założenia
Nim przejdziemy do pokazania, jak to działa, musimy przyjąć pewne założenia, że w systemie istnieją:
- zewnętrzne źródło danych;
- proces, na formularzu którego znajdują się pola odnośnika do procesu i odnośnika do źródła zewnętrznego.
Przykładowe źródło danych
Poniższy obrazek prezentuje przykładowe źródło danych:
Źródło danych posiada cztery kolumny:
- ID;
- Wydanie;
- Klasyfikacja;
- Opis.
UWAGA! Zewnętrzne źródło danych musi mieć skonfigurowaną kolumnę klucza głównego.
Konfiguracja pola typu odnośnik do źródła zewnętrznego
Na kolejnym obrazku prezentujemy ustawienia pola odnośnik do wcześniej zdefiniowanego źródła danych:
Konfiguracja pola typu odnośnik do procesu
Kolejną składową prezentowanego rozwiązania jest pole typu odnośnik do procesu:
Przykładowy formularz sprawy/procesu
Kończąc wątek założeń na poniższym obrazku przedstawiamy wynik powyższej konfiguracji, czyli formularz przykładowej sprawy:
Jak to działa?
Pobieranie danych ze źródła zewnętrznego
Na poniższym obrazku pokazujemy wynik działania przycisku reguły ręcznej „Pokaż dane ze źródła zewnętrznego”. Reguła odwołuje się do pola „Odnośnik do źródła zewnętrznego” i wyświetla zawartość trzech kolumn wiersza wskazanego w polu.
Konfiguracja reguły przycisku wygląda następująco:
Kod akcji reguły:
ShowMessage(2,"Dane ze wskazanego rekordu źródła zewnętrznego"); ShowMessage(2,"wydanie: " + [Odnośnik do źródła zewnętrznego].[Wydanie] ); ShowMessage(2,"klasyfikacja: " + [Odnośnik do źródła zewnętrznego].[Klasyfikacja] ); ShowMessage(2,"opis: " + [Odnośnik do źródła zewnętrznego].[Opis] );
Pobieranie danych ze sprawy/procesu
W przypadku pobierania danych ze sprawy wskazanej w polu typu odnośnik do procesu efekt może być taki jak na poniższym obrazku. Przycisk reguły „Pokaż dane z procesu” wyświetla dane z jednego z pól na formularzu sprawy wskazanej w polu „Odnośnik do procesu”.
Konfiguracja reguły przycisku wygląda następująco:
Kod akcji reguły:
ShowMessage(2, "Dane ze sprawy wskazanej w polu odnośnik do procesu: " + [Odnośnik do procesu].[Pole tekstowe] );
Wstawianie danych we wskazanej sprawie …
… w polu typu odnośnik nie jest możliwe. Na poniższym obrazku przedstawiamy przykładową sekwencję czynności, jakie zostały podjęte przy próbie ustawienia danych w sprawie wskazanej w polu odnośnika do procesu.
- [1] Kliknięcie przycisku reguły „Ustaw dane we wskazanej sprawie” powoduje …
- [2] … pobranie danych z pola „Pole tekstowe”.
- [3] Następnie w sprawie wskazanej w polu „Odnośnik do procesu” wartość z pkt. [2] jest wstawiana do pola „Pole tekstowe” za pomocą następującego kodu:
[Odnośnik do procesu].[Pole tekstowe] = "Dane ze sprawy " + [CaseId] + ": " + [Pole tekstowe];
- [4] Wartość w polu „Pole tekstowe” na sprawie 7189 powinno mieć wartość: „Dane ze sprawy 7187: Sprawa 7187”. Niestety operacja przypisania się nie powiodła i pozostała poprzednia wartość: „Sprawa 7189”.
Jak to zostało wspomniane we wprowadzeniu do artykułu, za pomocą tej nowej konstrukcji językowej nie można zmienić wartości w polach na innej sprawie lub w źródle zewnętrznym.