Ensemble pro rychlejší tvorbu Caché aplikací Využijte infrastrukturu Ensemble pro své aplikace
O čem budeme hovořit…. Tentokrát žádná integrace Tentokrát žádná integrace Jiný pohled na tvorbu aplikací Jiný pohled na tvorbu aplikací
Modelové situace Help Desk Help Desk Justice Justice Spisová služba Spisová služba …. To je jen několik možných konkrétních implementací aplikací založených na rozhodování…. …. To je jen několik možných konkrétních implementací aplikací založených na rozhodování….
Co mají tyto aplikace společného? Něco se dělá, dokud někdo neřekne „dost, už je hotovo“ Něco se dělá, dokud někdo neřekne „dost, už je hotovo“ Jednotlivé kroky se mohou i vícekrát opakovat Jednotlivé kroky se mohou i vícekrát opakovat Zpravidla je to člověk, kdo rozhodne, jaký bude následný krok po provedení dílčí úlohy Zpravidla je to člověk, kdo rozhodne, jaký bude následný krok po provedení dílčí úlohy Po zbytek prezentace budeme o těchto aplikacích hovořit jako o třídě workflow aplikací… Po zbytek prezentace budeme o těchto aplikacích hovořit jako o třídě workflow aplikací…
Workflow? To už tu bylo, ne? Samozřejmě, Workflow je nedílná součást Ensemble Samozřejmě, Workflow je nedílná součást Ensemble Ovšem buďme upřímní: kdy by chtěl pracovat s workflow takovým (tedy uživatelským rozhraním), jak je implementován v Ensemble? Ovšem buďme upřímní: kdy by chtěl pracovat s workflow takovým (tedy uživatelským rozhraním), jak je implementován v Ensemble? Snadná pomoc: Snadná pomoc: –Subclassing –ZEN
Co dobrého mi Ensemble Workflow nabízí? Řízení distribuce úloh Řízení distribuce úloh Navázání na podnikové procesy (rules driven developement) Navázání na podnikové procesy (rules driven developement) Persistence Persistence Audit Audit Monitorování a nástěnky Monitorování a nástěnky
Co mi nabízí ZEN? Skvělý způsob (nikoliv jediný), jak rychle začlenit lidský činitel do podnikových procesů tak, aby uživatel nepoznal že nepracuje s původní – klasickou aplikací, ale s aplikací postavenou na vnořeném workflow enginu Ensemble Skvělý způsob (nikoliv jediný), jak rychle začlenit lidský činitel do podnikových procesů tak, aby uživatel nepoznal že nepracuje s původní – klasickou aplikací, ale s aplikací postavenou na vnořeném workflow enginu Ensemble
Ukázkové řešení – strana Ensemble Základem je cyklus v podnikovém procesu (BP) Základem je cyklus v podnikovém procesu (BP) Nutnou podmínkou pro otevřenost a obecnost řešení je podpora nepřímé adresace volání prvků BP Nutnou podmínkou pro otevřenost a obecnost řešení je podpora nepřímé adresace volání prvků BP Výhodou by byla možnost začlenit definování možných kroků přímo do aplikace, namísto práce s portálem Ensemble Výhodou by byla možnost začlenit definování možných kroků přímo do aplikace, namísto práce s portálem Ensemble
Ukázkové řešení – strana UI Šablony s uživatelským rozhraním v ZENu Šablony s uživatelským rozhraním v ZENu Využití prvků typu a dynamického generování obsahu Ensemble scénáře Využití prvků typu a dynamického generování obsahu Ensemble scénáře
Ukázka
UI a vazba na elementy Nová úloha: …templates.NewTaskFormSubmit.cls Nová úloha: …templates.NewTaskFormSubmit.cls Parameter SERVICENAME = "Agenda A"; Parameter SERVICENAME = "Agenda A"; Set tSC=##class(Ens.Director).CreateBusinessServic e(..#SERVICENAME,.tService) Set tSC=##class(Ens.Director).CreateBusinessServic e(..#SERVICENAME,.tService) Mezistav: …templates.IntermediateTaskForm.cls Mezistav: …templates.IntermediateTaskForm.cls set tSC=##class(EnsLib.Workflow.Engine).%ProcessAc tion(tAction,tItemId,%session.Username,.tMsg) set tSC=##class(EnsLib.Workflow.Engine).%ProcessAc tion(tAction,tItemId,%session.Username,.tMsg)
Dynamické změny scénáře z UI Použijeme vlastní projekci Použijeme vlastní projekci –Provádí se vždy při kompilaci třídy –Jejím úkolem je podle potřeby přidat novou podnikovou operaci (BO) pro nově vytvořené třídy typu workflow formulář
API pro změny integračního scénáře Otevřít scénář (production) Otevřít scénář (production) Přidat / ubrat položky Přidat / ubrat položky Uložit změny pomocí volání metody Uložit změny pomocí volání metody –SaveToClass() Uloží změny do XDATA kontejneruUloží změny do XDATA kontejneru Zkompilovat scénář Zkompilovat scénář
Ukázka