DMN (Decision Model and Notation) – czyli niech biznes nam powie, jak to ma działać
Nasz klient właśnie robi zamówienie za zawrotną kwotę upoważniającą go do dużego rabatu. Poza tym ma jeszcze złotą kartę klienta w naszym nowym programie lojalnościowym, a my dokładnie dziś rano otwarliśmy sezon wyprzedaży. Ile w takim razie nasz klient może dostać łącznego rabatu? Czy w ogóle powinien mieć łączone rabaty? Odpowiedź na te pytania nie jest w cale taka prosta i wymaga gruntownego przemyślenia oraz czytelnego zapisania, aby nasz system informatyczny się nie pomylił.
Z pomocą przychodzi platforma nAxiom z funkcjonalnością DMN (Decision Model and Notation). Dzięki niej projektant aplikacji może utworzyć model decyzyjny przechowujący reguły decyzyjne i wskazać, ile z nich ma być zastosowanych dla tego przypadku. Nad modelem pracujemy razem z klientem, więc w praktyce to biznes mówi nam jak to ma działać. W tym artykule zapoznamy się z koncepcją DMN i jej realizacją w nAxiom.
Modele decyzyjne DMN (Decision Model and Notation) stanowią przełom w sposobie projektowania procesu decyzyjnego, ponieważ pozwalają szybko odpowiedzieć na pytanie: jaką mój system ma podjąć decyzję w zautomatyzowanym procesie biznesowym, skoro właśnie przetwarza ten konkretny rekord od tego konkretnego użytkownika? Przyjrzyjmy się z bliska jak w Platformie nAxiom korzysta się z tej funkcjonalności i sprawdźmy ją na przykładach biznesowych. Całość wykonamy oczywiście bez kodowania.
Nie potkniemy się o próg wejścia
Model decyzyjny konfiguruje się w tabeli wpisując dane do komórek, czyli dokładnie tak jak wygląda uzupełnianie zwykłej tabeli w Excelu – bez formuł, formatowania warunkowego i innych bardzo przydatnych, ale na ten moment zupełnie zbędnych elementów.
Próg wejścia jest wiec na tyle niski, że tworzeniem warunków swobodnie mogą zajmować się decydenci biznesowi i analitycy jako osoby najlepiej rozumiejące proces biznesowy. Wiedza programistyczna jest nam tu całkowicie zbędna. Aby udowodnić, że na progu wejścia na pewno się nie potkniemy, przeanalizujmy wspólnie poniższy przykład:
Widzimy tabelę decyzyjną Obliczanie łącznego rabatu, która jest częścią modelu decyzyjnego DMN. W skład modelu wchodzi zawsze przynajmniej jedna taka tabela (może być ich więcej, gdy decyzje powinny być podejmowane w sposób hierarchiczny, a decyzja końcowa zależy od decyzji składowych).
Za jej pomocą przeanalizujemy trzy czynniki (dane wejściowe - po lewej od grubej pionowej kreski), które wpływają na sumę rabatu udzielanego klientowi. Na ich podstawie podejmiemy decyzję (dane wyjściowe - po prawej od grubej pionowej kreski). Wiersze tej tabeli to reguły decyzyjne, np. pierwsza wskazuje, że gdy klient w ciągu ostatnich 12 miesięcy zakupił produkty za więcej niż 50 000 PLN, to może otrzymać 5% rabatu. Aby wiedzieć jaką system ma podjąć decyzję, wybieramy politykę trafień (obok nazwy tabeli) i w tym miejscu otwierają się dla nas kluczowe możliwości korzystania z tabeli decyzyjnej, ponieważ możemy używać poniższych polityk trafień:
- Polityka unikalna (Unique): Zwracany jest tylko jeden wynik. Reguły są rozłączne i tylko jedna z nich, lub żadna, może zostać spełniona dla danych wejściowych.
- Polityka dowolnego trafienia (Any): Zwracany jest tylko jeden wynik. Wiele reguł może zostać spełnionych jednocześnie, spośród tych, które zwracają ten sam wynik.
- Polityka pierwszego trafienia (First): Zwracany jest tylko jeden wynik według kolejności reguł z tabeli.
- Polityka porządku reguł (Rule order): Zwracana jest lista wyników dla wszystkich spełnionych reguł zgodnie z ich kolejnością z tabeli.
- Polityka zbiorcza (Collect): Zwracana jest lista wyników dla wszystkich spełnionych reguł albo ich zagregowana wartość (suma, liczba, minimum, maximum).
Jeżeli chcemy wybrać politykę rabatową stosowaną w tym procesie, wystarczy, że wskażemy politykę trafień. Klient ma otrzymać pojedynczy rabat – wybieramy Unique. Chcemy dać możliwość zbierania rabatów – wybieramy politykę zbiorczą z opcją Suma.
Case Study 1: Sprzedaż – dynamiczne systemy rabatowe
W sektorze handlowym polityka zniżek często zależy od kombinacji wielu zmiennych, co sprawia, że ręczne naliczanie upustów jest wąskim gardłem procesu. Naszym problemem jest tu niespójne naliczanie rabatów wynikające z nakładania się promocji sezonowych, statusu lojalnościowego klienta i wartości bieżącego koszyka. Za pomocą powyższego przykładu już wiemy jak możemy zarządzić taką sytuacją. Po wdrożeniu DMN zyskujemy 100% poprawności naliczeń i natychmiastową informację dla handlowca o powodach przyznania danej zniżki.
Case Study 2: Finanse – automatyczny scoring kredytowy
Obliczanie scoringu kredytowego wymaga precyzji i szybkości. Problemem jest tu często subiektywizm ocen pracowników oraz długi czas oczekiwania na decyzję kredytową. Dzięki wykorzystaniu DMN dane wejściowe takie jak staż rynkowy, klasa branży czy zaległości płatnicze trafiają bezpośrednio do algorytmu decyzyjnego. Wybór polityki trafień unikalną gwarantującą, że każdy wniosek zostanie przypisany do jednej, ściśle określonej klasy ryzyka. Wdrożenie to pozwala na skrócenie czasu wydania decyzji do zaledwie 2 sekund przy pełnej obiektywizacji kryteriów, a w przypadku wyników niejednoznacznych, automatyczne wymuszenie ręcznej akceptacji w procesie biznesowym.
Case Study 3: Produkcja – kontrola jakości
W inteligentnych fabrykach DMN służy jako silnik interpretacji parametrów technicznych w czasie rzeczywistym. Wyzwaniem jest tu uniknięcie awarii maszyn oraz odejście od wyrywkowej, manualnej weryfikacji jakości. Za pomocą integracji nAxiom z danymi IoT przez REST API, parametry takie jak temperatura, wibracje czy odchylenia wymiarów są błyskawicznie analizowane przez model decyzyjny. Wybieramy politykę pierwszego trafienia, dzięki czemu w sytuacji przekroczenia norm (np. temperatura powyżej 105°C) system wie, że powinien natychmiast zainicjować proces serwisowy.
Jak to się robi w nAxiom?“Edytor modeli decyzyjnych DMN w wersji 1.3 jest integralną częścią platformy nAxiom. Wspierane są bardzo użyteczne polityki trafień a modele decyzyjne można wersjonować. Dzięki temu projektant aplikacji biznesowej może podczas konsultacji z klientem od razu utworzyć i przetestować reguły decyzyjne. Pracownik klienta widzi prosty, czytelny i dobrze znany interfejs, który może od razu zinterpretować, ponieważ na co dzień pracuje w aplikacjach pakietu biurowego MS Office. Prościej się nie da.” |
Analityk, Platforma nAxiom |
Skalowalność i automatyzacja
Modele decyzyjne DMN w nAxiom są wykonywane przez silnik procesowy oraz możliwe do uruchomienia na żądanie bez przechodzenia do kolejnego kroku procesu biznesowego. Oprócz prostego interfejsu fundamentalnie ważne są tu aspekty wydajnościowe. DMN ma ogromną przewagę nad tradycyjnym oprogramowaniem logiki w SQL, ponieważ przetwarza ją w pamięci operacyjnej, co drastycznie redukuje liczbę zapytań do serwera MS SQL przy masowym przetwarzaniu rekordów. Podczas gdy skomplikowane zagnieżdżone warunki SQL mogą spowalniać system, obliczenia wykonywane przez DMN zachowują wysoką wydajność nawet przy obsłudze bardzo dużych wolumenów danych.
Wyżej przedstawiałem projektowanie tabeli decyzyjnych przez interfejs graficzny, ale platforma ma też opcje dodatkowe dla przypadków niestandardowych. Zamiast tabeli decyzyjnej można utworzyć wyrażenie C#, które system obliczy tak jak tabelę i zwróci decyzję.
Podsumowanie
Nikt nie rozumie lepiej procesów biznesowych niż osoby, które na co dzień je realizują. To właśnie one powinny projektować reguły decyzyjne. Dzięki wsparciu DMN przez nAxiom jest to proste jak uzupełnianie tabeli w Excelu. Nie trzeba ich już więcej kodować, a zamiast tego można skupić się na czymś znacznie ważniejszym - zbudowaniu wspólnego zrozumienia procesu z biznesem, tworząc fundament pod prawdziwie inteligentną automatyzację.
FAQ:
Pytanie 1: Skąd model decyzyjny bierze dane do analizy?
Odpowiedź: System pobiera dane do analizy z bazy danych dla przetwarzanego rekordu albo aktualne dane wyświetlone w formularzu otwartym przez użytkownika. Można więc zarówno analizować dane w procesach w tle jak i utworzyć mechanizm do analizy danych widocznych tylko w formularzu.
Pytanie 2: Jak skomplikowane mogą być warunki w tabelach decyzyjnych?
Odpowiedź: Polityki trafień pozwalają na bardzo złożone warunki, w obrębie jednej tabeli. Tabele mogą być ułożone hierarchicznie w ramach jednego modelu decyzyjnego, tak więc można utworzyć wielopoziomowe struktury hierarchiczne. Oprócz standardowych porównań, nAxiom wspiera proste wyrażenia C# zamiast tabel. Pozwala to na budowanie zaawansowanej logiki, np. operacji na datach czy złożonych ciągach znaków.
Pytanie 3: Czy możemy używać DMN w integracjach z systemami zewnętrznymi?
Odpowiedź: Tak. Model decyzyjny DMN może być użyty jako element procesu biznesowego służącego do pobierania i analizy danych z innych systemów przez API. Możemy np. zainicjować proces, który wykona żądanie pobrania danych przez API a następnie przeanalizuje odpowiedź i skieruje proces na odpowiednie przejście.
Pytanie 4: Czy zmiana reguły w tabeli DMN wymaga restartu systemu lub pomocy programisty?
Odpowiedź: Nie. W nAxiom model decyzyjny jest publikowany jako wersja. Po zmianie reguł w edytorze i opublikowaniu nowej wersji, system natychmiast zaczyna korzystać z nowych wytycznych.
Opisz nam swój problem, a my podpowiemy, jak możesz go rozwiązać.
Każde skierowane do nas pytanie traktujemy bardzo poważnie. Jeśli przedstawisz nam swoje potrzeby, na spotkaniu wspólnie zastanowimy się, jakie rozwiązania najlepiej spełnią Twoje oczekiwania. Jeśli chcesz dowiedzieć się więcej o platformie nAxiom, opowiemy i dostarczymy Ci dodatkowe materiały. A jeśli chcesz wziąć udział w webinarium powiemy, kiedy odbędzie się najbliższe spotkanie online i jakiej tematyki będzie dotyczyć.

Jacek Mucha