Workflows: Inteligentní mozek vašeho webu
Jak automatizovat firemní procesy přímo v administraci webu – vizuálně, efektivně a bez nutnosti neustálého programování boilerplate kódu.
Co jsou to vlastně Workflows?
Představte si, že váš systém není jen statické úložiště dat, ale aktivní, reaktivní člen vašeho týmu, který přesně ví, co má v jaké situaci udělat. V oblasti jako je vývoj webových aplikací často narážíme na požadavek měnit firemní procesy za běhu. Psát pro každou změnu stavu nový kód, nasazovat ho přes CI/CD a testovat je neefektivní.
Orchard Core Workflows je integrovaný framework, který vám umožní vytvářet exekutivní vývojové diagramy vašich procesů přímo v prohlížeči. Pomocí intuitivního rozhraní propojujete události s konkrétními úkoly. Výsledkem je vysoce škálovatelný automatizovaný systém, který spolehlivě běží na pozadí vašeho **enterprise CMS řešení**.
Architektonické pilíře: Z čeho se Workflow skládá?
Z technického hlediska je workflow stavový automat složený ze dvou základních stavebních bloků, které jsou plně rozšiřitelné prostřednictvím **tvorby modulů na míru** v C#:
Události (Events)
To jsou spouštěče (Triggers). Implementují rozhraní IEventActivity a registrují se do subsystému. Workflow engine na ně asynchronně čeká. Příkladem je HTTP požadavek, odeslání formuláře, vytvoření/publikace Content Itemu, přihlášení uživatele (přes OAuth2/OIDC) nebo časový trigger (Cron job).
Úkoly (Tasks)
To jsou exekutivní akce implementující ITaskActivity. Vykonávají samotnou business logiku. Orchard Core obsahuje desítky vestavěných úkolů (odeslání e-mailu, HTTP požadavky, větvení), ale skutečná síla nastává, když naprogramujete vlastní úkoly pracující s interním DI (Dependency Injection) kontejnerem .NET.
Příklad z praxe: Automatizace a inteligentní routing formuláře
Ukážeme si, jak komplexně zpracovat firemní poptávku. V rámci **modernizace legacy systémů** často nahrazujeme stará, jednoúčelová skriptování tímto čistým přístupem. Místo pouhého odeslání e-mailu systém provede inteligentní distribuci dat:
| Krok procesu | Technická implementace pod kapotou | Role Syncfusion / Extensibility |
|---|---|---|
| 1. Spuštění (Trigger) | Událost FormSubmittedEvent zachytí data z HTTP POST požadavku. |
Validace dat proti XSS a CSRF ochraně .NET. |
| 2. Evaluace a podmínka | Vyhodnocení JavaScript/Liquid výrazu v aktivitě ScriptTask. |
Kontrola klíčových slov (např. "Poptávka") v obsahu formuláře. |
| 3. Větev A: Obchodní lead | Zápis do externího CRM přes REST API + odeslání push notifikace. | Syncfusion Tip: Vygenerování custom PDF nabídky s daty klienta pomocí Syncfusion DocIO a odeslání v příloze. |
| 4. Větev B: Obecný dotaz | Uložení do interního Audit Trailu a odeslání na [Email chráněn před spam boty]. | Standardní logování a archivace v databázi CMS. |
Programové rozšíření: Tvorba vlastní Workflow aktivity v C#
Pokud vestavěné bloky nestačí, můžete snadno napsat vlastní aktivitu. Zde je ukázka, jak implementovat čistou strukturu pro aktivitu, která by mohla využívat například generování dokumentů pomocí Syncfusion:
using OrchardCore.Workflows.Abstractions.Models;
using OrchardCore.Workflows.Activities;
using OrchardCore.Workflows.Models;
using System.Threading.Tasks;
public class GenerateSyncfusionReportTask : TaskActivity
{
// Unikátní název aktivity v systému
public override string Name => nameof(GenerateSyncfusionReportTask);
// Definice možných výstupních větví z aktivity
public override IEnumerable<Outcome> GetPossibleOutcomes(WorkflowExecutionContext workflowContext, ActivityContext activityContext)
{
return Outcomes("Success", "Failed");
}
// Samotná exekuce aktivity s plným přístupem k DI .NET
public override async Task<ActivityExecutionResult> ExecuteAsync(WorkflowExecutionContext workflowContext, ActivityContext activityContext)
{
try
{
// Zde probíhá programová manipulace s PDF/Excel přes Syncfusion Document Solutions
// Výstup se uloží do kontextu workflow nebo jako příloha
return Outcomes("Success");
}
catch
{
return Outcomes("Failed");
}
}
}
Proč je toto řešení výhodné pro enterprise projekty?
Nízké TCO a údržba
Jakmile vývojář připraví sadu vlastních aktivit a propojení, analytici a administrátoři mohou upravovat cesty procesů, měnit šablony e-mailů nebo přidávat schvalovací kroky přímo v UI bez nutnosti psát kód a nasazovat novou verzi.
Absolutní konzistence dat
Engine podporuje asynchronní zpracování (Queues/Background Tasks). Pokud externí systém (CRM, ERP) neodpovídá, workflow automaticky implementuje politiku opakování (Retry Policy), což zabraňuje ztratě kritických business dat.
Extenzibilita na Syncfusion a MAUI
Stavové změny ve workflow mohou přímo komunikovat s mobilním světem. Přes GraphQL nebo SignalR můžete okamžitě streamovat aktualizovaná data do .NET MAUI mobilní aplikace, kde k jejich vizualizaci použijete prémiové Syncfusion grafy.
Často kladené otázky (FAQ)
Proč zvolit Orchard Core Workflows namísto externích nástrojů jako Zapier nebo Make?
Externí integrační platformy s sebou nesou náklady na licence, latenci sítě a rizika spojená s ochranou osobních údajů (GDPR), protože data opouštějí váš server. Orchard Core Workflows běží lokálně jako přímá součást vašeho **enterprise CMS řešení** v .NET. Máte tak stoprocentní kontrolu nad výkonem, zabezpečením (OAuth2/OIDC) a nulové dodatečné náklady za přenesená data.
Jak Syncfusion Document Solutions rozšiřují možnosti automatizace?
Syncfusion knihovny (XlsIO, DocIO, PDF) umožňují přímo uvnitř vlastních Workflow aktivit programově generovat složité dokumenty (faktury, reporty, certifikáty, exporty skladů) z čistého C# kódu s extrémním výkonem. Můžete tak automaticky reagovat na stav systému, dokument vygenerovat, zašifrovat a odeslat klientovi bez lidského zásahu.
Má vizuální běh Workflows vliv na rychlost samotného webu?
Orchard Core je navržen s ohledem na maximální výkon .NET. Workflows mohou běžet plně asynchronně na background threadech (na pozadí), což znamená, že uživatel na frontendu nepozná žádné zpomalení, zatímco systém na pozadí komunikuje s CRM, generuje PDF dokumenty a odesílá e-maily.