Správa běžících agend
Od Sofa verze 4.8 je implementována správa běžících procesů, kdy může uživatel v roli Administrátora či Návrháře agend upravit stav již běžící agendy. Třeba měnit data nebo posunout běh procesu do jiného uzlu, atd … Díky tomu lze řešit řadu problémových situací. Jako příklad si vezměme situaci, kdy se agenda zasekne v nějakém bodu workflow.
Je tu také velice zajímavá možnost – migrovat instanci za běhu na nový běhový vzor. Tak je vlastně možné rozpracovaný proces využít pro upravenou agendu (ve stávající agendě byla nějaká programová chyba, která se opravila) bez přerušení běhu, a především bez ztráty rozpracovaných dat.
Přístup do okna Správa agend
Mějme tedy nějakou agendu v běhu a budeme se chtít seznámit s možnostmi její správy.
V okně Administrace klepněte na tlačítko Správa agend. Okno Správa Agend obsahuje přehled všech agend dostupných uživatelům Sofa. Údaje o běžících agendách lze získat dvojím způsobem:
-
Klepnete na tlačítko se třemi tečkami nad přehledem agend. Otevře se příkazová nabídka, ve které spusťte příkaz Správa běžících agend.
Otevře se okno s přehledem všech běžících agend. Okno je rozčleněno na několik karet. V tomto případě je otevřené na kartě Agendy. Na této kartě jsou uvedeny názvy všech běžících agend – jejich jména jsou vypsána ve sloupci Název. Ve sloupci TemplateIdent jsou uváděny jejich běhové vzory a ve sloupcích Počet publikovaných vzorů a Počet aktivních vzorů jsou údaje o počtu běhových vzorů agendy až dosud publikovaných a v dané chvíli aktivních. Sloupec Chyba v posledním běhovém vzoru ukazuje, zda byla v daném běhovém vzoru detekována nějaká chyba v běhu agendy.
Pomocí vyhledávacího pole (s lupou) můžete přehled zúžit – například jen na agendy Home office.
Druhou možností je klepnout na tlačítko se třemi tečkami u položky konkrétní agendy. Také zde se otevře příkazová nabídka, ve které spusťte příkaz Správa běžících agend.
V okně běžících agend je nyní zbytečná karta Agendy – zobrazené údaje se týkají jen jedné vybrané agendy. Okno je proto otevřené na kartě Běhové vzory.
Zde jsou uvedeny dosud publikované běhové vzory agendy. Poslední (nejnovější) je v první položce shora.
Běhový vzor je označení pro programový popis agendy, podle kterého celá agenda funguje, zobrazuje formuláře a zpracovává data. Protože v naprogramování agendy mohou být nějaké chyby nebo je potřeba nějaké kroky pozměnit, mění se i běhové vzory. |
ID autora (uživatele Sofa) je uvedeno v dialogu Detail uživatele. Ten otevřete v okně Uživatelé (Administrace> Uživatelé) klepnutím na tlačítko s lupou ve sloupci Akce u jména uživatele. |
Instance a workflow
U každého běhového vzoru je uveden počet instancí celkem, počet běžících instancí a případně počet instancí, kde je detekována chyba.
Ve sloupci PatternIdent je identifikační kód příslušného běhového vzoru. Ten funguje jako odkaz – klepnete-li na něj, dostanete se k přehledu rozběhnutých instancí na kartě Instance.
Tlačítko s lupou ve sloupci Flowinfo ukáže workflow (diagram) aktuální agendy.
Z diagramu je zřejmé, ve kterém kroku se agenda právě nachází.
Vraťte se na kartu Instance, pomocí zaškrtávacího políčka vyberte příslušnou agendu a klepněte na tlačítko Přidat do Workspace.
Uzamčení agendy před úpravami
Po přidání agendy do Workspace lze pak na kartě Akce dělat s agendou různé úkony.
Je dobré před prováděním změn mít agendu uzamčenou (lock) a teprve až budou všechny úpravy hotové, tak ji odemknout (unlock). Jde o to, aby během úprav někdo třetí do agendy nemohl zasahovat (nejen uživatel, ale třeba i script běžící na pozadí apod.). Na následujícím obrázku je agenda nejprve uzamčena a pak odemčena. |
Všimněte si, že na řádku 9 je příkaz – "Action":"lock", – jeho pomocí je agenda uzamčená. Na řádku 13 je pak příkaz unlock, který agendu opět odemkne. Ukažme si, jak agenda zůstane uzamčená pro provádění úprav.
Příklad uzamčení agendy – byly smazány řádky 11 až 14.
{
"Summary": {
"Name":"Uzamčeno pro úpravy",
"Description":""
},
"Workspace": {
"InstanceIdents":["bca4d92b-339b-44f2-ac99-3503f7d188bd"]},
"Actions":[{
"Action":"lock",
"Description":"Uzamknutí instancí pro změny"
}]
}
Upravenou agendu spustíte tlačítkem Spustit v levé horní části okna.
V pravé části karty Akce se v seznamu akcí vypíše indikátor o plánovaném uzamčení (PLANNED) agendy pro úpravy (text na řádku 3).
Po stisku tlačítka Obnovit se ve sloupci stav změní indikátor na DONE – oznamuje, že agenda již je uzamčená.
Od této chvíle je agenda zamknutá pro veškeré vyřizování. Pokud se ji nyní uživatel pokusí v pohledu K vyřízení otevřít, bude přístup odmítnut s následující zprávou:
Odemknutí agendy
Nyní si jen ukažme, jak agendu odemknete po úpravách. Příslušný script na kartě Akce může vypadat takto:
{
"Summary": {
"Name":"Odemknuto po úpravách",
"Description":""
},
"Workspace": {
"InstanceIdents":["bca4d92b-339b-44f2-ac99-3503f7d188bd"]},
"Actions":[{
"Action":"unlock",
"Description":"Odemknutí instancí po změnách"
}]
}
Tlačítkem Spustit pak upravenou agendu spustíte. V okénku Seznam akcí v pravé části karty Akce pak opět klepněte na tlačítko Obnovit.
Není nutné pracovat s agendou jako celkem. Lze si vybrat jednotlivé instance, ve kterých se dá očekávat problém. Případně je možné zvolit PatternId, což je verze agendy a k tomu se dá proměnná (variable) o určité hodnotě. Tím se vybere jen část instancí a nad nimi se udělá potřebná úprava – například migrace nebo změna proměnných. Využití PatternId je výhodné pro případy, kdy se agenda přenese do jiného prostředí, lze používat jeden a ten samý script. |
Příklad akce nad uzamčenou agendou
Ukažme si, jak lze v uzamčené agendě změnit proměnnou a přesunout token agendy z jednoho kroku do jiného. Mějme jednoduchou agendu, kde se v prvním kroku zadá nějaké jméno a ve druhém schválí. A jak se přesouvá token? Workflow takové agendy vypadá pak třeba takhle.
Krok, kde se zadává jméno, se jmenuje Zadat a krok, kde se jméno schvaluje, se jmenuje Schválit.
Formulář agendy je jednoduchý – do pole Jméno zadejte v kroku Zadat jméno uživatele a stiskem tlačítka Odeslat pošlete agendu do druhého kroku (Schválit).
Nyní se budeme chtít vrátit z kroku Schválit do kroku Zadat a jméno Petr nahradit jménem Standa.
Na obrázku je ukázán skript (načtený tlačítkem Načíst JSON ze souboru s příponou JSON), který toto zajistí.
-
Předem se na řádku 9 agenda zamkne.
-
Na řádku 19 bude tedy potřeba zápis "Value":"Petr" nahradit zápisem "Value":"Standa".
-
Na řádcích 25 a 26 je zapotřebí nastavit přesun tokenu, abychom se vrátili do Zadat. Bude zde tedy popsáno: "SourceNodeIdent":"Schvalit", a "TargetNodeIdent":"Zadat".
-
Pak lze na řádku 34 agendu odemknout.
Agendu pak na kartě Akce spustíte tlačítkem Spustit.
V Seznamu akcí se zobrazí položka plánované akce přesunu tokenu a změny datové hodnoty.
Po klepnutí na tlačítko Obnovit se Stav změní z PLANNED na DONE. Akce tedy byla úspěšně provedena. Můžeme se podívat na agendu, jak se změny projeví.
Ve workflow agendy je vidět, že token je nyní na kroku Zadat, jak jsme si přáli.
Ve formuláři agendy je Jméno původní hodnota Petr nahrazena požadovanou hodnotou Standa.
Protože jste nyní v kroku Zadat, je pro další běh agendy zapotřebí opět stisknout tlačítko Odeslat.
Změna běhového vzoru za chodu agendy
Změna běhového vzoru umožňuje za běhu určité agendy nahradit její specifikaci jinou, opravenou specifikací při zachování dat i pozice v průběhu agendy.
V okně Správa agend spusťte u běžící agendy, u které chcete změnit běhový vzor, příkaz Upravit workflow agendy.
Otevře se okno FlowApps Designeru. V popisu agendy zkusme udělat nějakou jednoduchou změnu na změněný popis pak publikujeme jako nový běhový vzor.
Zkusme třeba změnit nadpis formuláře v kroku Zadat. Poklepejte myší na symbol tohoto kroku v diagramu.
Návrh okna formuláře se otevře ve FlowApps Designeru. Nahraďte text Vzor 2 nějakým jiným – třeba Ilustrační formulář.
Po ukončení změn klepněte na tlačítko FlowApps a v následném dotazu formulář uložte.
Pak na nástrojové liště postupně stiskněte tlačítka Validovat a Publikovat.
Po kontrole a publikaci popisu agendy se okno FlowApps Designeru zavře.
Přejdeme do okna Správy běžících aplikaci k agendě, které chceme změnit běhový vzor. Zde je na kartě Běhové vzory položka nového právě publikovaného běhového vzoru (poznáte ho spolehlivě podle data publikace).
-
Zkopírujte si do šablony PatternIdent nového běhového vzoru.
-
Klepněte na položku předchozího, tedy právě běžícího běhového vzoru.
-
Přejdete na kartu Instance, kde klepněte na první položku.
-
Klepněte na tlačítko Přidat do Workspace.
-
Přejděte na kartu Akce.
Na této kartě je třeba tlačítkem Načíst JSON načíst a spustit script (soubor s příponou JSON) pro náhradu instance, ten může vypadat například takto:
Na řádku č. 7 je PatternId aktuálního běhového vzoru, ten zůstane beze změny.
Na řádku č. 9 se opět běžící aplikace uzamkne.
Na řádek č. 16 vložte ze šablony Id nového běhového vzoru – zde
"TargetPattern":"91d12808-1f64-4f7e-bf1e-cf96de9ea69c"
A nakonec se aplikace na řádku č. 19 odemkne.
Nyní je možné tlačítkem Spustit vyžádat provedení upraveného scriptu. V Seznamu akcí se zobrazí položka plánované akce změny běhového vzoru.
Po klepnutí na tlačítko Obnovit se Stav změní z PLANNED na DONE. Akce tedy byla úspěšně provedena. Můžeme se podívat na agendu, jak se změny projeví.
Jak je vidět, nadpis formuláře se změnil – změna běhového vzoru opravdu proběhla za chodu agendy.
To byl velice jednoduchý příklad pro ilustraci, v praxi lze s agendami provádět změny mnohem složitější a zásadním způsobem měnící jejich běh – nebo opravit chyby, které se v běhu projevily. Po opravě chyb lze pokračovat v běhu agendy beze ztráty dat.
Aby uživatel nebyl zmaten z toho, že se agenda za běhu vracela na předchozí krok(y), může se podívat na záznam o jejím běhu. Ten získá po klepnutí na tlačítko s lupou ve sloupci FlowInfo na kartě Instance.
V okně s průběhem workflow je fakt, že došlo k migraci instance za běhu aplikace, oznámen v pravém horním rohu okna indikátorem Instance byla za běhu migrována.
Údaje o migraci jsou uvedeny v pravé části okna. Údaje se týkají kroku vybraného klepnutím myší v levé části okna.
Ukládání osvědčených scriptů do souboru
Scripty vytvořené (modifikované) na kartě Akce, které se v praxi osvědčily, lze stáhnout a uložit do souborů s příponou JSON.
Scripty najdete na kartě Výsledky, odkud je můžete stáhnout po ukončení běhu agendy.
Ke stažení použijete tlačítka ve sloupci Předpis. Klepnutím na tlačítko se script uloží v souboru JSON do složky Stažené soubory (Downloads). Soubory pak můžete kdykoliv znovu použít, případně je využít jako vzor pro další modifikace.