Sdílet prostřednictvím


Proces náboru

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 a Flowchart) žádá o autorizaci 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 a Sequence) publikuje pracovní pozice na webu externí kariéry společnosti Contoso a spravuje získání životopisů. Publikování úlohy je k dispozici na externím webu po pevnou dobu (do vypršení časového limitu) nebo dokud se zaměstnanec ze společnosti Contoso nerozhodne ho 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 Činnosti.

  • Trvalé časovače (Delay aktivita).

  • Transakce.

  • Více než jeden pracovní postup ve stejném řešení

Popis procesu

Contoso, Inc. chce mít blízkou kontrolu nad hlavními čísly 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ů:

  1. Zaměstnanec (žadatel) zahájí žádost o proces náboru.

  2. Správce žadatele musí žádost schválit:

    1. Správce může žádost odmítnout.

    2. Správce může žádost vrátit žadateli o další informace:

      1. Žadatel zkontroluje a odešle žádost zpět správci.
    3. Manažer může schválit.

  3. Jakmile správce žadatele schválí, musí vlastník oddělení žádost schválit:

    1. Vlastník oddělení může odmítnout.

    2. Vlastník oddělení může schválit.

  4. Jakmile vlastník oddělení schválí, proces vyžaduje schválení 2 personální manažery nebo generálního ředitele:

    1. Proces může přejít do přijatého nebo odmítnutého stavu.

    2. Pokud je proces přijat, spustí se nová instance ResumeRequest pracovního postupu (ResumeRequest je 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í příspěvku o zaměstnání s příležitostí pro kariéru na externí web kariéry společnosti Contoso, přijímá životopisy od uchazečů a sleduje stav účtování 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ů:

  1. Zaměstnanec společnosti Contoso zadá informace o pozici a vypršení časového limitu. Jakmile zaměstnanec zadá tyto informace, pozice se zveřejní na webu Careers.

  2. Jakmile budou informace publikovány, mohou zúčastněné strany odeslat své životopisy. Po odeslání se životopis uloží do záznamu propojeného s otevřením úlohy.

  3. Žadatelé mohou odeslat životopisy, dokud nevyprší časový limit nebo se někdo z oddělení lidských zdrojů společnosti Contoso explicitně rozhodne odebrat účtování 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 proces žádosti o přijetí.

Tento projekt je implementován jako konzolová aplikace, která je hostitelem pracovního postupu (souboru XAML) jako služby.
ResumeRequestService 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 organizace (Zaměstnanci, Pozice, Pozice 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).
Služba Doručená pošta Doručená pošta, která obsahuje úkoly s akcemi 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 funkce

Následující tabulka popisuje, jak se jednotlivé funkce používají v této ukázce.

Funkce Popis Project
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í s 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 authored pomocí imperativního kódu rozšíření 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 objektu ( HiringRequest using HiringRequestRepository.Save). Tato aktivita byla authored pomocí imperativního kódu rozšíření 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 akce proběhla, kým a kdy). Zdrojový kód je ve složce Sledování HiringRequestService. HiringRequestService
Trasování Trasování událostí pro Windows Sledování Trasování Událostí pro Windows poskytované systémem 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 dva kroky schválení personálního oddělení).
- Parallel slouží k provedení některých úloh čištění v krocích Dokončeno a Odmítnuto.
HiringRequestService
Zrušení modelu Vývojový diagram používá CancellationScope k vytvoření chování zrušení (v tomto případě provede vyčištění.) HiringRequestService
Účastník trvalosti zákazníka 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í. ResumeRequestService
Trvalé časovače ResumeRequestService používá trvalé časovače k definování doby trvání účtování pracovních míst (po vypršení časového limitu je zaúčtování úlohy uzavřeno). ResumeRequestService
Transakce TransactionScope slouží k zajištění konzistence dat během provádění několika aktivit (při přijetí nového životopisu). ResumeRequestService
Transakce Vlastní účastník trvalosti (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ázky

Vytvoření databází

  1. Otevřete příkazový řádek pro vývojáře pro Visual Studio.

  2. Přejděte do složky s ukázkou.

  3. Spusťte Setup.cmd.

  4. Ověřte, že se obě databáze vytvořily ContosoHRInstanceStore v SQL Expressu.

Nastavení řešení pro spuštění

  1. Spusťte sadu Visual Studio jako správce. Otevřete HiringRequest.sln.

  2. Klikněte pravým tlačítkem na řešení v Průzkumník řešení a vyberte Vlastnosti.

  3. Vyberte možnost Více projektů po spuštění a nastavte možnost CareersWebSite, InternalClient, HiringRequestService a ResumeRequestService na Start. Nechejte ContosoHR, InboxService a OrgService jako Žádné.

  4. Sestavte řešení stisknutím kombinace kláves CTRL+SHIFT+B. Ověřte, že sestavení proběhlo úspěšně.

Spuštění řešení

  1. 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.

  2. 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.

  3. Zobrazí se modul HiringRequest . Můžete postupovat podle zde popsaného scénáře.

  4. HiringRequest Po dokončení můžete spustit ResumeRequest. Můžete postupovat podle zde popsaného scénáře.

  5. ResumeRequest Jakmile se publikuje, bude k dispozici na veřejném webu (web Contoso Careers). Chcete-li zobrazit účtování zaměstnání (a požádat o pozici), přejděte na web kariéry.

  6. V řešení klikněte pravým tlačítkem na CareersWebSite a vyberte Zobrazit v prohlížeči.

  7. 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.

  8. Kliknutím na odkaz Účtování pracovních míst 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í

  1. 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#.

  2. Po vytvoření se žádost zobrazí ve složce Doručená pošta Michaela (pokud žádost nevidíte, klikněte na Aktualizovat , pokud žádost nevidíte) čekající na schválení Petera Brehma, který je michaelovým manažerem.

  3. 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.

  4. Michael vidí zprávu ve své doručené poště od svého nadřízený a chce jednat. Michael vidí historii žádosti o pozici a souhlasí s Peterem. Michael upraví popis tak, aby vyžadoval 5 let zkušeností v jazyce C# a změnu přijme.

  5. Peter se chytá na michaelovu upravenou žádost a přijme ji. Žádost teď musí schválit ředitel technického týmu Tsvi Reiter.

  6. Tsvi Reiter chce žádost urychlit, takže do komentáře uvede, že žádost je naléhavé a přijme ji.

  7. Žá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í urgentní žádost Tsvi. Jedná na žádost tím, že ji přijme, a tak obchází schválení dvěma správci lidských zdrojů.

  8. Žádost se odebere ze složky Doručená pošta Michaela a proces přijetí SDET teď začal.

Zahájit žádost o obnovení

  1. Pozice úlohy teď čeká na publikování na externí web, kde můžou lidé použít (můžete ji zobrazit kliknutím na odkaz Účtování pracovních míst ). V současné době pracovní pozice sedí se zástupcem personálního oddělení, který je zodpovědný za finalizaci pozice a vystavení pracovní pozice.

  2. 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 se pozice úlohy odebrala z externího webu podle zadaného času.

  3. 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ů

  1. Pozice úlohy 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.

  2. Pokud se vrátíte do služby Seznam účtování pracovních míst, můžete zobrazit životopisy, které byly dosud shromážděny.

  3. 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ému

  1. Ujistěte se, že používáte Visual Studio s oprávněními správce.

  2. Pokud se řešení nepodaří sestavit, ověřte následující:

    • Odkaz na ContosoHR chybějící z projektů InternalClient nebo CareersWebSite projektů chybí.
  3. Pokud se řešení nepodaří spustit, ověřte následující:

    1. Všechny služby jsou spuštěné.

    2. Odkazy na služby se aktualizují.

      1. Otevření složky App_WebReferences

      2. Klikněte pravým tlačítkem myši na Contoso a vyberte Aktualizovat odkazy na web nebo službu.

      3. Znovu sestavte řešení stisknutím kombinace kláves CTRL+SHIFT+B v sadě Visual Studio.

Odinstalování

  1. Odstraňte úložiště instancí SQL Serveru spuštěním Cleanup.bat umístěné ve složce DbSetup.

  2. Odstraňte zdrojový kód z pevného disku.