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.
Ukázka HiringProcess ukazuje, jak implementovat obchodní proces pomocí aktivit zasílání zpráv a dvou pracovních postupů hostovaných jako služby pracovního postupu. Tyto pracovní postupy jsou součástí IT infrastruktury fiktivní společnosti Contoso, Inc.
Proces HiringRequest pracovního postupu (implementovaný jako Flowchart) žádá o schválení od několika manažerů v organizaci. K dosažení tohoto cíle pracovní postup používá jiné existující služby v organizaci (v našem případě službu doručené pošty a datovou službu organizace implementovanou jako prosté služby WCF (Windows Communication Foundation).
Pracovní ResumeRequest postup (implementovaný jako Sequence) uveřejňuje nabídky práce na externí kariérní stránce společnosti Contoso a řídí přijetí životopisů. Pracovní nabídka je k dispozici na externím webu na pevně stanovenou dobu (do vypršení časového limitu) nebo dokud se zaměstnanec společnosti Contoso nerozhodne ji odebrat.
Tato ukázka ukazuje následující funkce rozhraní .NET Framework 4.6.1:
Flowchart a Sequence pracovní postupy pro modelování obchodních procesů.
Služby pracovních postupů.
Aktivity zasílání zpráv
Korelace založená na obsahu
Vlastní aktivity (deklarativní a založené na kódu)
Trvalost SQL serveru poskytovaná systémem.
Vlastní PersistenceParticipant.
Vlastní sledování
Sledování událostí pro Windows (ETW).
Složení činností.
Parallel činnosti.
CancellationScope aktivita.
Trvalé časovače (Delay aktivita).
Transakce.
Více než jeden pracovní postup ve stejném řešení
Popis procesu
Contoso, Inc. chce mít důkladnou kontrolu nad počtem zaměstnanců v každém z jeho oddělení. Proto kdykoli chce každý zaměstnanec zahájit nový proces náboru, musí projít schválením procesu žádosti o přijetí, aby se nábor skutečně mohl stát. Tento proces se nazývá žádost o proces náboru (definovaná v projektu HiringRequestService) a skládá se z následujících kroků:
Zaměstnanec (žadatel) zahájí žádost o proces náboru.
Správce žadatele musí žádost schválit:
Správce může žádost odmítnout.
Správce může žádost vrátit žadateli o další informace:
- Žadatel zkontroluje a odešle žádost zpět správci.
Manažer může schválit.
Jakmile správce žadatele schválí, musí vlastník oddělení žádost schválit:
Vlastník oddělení může odmítnout.
Vlastník oddělení může schválit.
Jakmile vlastník oddělení schválí, proces vyžaduje schválení 2 personální manažery nebo generálního ředitele:
Proces může přejít do přijatého nebo odmítnutého stavu.
Pokud je proces přijat, spustí se nová instance
ResumeRequestpracovního postupu (ResumeRequestje propojena s HiringRequest.csproj prostřednictvím odkazu na službu.)
Jakmile vedoucí schválí nábor nového zaměstnance, musí personální oddělení najít vhodného kandidáta. Tento proces provádí druhý pracovní postup (ResumeRequestdefinovaný v ResumeRequestService.csproj). Tento pracovní postup definuje proces odeslání inzerátu pracovních míst s kariérní příležitostí na externí web Kariéry společnosti Contoso, přijímá životopisy od uchazečů a sleduje stav inzerátu pracovních míst. Pozice jsou k dispozici pro pevné časové období (do vypršení časového limitu) nebo dokud se zaměstnanec ze společnosti Contoso nerozhodne ho odebrat. Pracovní ResumeRequest postup se skládá z následujících kroků:
Zaměstnanec společnosti Contoso zadává informace o pozici a trvání časového limitu. Jakmile zaměstnanec zadá tyto informace, pozice se zveřejní na webu Careers.
Jakmile budou informace publikovány, mohou zúčastněné strany odeslat své životopisy. Po odeslání je životopis uložen do záznamu propojeného s pracovní pozicí.
Žadatelé mohou odeslat životopisy, dokud nevyprší lhůta nebo se někdo z oddělení lidských zdrojů společnosti Contoso explicitně rozhodne odebrat příspěvek zastavením procesu.
Projekty v ukázce
Následující tabulka ukazuje projekty v ukázkovém řešení.
| Projekt | Popis |
|---|---|
| ContosoHR | Obsahuje kontrakty dat, obchodní objekty a třídy úložiště. |
| HiringRequestService | Obsahuje definici pracovního postupu žádosti o přijetí do zaměstnání. Tento projekt je implementován jako konzolová aplikace, která sama hostuje pracovní postup (soubor XAML) jako službu. |
| SlužbaObnoveníŽádosti | Služba pracovního postupu, která shromažďuje životopisy od kandidátů, dokud nevyprší časový limit nebo se někdo rozhodne, že se proces musí zastavit. Tento projekt je implementován jako deklarativní služba pracovního postupu (xamlx). |
| OrgService | Služba, která zveřejňuje informace o organizaci (Zaměstnanci, Pozice, Typy pozic a Oddělení). Tuto službu si můžete představit jako modul Organizace společnosti v plánu zdrojů organizace (ERP). Tento projekt je implementován jako konzolová aplikace, která zveřejňuje službu WCF (Windows Communication Foundation). |
| Doručovací služba | Doručená pošta, která obsahuje akční úkoly pro zaměstnance. Tento projekt je implementován jako konzolová aplikace, která zveřejňuje službu WCF. |
| InternalClient | Webová aplikace pro interakci s procesem. Uživatelé můžou spouštět, účastnit se svých pracovních postupů HiringProcess a zobrazovat je. Pomocí této aplikace mohou také spouštět a monitorovat procesy ResumeRequest. Tento web je implementovaný tak, aby byl interní v intranetu společnosti Contoso. Tento projekt je implementován jako ASP.NET web. |
| KariéraWebSite | Externí web, který zveřejňuje otevřené pozice ve společnosti Contoso. Každý potenciální kandidát může přejít na tento web a odeslat životopis. |
Souhrn funkcí
Následující tabulka popisuje, jak se jednotlivé funkce používají v této ukázce.
| Vlastnost | Popis | Projekt |
|---|---|---|
| Vývojový diagram | Obchodní proces je reprezentován jako vývojový diagram . Tento popis vývojového diagramu představuje proces stejným způsobem, jakým by ho firma nakreslila do tabule. | HiringRequestService |
| Služby pracovních postupů | Vývojový diagram s definicí procesu je hostovaný ve službě (v tomto příkladu je služba hostovaná v konzolové aplikaci). | HiringRequestService |
| Aktivity zasílání zpráv | Vývojový diagram používá aktivity zasílání zpráv dvěma způsoby: – Získání informací od uživatele (pro příjem rozhodnutí a souvisejících informací v jednotlivých krocích schválení). – Interakce s jinými existujícími službami (InboxService a OrgDataService, které se používají prostřednictvím odkazů na služby). |
HiringRequestService |
| Korelace založená na obsahu | Schvalovací zprávy korelují s vlastností ID žádosti o přijetí: – Při spuštění procesu se obslužná rutina korelace inicializuje s ID požadavku. - Příchozí schvalovací zprávy korelují na základě jejich ID (první parametr každé schvalovací zprávy je ID požadavku). |
HiringRequestService / ResumeRequestService |
| Vlastní aktivity (deklarativní a založené na kódu) | V této ukázce je několik vlastních aktivit: - SaveActionTracking: Tato aktivita generuje vlastní TrackingRecord (pomocí Track). Tato aktivita byla vytvořena pomocí imperativního kódu rozšiřující NativeActivity.- GetEmployeesByPositionTypes: Tato aktivita obdrží seznam ID typů pozic a vrátí seznam lidí, kteří mají tuto pozici ve společnosti Contoso. Tato aktivita byla autorizována deklarativním způsobem (pomocí návrháře aktivit).- SaveHiringRequestInfo: Tato aktivita ukládá informace o HiringRequest (za použití HiringRequestRepository.Save). Tato aktivita byla vytvořena pomocí imperativního kódu rozšiřující CodeActivity. |
HiringRequestService |
| Trvalost SQL Serveru poskytované systémem | Instance WorkflowServiceHost , která hostuje definici procesu vývojového diagramu, je nakonfigurovaná tak, aby používala trvalost SQL Serveru poskytované systémem. | HiringRequestService / ResumeRequestService |
| Vlastní sledování | Ukázka obsahuje vlastního účastníka sledování, který ukládá historii objektu ( HiringRequestProcess tato zaznamenává, co bylo uděláno, kým a kdy). Zdrojový kód je ve složce Sledování HiringRequestService. |
HiringRequestService |
| Trasování událostí pro Windows (ETW) | Systémové sledování ETW je nakonfigurováno v souboru App.config ve službě HiringRequestService. | HiringRequestService |
| Složení činností | Definice procesu používá volné složení Activity. Vývojový diagram obsahuje několik sekvencí a paralelních aktivit, které současně obsahují další aktivity (atd.). | HiringRequestService |
| Paralelní aktivity |
-
ParallelForEach<T> se používá k paralelní registraci ve složce Doručená pošta generálního ředitele a manažerů lidských zdrojů (čeká se na schválení od dvou manažerů lidských zdrojů). - Parallel slouží k provedení některých úklidových úkolů v krocích Dokončení a Odmítnutí. |
HiringRequestService |
| Zrušení modelu | Vývojový diagram používá CancellationScope k vytvoření chování při zrušení (v tomto případě provede úklid.) | HiringRequestService |
| Účastník zákaznické věrnosti |
HiringRequestPersistenceParticipant ukládá data z proměnné pracovního postupu do tabulky uložené v databázi lidských zdrojů společnosti Contoso. |
HiringRequestService |
| Služby pracovních postupů |
ResumeRequestService se implementuje pomocí služeb pracovních postupů. Definice pracovního postupu a informace o službě jsou obsaženy v ResumeRequestService.xamlx. Služba je nakonfigurovaná tak, aby používala trvalost a sledování. |
SlužbaObnoveníŽádosti |
| Trvalé časovače |
ResumeRequestService používá trvalé časovače k definování doby trvání pracovního inzerátu (po vypršení časového limitu je pracovní inzerát uzavřen). |
SlužbaObnoveníŽádosti |
| Transakce | TransactionScope slouží k zajištění konzistence dat během provádění několika aktivit (při přijetí nového životopisu). | SlužbaObnoveníŽádosti |
| Transakce | Vlastní vytrvalostní účastník (HiringRequestPersistenceParticipant) a vlastní sledovací účastník (HistoryFileTrackingParticipant) používají stejnou transakci. |
HiringRequestService |
| Použití WF v aplikacích ASP.NET | Pracovní postupy jsou přístupné ze dvou ASP.NET aplikací. | InternalClient / CareersWebSite |
Úložiště dat
Data se ukládají do databáze SQL Serveru s názvem ContosoHR (skript pro vytvoření této databáze se nachází ve DbSetup složce). Instance pracovního postupu jsou uloženy v databázi SQL Serveru s názvem InstanceStore (skripty pro vytvoření úložiště instancí jsou součástí distribuce rozhraní .NET Framework 4.6.1).
Obě databáze se vytvářejí spuštěním Setup.cmd skriptu z příkazového řádku pro vývojáře pro Visual Studio.
Spuštění ukázkového programu
Vytvoření databází
Otevřete příkazový řádek pro vývojáře pro Visual Studio.
Přejděte do složky s ukázkou.
Spusťte Setup.cmd.
Ověřte, že se obě databáze vytvořily
ContosoHRInstanceStorev SQL Expressu.
Nastavení řešení pro spuštění
Spusťte Visual Studio jako správce. Otevřete HiringRequest.sln.
V Průzkumníku řešení klikněte pravým tlačítkem myši na řešení a vyberte Vlastnosti.
Vyberte možnost Více projektů při spuštění a nastavte CareersWebSite, InternalClient, HiringRequestService a ResumeRequestService na Start. Nechejte ContosoHR, InboxService a OrgService jako Žádné.
Sestavte řešení stisknutím kombinace kláves CTRL+SHIFT+B. Ověřte, že sestavení proběhlo úspěšně.
Spustit řešení
Po sestavení řešení stiskněte kombinaci kláves CTRL+F5 a spusťte ho bez ladění. Ověřte, že byly spuštěny všechny služby.
V řešení klikněte pravým tlačítkem myši na InternalClient a pak vyberte Zobrazit v prohlížeči. Zobrazí se výchozí stránka
InternalClient. Ujistěte se, že jsou spuštěné služby, a klikněte na odkaz.Zobrazí se modul HiringRequest . Můžete postupovat podle zde popsaného scénáře.
Jakmile je
HiringRequestdokončeno, můžete začítResumeRequest. Můžete postupovat podle zde popsaného scénáře.ResumeRequestJakmile se publikuje, bude k dispozici na veřejném webu (web Contoso Careers). Chcete-li zobrazit nabídku pracovních pozic (a ucházet se o pozici), přejděte na webové stránky kariéry.V řešení klikněte pravým tlačítkem na CareersWebSite a vyberte Zobrazit v prohlížeči.
Vraťte se do
InternalClientřešení tak, že v řešení kliknete pravým tlačítkem na InternalClient a vyberete Zobrazit v prohlížeči.Kliknutím na odkaz Nabídky práce v horní nabídce doručené pošty přejděte do části Pracovní pozice. Můžete postupovat podle zde popsaného scénáře.
Scénáře
Žádost o přijetí
Michael Alexander (softwarový inženýr) chce požádat o novou pozici pro nábor softwarového inženýra v testování (SDET) v technickém oddělení, který má alespoň 3 roky zkušeností v jazyce C#.
Po vytvoření se žádost zobrazí ve složce Doručená pošta Michaela (pokud žádost nevidíte, klikněte na Aktualizovat) a čeká na schválení Petera Brehma, který je Michaelovým manažerem.
Peter chce jednat na žádost Michaela. Myslí si, že pozice vyžaduje 5 let zkušeností jazyka C# místo 3, takže pošle své komentáře zpět ke kontrole.
Michael vidí zprávu ve své doručené poště od svého nadřízeného a chce jednat. Michael vidí historii žádosti o pozici a souhlasí s Petrem. Michael upraví popis tak, aby vyžadoval 5 let zkušeností v jazyce C# a změnu přijme.
Peter jedná dle Michaelovy upravené žádosti a přijímá ji. Žádost teď musí schválit ředitel technického týmu Tsvi Reiter.
Tsvi Reiter chce žádost urychlit, takže do komentáře uvede, že žádost je naléhavé a přijme ji.
Žádost teď musí schválit dva manažeři personálního oddělení nebo generální ředitel. Generální ředitel Brian Richard Goldstein vidí naléhavou žádost od Tsvi. Jedná na žádost tím, že ji přijme, a tak obchází schválení dvěma správci lidských zdrojů.
Žádost je odstraněna ze složky Doručená pošta Michaela a proces náboru na pozici SDET teď začal.
Zahájit žádost o pokračování
Nyní pracovní pozice čeká na zveřejnění na externích webových stránkách, kde se lidé mohou přihlásit (můžete je zobrazit kliknutím na odkaz Nabídky práce). V současné době je pracovní pozice u zástupce personálního oddělení, který je zodpovědný za její finalizaci a zveřejnění.
Hr chce upravit tuto pozici úlohy (kliknutím na odkaz Upravit ) nastavením časového limitu 60 minut (v reálném životě to může být dny nebo týdny). Časový limit umožňuje, aby byla pracovní pozice odstraněna z externího webu po určeném čase.
Po uložení upravené pozice úlohy se zobrazí na kartě Příjem životopisů (aktualizujte webovou stránku, aby se zobrazila nová pozice úlohy).
Shromažďování životopisů
Pracovní pozice by se měla zobrazit na externím webu. Jako osoba, která se zajímá o práci, můžete požádat o tuto pozici a odeslat životopis.
Pokud se vrátíte k službě Seznam inzerátů pracovních pozic, můžete si prohlédnout životopisy, které byly dosud shromážděny.
Personální oddělení může také přestat shromažďovat životopisy (například jakmile je identifikován správný kandidát).
Řešení problémů
Ujistěte se, že používáte Visual Studio s oprávněními správce.
Pokud se řešení nepodaří sestavit, ověřte následující:
- Odkaz na
ContosoHRnechybí v projektechInternalClientaniCareersWebSite.
- Odkaz na
Pokud se řešení nepodaří spustit, ověřte následující:
Všechny služby jsou spuštěné.
Odkazy na služby se aktualizují.
Otevření složky App_WebReferences
Klikněte pravým tlačítkem myši na Contoso a vyberte Aktualizovat odkazy na web nebo službu.
Znovu sestavte řešení stisknutím kombinace kláves CTRL+SHIFT+B v sadě Visual Studio.
Odinstalování
Odstraňte úložiště instancí SQL Serveru spuštěním příkazu Cleanup.bat, který se nachází ve složce DbSetup.
Odstraňte zdrojový kód z pevného disku.