Sada nástrojů pro externí sadu pravidel
Obvykle platí, že pokud se pravidla používají v rámci aplikace pracovního postupu, jsou pravidla součástí sestavení. V některých scénářích můžete chtít udržovat sady pravidel odděleně od sestavení, aby bylo možné je aktualizovat bez opětovného sestavení a nasazení sestavení pracovního postupu. Tato ukázka umožňuje spravovat a upravovat sady pravidel v databázi a přistupovat k těmto sadám pravidel z pracovního postupu za běhu. To umožňuje spouštění instancí pracovního postupu automaticky začlenit změny sady pravidel.
Ukázka sady nástrojů External RuleSet obsahuje nástroj založený na model Windows Forms, který můžete použít ke správě a úpravě verzí RuleSet v databázi. Zahrnuje také aktivitu a hostitelskou službu pro provádění těchto pravidel.
Poznámka:
Tato ukázka vyžaduje Microsoft SQL Server.
Visual Studio poskytuje editor Sady pravidel jako součást windows Workflow Foundation (WF). Tento editor můžete spustit tak, že dvakrát kliknete na Policy
aktivitu v pracovním postupu. Serializuje definovaný objekt RuleSet do souboru .rules přidruženého k pracovnímu postupu ( Policy
aktivita spouští instanci RuleSet proti pracovnímu postupu). Soubor .rules je zkompilován do sestavení jako zdroj při sestavení projektu pracovního postupu.
Součástí této ukázky jsou:
Grafický nástroj uživatelského rozhraní RuleSet, který můžete použít k úpravám a správě verzí Sady pravidel v databázi.
Služba RuleSet nakonfigurovaná v hostitelské aplikaci a přistupuje k sadám pravidel z databáze.
Aktivita
ExternalPolicy
, která požaduje sadu pravidel ze služby RuleSet a spouští sadu pravidel proti pracovnímu postupu.
Interakce komponent je znázorněna na následujícím obrázku. Následující části popisují jednotlivé komponenty.
Nástroj RuleSet
Následující obrázek je snímek obrazovky nástroje RuleSet. Z nabídky Úložiště pravidel můžete načíst dostupné sady pravidel z databáze a uložit upravené sady pravidel zpět do úložiště. Konfigurační soubor aplikace poskytuje databázi připojovací řetězec pro databázi RuleSet. Když nástroj spustíte, automaticky načte sady pravidel z nakonfigurované databáze.
Nástroj RuleSet aplikuje na sady pravidel hlavní a podverzi čísla podverze, což vám umožní současně udržovat a ukládat více verzí (nástroj kromě funkcí správy verzí neposkytuje žádné zamykání ani jiné funkce správy konfigurací). Pomocí nástroje můžete vytvořit nové verze sady pravidel nebo odstranit existující verze. Po kliknutí na tlačítko Nový nástroj vytvoří nový název sady pravidel a použije verzi 1.0. Když zkopírujete verzi, nástroj vytvoří kopii vybrané verze Sady pravidel, včetně pravidel s omezením, a přiřadí nová jedinečná čísla verzí. Tato čísla verzí jsou založená na číslech verzí existujících sad pravidel. Název sady pravidel a čísla verzí můžete změnit pomocí přidružených polí ve formuláři.
Když kliknete na Upravit pravidla, spustí se editor Sady pravidel, jak je znázorněno na následujícím obrázku:
Jedná se o opětovné hostování dialogového okna editoru, který je součástí doplňku Visual Studio pro Windows Workflow Foundation. Poskytuje stejné funkce, včetně podpory Technologie IntelliSense. Pravidla se vytváří proti cílovému typu (například pracovnímu postupu), který je přidružený k RuleSet v nástroji; když kliknete na Procházet v hlavním dialogovém okně nástroje, zobrazí se dialogové okno Výběr pracovního postupu nebo typu, jak je znázorněno na obrázku 4.
Obrázek 4: Výběr pracovního postupu nebo typu
Dialogové okno Selektor pracovního postupu/typu můžete použít k určení sestavení a konkrétního typu v rámci daného sestavení. Tento typ je cílový typ, pro který se pravidla vytváří (a spouští). V mnoha případech je cílovým typem pracovní postup nebo jiný typ aktivity. Sadu pravidel však můžete spustit pro libovolný typ .NET.
Cesta k souboru sestavení a typu name are stored with the
RuleSet v databázi, takže při načtení sady pravidel z databáze se nástroj pokusí automaticky načíst cílový typ.
Když kliknete na TLAČÍTKO OK v dialogovém okně Výběr pracovního postupu nebo typu, ověří vybraný typ v sadě pravidel, aby se zajistilo, že cílový typ má všechny členy odkazované pravidly. Chyby se zobrazují v dialogovém okně Chyby ověření. Bez ohledu na chyby můžete pokračovat ve změně nebo kliknout na tlačítko Storno. V nabídce Nástroje v hlavním dialogovém okně nástroje můžete kliknutím na tlačítko Ověřit znovu ověřit verzi Sady pravidel pro cílovou aktivitu.
V nabídce Data v nástroji můžete importovat a exportovat sady pravidel. Když kliknete na Importovat, zobrazí se dialogové okno pro výběr souborů, ze kterého můžete vybrat soubor .rules. Může se jednat o soubor, který byl původně vytvořen v sadě Visual Studio. Soubor .rules by měl obsahovat serializovanou RuleDefinitions
instanci, která obsahuje kolekci podmínek a kolekci RuleSets. Nástroj nepoužívá kolekci podmínek, ale používá RuleDefinitions
formát .rules k umožnění interakce s prostředím sady Visual Studio.
Po výběru souboru .rules se zobrazí dialogové okno Selektor sady pravidel. Pomocí dialogového okna můžete vybrat sady pravidel ze souboru, který chcete importovat (výchozí nastavení určuje všechny sady pravidel). Sady pravidel v souboru .rules nemají čísla verzí, protože jejich správa verzí v projektu WF je stejná jako verze sestavení. Během procesu importu nástroj automaticky přiřadí další dostupné číslo hlavní verze (které můžete po importu změnit); Přiřazená čísla verzí můžete zobrazit v seznamu selektoru sady pravidel.
Pro každou sadu pravidel, které importuje, se nástroj pokusí vyhledat přidružený typ ze složky bin\Debug v umístění souboru .rules (pokud existuje) na základě členů použitých v RuleSet. Pokud nástroj najde více odpovídajících typů, pokusí se zvolit typ na základě shody mezi názvem souboru .rules a názvem typu (například Workflow1
typ odpovídá Workflow1.rules). Pokud existuje více shod, zobrazí se výzva k výběru typu. Pokud se tento mechanismus automatické identifikace nepodaří najít odpovídající sestavení nebo typ, můžete po importu kliknout na tlačítko Procházet v hlavním dialogovém okně nástroje a přejít na přidružený typ. Následující obrázek znázorňuje selektor Sady pravidel:
Když v hlavní nabídce nástrojů kliknete na Data-Export , zobrazí se znovu dialogové okno Pro výběr sady pravidel, ze kterého můžete určit sady pravidel z databáze, která se má exportovat. Když kliknete na OK, zobrazí se dialogové okno Uložit soubor , ve kterém můžete zadat název a umístění výsledného souboru .rules. Protože soubor .rules neobsahuje informace o verzi, můžete vybrat pouze jednu verzi Sady pravidel s daným názvem RuleSet.
Aktivita PolicyFromService
Kód aktivity PolicyFromService
je jednoduchý. Funguje podobně jako Policy
aktivita poskytovaná službou WF, ale místo načtení cílové sady pravidel ze souboru .rules volá hostitelskou službu pro získání instance RuleSet. Potom spustí Sadu pravidel pro kořenovou instanci aktivity pracovního postupu.
Chcete-li použít aktivitu v pracovním postupu, přidejte odkaz na sestavení a RuleSetService
odkaz z PolicyActivities
projektu pracovního postupu. Informace o tom, jak přidat aktivitu do panelu nástrojů, najdete v postupu na konci tohoto tématu.
Po umístění aktivity do pracovního postupu musíte zadat název sady pravidel, která se má spustit. Název můžete zadat jako hodnotu literálu nebo vytvořit vazbu na proměnnou pracovního postupu nebo vlastnost jiné aktivity. Volitelně můžete zadat čísla verzí pro konkrétní sadu pravidel, která se mají spustit. Pokud ponecháte výchozí hodnotu 0 pro čísla hlavní verze a podverze, bude pro aktivitu automaticky zadáno číslo nejnovější verze v databázi.
Služba RuleSet
Služba zodpovídá za načtení zadané verze Sady pravidel z databáze a vrácení do volající aktivity. Jak jsme už dříve probírali, pokud jsou hodnoty hlavní verze a podverze předané ve GetRuleSet
volání 0, služba načte nejnovější verzi. V tomto okamžiku neexistuje žádné ukládání definic nebo instancí Sady pravidel do mezipaměti; Podobně neexistují žádné funkce pro označení verzí RuleSet jako nasazených, které by je odlišily od probíhajících sad pravidel.
Databáze, ke které má služba přistupovat, by měla být nakonfigurovaná na hostiteli pomocí konfiguračního souboru aplikace.
Spuštění nástroje
Složka, která nastaví tabulku RuleSet používanou nástrojem a služba obsahuje soubor Setup.sql. Spuštěním dávkového souboru Setup.cmd můžete vytvořit databázi pravidel v SQL Expressu a nastavit tabulku RuleSet.
Pokud upravíte dávkový soubor nebo Setup.sql a určíte, že nebudete používat SQL Express nebo umístit tabulku do databáze s názvem něco jiného než
Rules
, konfigurační soubory aplikace v nástroji RuleSet aUsageSample
projekty by měly být upraveny se stejnými informacemi.Po spuštění skriptu Setup.sql můžete sestavit
ExternalRuleSetToolkit
řešení a pak spustit nástroj RuleSet z projektu ExternalRuleSetTool.Řešení
RuleSetToolkitUsageSample
sekvenční konzolové aplikace pracovního postupu zahrnuje ukázkový pracovní postup. Pracovní postup se skládá zPolicyFromService
aktivity a dvou proměnných aorderValue
,discount
pro které se cílová sada pravidel spouští.Pokud chcete ukázku použít, sestavte
RuleSetToolkitUsageSample
řešení. Potom v hlavní nabídce nástroje RuleSet klikněte na Data-Import a přejděte na soubor DiscountRuleSet.rules ve složce RuleSetToolkitUsageSample. Kliknutím na možnost nabídky Uložit úložiště pravidel uložte importovanou sadu pravidel do databáze.Vzhledem k tomu, že sestavení
PolicyActivities
je odkazováno z ukázkového projektu pracovního postupu,PolicyFromService
aktivita se zobrazí v pracovním postupu. Ve výchozím nastavení se ale nezobrazuje v sadě nástrojů. Pokud ho chcete přidat do sady nástrojů, postupujte takto:Klikněte pravým tlačítkem myši na panel nástrojů a vyberte Vybrat položky (to může chvíli trvat).
Po zobrazení dialogového okna Zvolit položky sady nástrojů klikněte na kartu Aktivity .
Přejděte do
PolicyActivities
sestavení vExternalRuleSetToolkit
řešení a klikněte na Otevřít.Ujistěte se, že
PolicyFromService
je aktivita vybrána v dialogovém okně Zvolit položky panelu nástrojů a potom klepněte na tlačítko OK.Aktivita by se teď měla objevit v sadě nástrojů v kategorii RuleSetToolkitUsageSample Components .
Služba RuleSet je již nakonfigurována na hostiteli konzolové aplikace pomocí následujícího příkazu v Program.cs.
workflowRuntime.AddService(new RuleSetService());
Službu na hostiteli můžete také nakonfigurovat pomocí konfiguračního souboru; Podrobnosti najdete v dokumentaci k sadě SDK.
Do projektu pracovního postupu se přidá konfigurační soubor aplikace, který určí připojovací řetězec pro databázi, kterou má služba používat. Mělo by to být stejné připojovací řetězec používané nástrojem RuleSet, který odkazuje na databázi, která obsahuje tabulku RuleSet.
Teď můžete projekt spustit
RuleSetToolkitUsageSample
stejně jako jakoukoli jinou konzolovou aplikaci pracovního postupu. Stiskněte F5 nebo Ctrl+F5 v sadě Visual Studio nebo spusťte přímo RuleSetToolkitUsageSample.exe soubor.Poznámka:
Nástroj RuleSet je nutné zavřít, aby se ukázková ukázka použití znovu zkompiluje, protože nástroj načte ukázkové sestavení využití.