Edytor modeli decyzyjnych DMN
Podsumowanie:Edytor jest otwierany w widoku diagramu DRD (Decision Requirement Diagram), w który przebieg procesu decyzyjnego modeluje się, używając standardowych elementów notacji DMN. Elementy te są widoczne w przyborniku z lewej strony. Są to (od góry):
- blok decyzji,
- blok zmiennej wejściowej,
- blok źródła wiedzy: służy do referencji autorytatywnego źródła, na podstawie którego zbudowano daną decyzję; ten blok nie ma żadnej semantyki wykonania i jest ignorowany podczas wyliczania decyzji,
- blok modelu wiedzy (nieobsługiwany).
W tym temacie
Widok diagramu modelu decyzyjnego
Po kliknięciu przycisku Designer dla nowo utworzonej wersji modelu decyzyjnego wyświetlany jest edytor diagramów modeli decyzyjnych. W obszarze roboczym edytora jest wyświetlany blok decyzji o nazwie odpowiadającej nazwie modelu decyzyjnego. W ogólności projektowanie diagramu polega na umieszczeniu na diagramie odpowiednich bloków, nadaniu im nazw (opcjonalnie; kliknij dwukrotnie blok i wpisz nazwę), połączeniu ze sobą i zdefiniowaniu decyzji. Kliknięcie bloku na diagramie powoduje wyświetlenie menu kontekstowego z następującymi ikonami (zależnie od typu bloku):
- klucz płaski: wyświetla menu wyboru typu decyzji, dostępne wartości:
-
Decision table: tabela decyzyjna, może przetwarzać wiele reguł biznesowych dla wielu zmiennych wejściowych i zwracać wiele zmiennych wyjściowych. -
Literal expression: wyrażenie literałowe, pojedyncze wyrażenie, które zwraca jedną zmienną wyjściową typu prostego.
-
- decyzja, dane wejściowe: kliknięcie powoduje utworzenie odpowiedniego bloku i połączenie z bieżącym blokiem (w obu przypadkach połączenie jest skierowane do bieżącego bloku).
- strzałki: służą do łączenia danych wejściowych i decyzji na diagramie i pokazują przepływ zmiennych, aby zmienna wejściowa była dostępna w decyzji, blok danej wejściowej musi być połączony z blokiem decyzji.
- otwierający nawias prostokątny: komentarz do bloku, może poprawić czytelność diagramu.
- kosz: usuwa dany blok z diagramu.
Z prawej strony okna edytora wyświetlane są właściwości aktywnego bloku lub modelu decyzyjnego.
Aby opublikować wersję modelu decyzyjnego, należy w jej metadanych wskazać końcową decyzję, której wynik będzie wynikiem wykonania całego modelu. Tę decyzję wybiera sie z listy rozwijanej nazw decyzji zdefiniowanych w modelu (
Edytuj>Wywoływana decyzja). Z tego powodu, chociaż nazwy decyzji nie są obowiązkowe, finalna decyzja musi mieć nazwę, aby można było wybrać ją z listy.
Aby przejść do definicji decyzji, należy kliknąć symbol decyzji w lewym górnym rogu jej bloku. Poniżej opisano podstawowe zasady definiowania poszczególnych bloków.
Blok zmiennej wejściowej
Ten blok służy do zdefiniowania nazwy zmiennej wejściowej, która zostanie przekazana do połączonej decyzji nadrzędnej. W nAxiom dane wejściowe są przekazywane do modelu przez akcję Uruchom model decyzyjny. W definicji akcji są wyświetlane nazwy zmiennych wejściowych z modelu decyzyjnego. Nazwy zmiennych wejściowych przekazywanych przez akcję muszą być zgodne z nazwami zmiennych wejściowych w modelu. Na przykład jeśli w modelu zdefiniowano zmienną o nazwie Input1 i ma do niej zostać przekazane pole z kontekstu formularza o nazwie KwotaFaktury, należy zmapować tę nazwę zapytaniem SQL w definicji akcji:
SELECT {@KwotaFatury} AS [Input1]
Zmienne wejściowe są niemodyfikowalne; nie można im przypisać innej wartości niż przekazana do modelu.
Blok decyzji: wyrażenie literałowe
Wyrażenie literałowe może zawierać jedno wyrażenie, które zwraca pojedynczą wartość określonego typu prostego. W widoku definicji wyrażenia literałowego należy podać nazwę zmiennej wyjściowej i jej typ oraz wpisać samo wyrażenie. Przedstawione poniżej wyrażenie literałowe przypisuje zmiennej wyjściowej wartość 0, gdy zmienna dziesiatki jest równa 1 lub wartość zmiennej jednosci w przeciwnym razie.
Blok decyzji: tabela decyzyjna
Jest to tabela (macierz) zawierająca reguły, czyli warunki dotyczące zmiennych wejściowych. Jeśli reguła jest spełniona, zmiennej wyjściowej jest przypisywana określona wartość (wynik reguły). Zasadę działania ilustruje nagłówek macierzy: When: Zmienna_wej1 (AND Zmienna_wej2…) then: Zmienna_wyj1 (AND Zmienna_wyj2…). W nagłówkach kolumn należy zdefiniować zmienne wejściowe oraz zmienne wyjściowe, a w kolejnych wierszach podać reguły dla zmiennych wejściowych oraz wyrażenia do obliczenia zmiennych wyjściowych. Jedna reguła może generować wartości dla kilku zmiennych wyjściowych.
Widok pustej tabeli decyzyjnej zawiera jedną kolumnę dla zmiennej wejściowej, jedną dla zmiennej wyjściowej i jedną kolumnę adnotacji. Aby dodać kolejne kolumny zmiennych, należy klikać symbol + w kółku na pionowej linii dzielącej kolumny.
Zmienne wejściowe
Dwukrotne kliknięcie nagłówka z placeholderem Input otwiera okienko z następującymi polami:
-
Input: nazwa wyświetlana zmiennej wejściowej. -
Expression: nazwa zmiennej wejściowej (nazwa bloku danych wejściowych) lub wyrażenie operujące na tej zmiennej. -
Type: typ zmiennej wejściowej lub wyniku wyrażenia. -
Predefined values: (opcjonalnie) w przypadku gdy w regułach mają być sprawdzane tylko określone wartości zmiennej wejściowej, można je zdefiniować w tym miejscu, aby sprawnie definiować reguły.
Zmienne wyjściowe
Po dwukrotnym kliknięciu nagłówka można zdefiniować nazwę wyświetlaną zmiennej, nazwę i typ zmiennej oraz jej predefiniowane wartości, podobnie jak dla zmiennych wejściowych.
Reguły
Pod nagłówkiem tabeli decyzyjnej, w kolejnych wierszach wpisuje się reguły. Idea jest następująca: jeśli wartości zmiennych wejściowych w poszczególnych kolumnach spełniają zdefiniowane w danym wierszu warunki, zmiennej wyjściowej zostanie przypisana wartość wskazana w tym wierszu, jak na ilustracji poniżej.
Dozwolone warunki reguł dla zmiennych wejściowych zależą od typu zmiennej, a do ich wpisywania służy okienko dialogowe wyświetlane po kliknięciu ikony ołówka. Na przykład dla typu string dostępne są następujące warunki:
-
Match one: zwraca true, jeśli wartość zmiennej jest taka, jak jedna z podanych wartości -
Match none: zwraca true, jeśli wartość zmiennej jest inna niż podane wartości
Dla zmiennych typu number dostępne są warunki porównania lub przynależności do zakresu.
Operatorem nierówności jest not(), np. not(13) odpowiada nierówności !=13.
Jeśli zmienna wejściowa nie ma wartości (NULL), silnik DMN przypisze jej wartość domyślną dla danego typu (np. 0 dla wartości liczbowych). Należy mieć to na uwadze podczas projektowania decyzji. W ogólności nie można w regule sprawdzić, czy zmienna wejściowa ma wartość.
Wynik reguły, czyli wartość zmiennej wyjściowej może być literałem lub wyrażeniem. Wyrażenie może operować na wartościach zmiennych wejściowych.
Polityka trafień
Ważnym parametrem dotyczącym obliczania wyniku tabeli decyzyjnej jest polityka trafień (ang. hit policy). W zależności od wartości tego ustawienia tabela zwraca wynik dla tylko jednej reguły, dla zestawu reguł lub agregat wyników dla wielu reguł. Dostępne wartości tego parametru to:
-
Unique: reguły tabeli są rozłączne (nie pokrywają się), w przeciwnym razie jest zwracany błąd; zwracany jest wynik pasującej reguły. -
First: reguły mogą się pokrywać i są sprawdzane od pierwszej do ostatniej, zwracany jest wynik pierwszej pasującej reguły. -
Any: wszystkie pasujące reguły muszą zwracać ten sam wynik, w przeciwnym razie zwracany jest błąd; zwracany jest wynik dowolnej pasującej reguły. -
Priority: (nieobsługiwane) reguły mogą się pokrywać, zwracany jest wynik reguły o najwyższym priorytecie wartości wyjściowej; -
Collect: zwracana jest nieuporządkowana lista wartości wyjściowych obliczonych dla pasujących reguł; może być używana z funkcjami agregującymi SUM, MIN, MAX i COUNT; uwagi:- jeśli ta polityka trafień ma być używana z funkcją agregującą, tabela decyzyjna może mieć tylko jedną zmienną wyjściową (jedną kolumnę wartości wyjściowych),
- dla funkcji agregujących innych niż COUNT, zmienna wyjściowa musi być typu liczbowego lub logicznego,
- dla zmiennych wyjściowych typu tekstowego funkcja COUNT zwraca liczbę reguł jako tekst,
- agregatory SUM, MIN i MAX* mogą być używane dla zmiennych wyjściowych typu logicznego:
- funkcje SUM i MAX zwracają true, jeśli co najmniej jedna pasująca reguła zwraca true,
- funkcja MIN zwraca false, jeśli co najmniej jedna pasująca reguła zwraca false.
-
Rule order: zwracana jest lista wartości wyjściowych obliczonych dla pasujących reguł, lista jest uporządkowana w kolejności reguł w tabeli decyzyjnej. -
Output order: (nieobsługiwane) zwracana jest lista wartości wyjściowych obliczonych dla pasujących reguł uporządkowana malejąco według priorytetu zmiennych wyjściowych.