Procedura dettagliata: creazione e debug di una soluzione flusso di lavoro SharePoint
In questa procedura dettagliata viene illustrato come creare un modello di base di flusso di lavoro sequenziale.Il flusso di lavoro controlla una proprietà di una raccolta documenti condivisa per determinare se un documento è stato rivisto.In caso positivo, il flusso di lavoro viene terminato.
In questa procedura dettagliata vengono illustrate le attività seguenti:
Creazione di un progetto flusso di lavoro sequenziale per la definizione dell'elenco di SharePoint in Visual Studio.
Creazione di attività del flusso di lavoro.
Gestione degli eventi di attività del flusso di lavoro.
[!NOTA]
Sebbene in questa procedura dettagliata venga utilizzato un progetto flusso di lavoro sequenziale, il processo è identico per un progetto flusso di lavoro macchina a stati.
Inoltre, sul computer potrebbero essere visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti.Questi elementi sono determinati dall'edizione di Visual Studio in uso e dalle impostazioni utilizzate.Per ulteriori informazioni, vedere Impostazioni di Visual Studio.
Prerequisiti
Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:
Edizioni supportate di Microsoft Windows e SharePoint.Per ulteriori informazioni, vedere Requisiti per lo sviluppo di soluzioni SharePoint.
Visual Studio.
Aggiunta di proprietà alla raccolta Documenti condivisi di SharePoint
Per tenere traccia dello stato di revisione dei documenti nella raccolta Documenti condivisi, saranno create tre nuove proprietà per i documenti condivisi nel sito di SharePoint: Status, Assignee e Review Comments.Tali proprietà sono definite nella raccolta Documenti condivisi.
Per aggiungere proprietà alla raccolta Documenti condivisi di SharePoint
Aprire un sito di SharePoint, ad esempio http://<nome del sistema>/SitePages/Home.aspx, in un browser.
Nella barra avvio veloce scegliere, condivisoDocumenti.
Scegliere Libreria la barra multifunzione Strumenti raccolte quindi scegliere il pulsante Creare una colonna sulla barra multifunzione per creare una nuova colonna.
Assegnare alla colonna stato documento, impostare il tipo su Scelta (menu possibile scegliere tra), specificare le seguenti tre opzioni e quindi scegliere il pulsante Scegliere OK :
Review Needed
Review Complete
Changes Requested
Creare altre due colonne e denominarle Assignee e Review Comments.Impostare il tipo della colonna Assignee come singola riga di testo e il tipo della colonna Review Comments come più righe di testo.
Possibilità di modifica dei documenti senza necessità di estrazione
Il test del modello di flusso di lavoro risulta più facile quando è possibile modificare i documenti senza doverli estrarre.Nella procedura descritta di seguito, viene configurato il sito di SharePoint per consentirne l'attivazione.
Per consentire la modifica dei documenti senza estrazione
Nella barra avvio veloce, scegliere il collegamento Documenti condivisi.
Sulla barra multifunzione Strumenti raccolte, scegliere la scheda Libreria quindi scegliere il pulsante Impostazioni di libreria per visualizzare la pagina Impostazioni della raccolta documenti.
Nella sezione Impostazioni generali, scegliere il collegamento Impostazioni di controllo delle versioni per visualizzare la pagina Impostazioni di controllo delle versioni.
Verificare che l'impostazione per Estrazione obbligatoria dei documenti prima della modifica sia No.Se non è, modificarla in No quindi scegliere il pulsante Scegliere OK.
Chiudere il browser.
Creazione di un progetto Flusso di lavoro sequenziale SharePoint
Un flusso di lavoro sequenziale è un set di passaggi eseguiti in ordine fino al completamento dell'ultima attività.In questa procedura si crea un flusso di lavoro sequenziale che verrà applicato all'elenco Documenti condivisi.La procedura guidata del flusso di lavoro consente di associare quest'ultimo alla definizione di sito o alla definizione di elenco, nonché di determinare quando verrà avviato.
Per creare un progetto Flusso di lavoro sequenziale SharePoint
Avviare Visual Studio.
Sulla barra dei menu, scegliere File, Nuova, Progetto per visualizzare la finestra di dialogo Nuovo progetto.
Espandere il nodo SharePoint in Visual C# o Visual Basicquindi selezionare il nodo 2010.
Nel riquadro Modelli, scegliere il modello Progetto SharePoint 2010.
Nella casella Nome, immettere MySharePointWorkflow quindi scegliere il pulsante Scegliere OK.
Viene visualizzata la Personalizzazione guidata SharePoint.
Nella pagina Specificare il sito e il livello di sicurezza per il debug, scegliere il pulsante di opzione Distribuisci come soluzione farm quindi scegliere il pulsante Fine per accettare il livello di attendibilità e il sito predefinito.
Questo passaggio consente di impostare il livello di attendibilità per la soluzione come soluzione della farm, ovvero l'unica opzione disponibile per i progetti flusso di lavoro.Per ulteriori informazioni, vedere Considerazioni sulle soluzioni create mediante sandbox.
In Esplora soluzioni, selezionare il nodo del progetto, quindi sulla barra dei menu, scegliere Progetto, Aggiungi nuovo elemento.
In Visual C# o Visual Basic, espandere il nodo SharePoint quindi selezionare il nodo 2010.
Nel riquadro Modelli, scegliere il modello Flusso di lavoro sequenziale (solo soluzione farm) quindi scegliere il pulsante Aggiungi.
Viene visualizzata la Personalizzazione guidata SharePoint.
Nella pagina Specificare il nome del flusso di lavoro per il debug accettare il nome predefinito (MySharePointWorkflow - Workflow1).Mantenere il valore predefinito del tipo di modello di flusso di lavoro, Flusso di lavoro elencoquindi scegliere il pulsante Avanti.
Nella pagina È analogo a Visual Studio automaticamente associare il flusso di lavoro in una sessione di debug?, scegliere il pulsante Avanti per accettare tutte le impostazioni predefinite.
Questo passaggio consente di associare automaticamente il flusso di lavoro alla raccolta Documenti condivisi.
Nella pagina Specificare le condizioni relative alla modalità di avvio del flusso di lavoro, lasciare le opzioni predefinite selezionate nella sezione Selezionare la modalità di avvio del flusso di lavoro. e scegliere il pulsante Fine.
Questa pagina consente di specificare quando viene avviato il flusso di lavoro.Per impostazione predefinita, il flusso di lavoro si avvia quando un utente lo avvia manualmente in SharePoint o quando viene creato un elemento al quale è associato il flusso di lavoro.
Creazione di attività del flusso di lavoro
Nei flussi di lavoro sono contenute una o più attività che rappresentano le azioni da effettuare.Utilizzare Progettazione flussi di lavoro per organizzare le attività per un flusso di lavoro.In questa procedura verranno aggiunte due attività al flusso di lavoro: HandleExternalEventActivity e OnWorkFlowItemChanged.Queste attività consentono di monitorare lo stato di revisione dei documenti nell'elenco Documenti condivisi
Per creare attività del flusso di lavoro
Il flusso di lavoro deve essere visualizzato in Progettazione flussi di lavoro.Se non è, quindi aprire Workflow1.cs o Workflow1.vb in Esplora soluzioni.
Nella finestra di progettazione, scegliere l'attività OnWorkflowActivated1.
Nella finestra Proprietà , digitare onWorkflowActivated accanto alla proprietà richiamato quindi scegliere la chiave leave.
Viene aperto l'editor del codice e un metodo per la gestione eventi denominato onWorkflowActivated viene aggiunto al file di codice Workflow1.
Tornare a Progettazione flussi di lavoro, aprire la casella degli strumenti, quindi espandere il nodo Windows Workflow v3.0.
Nel nodo Windows Workflow v3.0Casella degli strumenti, eseguire una delle procedure seguenti:
Aprire il menu di scelta rapida per l'attività Istruzione While quindi scegliere Copia.In Progettazione flussi di lavoro, aprire il menu di scelta rapida per la riga sotto l'attività onWorkflowActivated1 quindi scegliere Incolla.
Trascinare l'attività Istruzione While da Casella degli strumenti a Progettazione flussi di lavoro e connettersi l'attività alla riga sotto l'attività onWorkflowActivated1.
Scegliere l'attività WhileActivity1.
Nella finestra Proprietà, impostare Condizione per codificare la condizione.
Espandere la proprietà Condizione, digitare isWorkflowPending accanto alla proprietà figlio Condizione quindi scegliere la chiave leave.
Viene aperto l'editor di codice e un metodo denominato isWorkflowPending viene aggiunto al file di codice Workflow1.
Tornare a Progettazione flussi di lavoro, aprire la casella degli strumenti, quindi espandere il nodo Flusso di lavoro di SharePoint.
Nel nodo Flusso di lavoro di SharePointCasella degli strumenti, eseguire una delle procedure seguenti:
Aprire il menu di scelta rapida per l'attività OnWorkflowItemChanged quindi scegliere Copia.In Progettazione flussi di lavoro, aprire il menu di scelta rapida per la riga dell'attività whileActivity1 quindi scegliere Incolla.
Trascinare l'attività OnWorkflowItemChanged da Casella degli strumenti a Progettazione flussi di lavoro e connettersi l'attività alla riga dell'attività whileActivity1.
Scegliere l'attività onWorkflowItemChanged1.
Nella finestra Proprietà impostare le proprietà come mostrato nella tabella riportata di seguito.
Proprietà
Valore
CorrelationToken
workflowToken
Invoked
onWorkflowItemChanged
Gestione degli eventi di attività
Infine, controllare lo stato del documento di ogni attività.Se il documento è stato rivisto, il flusso di lavoro è terminato.
Per gestire gli eventi di attività
In Workflow1.cs o Workflow1.vb aggiungere il campo seguente nella parte superiore della classe Workflow1.Questo campo viene utilizzato in un'attività per determinare se il flusso di lavoro è terminato.
Dim workflowPending As Boolean = True
Boolean workflowPending = true;
Aggiungere il seguente metodo alla classe Workflow1.Questo metodo controlla il valore della proprietà Document Status dell'elenco Documenti per determinare se il documento è stato rivisto.Se la proprietà Document Status è impostata su Review Complete, il metodo checkStatus imposta il campo workflowPending su false per indicare che il flusso di lavoro è pronto per essere terminato.
Private Sub checkStatus() If CStr(workflowProperties.Item("Document Status")) = "Review Complete" Then workflowPending = False End If End Sub
private void checkStatus() { if ((string)workflowProperties.Item["Document Status"] == "Review Complete") workflowPending = false; }
Aggiungere il codice riportato di seguito ai metodi onWorkflowActivated e onWorkflowItemChanged per chiamare il metodo checkStatus.Quando viene avviato il flusso di lavoro, il metodo onWorkflowActivated chiama il metodo checkStatus per determinare se il documento è già stato rivisto.In caso negativo, il flusso di lavoro continua.Quando il documento viene salvato, il metodo onWorkflowItemChanged chiama nuovamente il metodo checkStatus per determinare se il documento è stato rivisto.Finché il campo workflowPending è impostato su true, l'esecuzione del flusso di lavoro continua.
Private Sub onWorkflowActivated(ByVal sender As System.Object, ByVal e As System.Workflow.Activities.ExternalDataEventArgs) checkStatus() End Sub Private Sub onWorkflowItemChanged(ByVal sender As System.Object, ByVal e As System.Workflow.Activities.ExternalDataEventArgs) checkStatus() End Sub
private void onWorkflowActivated(object sender, ExternalDataEventArgs e) { // Check the status. checkStatus(); } private void onWorkflowItemChanged(object sender, ExternalDataEventArgs e) { // Check the status. checkStatus(); }
Aggiungere il codice riportato di seguito al metodo isWorkflowPending per controllare lo stato della proprietà workflowPending.Ogni volta che il documento viene salvato, l'attività whileActivity1 chiama il metodo isWorkflowPending.Questo metodo esamina la proprietà Result dell'oggetto ConditionalEventArgs per determinare se l'attività WhileActivity1 deve continuare o essere terminata.Se la proprietà è impostata su true, l'attività continua.In caso contrario, l'attività e il flusso di lavoro vengono terminati.
Private Sub isWorkflowPending(ByVal sender As System.Object, ByVal e As System.Workflow.Activities.ConditionalEventArgs) e.Result = workflowPending End Sub
private void isWorkflowPending(object sender, ConditionalEventArgs e) { e.Result = workflowPending; }
Salvare il progetto.
Test del modello di flusso di lavoro SharePoint
Quando si avvia il debugger, Visual Studio consente la distribuzione del modello di flusso di lavoro al server SharePoint e di associare il flusso di lavoro all'elenco Documenti condivisi.Per testare il flusso di lavoro, avviare una relativa istanza da un documento dell'elenco Documenti condivisi.
Per testare il modello di flusso di lavoro SharePoint
In Workflow1.cs o Workflow1.vb impostare un punto di interruzione accanto al metodo onWorkflowActivated.
Scegliere il tasto F5 per compilare ed eseguire la soluzione.
Verrà aperto il sito di SharePoint.
Nel riquadro di navigazione di SharePoint, scegliere il collegamento Documenti condivisi.
Nella pagina Documenti condivisi, scegliere il collegamento Documenti nella scheda Strumenti raccolte quindi scegliere il pulsante Carica documento.
Nella finestra di dialogo Carica documento, scegliere il pulsante Sfoglia, selezionare qualsiasi file di documento, scegliere il pulsante Aperto quindi scegliere il pulsante Scegliere OK.
In questo modo viene caricato il documento selezionato nell'elenco Documenti condivisi e avviato il flusso di lavoro.
In Visual Studio verificare che l'esecuzione del debugger venga interrotta in corrispondenza del punto di interruzione accanto al metodo onWorkflowActivated.
Scegliere il tasto F5 per continuare l'esecuzione.
È possibile modificare le impostazioni del documento, tuttavia le mantenere i valori predefiniti per ora da scegliere il pulsante Salva.
In questo modo si torna alla pagina Documenti condivisi del sito Web predefinito di SharePoint.
Nella pagina Documenti condivisi , verificare che il valore al di sotto della colonna MySharePointWorkflow – Workflow1 sia impostato su In corso.Questa impostazione indica che il flusso di lavoro è in corso e che il documento è in attesa di revisione.
Nella pagina Documenti condivisi, scegliere il documento, scegliere la freccia visualizzata quindi la voce di menu Modifica proprietà.
Impostare Lo stato di documento a Revisione completaquindi scegliere il pulsante Salva.
In questo modo si torna alla pagina Documenti condivisi del sito Web predefinito di SharePoint.
Nella pagina Documenti condivisi , verificare che il valore al di sotto della colonna Lo stato di documento sia impostato su Revisione completa.Aggiornare la pagina Documenti condivisi e verificare che il valore al di sotto della colonna MySharePointWorkflow – Workflow1 sia impostato su Completata.Questa impostazione indica che il flusso di lavoro è stato completato e che il documento è stato rivisto.
Passaggi successivi
Per ulteriori informazioni su come creare modelli di flusso di lavoro, vedere i seguenti argomenti:
Per ulteriori informazioni sulle attività di flusso di lavoro di SharePoint, vedere l'argomento relativo alle attività di flusso di lavoro per SharePoint Foundation (la pagina potrebbe essere in inglese).
Per ulteriori informazioni sulle attività di Windows Workflow Foundation, vedere l'argomento relativo allo spazio dei nomi System.Workflow.Activities (la pagina potrebbe essere in inglese).
Vedere anche
Altre risorse
Creazione di soluzioni flusso di lavoro SharePoint