Plánované workflow (Scheduled Workflows)¶
Plánované workflow umožňují automatické periodické spouštění bezstavových workflow nad položkami SharePoint seznamu, které odpovídají definovaným kritériím. Typické použití zahrnuje hromadnou archivaci, pravidelné kontroly nebo automatické aktualizace položek na základě podmínek.
Princip fungování¶
Mechanismus je rozdělen do dvou fází:
- Scanner — pravidelně prohledává SharePoint seznam pomocí CAML dotazu a nalezené položky zařadí do fronty ke zpracování
- Runner — zpracovává položky z fronty po dávkách a na každé spouští definovaný bezstavový workflow
Obě fáze běží nezávisle na sobě podle vlastního časového rozvrhu. Scanner může například běžet jednou denně a runner každých 15 minut.
┌─────────────────────┐ ┌──────────────────────┐ ┌────────────────┐
│ SharePoint seznam │────▶│ Scanner (CAML query) │────▶│ Fronta │
│ (zdrojové položky) │ │ → nalezené položky │ │ (databáze) │
└─────────────────────┘ └──────────────────────┘ └───────┬────────┘
│
▼
┌────────────────┐
│ Runner │
│ → workflow │
│ → výsledek │
└────────────────┘
Předpoklady¶
- Nainstalovaný produkt TI4M365 na SharePoint Online webu
- Nakonfigurovaný bezstavový workflow, který má být periodicky spouštěn
- SharePoint seznam s položkami ke zpracování
Konfigurace¶
Nastavení provádí administrátor TreeINFO
Konfigurace plánovaných workflow se provádí prostřednictvím definic časových úloh (Timer Job Definitions) v databázi. V současné době k tomu není k dispozici uživatelské rozhraní — nastavení zajišťuje administrátor TreeINFO. Pokud potřebujete plánované workflow nastavit nebo upravit, kontaktujte administrátora.
Scanner — prohledávání seznamu¶
Scanner definuje, které položky mají být zpracovány. V databázi se vytvoří definice časové úlohy typu ScheduledWorkflowScanner s následujícími parametry:
| Parametr | Popis |
|---|---|
| CAML dotaz | Filtr položek ze SharePoint seznamu (např. položky se statusem "Active" nebo neupravené déle než rok) |
| Cílový seznam | SharePoint seznam, který bude prohledáván |
| Název workflow | Interní název bezstavového workflow, který se na nalezené položky spustí |
| Priorita | Priorita zpracování — položky s vyšší prioritou jsou zpracovány dříve (výchozí: 10) |
| Rozvrh (CRON) | Jak často se scanner spouští (např. jednou denně, každých 6 hodin) |
Runner — zpracování fronty¶
Runner postupně zpracovává položky nalezené scannerem. V databázi se vytvoří definice časové úlohy typu ScheduledWorkflowRunner s parametry:
| Parametr | Popis |
|---|---|
| Velikost dávky | Maximální počet položek zpracovaných v jednom běhu (výchozí: 10) |
| Rozvrh (CRON) | Jak často se runner spouští (např. každých 15 minut) |
Životní cyklus položky¶
Každá nalezená položka prochází následujícími stavy:
Scanner nalezne položku
│
▼
┌──────────┐
│ new │ (zařazena do fronty)
└────┬─────┘
│
Runner zpracuje
│
┌──────┴──────┐
▼ ▼
┌────────────┐ ┌──────────┐
│ processed │ │ error │
│ (úspěch) │ │ (chyba) │
└────────────┘ └──────────┘
| Stav | Popis |
|---|---|
new |
Položka čeká ve frontě na zpracování |
processed |
Workflow byl úspěšně spuštěn, výsledek je uložen |
error |
Při zpracování došlo k chybě, vyžaduje zásah administrátora |
Deduplikace¶
Scanner automaticky kontroluje, zda pro danou položku a workflow již neexistuje záznam ve stavu new. Pokud ano, nový záznam nevytváří — stejná položka tedy nemůže být ve frontě dvakrát. Položky ve stavu processed nebo error mohou být znovu zařazeny do fronty při dalším běhu scanneru.
Prioritizace¶
Runner zpracovává položky seřazené podle priority (sestupně — vyšší číslo = dřívější zpracování). Položky se stejnou prioritou jsou navíc seskupeny podle seznamu, což optimalizuje komunikaci se SharePoint.
Příklad použití: archivace starých dokumentů¶
Administrátor nastaví plánované workflow s následujícími parametry:
Scanner:
- CAML dotaz vybere dokumenty neupravené déle než jeden rok
- Cílový seznam: knihovna dokumentů
- Workflow:
ArchiveDocument - Rozvrh: jednou denně v 1:00
Runner:
- Velikost dávky: 20
- Rozvrh: každých 10 minut
Výsledek:
- Scanner každý den v 1:00 najde dokumenty neupravené déle než rok a zařadí je do fronty
- Runner každých 10 minut zpracuje až 20 položek z fronty
- Na každou položku spustí workflow
ArchiveDocument - Výsledek (úspěch nebo chyba) se zaznamená pro pozdější kontrolu
Monitorování¶
Chybové záznamy
Položky ve stavu error vyžadují zásah administrátora. Po vyřešení problému může administrátor položku znovu zařadit do fronty ke zpracování.
Stav zpracování plánovaných workflow lze sledovat v administraci:
- Čekající položky — záznamy ve stavu
new, čekají na zpracování runnerem - Úspěšně zpracované — záznamy ve stavu
processeds uloženým výsledkem workflow - Chyby — záznamy ve stavu
errors popisem chyby
Doporučení¶
- Rozvrh: Scanner by měl běžet méně často než runner (např. scanner 1x denně, runner každých 10–15 minut)
- Velikost dávky: Volte s ohledem na složitost workflow a počet položek (doporučeno 10–50)
- Priorita: Využijte prioritizaci pro oddělení urgentních a běžných položek
- CAML dotaz: Dotaz by měl vracet pouze relevantní položky — scanner zpracuje všechny výsledky dotazu