Felvételi folyamat
A HiringProcess minta bemutatja, hogyan implementálhat egy üzleti folyamatot üzenetkezelési tevékenységek és munkafolyamat-szolgáltatásként üzemeltetett két munkafolyamat használatával. Ezek a munkafolyamatok a Contoso, Inc. nevű fiktív vállalat informatikai infrastruktúrájának részei.
A HiringRequest
munkafolyamat (implementálva Flowchart) a szervezet több vezetőjétől kér engedélyt. E cél elérése érdekében a munkafolyamat a szervezet egyéb meglévő szolgáltatásait használja (esetünkben egy beérkezett üzeneteket használó szolgáltatást és egy egyszerű Windows Communication Foundation (WCF) szolgáltatásként megvalósított szervezeti adatszolgáltatást).
A ResumeRequest
munkafolyamat (implementálva Sequence) közzétesz egy feladat-közzétételt a Contoso külső karrierwebhelyén, és kezeli az önéletrajzok beszerzését. A feladat-közzététel a külső webhelyen egy meghatározott ideig (az időtúllépés lejáratáig) érhető el, vagy amíg a Contoso egyik alkalmazottja el nem távolítja.
Ez a minta a .NET-keretrendszer 4.6.1 következő funkcióit mutatja be:
Flowchart és Sequence munkafolyamatokat az üzleti folyamatok modellezéséhez.
Munkafolyamat-szolgáltatások.
Üzenetkezelési tevékenységek.
Tartalomalapú korreláció.
Egyéni tevékenységek (deklaratív és kódalapú).
Rendszer által biztosított SQL Server-adatmegőrzés.
Egyéni PersistenceParticipant.
Egyéni nyomon követés.
Eseménykövetés a Windows (ETW) nyomon követéséhez.
A tevékenységek összetétele.
Parallel Tevékenységek.
CancellationScope Tevékenység.
Tartós időzítők (Delay tevékenység).
Tranzakciók.
Több munkafolyamat ugyanabban a megoldásban.
A folyamat leírása
A Contoso, Inc. minden részlegében szoros ellenőrzést szeretne a létszám felett. Ezért bármikor, amikor bármely alkalmazott új felvételi folyamatot szeretne kezdeni, át kell mennie egy felvételi kérelem folyamatának jóváhagyásán, mielőtt a toborzás ténylegesen megtörténhetne. Ezt a folyamatot nevezik felvételi folyamatkérésnek (a HiringRequestService projektben definiálva), és a következő lépésekből áll:
Egy alkalmazott (a kérelmező) elindítja a felvételi folyamatot.
A kérelmező kezelőjének jóvá kell hagynia a kérést:
A felettes elutasíthatja a kérést.
A felettes további információkért visszaküldheti a kérést a kérelmezőnek:
- A kérelmező áttekinti és visszaküldi a kérést a felettesnek.
A felettes jóváhagyhatja.
Miután a kérelmező felettese jóváhagyta a kérelmet, a részleg tulajdonosának jóvá kell hagynia a kérést:
A részleg tulajdonosa elutasíthatja.
A részleg tulajdonosa jóváhagyhatja.
Miután a részleg tulajdonosa jóváhagyta, a folyamathoz 2 HR-vezető vagy a vezérigazgató jóváhagyása szükséges:
A folyamat áttérhet az elfogadott vagy elutasított állapotra.
Ha a folyamat elfogadásra kerül, a munkafolyamat új példánya
ResumeRequest
elindul (ResumeRequest
a rendszer egy szolgáltatáshivatkozáson keresztül kapcsolódik a HiringRequest.csproj szolgáltatáshoz.)
Miután a vezetők jóváhagyták egy új alkalmazott felvételét, a HR-nek meg kell találnia a megfelelő jelöltet. Ezt a folyamatot a második munkafolyamat (ResumeRequest
a ResumeRequestService.csprojban definiálva) hajtja végre. Ez a munkafolyamat határozza meg azt a folyamatot, amely során karrierlehetőséggel rendelkező álláshirdetést küldhet a Contoso külső Karrierwebhelyére, önéletrajzokat fogad a jelentkezőktől, és figyeli az álláshirdetés állapotát. A pozíciók meghatározott ideig (egy idő lejáratáig) vagy addig érhetők el, amíg a Contoso alkalmazottja el nem távolítja azt. A ResumeRequest
munkafolyamat a következő lépésekből áll:
A Contoso alkalmazottja a pozícióval és az időtúllépés időtartamával kapcsolatos információkat típusok. Miután az alkalmazott beszúrta ezt az információt, a pozíció megjelenik a Karrierek webhelyen.
Az információk közzététele után az érdekelt felek beküldhetik önéletrajzukat. Az önéletrajz elküldésekor a rendszer egy, a feladat megnyitásához csatolt rekordban tárolja.
A pályázók önéletrajzokat küldhetnek az időkorlát lejártáig, vagy a Contoso HR-részlegének valaki kifejezetten úgy dönt, hogy a folyamat leállításával eltávolítja a bejegyzést.
A mintában szereplő projektek
Az alábbi táblázat a mintamegoldás projektjeit mutatja be.
Project | Leírás |
---|---|
ContosoHR | Adatszerződéseket, üzleti objektumokat és adattárosztályokat tartalmaz. |
HiringRequestService | A felvételi kérelem folyamatának definícióját tartalmazza. Ez a projekt egy olyan konzolalkalmazásként van implementálva, amely szolgáltatásként üzemelteti a munkafolyamatot (xaml-fájlt). |
ResumeRequestService | Egy munkafolyamat-szolgáltatás, amely a jelöltektől folytatja az időtúllépést, vagy valaki úgy dönt, hogy le kell állítani a folyamatot. Ez a projekt deklaratív munkafolyamat-szolgáltatásként (xamlx) van implementálva. |
OrgService | Olyan szolgáltatás, amely szervezeti adatokat (alkalmazottak, pozíciók, pozíciótípusok és részlegek) tesz közzé. Ezt a szolgáltatást vállalati erőforrásterv (ERP) Vállalati szervezet moduljaként tekintheti. Ez a projekt egy olyan konzolalkalmazásként van implementálva, amely egy Windows Communication Foundation (WCF) szolgáltatást tesz elérhetővé. |
Beérkezett üzenetek szolgáltatás | Az alkalmazottak számára végrehajtható feladatokat tartalmazó beérkezett üzenetek. Ez a projekt egy olyan konzolalkalmazásként van implementálva, amely egy WCF-szolgáltatást tesz elérhetővé. |
InternalClient | Webalkalmazás a folyamattal való interakcióhoz. A felhasználók elindíthatják, részt vehetnek és megtekinthetik a HiringProcess-munkafolyamatokat. Ezzel az alkalmazással a ResumeRequest folyamatokat is elindíthatják és figyelhetik. Ez a webhely a Contoso intranetén belülre van implementálva. Ez a projekt ASP.NET webhelyként van implementálva. |
CareersWebSite | Egy külső webhely, amely a Contoso nyitott pozícióit teszi elérhetővé. Bármely lehetséges jelölt navigálhat erre a webhelyre, és önéletrajzot küldhet be. |
Szolgáltatások ismertetése
Az alábbi táblázat bemutatja, hogyan használják az egyes funkciókat ebben a mintában.
Szolgáltatás | Leírás | Project |
---|---|---|
Folyamatábra | Az üzleti folyamat folyamatábraként jelenik meg. Ez a folyamatábra-leírás ugyanúgy jeleníti meg a folyamatot, ahogyan egy vállalkozás rajztáblára rajzolta volna. | HiringRequestService |
Munkafolyamat-szolgáltatások | A folyamatdefinícióval rendelkező folyamatábra egy szolgáltatásban fut (ebben a példában a szolgáltatást egy konzolalkalmazás üzemelteti). | HiringRequestService |
Üzenetkezelési tevékenységek | A folyamatábra kétféleképpen használ üzenetkezelési tevékenységeket: - Információk lekérése a felhasználótól (a döntések és a kapcsolódó információk fogadása az egyes jóváhagyási lépésekben). - Más meglévő szolgáltatásokkal (InboxService és OrgDataService, szolgáltatáshivatkozásokon keresztül) való kommunikáció. |
HiringRequestService |
Tartalomalapú korreláció | A jóváhagyási üzenetek korrelálnak a felvételi kérelem azonosító tulajdonságával: – Egy folyamat indításakor a korrelációs leíró inicializálódik a kérés azonosítójával. - A bejövő jóváhagyási üzenetek korrelálnak az azonosítójukkal (az egyes jóváhagyási üzenetek első paramétere a kérés azonosítója). |
HiringRequestService / ResumeRequestService |
Egyéni tevékenységek (deklaratív és kódalapú) | Ebben a mintában számos egyéni tevékenység található: - SaveActionTracking : Ez a tevékenység egy egyénit TrackingRecord bocsát ki (a használatával Track). Ezt a tevékenységet imperatív kódbővítéssel NativeActivityhozták létre.- GetEmployeesByPositionTypes : Ez a tevékenység megkapja a pozíciótípus azonosítóinak listáját, és visszaadja azoknak a személyeknek a listáját, akik ilyen pozícióval rendelkeznek a Contoso-ban. Ez a tevékenység deklaratív módon lett hitelesítve (a tevékenységtervező használatával).- SaveHiringRequestInfo : Ez a tevékenység menti egy (használatávalHiringRequestRepository.Save ) információit HiringRequest . Ezt a tevékenységet imperatív kódbővítéssel CodeActivityhozták létre. |
HiringRequestService |
Rendszer által biztosított SQL Server-adatmegőrzés | A WorkflowServiceHost Folyamatábra folyamatdefiníciót futtató példány a rendszer által biztosított SQL Server-adatmegőrzés használatára van konfigurálva. | HiringRequestService / ResumeRequestService |
Egyéni nyomon követés | A minta tartalmaz egy egyéni nyomon követési résztvevőt, amely menti a művelet előzményeit HiringRequestProcess (ez rögzíti, hogy milyen műveletet hajtottak végre, ki és mikor). A forráskód a HiringRequestService Nyomkövetés mappájában található. |
HiringRequestService |
ETW-nyomkövetés | A rendszer által biztosított ETW-nyomkövetés az App.config fájlban van konfigurálva a HiringRequestService szolgáltatásban. | HiringRequestService |
Tevékenységek összetétele | A folyamatdefiníció a Activity. A folyamatábra több sorozat- és párhuzamos tevékenységet tartalmaz, amelyek ugyanakkor más tevékenységeket (és így tovább) is tartalmaznak. | HiringRequestService |
Párhuzamos tevékenységek | - ParallelForEach<T> ezzel párhuzamosan regisztrálhat a vezérigazgató és a HR-vezetők Beérkezett üzenetek mappájába (két HR-vezető jóváhagyási lépésére vár). - Parallel a befejezett és az elutasított lépésekben végzett egyes tisztítási feladatok végrehajtására szolgál |
HiringRequestService |
Modell lemondása | A folyamatábra CancellationScope lemondási viselkedést hoz létre (ebben az esetben némi tisztítást végez).) | HiringRequestService |
Ügyfélmegőrzési résztvevő | HiringRequestPersistenceParticipant Adatokat ment egy munkafolyamat-változóból a Contoso HR-adatbázisban tárolt táblába. |
HiringRequestService |
Munkafolyamat-szolgáltatások | ResumeRequestService munkafolyamat-szolgáltatások használatával implementálva. A munkafolyamat-definíciót és a szolgáltatásinformációkat a ResumeRequestService.xamlx tartalmazza. A szolgáltatás konfigurálva van az adatmegőrzés és a nyomon követés használatára. |
ResumeRequestService |
Tartós időzítők | ResumeRequestService Tartós időzítőkkel határozza meg a feladat-feladás időtartamát (ha lejár az időkorlát, a feladat feladása lezárul). |
ResumeRequestService |
Tranzakciók | TransactionScope az adatok konzisztenciájának biztosítására szolgál több tevékenység végrehajtása során (új önéletrajz érkezésekor). | ResumeRequestService |
Tranzakciók | Az egyéni adatmegőrzési résztvevő (HiringRequestPersistenceParticipant ) és az egyéni nyomkövetési résztvevő (HistoryFileTrackingParticipant ) ugyanazt a tranzakciót használja. |
HiringRequestService |
WF használata ASP.NET alkalmazásokban. | A munkafolyamatok két ASP.NET alkalmazásból érhetők el. | InternalClient / CareersWebSite |
Adattárolás
Az adatok tárolása egy SQL Server-adatbázisban ContosoHR
történik( az adatbázis létrehozására szolgáló szkript a DbSetup
mappában található). A munkafolyamat-példányokat egy SQL Server-adatbázisban tárolja a rendszer InstanceStore
(a példánytár létrehozásához használt szkriptek a .NET-keretrendszer 4.6.1-beli disztribúció részét képezik).
Mindkét adatbázis úgy jön létre, hogy Setup.cmd szkriptet futtat egy Visual Studióhoz készült fejlesztői parancssorból.
A minta futtatása
Az adatbázisok létrehozása
Nyisson meg egy Fejlesztői parancssort a Visual Studióhoz.
Lépjen a mintamappára.
Futtassa a Setup.cmd.
Ellenőrizze, hogy a két adatbázis
ContosoHR
InstanceStore
létrejött-e az SQL Expressben.
A megoldás beállítása végrehajtáshoz
Futtassa a Visual Studiót rendszergazdaként. Nyissa meg a HiringRequest.sln.
Kattintson a jobb gombbal a megoldásra a Megoldáskezelő, és válassza a Tulajdonságok lehetőséget.
Válassza a Több indítási projekt lehetőséget, és állítsa a CareersWebSite, az InternalClient, a HiringRequestService és a ResumeRequestService beállítást indításra. Hagyja a ContosoHR, az InboxService és az OrgService szolgáltatást nincsként.
A megoldás létrehozásához nyomja le a CTRL+SHIFT+B billentyűkombinációt. Ellenőrizze, hogy a build sikeres volt-e.
A megoldás futtatása
A megoldás létrehozása után a CTRL+F5 billentyűkombinációt lenyomva hibakeresés nélkül futhat. Ellenőrizze, hogy minden szolgáltatás elindult-e.
Kattintson a jobb gombbal az InternalClient elemre a megoldásban, majd válassza a Nézet böngészőben lehetőséget. Megjelenik az
InternalClient
alapértelmezett lap. Győződjön meg arról, hogy a szolgáltatások futnak, majd kattintson a hivatkozásra.Megjelenik a HiringRequest modul. Az itt ismertetett forgatókönyvet követheti.
Ha a
HiringRequest
művelet befejeződött, elindíthatja aResumeRequest
. Az itt ismertetett forgatókönyvet követheti.ResumeRequest
A közzététel után elérhető a nyilvános webhelyen (Contoso Careers webhely). A álláshirdetés megtekintéséhez (és a pozícióra való jelentkezéshez) lépjen a Karrierwebhelyre.Kattintson a jobb gombbal a CareersWebSite elemre a megoldásban, és válassza a Megtekintés böngészőben lehetőséget.
Lépjen vissza a megoldásban a
InternalClient
jobb gombbal az InternalClient elemre, és válassza a Nézet böngészőben lehetőséget.Lépjen a JobPostings szakaszra a beérkezett üzenetek felső menüjében található Feladat feladások hivatkozásra kattintva. Az itt ismertetett forgatókönyvet követheti.
Forgatókönyvek
Felvételi kérelem
Michael Alexander (szoftvermérnök) szeretne új pozíciót kérni a szoftvermérnök felvételéhez a test (SDET) a mérnöki részlegen, aki legalább 3 éves tapasztalattal rendelkezik a C#-ban.
A létrehozás után a kérés megjelenik Michael postaládájában (ha nem látja a kérést, kattintson a Frissítés gombra), és várja Peter Brehm jóváhagyását, aki Michael menedzsere.
Peter Michael kérésére akar cselekedni. Úgy véli, hogy a pozíció 3 helyett 5 év C#-tapasztalatot igényel, ezért visszaküldi észrevételeit véleményezésre.
Michael egy üzenetet lát a postaládájában a felettesétől, és cselekedni akar. Michael látja a pozíciókérés előzményeit, és egyetért Peterrel. Michael módosítja a leírást, hogy 5 év C# tapasztalatot igényeljen, és elfogadja a módosítást.
Peter michael módosított kérelmére cselekszik, és elfogadja azt. A kérést most Tsvi Reiter műszaki igazgatónak kell jóváhagynia.
Tsvi Reiter szeretné felgyorsítani a kérést, ezért megjegyzést fűz hozzá, hogy azt mondja, hogy a kérés sürgős, és elfogadja azt.
A kérést most két HR-vezetőnek vagy a vezérigazgatónak kell jóváhagynia. A vezérigazgató, Brian Richard Goldstein, látja Tsvi sürgős kérését. A kérést elfogadja, így megkerüli a két HR-vezető jóváhagyását.
A kérés el lesz távolítva Michael postaládájából, és megkezdődött az SDET felvételének folyamata.
Folytatási kérelem indítása
Most a feladat pozíciója arra vár, hogy közzétehesse azt egy külső webhelyen, ahol a felhasználók jelentkezhetnek (láthatja, hogy a Feladat feladása hivatkozásra kattint). Jelenleg a munkakör egy HR-képviselővel van, aki a munkakör véglegesítéséért és közzétételéért felelős.
A HR 60 perces időtúllépés beállításával (a szerkesztési hivatkozásra kattintva) szeretné szerkeszteni ezt a munkakört (a valós életben ez napok vagy hetek lehetnek). Az időtúllépés lehetővé teszi, hogy a feladat pozíciója a megadott időnek megfelelően levehető legyen a külső webhelyről.
A szerkesztett feladatpozíció mentése után megjelenik a Fogadó önéletrajzok lapon (frissítse a weblapot az új feladatpozíció megtekintéséhez).
Önéletrajzok gyűjtése
A feladatpozíciónak meg kell jelennie a külső webhelyen. Az állásra való jelentkezés iránt érdeklődő személyként jelentkezhet erre a pozícióra, és beküldheti önéletrajzát.
Ha visszatér a Feladatkönyvelési lista szolgáltatáshoz, megtekintheti az eddig összegyűjtött önéletrajzokat.
A HR az önéletrajzok gyűjtését is leállítja (például a megfelelő jelölt azonosítása után).
Hibaelhárítás
Győződjön meg arról, hogy rendszergazdai jogosultságokkal futtatja a Visual Studiót.
Ha a megoldás összeállítása sikertelen, ellenőrizze a következőket:
- A hivatkozás
ContosoHR
nem hiányzik a projektekből vagyCareersWebSite
projektekbőlInternalClient
.
- A hivatkozás
Ha a megoldás végrehajtása sikertelen, ellenőrizze a következőket:
Minden szolgáltatás fut.
A szolgáltatáshivatkozások frissülnek.
A App_WebReferences mappa megnyitása
Kattintson a jobb gombbal a Contoso elemre, és válassza a Web-/Szolgáltatáshivatkozások frissítése lehetőséget.
A megoldás újraépítéséhez nyomja le a CTRL+SHIFT+B billentyűkombinációt a Visual Studióban.
Eltávolítása
Törölje az SQL Server-példánytárolót a DbSetup mappában található Cleanup.bat futtatásával.
Törölje a merevlemez forráskódját.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: