Condividi tramite


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

  1. Nella barra dei menu scegliere File>nuovo>progetto per visualizzare la finestra di dialogo Nuovo progetto.

  2. Espandere il nodo SharePoint in Visual C# o Visual Basic e quindi scegliere il nodo 2010 .

  3. Nel riquadro Modelli scegliere il modello di progetto Progetto SharePoint 2010.

  4. Nella casella Nome immettere ExpenseReport e quindi scegliere il pulsante OK.

    Verrà visualizzata la Personalizzazione guidata SharePoint.

  5. 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.

  6. Scegliere il nodo di progetto in Esplora soluzioni.

  7. Nella barra dei menu scegliere Progetto>Aggiungi nuovo elemento.

  8. In Visual C# o Visual Basic espandere il nodo SharePoint e quindi scegliere il nodo 2010.

  9. Nel riquadro Modelli scegliere Flusso di lavoro sequenziale (solo soluzione farm) e quindi scegliere il pulsante Aggiungi.

    Verrà visualizzata la Personalizzazione guidata SharePoint.

  10. 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.

  11. 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.

  12. 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

  1. Scegliere il nodo Workflow1 in Esplora soluzioni.

  2. Sulla barra dei menu scegliere Progetto>Aggiungi nuovo elemento per visualizzare la finestra di dialogo Aggiungi nuovo elemento.

  3. 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 .

  4. Nell'elenco dei modelli scegliere il modello Modulo associazione flusso di lavoro.

  5. Nella casella di testo Nome immettere ExpenseReportAssocForm.aspx.

  6. 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

  1. Nel modulo di associazione (ExpenseReportAssocForm.aspx) individuare l'elemento asp:Content con ID="Main".

  2. 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 />
    
  3. 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.

  4. Aprire il menu di scelta rapida per il file ExpenseReportAssocForm.aspx e scegliere Visualizza codice.

  5. Sostituire il GetAssociationData metodo con:

    private string GetAssociationData()
    {
        // TODO: Return a string that contains the association data that
        // will be passed to the workflow. Typically, this is in XML
        // format.
        return this.AutoApproveLimit.Text;
    }
    

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

  1. Scegliere il nodo Workflow1 in Esplora soluzioni.

  2. Nella barra dei menu scegliere Progetto>Aggiungi nuovo elemento per visualizzare la finestra di dialogo Aggiungi nuovo elemento.

  3. 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 .

  4. Nell'elenco dei modelli scegliere il modello Modulo di avvio del flusso di lavoro.

  5. Nella casella di testo Nome immettere ExpenseReportInitForm.aspx.

  6. 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

  1. Nel modulo di avvio (ExpenseReportInitForm.aspx) individuare l'elemento asp:Content che contiene ID="Main".

  2. 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 />
    
  3. Espandere il file ExpenseReportInitForm.aspx in Esplora soluzioni per visualizzare i file dipendenti.

  4. Aprire il menu di scelta rapida per il file ExpenseReportInitForm.aspx e scegliere Visualizza codice.

  5. Sostituire il Page_Load metodo con l'esempio seguente:

    protected void Page_Load(object sender, EventArgs e)
    {
        InitializeParams();
        this.AutoApproveLimit.Text =
          workflowList.WorkflowAssociations[new
          Guid(associationGuid)].AssociationData;
    }
    
  6. Sostituire il GetInitiationData metodo con l'esempio seguente:

    // This method is called when the user clicks the button to start the workflow.
    private string GetInitiationData()
    {
        // TODO: Return a string that contains the initiation data that
        // will be passed to the workflow. Typically, this is in XML
        // format.
        return this.ExpenseTotal.Text;
    }
    

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

  1. Visualizzare il flusso di lavoro nella finestra di progettazione del flusso di lavoro aprendo Workflow1 nel progetto.

  2. Nella casella degli strumenti espandere il nodo Flusso di lavoro Windows v3.0 e individuare l'attività IfElse.

  3. 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.

  4. Nella casella degli strumenti espandere il nodo Flusso di lavoro di SharePoint e individuare l'attività CreateTask .

  5. 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.

  6. Nella finestra Proprietà immettere un valore della proprietà taskToken per la proprietà CorrelationToken.

  7. Espandere la proprietà CorrelationToken scegliendo il segno più (TreeView plus) accanto.

  8. Scegliere la freccia a discesa nella sottoproprietà OwnerActivityName e impostare il valore Workflow1.

  9. Scegliere la proprietà TaskId e quindi scegliere il pulsante con i puntini di sospensione (ASP.NET puntini di sospensione di Progettazione dispositivi mobili) per visualizzare la finestra di dialogo Associa proprietà .

  10. Scegliere la scheda Associa a un nuovo membro , scegliere il pulsante di opzione Crea campo e quindi scegliere il pulsante OK .

  11. scegliere la proprietà Proprietà attività e quindi scegliere il pulsante con i puntini di sospensione (ASP.NET puntini di sospensione di Progettazione dispositivi mobili) per visualizzare la finestra di dialogo Associa proprietà .

  12. Scegliere la scheda Associa a un nuovo membro , scegliere il pulsante di opzione Crea campo e quindi scegliere il pulsante OK .

  13. Nella casella degli strumenti espandere il nodo Flusso di lavoro di SharePoint e individuare l'attività LogToHistoryListActivity.

  14. 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

  1. Aprire il menu di scelta rapida per l'attività createTask1 nella finestra di progettazione del flusso di lavoro e quindi scegliere Visualizza codice.

  2. 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.

  3. Sotto il MethodInvoking metodo aggiungere l'esempio seguente:

    private void checkApprovalNeeded(object sender, ConditionalEventArgs
      e)
    {
        bool approval = false;
        if (Convert.ToInt32(workflowProperties.InitiationData) >
          Convert.ToInt32(workflowProperties.AssociationData))
        {
            approval = true;
        }
        e.Result = approval;
    }
    
  4. Nella finestra di progettazione del flusso di lavoro scegliere l'attività ifElseBranchActivity1 .

  5. Nella finestra Proprietà scegliere la freccia a discesa della proprietà Condition e quindi impostare il valore della condizione del codice.

  6. Espandere la proprietà Condition scegliendo il segno più (TreeView plus) accanto a esso e quindi impostarne il valore su checkApprovalNeeded.

  7. 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 .

  8. Sostituire il MethodInvoking codice con il codice seguente:

    private void logToHistoryListActivity1_MethodInvoking(object sender,
      EventArgs e)
    {
        this.logToHistoryListActivity1.HistoryOutcome = "Expense was
          auto approved for " + workflowProperties.InitiationData;
    }
    
  9. 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

  1. Scegliere il collegamento Documenti condivisi sulla barra di avvio rapido.

  2. Scegliere il collegamento Libreria nella scheda Strumenti libreria e quindi scegliere il pulsante libreria Impostazioni barra multifunzione.

  3. 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.

  4. Nell'elenco superiore nella pagina delle impostazioni del flusso di lavoro scegliere il modello ExpenseReport - Workflow1 .

  5. 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.

  6. 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

  1. Nella pagina SharePoint scegliere il pulsante Home .

  2. Scegliere il collegamento Documenti condivisi sulla barra di avvio rapido per visualizzare l'elenco Documenti condivisi.

  3. 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.

  4. 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 .

  5. Scegliere il documento caricato, scegliere la freccia a discesa visualizzata e quindi scegliere l'elemento Flussi di lavoro .

  6. 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.

  7. 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.

  8. 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à .

  9. Scegliere il titolo dell'attività per visualizzarne i dettagli.

  10. Tornare all'elenco SharedDocuments e riavviare il flusso di lavoro usando lo stesso documento o uno diverso.

  11. 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.