WebHU - Programozási kérdések és válaszok

Melyik Java munkafolyamat-keretrendszerrel köthetem össze egy gui-val

Kontextus

Létre kell hoznom egy szerzői munkafolyamatot (checkin, checkout, validation...).

Egyes állapotátmeneteknél a felhasználónak jelentést kell kitöltenie. Amikor a felhasználó megváltoztatja egy O objektum állapotát S1 állapotról S2 állapotra, jelentést kell kitöltenie.

  1. A felhasználó törölheti a jelentést, O az S1 állapotban marad.
  2. A felhasználó bezárhatja a böngészőt, O az S1 állapotban marad.
  3. Ha érvényesíti a jelentést, O az S2 állapotba kerül.

Próbálok olyan keretet találni, ahol ezeket a korlátokat megvalósíthatom.

jBPM / Drools

Meg tudom valósítani az 1-et és a 3-at S1 és S2 közötti emberi feladattal, de ez egy egyszerű jelentéshez kissé túlzás. Az 1 megvalósításához kétirányú kapcsolatot kell létrehoznom az S1 és az emberi feladat között. A 2. pontot nem tudom megtenni: ha a felhasználó bezárja a böngészőt, az O Human Task állapotban marad.

Egy másik módja ?

Egy másik lehetőség egy külső fájl használata. Ez a fájl megadja egy adott S1-›S2 átmenethez, hogy melyik jelentést kell megjeleníteni.

Van más mód? És szerinted mi a legjobb felhasználási eset?

Köszönöm a segítséget.


Válaszok:


1

Én így csinálnám:

Adja hozzá a commitState egyéni logikai attribútumot (alapértelmezés szerint true) a folyamatban lévő összes csomóponthoz.

Tehát 3 csomópont van: S1 - commitState=true, Report - commitState=false, S2 - commitState=true értékkel

Amikor a végrehajtás az S1-be lép az előzőtől, a motor véglegesíti az állapotot a db-nak, és megmutatja a felhasználónak, hogy mi van az S1-ben. Ezután a felhasználó elvégzi az sth-t, és a végrehajtás a Report csomóponthoz megy, a felhasználónak megjelenik a "SubmitReport" képernyő, de a db tranzakció még mindig nincs véglegesítve.

Amikor a felhasználó ezen a ponton bezárja a böngészőt, végül munkamenet-időtúllépés következik be, a rendszer kivételt dob, és a db állapotban visszaáll S1-re.

Amikor a felhasználó megszakítja a jelentést, kivételt is dobhatunk, és visszaállíthatjuk az S1-be, de én jobban szeretem, ha az ilyen átmeneteket folyamatgráf explicitté teszi, és csak ezt az átmenetet.

Amikor a felhasználó jelentést küld, továbblépünk az S2-re, és az állapot véglegesítve van.

Ez megköveteli, hogy a db tranzakció megtartható legyen a képernyők között a felhasználó számára - például a StatefulBeanben (volt valami hiba a jbpm 3-ban, amikor StatefulBean-ből használták, nem tudom, hogy a jbpm új verzióiban lehetséges-e ezt megtenni ez).

26.02.2011
  • Köszönöm a válaszod. Gondolkodás után úgy gondolom, hogy a legjobb módszer a második megszorítás eltávolítása. Ez nem gyakori forgatókönyv, és ha megtörténik, a felhasználó egyszerűen törli a jelentést, és az S1-re lép. 27.02.2011
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..