Blok decyzyjny
Podsumowanie:Blok decyzyjny pozwala uzależnić przebieg procesu od warunku zdefiniowanego w zapytaniu SQL określonym w właściwościach bloku. Zapytanie musi zwrócić nazwę jednego z przejść wychodzących z bloku. Alternatywnie, do wyboru przejścia można użyć akcji Web Service. Blok decyzyjny nie ma przypisanego żadnego statusu. Kiedy dokument uzyska status bloku umieszczonego bezpośrednio przed blokiem decyzyjnym zostanie wykonane zapytanie SQL, które zwróci nazwę przejścia, odpowiednio do wyniku warunku. W ten sposób można parametryzować przebieg procesu. Na przykład w przypadku faktur można skonstruować warunek, który spowoduje, że faktury z kwotą powyżej pewnego limitu będą kierowane do akceptacji przez osoby z przypisaną rolą kierowniczą, podczas gdy dla faktur z kwotą niższą ten krok będzie pomijany.

Oprócz właściwości opisanych osobno, dla bloku decyzyjnego konieczne jest określenie specyficznych właściwości.
-
Akcja Web Service
: włącz ten przełącznik, aby nazwa przejścia była wybierana przez zapytanie SQL zdefiniowane w akcji Web Service wybranej z listy rozwijanej; w tym przypadku wybór przejścia można uzależnić od danych zwróconych z systemu zewnętrznego; patrz także Zapytania do webserwisów . -
Kierunek przejścia
: w tym polu wpisz kod zapytania SQL, które zwróci nazwę przejścia w zależności od wyniku wyrażenia warunkowego użytego w zapytaniu; kliknij przyciskKonstruktor zapytania
, aby skonstruować zapytanie przy użyciu konstruktora (wynikowy kod SQL zostanie wyświetlony w polu tekstowym, gdzie można go modyfikować); patrz Okno Konstruktor SQL - definiowanie warunków przejść bloku decyzyjnego .
Przykłady:
W przypadku, gdy wartość pola Kwota w dokumencie biznesowym przekracza 300, dokument zostanie skierowany do akceptacji, w przeciwnym razie zostanie zatwierdzony automatycznie.
SELECT
CASE
WHEN ({@Kwota} > 300)
THEN 'do kontroli'
ELSE 'zatwierdź automatycznie'
END
W przypadku, gdy po przemnożeniu wartości z pola Kwota przez kurs średni waluty (mid) zwrócony przez akcję Web Service wynik będzie większy od 300, dokument zostanie skierowany do akceptacji, w przeciwnym razie zostanie zatwierdzony automatycznie.
SELECT
CASE
WHEN (
SELECT [mid]*{@Kwota} from openjson({@_Response}, '$.rates')
WITH ([no] varchar(20), [effectiveDate] varchar(20), [mid] decimal(18,4))
) > 300
THEN 'do kontroli'
ELSE 'zatwierdź automatycznie'
END
Literały do kontroli i zatwierdź automatycznie to wartości właściwości Nazwa przejścia
określone dla przejść wychodzących z bloku decyzyjnego.
Powiązane tematy: