Freigeben über


Dokumentgenehmigungsprozess

Das DocumentApprovalProcess-Beispiel veranschaulicht die Gemeinsame Verwendung vieler Windows Workflow Foundation (WF) und Windows Communication Foundation (WCF)-Features. Gemeinsam implementieren sie ein Dokumentgenehmigungsprozessszenario. Eine Clientanwendung kann Dokumente zur Genehmigung übermitteln und Dokumente genehmigen. Es ist eine Genehmigungs-Manager-Anwendung vorhanden, um die Kommunikation zwischen Clients zu erleichtern und die Regeln des Genehmigungsprozesses durchzusetzen. Der Genehmigungsprozess ist ein Workflow, der mehrere Genehmigungstypen ausführen kann. Aktivitäten sind vorhanden, um eine einzelne Genehmigung, eine Quorumgenehmigung (einen Prozentsatz der Genehmigenden) und einen komplexen Genehmigungsprozess zu erhalten, der aus einem Quorum und einer einzelnen Genehmigung in einer Sequenz besteht.

Beispieldetails

Die folgende Grafik zeigt den Workflow für den Dokumentgenehmigungsprozess:

Workflow für den Dokumentgenehmigungsprozess

Aus Sicht des Kunden funktioniert der Genehmigungsprozess wie folgt:

  1. Ein Kunde registriert sich als Benutzer im System für Genehmigungsprozesse.

  2. Ein WCF-Client sendet an einen WCF-Dienst, der von der Genehmigungs-Manager-Anwendung gehostet wird.

  3. Eine eindeutige Benutzer-ID wird an den Client zurückgegeben. Der Client kann jetzt an Genehmigungsprozessen teilnehmen.

  4. Sobald der Client teilnimmt, kann er ein Dokument zur Genehmigung durch den Einzelgenehmigungs-, Quorumgenehmigungs- oder komplexen Genehmigungsprozess senden.

  5. Auf eine Schaltfläche in der Benutzeroberfläche des Clients wird geklickt, wobei eine Workflowinstanz in einem Client-Workflowdiensthost gestartet wird.

  6. Der Workflow sendet eine Genehmigungsanforderung an die Genehmigungs-Manager-Anwendung.

  7. Der Workflow-Manager startet einen Workflow auf seiner eigenen Seite, um einen Genehmigungsprozess darzustellen.

  8. Sobald der Workflow zur Genehmigung des Managers ausgeführt wird, werden die Ergebnisse an den Client zurückgesendet.

  9. Der Client zeigt die Ergebnisse an.

  10. Ein Client kann eine Genehmigungsanforderung erhalten und jederzeit auf die Anforderung antworten.

  11. Ein auf dem Client gehosteter WCF-Dienst kann eine Genehmigungsanforderung von der Genehmigungs-Manager-Anwendung erhalten.

  12. Die Dokumentinformationen werden auf dem Client zur Überprüfung angezeigt.

  13. Der Benutzer kann das Dokument genehmigen oder ablehnen.

  14. Ein WCF-Client wird verwendet, um eine Genehmigungsantwort an die Genehmigungs-Manager-Anwendung zurückzusenden.

Aus Sicht der Genehmigungsverwaltungsanwendung funktioniert der Genehmigungsprozess wie folgt:

  1. Ein Client fordert an, am Genehmigungsprozesssystem teilzunehmen.

  2. Ein WCF-Dienst im Genehmigungs-Manager empfängt eine Anforderung, Teil des Genehmigungsprozesssystems zu sein.

  3. Für den Client wird eine eindeutige ID generiert. Die Benutzerinformationen werden in einer Datenbank gespeichert.

  4. Die eindeutige ID wird an den Benutzer zurückgesendet.

  5. Eine Genehmigungsanforderung wird empfangen. Der Genehmigungs-Manager führt einen Genehmigungsprozess aus.

  6. Eine Genehmigungsanforderung wird vom Genehmigungs-Manager empfangen und startet einen neuen Workflow.

  7. Je nach Anforderungsart (einfach, quorum oder komplex) wird eine andere Aktivität ausgeführt.

  8. Sende- und Empfangsaktivitäten mit Korrelation werden verwendet, um die Genehmigungsanforderung zur Überprüfung an den Client zu senden und die Antwort zu empfangen.

  9. Das Ergebnis des Genehmigungsprozessworkflows wird an den Client gesendet.

Verwenden des Beispiels

So richten Sie die Datenbank ein

  1. Öffnen Sie eine Visual Studio-Eingabeaufforderung mit Administratorrechten, wechseln Sie in den Ordner "DocumentApprovalProcess" und führen Sie Setup.cmd aus.

So richten Sie die Anwendung ein

  1. Öffnen Sie mit Visual Studio die DocumentApprovalProcess.sln Projektmappendatei.

  2. Drücken Sie STRG+UMSCHALT+B, um die Solution zu erstellen.

  3. Um die Lösung auszuführen, starten Sie die Approval Manager-Anwendung, indem Sie mit der rechten Maustaste auf das ApprovalManager-Projekt im Projektmappen-Explorer klicken und im Kontextmenü Debuggen - > eine neue Instanz auswählen.

    Warten Sie auf die Bestätigung des Managers, dass dieser bereit ist.

So führen Sie das Einzelgenehmigungsszenario aus

  1. Öffnen Sie eine Eingabeaufforderung mit Administratorberechtigungen.

  2. Navigieren Sie zu dem Verzeichnis, das die Lösung enthält.

  3. Navigieren Sie zu ApprovalClient\Bin\Debug folder and execute two instances of ApprovalClient.exe.

  4. Klicken Sie auf "Entdecken", warten Sie, bis die Schaltfläche " Abonnieren " aktiviert ist.

  5. Geben Sie einen beliebigen Benutzernamen ein, und klicken Sie auf "Abonnieren". Verwenden Sie für einen Client UserType1 und für den anderen den Typ UserType2.

  6. Wählen Sie im UserType1 Client den einzelnen Genehmigungstyp aus dem Dropdownmenü aus, und geben Sie einen Dokumentnamen und Inhalt ein. Klicken Sie auf " Genehmigung anfordern".

  7. UserType2 Im Client wird ein Dokument angezeigt, das auf die Genehmigung wartet. Wählen Sie es aus, und drücken Sie "Genehmigen " oder "Ablehnen". Die Ergebnisse sollten im UserType1 Client angezeigt werden.

So führen Sie das Quorumgenehmigungsszenario aus

  1. Öffnen Sie eine Eingabeaufforderung mit Administratorberechtigungen.

  2. Navigieren Sie zu dem Verzeichnis, das die Lösung enthält.

  3. Navigieren Sie zu ApprovalClient\Bin\Debug folder and execute three instances of ApprovalClient.exe.

  4. Klicken Sie auf "Entdecken", warten Sie, bis die Schaltfläche " Abonnieren " aktiviert ist.

  5. Geben Sie einen beliebigen Benutzernamen ein, und klicken Sie auf "Abonnieren". Verwenden Sie für einen Client UserType1 und für die anderen den Typ UserType2.

  6. Wählen Sie im UserType1 Client den Quorumgenehmigungstyp aus dem Dropdownmenü aus, und geben Sie einen Dokumentnamen und Inhalt ein. Klicken Sie auf " Genehmigung anfordern". Dies fordert, dass die beiden UserType2 Clients das Dokument genehmigen oder ablehnen. Beide UserType2 Clients müssen zwar antworten, aber nur ein Client muss das Dokument genehmigen, damit es genehmigt wird.

  7. In den UserType2 Clients wird ein Dokument angezeigt, das auf die Genehmigung wartet. Wählen Sie es aus, und drücken Sie "Genehmigen " oder "Ablehnen". Die Ergebnisse sollten im UserType1 Client angezeigt werden.

So führen Sie das komplexe Genehmigungsszenario aus

  1. Öffnen Sie eine Eingabeaufforderung mit Administratorberechtigungen.

  2. Navigieren Sie zu dem Verzeichnis, das die Lösung enthält.

  3. Navigieren Sie zu ApprovalClient\Bin\Debug folder and execute four instances of ApprovalClient.exe.

  4. Klicken Sie auf "Entdecken", warten Sie, bis die Schaltfläche " Abonnieren " aktiviert ist.

  5. Geben Sie einen beliebigen Benutzernamen ein, und klicken Sie auf "Abonnieren". Verwenden Sie für einen Client UserType1, für zwei Clients UserType2 und für den vierten Client UserType3.

  6. Wählen Sie im UserType1 Client den einzelnen Genehmigungstyp aus dem Dropdownmenü aus, und geben Sie einen Dokumentnamen und Inhalt ein. Klicken Sie auf " Genehmigung anfordern".

  7. In den UserType2 Clients wird ein Dokument angezeigt, das auf die Genehmigung wartet. Wählen Sie es aus, und drücken Sie die Genehmigung, das Dokument wird an den UserType3 Client übergeben.

    Wenn das Dokument vom ersten UserType2 Quorum genehmigt wird, wird das Dokument an den UserType3 Client übergeben.

  8. Genehmigen oder Ablehnen des Dokuments vom UserType3 Client. Die Ergebnisse sollten im UserType1 Client angezeigt werden.

So führen Sie eine Bereinigung durch

  1. Wechseln Sie in der Visual Studio-Eingabeaufforderung zum Ordner "DocumentApprovalProcess" und führen Sie Cleanup.cmd aus.