Processo di approvazione dei documenti
Nell'esempio DocumentApprovalProcess viene illustrato l'uso di molte funzionalità di Windows Workflow Foundation (WF) e Windows Communication Foundation (WCF). Insieme implementano uno scenario del processo di approvazione dei documenti. Un'applicazione client può inviare documenti da sottoporre ad approvazione e approvare documenti. Un'applicazione di gestione delle approvazioni è utile per semplificare le comunicazioni tra i client e per applicare le regole del processo di approvazione che consiste in un flusso di lavoro che può eseguire molti tipi di approvazione. Le attività servono per ottenere un processo di approvazione singola, di approvazione a quorum (una percentuale del gruppo di responsabili approvazione) e di approvazione complessa costituito da un'approvazione a quorum e una singola in sequenza.
Dettagli dell'esempio
Nell'elemento grafico seguente viene illustrato il flusso di lavoro del processo di approvazione dei documenti:
Dalla prospettiva del client, il processo di approvazione funziona nel modo seguente:
Un client esegue una sottoscrizione per essere un utente del sistema del processo di approvazione.
Un client WCF effettua un invio a un servizio WCF ospitato dall'applicazione di gestione delle approvazioni.
Al client viene restituito un ID utente univoco. Il client può ora partecipare ai processi di approvazione.
Una volta inserito, un client può inviare un documento per l'approvazione usando un processo di approvazione singolo, a quorum o complesso.
La selezione di un pulsante nell'interfaccia del client avvia un'istanza del flusso di lavoro in un host dei servizi di flusso di lavoro del client.
Il flusso di lavoro invia una richiesta di approvazione all'applicazione di gestione delle approvazioni.
Il proprietario del flusso di lavoro avvia un flusso di lavoro per rappresentare un processo di approvazione.
Una volta che il proprietario ha eseguito il flusso di lavoro di approvazione, i risultati vengono restituiti al client.
Il client visualizza i risultati.
Un client può ricevere una richiesta di approvazione e rispondere alla richiesta in qualsiasi momento.
Un servizio WCF ospitato nel client può ricevere una richiesta di approvazione dall'applicazione di gestione delle approvazioni.
Le informazioni sul documento vengono presentate nel client per la revisione.
L'utente può approvare o rifiutare il documento.
Un client WCF viene usato per restituire una risposta di approvazione all'applicazione di gestione delle approvazioni.
Dal punto di vista dell'applicazione di gestione delle approvazioni, il processo di approvazione funziona nel modo seguente:
Un client richiede la partecipazione al sistema del processo di approvazione.
Un servizio WCF nell'applicazione di gestione delle approvazioni riceve una richiesta di entrare a far parte del sistema del processo di approvazione.
Viene generato un ID univoco per il client. Le informazioni utente vengono archiviate in un database.
L'ID univoco viene restituito all'utente.
Viene ricevuta una richiesta di approvazione. Il responsabile dell'approvazione esegue un processo di approvazione.
Il responsabile dell'approvazione riceve una richiesta di approvazione che avvia un nuovo flusso di lavoro.
A seconda del tipo di richiesta (semplice, a quorum o complessa), viene eseguita un'attività diversa.
Le attività di invio e ricezione con correlazione vengono usate per inviare la richiesta di approvazione al client per la revisione e per ricevere la risposta.
Il risultato del flusso di lavoro del processo di approvazione viene inviato al client.
Utilizzo dell'esempio
Per impostare il database
- Aprire un prompt dei comandi di Visual Studio con privilegi di amministratore ed eseguire Setup.cmd dalla cartella DocumentApprovalProcess.
Per impostare l'applicazione
In Visual Studio aprire il file della soluzione DocumentApprovalProcess.sln.
Per compilare la soluzione, premere CTRL+MAIUSC+B.
Per eseguire la soluzione, avviare l'applicazione di gestione delle approvazioni facendo clic con il pulsante destro del mouse sul progetto ApprovalManager in Esplora soluzioni e selezionando Debug->Avvia nuova istanza nel menu attivato facendo clic con il pulsante destro del mouse.
Attendere l'output del responsabile per sapere che è pronta.
Per eseguire lo scenario di approvazione singola
Aprire un prompt dei comandi con l'autorizzazione di amministratore.
Passare alla directory contenente la soluzione.
Passare alla cartella ApprovalClient\Bin\Debug ed eseguire due istanze di ApprovalClient.exe.
Fare clic su Individua e attendere finché il pulsante Sottoscrivi non è abilitato.
Digitare qualsiasi nome utente e fare clic su Sottoscrivi. Per un client usare
UserType1
e per l'altro il tipoUserType2
.Nel client
UserType1
selezionare il tipo di approvazione singola dal menu a discesa e digitare un nome e il contenuto del documento. Fare clic su Richiedi approvazione.Nel client
UserType2
viene visualizzato un documento in attesa di approvazione. Selezionarlo e premere Approva o Rifiuta. I risultati devono essere visualizzati nel clientUserType1
.
Per eseguire lo scenario di approvazione a quorum
Aprire un prompt dei comandi con l'autorizzazione di amministratore.
Passare alla directory contenente la soluzione.
Passare alla cartella ApprovalClient\Bin\Debug ed eseguire tre istanze di ApprovalClient.exe.
Fare clic su Individua e attendere finché il pulsante Sottoscrivi non è abilitato.
Digitare qualsiasi nome utente e fare clic su Sottoscrivi. Per un client usare
UserType1
e per gli altri due usare il tipoUserType2
.Nel client
UserType1
selezionare il tipo di approvazione a quorum dal menu a discesa e digitare un nome e il contenuto del documento. Fare clic su Richiedi approvazione. In questo modo viene richiesto che i due clientUserType2
approvino o rifiutino il documento. Mentre entrambi i clientUserType2
devono rispondere, solo un client deve approvare il documento.Nei client
UserType2
viene visualizzato un documento in attesa di approvazione. Selezionarlo e premere Approva o Rifiuta. I risultati devono essere visualizzati nel clientUserType1
.
Per eseguire lo scenario di approvazione complesso
Aprire un prompt dei comandi con l'autorizzazione di amministratore.
Passare alla directory contenente la soluzione.
Passare alla cartella ApprovalClient\Bin\Debug ed eseguire quattro istanze di ApprovalClient.exe.
Fare clic su Individua e attendere finché il pulsante Sottoscrivi non è abilitato.
Digitare qualsiasi nome utente e fare clic su Sottoscrivi. Per un client usare
UserType1
, per il secondo usare il tipoUserType2
e per l'ultimo usareUserType3
.Nel client
UserType1
selezionare il tipo di approvazione singola dal menu a discesa e digitare un nome e il contenuto del documento. Fare clic su Richiedi approvazione.Nei client
UserType2
viene visualizzato un documento in attesa di approvazione. Selezionarlo e premere Approva; il documento viene passato al clientUserType3
.Se il documento viene approvato dal primo quorum
UserType2
, il documento viene passato al clientUserType3
.Approvare o rifiutare il documento dal client
UserType3
. I risultati devono essere visualizzati nel clientUserType1
.
Per eseguire la pulizia
- Da un prompt dei comandi di Visual Studio, passare alla cartella DocumentApprovalProcess ed eseguire Cleanup.cmd.