Process för dokumentgodkännande
Exemplet DocumentApprovalProcess visar användningen av många funktioner i Windows Workflow Foundation (WF) och Windows Communication Foundation (WCF). Tillsammans implementerar de ett processscenario för dokumentgodkännande. Ett klientprogram kan skicka dokument för godkännande och godkänna dokument. Det finns ett program för godkännandehanteraren som underlättar kommunikationen mellan klienter och för att framtvinga reglerna för godkännandeprocessen. Godkännandeprocessen är ett arbetsflöde som kan köra flera typer av godkännanden. Det finns aktiviteter för att få ett enskilt godkännande, ett kvorumgodkännande (en procentandel av uppsättningen godkännare) och en komplex godkännandeprocess som består av ett kvorum och ett enskilt godkännande i en sekvens.
Exempelinformation
Följande bild visar arbetsflödet för dokumentgodkännandeprocessen:
Från klientens perspektiv fungerar godkännandeprocessen på följande sätt:
En klient prenumererar på att vara en användare i godkännandeprocesssystemet.
En WCF-klient skickar till en WCF-tjänst som hanteras av godkännandehanterarens program.
Ett unikt användar-ID returneras till klienten. Klienten kan nu delta i godkännandeprocesser.
När en klient har anslutits kan den skicka ett dokument för godkännande med enkla processer, kvorum eller komplexa godkännandeprocesser.
En knapp i klientens gränssnitt klickas och startar en arbetsflödesinstans i en klientarbetsflödestjänstvärd.
Arbetsflödet skickar en begäran om godkännande till godkännandehanterarens program.
Arbetsflödeshanteraren startar ett arbetsflöde på egen sida för att representera en godkännandeprocess.
När arbetsflödet för chefsgodkännande körs skickas resultatet tillbaka till klienten.
Klienten visar resultatet.
En klient kan få en begäran om godkännande och svara på begäran när som helst.
En WCF-tjänst som finns på klienten kan ta emot en begäran om godkännande från godkännandehanterarens program.
Dokumentinformationen visas på klienten för granskning.
Användaren kan godkänna eller avvisa dokumentet.
En WCF-klient används för att skicka ett godkännandesvar tillbaka till godkännandehanterarens program.
Från godkännandehanterarens program fungerar godkännandeprocessen på följande sätt:
En klient begär att få delta i godkännandeprocessen.
En WCF-tjänst i godkännandehanteraren tar emot en begäran om att ingå i godkännandeprocesssystemet.
Ett unikt ID genereras för klienten. Användarinformationen lagras i en databas.
Det unika ID:t skickas tillbaka till användaren.
En begäran om godkännande tas emot. Godkännandehanteraren kör en godkännandeprocess.
En begäran om godkännande tas emot av godkännandehanteraren och startar ett nytt arbetsflöde.
Beroende på typen av begäran (enkel, kvorum eller komplex) körs en annan aktivitet.
Skicka och ta emot aktiviteter med korrelation används för att skicka begäran om godkännande till klienten för granskning och ta emot svaret.
Resultatet av arbetsflödet för godkännandeprocessen skickas till klienten.
Använda exemplet
Så här konfigurerar du databasen
- Från en Visual Studio-kommandotolk som öppnas med administratörsbehörighet går du till mappen DocumentApprovalProcess och kör Setup.cmd.
Så här konfigurerar du programmet
Använd Visual Studio och öppna DocumentApprovalProcess.sln lösningsfilen.
Tryck på CTRL+SKIFT+B för att skapa lösningen.
Om du vill köra lösningen startar du programmet Godkännandehanteraren genom att högerklicka på projektet ApprovalManager i Solution Explorer och klicka på Felsöka-Starta> ny instans från högerklicksmenyn.
Vänta tills chefens utdata meddelar dig att det är klart.
Så här kör du scenariot med enskilt godkännande
Öppna en kommandotolk med administratörsbehörighet.
Navigera till katalogen som innehåller lösningen.
Gå till mappen ApprovalClient\Bin\Debug och kör två instanser av ApprovalClient.exe.
Klicka på Identifiera, vänta tills prenumerationsknappen är aktiverad.
Skriv ett användarnamn och klicka på Prenumerera. För en klient använder du
UserType1
och den andra typenUserType2
.I klienten
UserType1
väljer du typ av enskilt godkännande i den nedrullningsbara menyn och skriver ett dokumentnamn och innehåll. Klicka på Begär godkännande.I klienten
UserType2
visas ett dokument som väntar på godkännande. Välj den och tryck på Godkänn eller avvisa. Resultatet bör visas iUserType1
klienten.
Så här kör du scenariot för kvorumgodkännande
Öppna en kommandotolk med administratörsbehörighet.
Navigera till katalogen som innehåller lösningen.
Gå till mappen ApprovalClient\Bin\Debug och kör tre instanser av ApprovalClient.exe.
Klicka på Identifiera, vänta tills prenumerationsknappen är aktiverad.
Skriv ett användarnamn och klicka på Prenumerera. För en klientanvändning
UserType1
och de andra två typernaUserType2
.UserType1
I klienten väljer du typ av kvorumgodkännande i den nedrullningsbara menyn och skriver ett dokumentnamn och innehåll. Klicka på Begär godkännande. Detta begär att de tvåUserType2
klienterna godkänner eller avvisar dokumentet.UserType2
Båda klienterna måste svara, men endast en klient måste godkänna dokumentet för att det ska godkännas.I klienterna
UserType2
visas ett dokument som väntar på godkännande. Välj den och tryck på Godkänn eller avvisa. Resultatet bör visas iUserType1
klienten.
Så här kör du scenariot för komplext godkännande
Öppna en kommandotolk med administratörsbehörighet.
Navigera till katalogen som innehåller lösningen.
Gå till mappen ApprovalClient\Bin\Debug och kör fyra instanser av ApprovalClient.exe.
Klicka på Identifiera, vänta tills prenumerationsknappen är aktiverad.
Skriv ett användarnamn och klicka på Prenumerera. För en klient använder
UserType1
, i två användningstypUserType2
, och i den senaste användningenUserType3
.I klienten
UserType1
väljer du typ av enskilt godkännande i den nedrullningsbara menyn och skriver ett dokumentnamn och innehåll. Klicka på Begär godkännande.I klienterna
UserType2
visas ett dokument som väntar på godkännande. Välj den och tryck på Godkänn. Dokumentet skickasUserType3
till klienten.Om dokumentet godkänns av det första
UserType2
kvorumet skickas dokumentet tillUserType3
klienten.Godkänn eller avvisa dokumentet från
UserType3
klienten. Resultatet bör visas iUserType1
klienten.
Så här rensar du
- Från en Visual Studio-kommandotolk går du till mappen DocumentApprovalProcess och kör Cleanup.cmd.