bramki logiczne notacja BPMN
Procesy biznesowe

BPMN bramki logiczne

Poznaj bramki logiczne, za pomocą których możesz rozgałęziać procesy w notacji BPMN.

Do rysowania procesów przedstawionych w artykule używam programu MS Visio.

Bramki logiczne w notacji BPMN służą do zaprezentowania, jakimi ścieżkami proces może się wykonać.

Oznaczamy je symbolem rombu.

W notacji BPMN możemy używać następujących bramek:

  • wykluczająca sterowana danymi (ze znacznikiem lub bez znacznika)
  • wykluczająca sterowana zdarzeniami
  • wykluczająca sterowana zdarzeniami rozpoczynająca proces
  • równoległa
  • równoległa sterowana zdarzeniami rozpoczynająca proces
  • niewykluczająca
  • złożona

Żeton

Zrozumienie przepływu procesu i funkcjonowania bramek ułatwia nam pojęcie żetonu.

Żeton powstaje w momencie, gdy wyzwolone jest zdarzenie początkowe i rozpoczyna się proces. Wychodząc ze zdarzenia początkowego żeton płynie po strzałce przepływu sekwencji i aktywuje poszczególne elementy procesu. Gdy dotrze do końca procesu (do zdarzenia końcowego) ulega zniszczeniu, a dana instancja procesu się kończy.

Bramka wykluczająca sterowana danymi

W angielskiej wersji: Exclusive Gateway, XOR – Exclusive OR.

Bramkę tę możemy oznaczać za pomocą symbolu pustego rombu

Bramka wykluczająca sterowana danymi bez znacznika

lub rombu ze znakiem X.

Bramka wykluczająca sterowana danymi ze znacznikiem

Nie ma znaczenia, którego z symboli użyjemy. Ważna jest natomiast konsekwencja. Jeżeli zdecydujemy się oznaczać bramkę wykluczającą sterowaną danymi za pomocą pustego rombu, powinniśmy ją w taki sposób oznaczać w ramach całego procesu. Nie należy w ramach jednego procesu raz używać bramki ze znacznikiem a raz bez znacznika, gdyż pogarsza to czytelność procesu.

Żeton, po dotarciu do bramki wykluczającej sterowanej danymi, może popłynąć dalej wyłącznie jedną ze ścieżek wychodzących z bramki.

Jest to bramka sterowana danymi. Dlatego decyzja, którą ścieżką żeton popłynie podejmowana jest na podstawie posiadanych danych.

Przykład 1

Bramka wykluczająca sterowana danymi

W przykładzie 1 mamy proces weryfikacji CV pod kątem formalnym. Zdarzeniem początkowym jest wpłynięcie CV. W pierwszym zadaniu procesu (Analiza CV) weryfikujemy, czy CV spełnia wymagania formalne. W wyniku sprawdzenia otrzymujemy informację (dane), że CV spełnia wymagania lub ich nie spełnia. Mając te dane poprowadzimy proces jedną z dwóch ścieżek:

  • jeśli CV spełnia wymagania, proces poprowadzony zostanie ścieżką oznaczoną „tak” do zadania „Przekazanie CV do dalszego etapu rekrutacji”
  • jeśli CV nie spełnia wymagań, proces poprowadzony zostanie ścieżką oznaczoną „nie” do zadania „Odrzucenie CV”

Proces może rozgałęziać się na bramce na dwie lub więcej ścieżek. Niezależnie od liczby ścieżek, w przypadku bramki wykluczającej, proces może się kontynuować tylko jedną z nich.

Bramka to miejsce, w którym rozgałęziamy proces na podstawie posiadanych danych. Nie jest miejscem procesu, w którym analizujemy dane i podejmujemy decyzję. Analiza i podjęcie decyzji następuje w zadaniu poprzedzającym bramkę.

Bramka wykluczająca sterowana danymi może występować jako bramka łącząca ścieżki przepływu. Bramka XOR łącząca ścieżki procesu odblokuje przepływ procesu bezpośrednio po tym, jak dopłynie do niej żeton z pierwszej z alternatywnych gałęzi.

Przykład 2

W przykładzie 2 używamy bramki zamykającej i dopiero po niej rysujemy zdarzenie końcowe.

Bramka wykluczająca sterowana danymi przykład 2

Przykład 3

Jedna ze ścieżek może być domyślna. Ścieżkę domyślną przekreślamy. Jest ona realizowana, jeśli nie został spełniony warunek żadnej z pozostałych ścieżek.

Bramka wykluczająca sterowana danymi przykład 3

W przykładzie 3:

  • proces rozpoczyna się zdarzeniem początkowym „Wpłynięcie wniosku kredytowego”
  • pierwszy krok procesu to zadanie „Analiza wniosku”, w którym sprawdzamy, czy wniosek jest poprawny i jaka jest kwota wnioskowanego kredytu. W zależności od informacji, które posiadamy, proces popłynie dalej jedną z następujących ścieżek:
    • jeśli wniosek jest poprawny i wnioskowana kwota kredytu jest równa lub przekracza 100 tys. złotych, żeton płynie ścieżką do zadania „Przekazanie do akceptacji dyrektora”
    • jeśli wniosek jest błędny, żeton płynie ścieżką do zadania „Odrzucenie wniosku”
    • jeśli wniosek jest poprawny i kwota kredytu mniejsza niż 100 tysięcy, żeton płynie domyślną ścieżką do zadania „Przekazanie do procesowania”

W przykładzie używamy bramki łączącej XOR, do której docierają 3 ścieżki. Proces będzie się kontynuował z bramki łączącej do zdarzenia końcowego po tym, jak do bramki łączącej spłynie pierwszy żeton z którejkolwiek ze ścieżek.

Bramka wykluczająca sterowana zdarzeniami

W angielskiej wersji: Exclusive Event-based gateway.

Bramkę wykluczającą sterowaną zdarzeniami oznaczamy następująco:

Bramka wykluczająca sterowana zdarzeniami

Bramka wykluczająca sterowana zdarzeniami to miejsce, w którym rozgałęziamy proces na podstawie zdarzenia, które wystąpiło. Proces może kontynuować się tylko jedną ze ścieżek. Zdarzenie, które wystąpiło określa ścieżkę, którą proces będzie się kontynuował.

Zdarzenie to zwykle otrzymanie wiadomości, która determinuje, którą ścieżką proces będzie się kontynuował. Możemy używać innych rodzajów zdarzeń np. Czasomierza.

Z bramki muszą wychodzić co najmniej dwie sekwencje przepływu. Celem sekwencji przepływu wychodzących z bramki muszą być zdarzenia lub zadania odbioru (ang. Receive Tasks).

Zadania odbioru używane w konfiguracji Event Gateway nie mogą mieć żadnych dołączonych zdarzeń pośrednich.

Prawidłowe są tylko następujące wyzwalacze zdarzenia pośredniego: Komunikat, Czasomierz lub Sygnał.

Przykład 4

Bramka wykluczająca sterowana zdarzeniami przykład 1

W przykładzie 4:

  • proces rozpoczyna się zdarzeniem początkowym „Wpłynięcie wniosku kredytowego”
  • pierwszy krok procesu to zadanie „Prośba o uzupełnienie wniosku kredytowego”, którą wysyłamy do klienta. Sposób kontynuacji procesu zależy od tego, które ze zdarzeń wystąpi: odesłanie przez klienta uzupełnionego wniosku lub upłynięcie terminu, w którym wniosek powinien zostać uzupełniony
    • jeśli klient odeśle uzupełniony wniosek (wyzwalacz zdarzenia: komunikat), żeton popłynie ścieżką do zadania „Udzielenie kredytu”
    • jeśli klient nie odeśle wniosku w terminie 14 dni (wyzwalacz zdarzenia: czasomierz), żeton płynie ścieżką do zadania „Odrzucenie wniosku”

Zamiast zdarzenia pośredniego za bramką możemy użyć zadania odbioru. Poniżej przykład z zadaniem odbioru:

Bramka wykluczająca sterowana zdarzeniami z zadaniem odbioru

Bramka wykluczająca sterowana zdarzeniami rozpoczynająca proces

W angielskiej wersji: Exclusive Event-based gateway – instantiate a process.

Oznaczamy ją następująco:

BPMN bramka wykluczająca sterowana danymi rozpoczynająca proces - symbol bramki

Jest to bramka wykluczająca sterowana zdarzeniami, która rozpoczyna proces. Proces rozpoczyna się po wystąpieniu pierwszego ze zdarzeń. W zależności od tego, które ze zdarzeń wystąpi pierwsze, tą ścieżką popłynie żeton.

Przykład 5

Bramka wykluczająca sterowana zdarzeniami rozpoczęcie procesu

W przykładzie 5:

Proces rozpocznie się, jeśli wystąpi jedno z następujących zdarzeń:

  • wpłynięcie raportu sprzedażowego. Jeśli proces rozpocznie się od tego zdarzenia, żeton popłynie ścieżką do zadania „Analiza raportu”
  • zakończenie się miesiąca. Jeśli proces rozpocznie się od tego zdarzenia, żeton popłynie ścieżką do zadania „Organizacja spotkania zespołu”

Aby bramka zdarzeń mogła utworzyć instancję procesu, nie może mieć żadnych przychodzących przepływów sekwencji.

Bramka równoległa

W angielskiej wersji: Parallel Gateway, AND.

Bramkę równoległą oznaczamy następująco:

BPMN bramka równoległa

Bramka równoległa tworzy równoległe ścieżki bez sprawdzania warunków. Każdy wychodzący przepływ sekwencji otrzymuje token po wykonaniu tej bramy.

Bramka równoległa oznacza, że wszystkie zadania muszą zostać wykonane, abyśmy mogli przejść do kolejnego kroku w procesie. Zadania mogą być wykonywane w tym samym czasie lub jedno po drugim. Kolejność wykonywania zadań nie ma tutaj znaczenia. Istotne jest tylko to, że każde z nich musi zostać ukończone, aby żeton mógł popłynąć dalej.

Przykład 6

BPMN przykład - bramka równoległa bez bramki zamykającej

W przykładzie 6 otrzymujemy wniosek kredytowy, weryfikujemy go i udzielamy kredytu. Po podjęciu pozytywnej decyzji kredytowej, generowane są trzy żetony i proces płynie trzema ścieżkami:

  • ścieżka 1: otwarcie rachunku kredytowego
  • ścieżka 2: przygotowanie umowy
  • ścieżka 3: przygotowanie harmonogramu spłat

Bramka równoległa może występować jako bramka łącząca ścieżki przepływu. Wówczas bramka „czeka” aż trafią do niej wszystkie żetony. Do kolejnego kroku procesu tj. „Wysłanie dokumentów do klienta” możemy przejść dopiero wtedy, jak spłyną wszystkie żetony do bramki łączącej.

W przykładzie poniżej używamy bramki równoległej do rozgałęzienia procesu na trzy ścieżki oraz do połączenia ścieżek. Żetony ze wszystkich ścieżek muszą spłynąć do bramki łączącej żeby proces mógł się dalej kontynuować.

BPMN przykład - bramka równoległa otwierająca i zamykająca

Bramka równoległa sterowana zdarzeniami rozpoczynająca proces

W angielskiej wersji: Parallel Event-based Gateway – instantiate a process.

Bramkę tę oznaczamy następująco:

Bramka równoległa sterowana zdarzeniami rozpoczynająca proces

W przypadku bramki równoległej pierwsze wyzwolone zdarzenie rozpoczyna instancję procesu. Inne zdarzenia nie zostają jednak wyłączone tylko oczekują. Powinny one zostać wyzwolone zanim proces będzie się mógł normalnie zakończyć.

Przykład 7

Bramka równoległa sterowana zdarzeniami rozpoczęcie procesu przykład

W przykładzie 7 proces rozpocznie się dopiero wtedy, gdy wpłynie poprawny wniosek klienta lub wpłynie pozytywna ocena historii kredytowej klienta. Jedno i drugie zdarzenie musi jednak wystąpić, aby proces mógł się normalnie zakończyć.

Za bramką równoległą sterowaną zdarzeniami możemy użyć bramki łączącej, aby połączyć ścieżki procesu zanim token przejdzie do zadania „Udzielenie kredytu”.

Bramka równoległa sterowana zdarzeniami rozpoczynająca proces i bramka równoległa łącząca ścieżki procesu

Bramka niewykluczająca (alternatywna)

W angielskiej wersji: Inclusive Gateway, OR.

Oznaczamy ją następująco:

Bramka niewykluczająca symbol

W przypadku bramki niewykluczającej każda ścieżka jest niezależna – żeton może popłynąć jedną ścieżką lub kilkoma ścieżkami lub nie popłynąć żadną ze ścieżek.

Proces powinien zostać za projektowany tak, aby żeton popłynął przynajmniej jedną ścieżką. Jedna ze ścieżek powinna zostać zaprojektowana jako domyślna.

Przykład 8

Bramka niewykluczająca

W przykładzie 8 klient dokonuje rezerwacji.

  • proces rozpoczyna się zdarzeniem początkowym „Wpłynięcie rezerwacji”
  • w zadaniu „Sprawdzenie wybranych opcji” analizujemy, jakie opcje podczas rezerwacji klient wybrał. Żeton może popłynąć np.:
    • wszystkimi ścieżkami, jeśli klient zarezerwował pokój, wycieczki i samochód
    • ścieżką „Rezerwacja pokoju”, jeśli klient zarezerwował tylko pokój
    • ścieżkami „Rezerwacja pokoju” i „Wynajem samochodu”, jeśli klient zarezerwował pokój i samochód

Żeton popłynie każdą ze ścieżek, dla której warunek zostanie spełniony.

Bramka złożona

Bramkę złożoną oznaczamy następującym symbolem:

Bramka złożona

Jest ona używana do obsłużenia sytuacji, których nie można obsłużyć za pomocą innych bramek. Jest to rzadko używana bramka i nie wszystkie systemy do modelowania procesów ją obsługują.

Tomasz Majewski

Programista C#, VBA
Udostępnij wpis: udostępnij Facebook udostępnij Linkedin udostępnij e-mail

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

  1. Dustin pisze:

    Witam
    Mam pytanie – Czy przy przykładzie dla bramki XOR opcja domyślna nie powinna być opisana jako:
    Czy wniosek jest poprawny i czy wnioskowana kwota kredytu PONIŻEJ 100 tys. złotych?

    1. Barbara Lelusz pisze:

      Dziękuję za cenną uwagę. Poprawiliśmy przykład.

  2. Paweł pisze:

    Witam jaką bramkę użyć rozejściu i łączeniu kiedy proces ma rozgałęzienie na dwa wątki i obydwa musza być spełnione jeżeli obydwa wystąpią.

    Jeżeli wystąpi jeden to token przejdzie po jego spełnieniu. Jeżeli występują dwa to token przejdzie po spełnieniu obydwu.

    1. Tomasz Majewski pisze:

      Spróbowałbym użyć bramki niewykluczającej na rozejściu i równoległej na łączeniu. Propozycję przykładowego schematu wysłaliśmy do Pana mailem.

  3. Anita pisze:

    Dzień dobry,

    czy w przypadku bramki równoległej „AND” nie powinniśmy użyć tylko symbolu krzyża, bez kółka? Rozumiem, że symbol z kółkiem oznaczałby bramkę „Parallel Event-based Gateway”.

    Pozdrawiam.

    1. Tomasz Majewski pisze:

      Dzień dobry,
      oczywiście, dziękuję za cenną uwagę. Dla bramki równoległej powinniśmy użyć symbolu czarnego krzyża wewnątrz rombu bez kółka. Symbol z kółkiem i białym krzyżem oznacza bramkę „Parallel Event-based Gateway”. Zmieniłem przykład i dodałem kilka dodatkowych informacji.

  4. Przemek pisze:

    Czy dobrze rozumiem, że w przypadku bramki Exclusive Event-based gateway – instantiate a process, w procesie nie ma zdarzenia początkowego?

    1. Barbara Lelusz pisze:

      Dziękujemy za komentarz.
      W specyfikacji BPMN mamy następującą informację „In order for an Event Gateway to instantiate a Process, it MUST not have any incoming Sequence Flows.” Rozumiemy to tak, że bramka Exclusive Event-based gateway, która rozpoczyna proces nie może mieć przychodzących przepływów sekwencji. Dlatego nie umieszczamy przed nią zdarzenia początkowego, od którego przepływ sekwencji prowadziłby do bramki.

      Niektórzy analitycy rysują w modelach zdarzenie początkowe przed bramką Exclusive Event-based gateway – instantiate a process. Narzędzia do modelowania procesów typu MS Visio dopuszczają taką możliwość. My rzadko używamy bramki Exclusive Event-based gateway – instantiate a process. Dla lepszej czytelności procesu zawsze używamy zdarzeń początkowych i końcowych, a zamiast bramki Exclusive Event-based gateway – instantiate a process używamy bramki Exclusive Event-based gateway.

  5. Przemek pisze:

    Czy jeśli za bramką równoległą sterowaną zdarzeniami nie umieścimy bramki synchronicznej łączącej, to zadanie do którego prowadzą przepływy sekwencyjne z kilku ścieżek wykona się wielokrotnie ( tyle razy ile jest zdarzeń)?

    1. Barbara Lelusz pisze:

      Bardzo dziękujemy za komentarz.
      W przykładzie 7, który mamy w artykule, zadanie „Udzielenie kredytu” wykona się raz. Zadanie to kończy proces. Wyzwolenie jednego tokena wystarczy, aby proces się rozpoczął. Aby jednak proces mógł się normalnie zakończyć wszystkie tokeny z bramki muszą zostać wyzwolone i „skonsumowane”. Zadanie nie zostanie zatem zakończone dotąd, aż wszystkie tokeny spłyną. Poniżej fragment ze specyfikacji BPMN, który dotyczy bramki równoległej sterowanej zdarzeniami.

      „The Parallel Event Gateway is also a type of race condition. In this case, however, when the first Event is triggered and the Process is instantiated, the other Events of the Gateway configuration are not disabled. The other Events are still waiting and are expected to be triggered before the Process can (normally) complete.”

      Na razie nie przychodzi mi do głowy przykład, w którym zadanie mogłoby się wielokrotnie wykonać. Zdzwońmy się pod numerem 503 819 084 żeby ewentualnie przedyskutować temat.

Podobne artykuły z kategorii: Procesy biznesowe

Może Cię zainteresować