parralel approvals

Zatwierdzenia (Approvals) równoległe

W tym artykule omówimy sobie coś prostego, ale niekoniecznie oczywistego, mianowicie równoległą obsługę zatwierdzeń potocznie zwanych approvalami.

Weźmy na tapet taki case: Organizujemy wegańską imprezę firmową 🙂

    1. Z ankiet pracowniczych zebraliśmy bazę owoców.
    2. Musimy przesłać je do osoby decydującej o zakupie, która wykluczy część owoców (np. znając więcej uwarunkowań – alergie uczestników imprezy, budżet itp.)
    3. Docelowo otrzymamy listę tylko zaakceptowanych owoców.

    Nas interesuje etap samych Approvali.

    Dla potrzeb testu zadeklarowaliśmy sobie zmienną tablicową z 3-eam owocami, a następnie tworzymy approvala dla każdego elementu tablicy w pętli „Apply to each”:

    Uruchamiając przepływ w taki sposób uzyskamy efekt taki, że:

    1. Zostanie uruchomiony pierwszy approval.
    2. Decydent otrzyma prośbę o decyzję:

    3. Przepływ zatrzyma się i dopiero po podjęciu decyzji przejdzie do kolejnego elementu ponownie wysyłając maila.

    Chcemy uzyskać efekt taki, żeby wszystkie zatwierdzenia zostały wysłane równolegle, aby decydent mógł np. podjąć decyzje od razu w kwestiach oczywistych a do reszty zatwierdzeń odnieść się w późniejszym terminie.

    Rozwiązanie:

    Musimy tak naprawdę zmienić jedynie ustawienia pętli „Apply to each” jak na poniższym zrzucie:

    Włączamy opcję „Concurrency Control” oraz suwakiem możemy wyznaczyć maksymalną ilość równoległych procesów do 50.
    Musimy pamiętać o tym limicie chcąc zastosować tego typu rozwiązanie w innych przypadkach, które być może będą przekraczały taką ilość elementów.