Přeskočit obsah

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í:

  1. Scanner — pravidelně prohledává SharePoint seznam pomocí CAML dotazu a nalezené položky zařadí do fronty ke zpracování
  2. 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:

  1. Scanner každý den v 1:00 najde dokumenty neupravené déle než rok a zařadí je do fronty
  2. Runner každých 10 minut zpracuje až 20 položek z fronty
  3. Na každou položku spustí workflow ArchiveDocument
  4. 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 processed s uloženým výsledkem workflow
  • Chyby — záznamy ve stavu error s 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