Podprocesy

Czym jest podproces

Podproces workflow (ang. subprocess) to wydzielony fragment większego procesu biznesowego, który realizuje określony, powtarzalny zestaw działań. Stosuje się go w celu uporządkowania i modularnego zaprojektowania przepływów pracy – dzięki temu złożone procesy można podzielić na mniejsze, łatwiejsze do zarządzania części.

Podprocesy ułatwiają ponowne wykorzystanie tych samych procedur w różnych miejscach systemu, zwiększają przejrzystość diagramów BPMN oraz umożliwiają niezależne testowanie i modyfikowanie poszczególnych etapów procesu. W efekcie organizacja zyskuje większą elastyczność, spójność oraz łatwość utrzymania swoich procesów biznesowych.

Praca z podprocesami

Utworzenie podprocesu

Podproces tworzymy i zapisujemy w taki sam sposób, jak proces.

Dodanie podprocesu do procesu

Edytując proces, do którego chcemy dodać utworzony wcześniej podproces, w procesie głównym dodajemy element typu Task.

Następnie zmieniamy jego typ na Call Activity (menu kontekstowe Change element zostanie wyświetlone po zaznaczeniu bloku i kliknięciu na ikonie klucza).

Ilustracja 1. Menu zmiany typu Taska

W kolejnym kroku dla zaznaczonego bloku Call Activity w prawym panelu rozwijamy sekcję Called element. Najpierw ustalamy typ elementu (właściwość Type) na BPMN, a po rozwinięciu kolejnych pól wpisujemy w polu Called element stworzony wcześniej proces - umieszczając go jako podproces w edytowanym procesie.

Ilustracja 2. Menu "Call Activity"

Podprocesy a zależności

Ponieważ podproces jest częścią innego procesu, podczas zapisu definicji procesu w oknie zapisu wersji otrzymamy informację o artefaktach zależnych.

Z powodu takiej zależności niemożliwe jest usunięcie definicji podprocesu z repozytorium.

Usunięcie procesu głównego jest możliwe i nie zostaje potwierdzone żadnym oknem. Pojawia się jednak u dołu ekranu komunikat umożliwiający cofnięcie tej operacji.

Przy pobraniu artefaktu procesu będącego procesem głównym (opcja Pobierz w menu kontekstowym danego procesu), zostanie także pobrany podproces tego procesu.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<exportArtifactWithDependencies>
    <dependencies>
        <dependency>
            <additionalData></additionalData>              
            <content>PD94bXZlbnQ{...}XRpb25zPgo=</content>
            <folderPath>/developers/mwachowska/</folderPath>
            <majorVersion>1</majorVersion>
            <minorVersion>6</minorVersion>
            <name>podproces.bpmn</name>
            <type>bpmn</type>
        </dependency>
    </dependencies>
    <exportArtifact>
        <additionalData></additionalData>
        <content>PD94bW{...}lvbnM+Cg==</content>
        <folderPath>/developers/mwachowska/</folderPath>
        <majorVersion>1</majorVersion>
        <minorVersion>3</minorVersion>
        <name>proces_glowny.bpmn</name>
        <type>bpmn</type>
    </exportArtifact>
</exportArtifactWithDependencies>

Podczas importu do aplikacji procesu mającego podprocesy, zostaną one także automatycznie dodane do tej aplikacji

Wersjonowanie i użycie podprocesów

W polu Binding możemy określić wersję podprocesu.

  • Domyślnie ustawione jest latest, czyli zawsze najnowsza wersja.

  • Możemy jednak wskazać konkretną wersję (version) lub powiązać wersję podprocesu z wdrożeniem procesu głównego (deployment).

Ten sam podproces może być wykorzystywany w wielu procesach głównych, dlatego jego aktualizacja może wpływać na wszystkie powiązane procesy. Po testach i przed wdrożeniem produkcyjnym rekomendowane jest powiązanie z konkretną stabilną wersją.

Otwarte instancje korzystają zawsze z tej wersji podprocesu, która istniała podczas uruchomienia procesu głównego. Nowe instancje, jeśli Binding = latest, będą używać już nowej wersji podprocesu.

Last updated

Was this helpful?