workflow JBPM

0

Witam

Testuje tą technologie i w trakcie pracy nasunęły mi sie dwa techniczne pytania.

Mój prosty diagram skalda sie z 4 elementów

  1. Start-state
  2. state
  3. decision
  4. end-state

Każdy z elementów jest wywoływany po kolei.Element 3 dodatkowo decyduje czy przejść do elementu 4
I zakończyć działanie czy wrócić do elementu 2.

Istota mojego problemu to element 2 State do którego przejść można wywołując metodę signal()
klasy token. Co jest zgodne z dokumentacja i zgodnie z zamierzonym prze zemnie działaniem.
Problem pojawia sie dopiero gdy przechodzę z elementu 3 (decision) z powrotem do 2 (state). Workflow nie oczekuje już na wywołanie metody signal() sam wchodzi do elementu wykonuje tam zamierzone prze zemnie działanie , opuszcza go przechodzi dalej.

Dlaczego przechodząc prze element 2 za pierwszym razem workflow oczekuje wywołania metody signal()
natomiast za drugim razem automatycznie pomija ten wymóg nie zatrzymuje sie?

W jaki sposób wymusić ponowne zatrzymanie sie i oczekiwanie na wywołanie metody signal()?

0

przepraszam za zamieszanie

workflow działa zgodnie z założeniami
tzn. zawsze zatrzymuje sie i czeka na wywołanie metody signal()

powstały wyjątek był błędem implementacyjnym

pozdrawiam

0

Witam ponownie

Testuje sobie dalej workflow.
Mam pytanie.

W jednym z przykładów spotkałem takie wywołanie:

List processInstances =graphSession.findProcessInstances(processDefinition.getId());

Zwraca mi on wszystkie procesy danej definicji.
Mam pytanie jak otrzymać wszystkie procesy danej definicji które sie nie zakończyły ?
W źródłach doszukałem sie w pliku hibernate.query takie zapytanie o nazwie
'GraphSession.findAllRunningProcessInstances' ale nigdzie nie znalazłem interfejsu wywołującego je.
Czy w ogóle jest taki interfejs ?
Dodatkowo nasunęło mi sie pytanie co jeśli bym chciał zwrócić ograniczoną liste procesów np do liczby 10
nie chciałbym by nagle w mojej pamięci (kolekcji List) znalazło się 1000 procesów ,które mogą mnie w danej chwili w ogóle dotyczyć ,czy workflow posiada jakieś mechanizmy wspierające tego typu czy należy je samemu napisać ?

0

Z tego co pamiętam nie ma chyba takiej metody która zwraca aktywne procesy - trezba napisac Command do tego, a co do listy to zawsze możesz nie wypelniać całej listy tylko dotąd co chcesz i nie bedzie 1000 procesów

1 użytkowników online, w tym zalogowanych: 0, gości: 1