Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í workflow sestavení. 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 běžícím instancím pracovního postupu automaticky začlenit změny v sadě pravidel.
Ukázka sady nástrojů External RuleSet obsahuje nástroj založený na modelu Windows Forms, který můžete použít ke správě a úpravě verzí Sady pravidel 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 připojovací řetězec databáze pro databázi RuleSet. Když nástroj spustíte, automaticky načte sady pravidel z nakonfigurované databáze.
Nástroj RuleSet aplikuje čísla hlavní a vedlejší verze na sady pravidel, což vám umožní současně udržovat a ukládat více verzí (nástroj kromě funkcí správy verzí neposkytuje žádné funkce zamykání nebo jiné funkce správy konfigurace). 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ě obsažených pravidel, 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 nebo nemusí 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 ve svém projektu pracovního postupu odkaz na sestavení PolicyActivities a RuleSetService. 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 hodnotu 0 jako výchozí pro čísla hlavní verze a podverze, bude pro aktivitu automaticky zadáno číslo nejnovější verze uložené v databázi.
Služba RuleSet
Služba zodpovídá za načtení zadané verze RuleSet z databáze a vrácení do volající jednotky. 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.
Spustit nástroj
Složka, která nastaví tabulku RuleSet používanou nástrojem a službou, 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 aUsageSampleprojekty 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í konzolové aplikace sekvenčního pracovního postupu
RuleSetToolkitUsageSamplezahrnuje ukázkový pracovní postup. Pracovní postup se skládá zPolicyFromServiceaktivity a dvou proměnných,orderValueadiscount, proti kterým se cílová sada pravidel spouští.Abyste mohli ukázku použít, sestavte řešení
RuleSetToolkitUsageSample. 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í
PolicyActivitiesje odkazováno z ukázkového projektu pracovního postupu,PolicyFromServiceaktivita 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
PolicyActivitiessestavení vExternalRuleSetToolkitřešení a klikněte na Otevřít.Ujistěte se, že aktivita
PolicyFromServiceje vybrána v dialogovém okně Zvolit položky panelu nástrojů a potom klepněte na 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. Tento připojovací řetězec by měl být stejný jako nástroj RuleSet, který odkazuje na databázi obsahující tabulku RuleSet.
Teď můžete projekt spustit
RuleSetToolkitUsageSamplestejně 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ý příklad použití znovu zkompiloval, protože nástroj načte sestavení ukázkového příkladu použití.