Procedura dettagliata: Creare un flusso di lavoro con moduli di associazione e avvio
Questa procedura dettagliata illustra come creare un flusso di lavoro sequenziale di base che incorpora l'uso di moduli di associazione e di avvio. Si tratta di moduli ASPX che consentono l'aggiunta di parametri a un flusso di lavoro quando viene prima associato dall'amministratore di SharePoint (modulo di associazione) e quando il flusso di lavoro viene avviato dall'utente (modulo di avvio).
Questa procedura dettagliata descrive uno scenario in cui un utente vuole creare un flusso di lavoro di approvazione per le note spese che disponga dei requisiti seguenti:
Quando il flusso di lavoro è associato a un elenco, all'amministratore viene richiesto un modulo di associazione in cui immettono un limite di dollari per le note spese.
I dipendenti caricano i report sulle spese nell'elenco Documenti condivisi, avviano il flusso di lavoro e quindi immettono il totale spese nel modulo di avvio del flusso di lavoro.
Se il totale delle spese di un dipendente supera il limite predefinito dell'amministratore, viene creata un'attività per il responsabile del dipendente per approvare la nota spese. Tuttavia, se il totale della nota spese di un dipendente è minore o uguale al limite di spesa, viene scritto un messaggio approvato automaticamente nell'elenco della cronologia del flusso di lavoro.
In questa procedura dettagliata sono illustrati i task seguenti:
Creazione di un progetto di flusso di lavoro sequenziale di definizione elenco SharePoint in Visual Studio.
Creazione di una pianificazione del flusso di lavoro.
Gestione degli eventi dell'attività del flusso di lavoro.
Creazione di moduli di associazione e avvio del flusso di lavoro.
Associazione del flusso di lavoro.
Avvio manuale del flusso di lavoro.
Nota
Anche se questa procedura dettagliata usa un progetto di flusso di lavoro sequenziale, il processo è lo stesso per i flussi di lavoro della macchina a stati.
Inoltre, il computer potrebbe visualizzare nomi o percorsi diversi per alcuni degli elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzare l'IDE di Visual Studio.
Prerequisiti
Per completare questa procedura dettagliata, è necessario disporre dei componenti seguenti:
Edizioni supportate di Microsoft Windows e SharePoint.
Visual Studio.
Creare un progetto di flusso di lavoro sequenziale di SharePoint
Creare prima di tutto un progetto di flusso di lavoro sequenziale in Visual Studio. Un flusso di lavoro sequenziale è una serie di passaggi eseguiti in ordine fino al termine dell'ultima attività. In questa procedura verrà creato un flusso di lavoro sequenziale che si applica all'elenco Documenti condivisi in SharePoint. La procedura guidata del flusso di lavoro consente di associare il flusso di lavoro al sito o alla definizione dell'elenco e di determinare quando verrà avviato il flusso di lavoro.
Per creare un progetto di flusso di lavoro sequenziale di SharePoint
Nella barra dei menu scegliere File>nuovo>progetto per visualizzare la finestra di dialogo Nuovo progetto.
Espandere il nodo SharePoint in Visual C# o Visual Basic e quindi scegliere il nodo 2010 .
Nel riquadro Modelli scegliere il modello di progetto Progetto SharePoint 2010.
Nella casella Nome immettere ExpenseReport e quindi scegliere il pulsante OK.
Verrà 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 e quindi scegliere il pulsante Fine per accettare il livello di attendibilità e il sito predefinito.
Questo passaggio imposta anche il livello di attendibilità per la soluzione come soluzione farm, che è l'unica opzione disponibile per i progetti del flusso di lavoro.
Scegliere il nodo di progetto in Esplora soluzioni.
Nella barra dei menu scegliere Progetto>Aggiungi nuovo elemento.
In Visual C# o Visual Basic espandere il nodo SharePoint e quindi scegliere il nodo 2010.
Nel riquadro Modelli scegliere Flusso di lavoro sequenziale (solo soluzione farm) e quindi scegliere il pulsante Aggiungi.
Verrà visualizzata la Personalizzazione guidata SharePoint.
Nella pagina Specificare il nome del flusso di lavoro per il debug accettare il nome predefinito (ExpenseReport - Workflow1). Mantenere il valore predefinito del tipo di modello del flusso di lavoro (Elenco flusso di lavoro). Fare clic su Avanti.
Nella pagina Si desidera che Visual Studio associ automaticamente il flusso di lavoro in una sessione di debug? deselezionare la casella che associa automaticamente il modello del flusso di lavoro, se selezionato.
Questo passaggio consente di associare manualmente il flusso di lavoro all'elenco Documenti condivisi in un secondo momento, che visualizza il modulo di associazione.
Fare clic sul pulsante Finish .
Aggiungere un modulo di associazione al flusso di lavoro
Creare quindi un oggetto . Modulo di associazione ASPX visualizzato quando l'amministratore di SharePoint associa prima il flusso di lavoro a un documento di nota spese.
Per aggiungere un modulo di associazione al flusso di lavoro
Scegliere il nodo Workflow1 in Esplora soluzioni.
Sulla barra dei menu scegliere Progetto>Aggiungi nuovo elemento per visualizzare la finestra di dialogo Aggiungi nuovo elemento.
Nella visualizzazione albero della finestra di dialogo espandere Visual C# o Visual Basic (a seconda del linguaggio del progetto), espandere il nodo SharePoint e quindi scegliere il nodo 2010 .
Nell'elenco dei modelli scegliere il modello Modulo associazione flusso di lavoro.
Nella casella di testo Nome immettere ExpenseReportAssocForm.aspx.
Scegliere il pulsante Aggiungi per aggiungere il modulo al progetto.
Progettazione e codifica del modulo di associazione
In questa procedura si introducono funzionalità nel form di associazione aggiungendo controlli e codice.
Per progettare e codificare il modulo di associazione
Nel modulo di associazione (ExpenseReportAssocForm.aspx) individuare l'elemento
asp:Content
conID="Main"
.Subito dopo la prima riga di questo elemento di contenuto, aggiungere il codice seguente per creare un'etichetta e una casella di testo che richiede il limite di approvazione spese (AutoApproveLimit):
<asp:Label ID="lblAutoApproveLimit" Text="Auto Approval Limit:" runat="server" /> <asp:TextBox ID="AutoApproveLimit" runat="server" /> <br /><br />
Espandere il file ExpenseReportAssocForm.aspx in Esplora soluzioni per visualizzare i file dipendenti.
Nota
Se il progetto è in Visual Basic, è necessario scegliere il pulsante Visualizza tutti i file per eseguire questo passaggio.
Aprire il menu di scelta rapida per il file ExpenseReportAssocForm.aspx e scegliere Visualizza codice.
Sostituire il
GetAssociationData
metodo con:
Aggiungere un modulo di avvio al flusso di lavoro
Creare quindi il modulo di avvio visualizzato quando gli utenti eseguono il flusso di lavoro in base alle note spese.
Per creare un modulo di avvio
Scegliere il nodo Workflow1 in Esplora soluzioni.
Nella barra dei menu scegliere Progetto>Aggiungi nuovo elemento per visualizzare la finestra di dialogo Aggiungi nuovo elemento.
Nella visualizzazione albero della finestra di dialogo espandere Visual C# o Visual Basic (a seconda del linguaggio del progetto), espandere il nodo SharePoint e quindi scegliere il nodo 2010 .
Nell'elenco dei modelli scegliere il modello Modulo di avvio del flusso di lavoro.
Nella casella di testo Nome immettere ExpenseReportInitForm.aspx.
Scegliere il pulsante Aggiungi per aggiungere il modulo al progetto.
Progettazione e codifica del modulo di avvio
Introdurre quindi funzionalità nel modulo di avvio aggiungendo controlli e codice.
Per codificare il modulo di avvio
Nel modulo di avvio (ExpenseReportInitForm.aspx) individuare l'elemento
asp:Content
che contieneID="Main"
.Direttamente dopo la prima riga di questo elemento di contenuto, aggiungere il codice seguente per creare un'etichetta e una casella di testo che visualizza il limite di approvazione spese (AutoApproveLimit) immesso nel modulo di associazione e un'altra etichetta e un'altra casella di testo per richiedere il totale spese (ExpenseTotal):
<asp:Label ID="lblAutoApproveLimit" Text="Auto Approval Limit:" runat="server" /> <asp:TextBox ID="AutoApproveLimit" ReadOnly="true" runat="server" /> <br /><br /> <asp:Label ID="lblExpenseTotal" Text="Expense Total:" runat="server" /> <asp:TextBox ID="ExpenseTotal" runat="server" /> <br /><br />
Espandere il file ExpenseReportInitForm.aspx in Esplora soluzioni per visualizzare i file dipendenti.
Aprire il menu di scelta rapida per il file ExpenseReportInitForm.aspx e scegliere Visualizza codice.
Sostituire il
Page_Load
metodo con l'esempio seguente:Sostituire il
GetInitiationData
metodo con l'esempio seguente:
Personalizzare il flusso di lavoro
Personalizzare quindi il flusso di lavoro. Successivamente, verranno associati due moduli al flusso di lavoro.
Per personalizzare il flusso di lavoro
Visualizzare il flusso di lavoro nella finestra di progettazione del flusso di lavoro aprendo Workflow1 nel progetto.
Nella casella degli strumenti espandere il nodo Flusso di lavoro Windows v3.0 e individuare l'attività IfElse.
Aggiungere questa attività al flusso di lavoro eseguendo uno dei passaggi seguenti:
Aprire il menu di scelta rapida per l'attività IfElse , scegliere Copia, aprire il menu di scelta rapida per la riga sotto l'attività onWorkflowActivated1 nella finestra di progettazione del flusso di lavoro e quindi scegliere Incolla.
Trascinare l'attività IfElse dalla casella degli strumenti e connetterla alla riga sotto l'attività onWorkflowActiviated1 nella finestra di progettazione del flusso di lavoro.
Nella casella degli strumenti espandere il nodo Flusso di lavoro di SharePoint e individuare l'attività CreateTask .
Aggiungere questa attività al flusso di lavoro eseguendo uno dei passaggi seguenti:
Aprire il menu di scelta rapida per l'attività CreateTask , scegliere Copia, aprire il menu di scelta rapida per una delle due aree Drop Activities Here all'interno di IfElseActivity1 nella finestra di progettazione del flusso di lavoro e quindi scegliere Incolla.
Trascinare l'attività CreateTask dalla casella degli strumenti in una delle due aree Drop Activities Here all'interno di IfElseActivity1.
Nella finestra Proprietà immettere un valore della proprietà taskToken per la proprietà CorrelationToken.
Espandere la proprietà CorrelationToken scegliendo il segno più () accanto.
Scegliere la freccia a discesa nella sottoproprietà OwnerActivityName e impostare il valore Workflow1.
Scegliere la proprietà TaskId e quindi scegliere il pulsante con i puntini di sospensione () per visualizzare la finestra di dialogo Associa proprietà .
Scegliere la scheda Associa a un nuovo membro , scegliere il pulsante di opzione Crea campo e quindi scegliere il pulsante OK .
scegliere la proprietà Proprietà attività e quindi scegliere il pulsante con i puntini di sospensione () per visualizzare la finestra di dialogo Associa proprietà .
Scegliere la scheda Associa a un nuovo membro , scegliere il pulsante di opzione Crea campo e quindi scegliere il pulsante OK .
Nella casella degli strumenti espandere il nodo Flusso di lavoro di SharePoint e individuare l'attività LogToHistoryListActivity.
Aggiungere questa attività al flusso di lavoro eseguendo uno dei passaggi seguenti:
Aprire il menu di scelta rapida per l'attività LogToHistoryListActivity , scegliere Copia, aprire il menu di scelta rapida per l'altra area Drop Activities Here all'interno di IfElseActivity1 nella finestra di progettazione del flusso di lavoro e quindi scegliere Incolla.
Trascinare l'attività LogToHistoryListActivity dalla casella degli strumenti e rilasciarla nell'altra area Drop Activities Here all'interno di IfElseActivity1.
Aggiungere codice al flusso di lavoro
Aggiungere quindi il codice al flusso di lavoro per assegnare la funzionalità.
Per aggiungere codice al flusso di lavoro
Aprire il menu di scelta rapida per l'attività createTask1 nella finestra di progettazione del flusso di lavoro e quindi scegliere Visualizza codice.
Aggiungere il metodo seguente:
private void createTask1_MethodInvoking(object sender, EventArgs e) { createTask1_TaskId1 = Guid.NewGuid(); createTask1_TaskProperties1.AssignedTo = "somedomain\\someuser"; createTask1_TaskProperties1.Description = "Please approve the expense report"; createTask1_TaskProperties1.Title = "Expense Report Approval Needed"; }
Nota
Nel codice sostituire
somedomain\\someuser
con un dominio e un nome utente per cui verrà creata un'attività, ad esempio "Office\\JoeSch
". Per testare è più semplice usare l'account con cui si sta sviluppando.Sotto il
MethodInvoking
metodo aggiungere l'esempio seguente:Nella finestra di progettazione del flusso di lavoro scegliere l'attività ifElseBranchActivity1 .
Nella finestra Proprietà scegliere la freccia a discesa della proprietà Condition e quindi impostare il valore della condizione del codice.
Espandere la proprietà Condition scegliendo il segno più () accanto a esso e quindi impostarne il valore su checkApprovalNeeded.
Nella finestra di progettazione del flusso di lavoro aprire il menu di scelta rapida per l'attività logToHistoryListActivity1 e quindi scegliere Genera gestori per generare un metodo vuoto per l'evento
MethodInvoking
.Sostituire il
MethodInvoking
codice con il codice seguente:Scegliere il tasto F5 per eseguire il debug del programma.
In questo modo, l'applicazione, la distribuisce, la distribuisce, ne attiva le funzionalità, ricicla il pool di applicazioni IIS e quindi avvia il browser nel percorso specificato nella proprietà Url sito.
Associazione del flusso di lavoro all'elenco dei documenti
Visualizzare quindi il modulo di associazione del flusso di lavoro associando il flusso di lavoro all'elenco SharedDocuments nel sito di SharePoint.
Per associare il flusso di lavoro
Scegliere il collegamento Documenti condivisi sulla barra di avvio rapido.
Scegliere il collegamento Libreria nella scheda Strumenti libreria e quindi scegliere il pulsante libreria Impostazioni barra multifunzione.
Nella sezione Autorizzazioni e gestione scegliere il collegamento Flusso di lavoro Impostazioni e quindi scegliere il collegamento Aggiungi un flusso di lavoro nella pagina Flussi di lavoro.
Nell'elenco superiore nella pagina delle impostazioni del flusso di lavoro scegliere il modello ExpenseReport - Workflow1 .
Nel campo successivo immettere ExpenseReportWorkflow e quindi scegliere il pulsante Avanti .
In questo modo il flusso di lavoro viene associato all'elenco Documenti condivisi e viene visualizzato il modulo di associazione del flusso di lavoro.
Nella casella di testo Limite approvazione automatica immettere 1200 e quindi scegliere il pulsante Associa flusso di lavoro .
Avviare il flusso di lavoro
Associare quindi il flusso di lavoro a uno dei documenti nell'elenco Documenti condivisi per visualizzare il modulo di avvio del flusso di lavoro.
Per avviare il flusso di lavoro
Nella pagina SharePoint scegliere il pulsante Home .
Scegliere il collegamento Documenti condivisi sulla barra di avvio rapido per visualizzare l'elenco Documenti condivisi.
Scegliere il collegamento Documenti nella scheda Strumenti raccolta nella parte superiore della pagina e quindi scegliere il pulsante Carica documento sulla barra multifunzione per caricare un nuovo documento nell'elenco Documenti condivisi.
Nella finestra di dialogo Carica documento scegliere il pulsante Sfoglia, scegliere qualsiasi file di documento, scegliere il pulsante Apri e quindi scegliere il pulsante OK.
È possibile modificare le impostazioni per il documento in questa finestra di dialogo, ma lasciare i valori predefiniti scegliendo il pulsante Salva .
Scegliere il documento caricato, scegliere la freccia a discesa visualizzata e quindi scegliere l'elemento Flussi di lavoro .
Scegliere l'immagine accanto a ExpenseReportWorkflow.
Verrà visualizzato il modulo di avvio del flusso di lavoro. Si noti che il valore visualizzato nell'oggetto La casella Limite approvazione automatica è di sola lettura perché è stata immessa nel modulo di associazione.
Nella casella di testo Expense Total (Totale spese) immettere 1600 e quindi scegliere il pulsante Avvia flusso di lavoro .
Verrà visualizzato di nuovo l'elenco Documenti condivisi. Una nuova colonna denominata ExpenseReportWorkflow con il valore Completed viene aggiunta all'elemento appena avviato.
Scegliere la freccia a discesa accanto al documento caricato e quindi scegliere l'elemento Flussi di lavoro per visualizzare la pagina relativa allo stato del flusso di lavoro. Scegliere il valore Completato in Flussi di lavoro completati. L'attività è elencata nella sezione Attività .
Scegliere il titolo dell'attività per visualizzarne i dettagli.
Tornare all'elenco SharedDocuments e riavviare il flusso di lavoro usando lo stesso documento o uno diverso.
Immettere un importo nella pagina iniziale minore o uguale all'importo immesso nella pagina di associazione (1200).
In questo caso, viene creata una voce nell'elenco di cronologia anziché un'attività. La voce viene visualizzata nella sezione Cronologia flusso di lavoro della pagina relativa allo stato del flusso di lavoro. Si noti il messaggio nella colonna Risultato dell'evento di cronologia. Contiene il testo immesso nell'evento che include l'importo
logToHistoryListActivity1.MethodInvoking
approvato automaticamente.