Pianificare la creazione di flussi di lavoro (SharePoint Server 2010)

 

Si applica a: SharePoint Foundation 2010, SharePoint Server 2010

Ultima modifica dell'argomento: 2016-11-30

Un flusso di lavoro è sostanzialmente costituito da due elementi: i moduli utilizzati da un flusso di lavoro per interagire con gli utenti e la logica che definisce il comportamento del flusso di lavoro. Per capire come vengono creati i flussi di lavoro, è necessaria una conoscenza generale di entrambi.

Poiché comunica con gli utenti attraverso un Web browser, un flusso di lavoro dipende da ASP.NET per visualizzare i moduli. Di conseguenza, tali moduli vengono definiti come pagine ASPX. Un flusso di lavoro è potenzialmente in grado di visualizzare i moduli in quattro momenti del ciclo di vita:

  • Associazione: quando un amministratore associa un modello di flusso di lavoro a un determinato elenco o a una raccolta documenti, può impostare opzioni che verranno applicate a ogni istanza del flusso di lavoro creata da questa associazione. Se un autore di flusso di lavoro sceglie di consentire tale operazione, deve implementare un modulo che consenta all'amministratore di specificare queste informazioni.

  • Avvio: è possibile consentire al ruolo iniziale di un flusso di lavoro di specificare le opzioni quando avvia un'istanza in esecuzione. Nello scenario di approvazione descritto ad esempio le opzioni includono l'impostazione dell'elenco dei partecipanti al flusso di lavoro e la definizione del tempo a disposizione di ognuno per completare la propria attività. Se un flusso di lavoro consente tale operazione, l'autore deve implementare un modulo per consentire al ruolo iniziale di impostare queste opzioni.

  • Completamento dell'attività: è necessario che nell'istanza del flusso di lavoro in esecuzione sia visualizzato un modulo che consenta ai partecipanti al flusso di lavoro di completare l'attività. Questo modulo ha consentito ai responsabili dell'approvazione dello scenario precedente di esprimere commenti sul documento e indicare l'approvazione o il rifiuto.

  • Modifica: il creatore di un flusso di lavoro può consentirne la modifica durante l'esecuzione. Un flusso di lavoro ad esempio può consentire l'aggiunta di nuovi partecipanti dopo l'inizio dell'esecuzione o l'estensione della data di scadenza per il completamento delle attività. Se questa opzione viene utilizzata, è necessario che a questo punto venga visualizzato nel flusso di lavoro un modulo che consenta a un partecipante di specificare quali modifiche apportare.

I flussi di lavoro creati con Microsoft SharePoint Server 2010 consentono l'utilizzo di moduli creati con InfoPath. La logica di un flusso di lavoro è sempre definita come gruppo di attività, come in qualsiasi flusso di lavoro basato su Windows Workflow Foundation (WF). Per specificare la logica e i moduli per un flusso di lavoro, Microsoft offre due diversi strumenti, ognuno rivolto a un gruppo di destinatari diverso. Gli sviluppatori software possono utilizzare la funzionalità Progettazione flussi di lavoro di Windows Workflow Foundation. Questo strumento viene eseguito in Visual Studio 2010 Professional Edition e offre un ambiente grafico per organizzare le attività in flussi di lavoro. Gli Information Worker, che costituiscono un gruppo con competenze meno tecniche, possono utilizzare Microsoft SharePoint Designer 2010 per creare flussi di lavoro senza scrivere codice. Nelle due sezioni successive viene illustrato come creare flussi di lavoro utilizzando ognuno di questi strumenti.

Nei flussi di lavoro che utilizzano SharePoint Server è possibile utilizzare moduli di flussi di lavoro di Microsoft InfoPath 2010, anziché solo moduli ASPX. Per creare questi moduli, un autore del flusso di lavoro utilizza Microsoft InfoPath, in cui è presente un editor grafico che consente di definire il contenuto del modulo. Gli sviluppatori che preferiscono lavorare interamente all'interno dell'ambiente di Visual Studio possono utilizzare Visual Studio 2010, Professional Edition.

In seguito alla creazione, i moduli del flusso di lavoro di InfoPath vengono collegati a un flusso di lavoro mediante un file workflow.xml, esattamente come avviene con i moduli ASP.NET. A differenza dei moduli ASP.NET, tuttavia, gli sviluppatori non devono scrivere codice personalizzato per spostare le informazioni tra i moduli del flusso di lavoro di InfoPath e un flusso di lavoro. Questo collegamento è invece garantito da SharePoint Server e InfoPath, in modo da semplificare l'attività di coloro che creano flussi di lavoro.

Sotto molti aspetti, un flusso di lavoro è analogo a un diagramma di flusso. Risulta pertanto utile offrire uno strumento grafico che consenta agli sviluppatori di specificare le azioni di un flusso di lavoro. A tale scopo, sono disponibili gli strumenti relativi al flusso di lavoro di SharePoint in Visual Studio 2010 Professional, che rappresentano un tipo di progetto in cui viene utilizzato lo strumento Progettazione flussi di lavoro di Windows Workflow Foundation e che offrono supporto per la distribuzione e i moduli per i flussi di lavoro. Gli sviluppatori possono utilizzare Progettazione flussi di lavoro per definire graficamente le attività di un flusso di lavoro e l'ordine con cui queste vengono eseguite. Nella schermata seguente viene illustrato un semplice esempio di questo aspetto in Microsoft Visual Studio.

Flusso di lavoro Raccolta commenti e suggerimenti

Windows SharePoint Services - esempio di flusso di lavoro

Le attività disponibili sono visualizzate nella casella degli strumenti sul lato sinistro della schermata. Uno sviluppatore può trascinare queste attività sulla superficie di progettazione per definire i passaggi in un flusso di lavoro. Sarà quindi possibile impostare le proprietà di ogni attività nella finestra delle proprietà visualizzata nell'angolo in basso a destra.

Nella raccolta delle attività di base di Windows Workflow Foundation è disponibile un gruppo di attività fondamentali, come descritto in precedenza. SharePoint Server offre inoltre una serie di attività progettate espressamente per la creazione di flussi di lavoro. Di seguito sono elencate le più importanti:

  • OnWorkflowActivated: offre un punto di partenza standard per un flusso di lavoro. Questa attività è tra l'altro in grado di accettare le informazioni specificate da un amministratore di SharePoint tramite il modulo di associazione quando il flusso di lavoro viene associato a una raccolta documenti, un elenco, un tipo di contenuto o un sito. È inoltre in grado di accettare le informazioni specificate tramite il modulo di avvio quando il flusso di lavoro viene avviato. Ogni flusso di lavoro deve iniziare con questa attività.

  • CreateTask: crea un'attività assegnata a un determinato utente in un elenco delle attività. Il flusso di lavoro di approvazione nello scenario descritto in precedenza ad esempio utilizza questa attività per aggiungere un'attività all'elenco delle attività utilizzato da ogni partecipante. Questa attività dispone inoltre di una proprietà SendEmailNotification che, se impostata su true, invia automaticamente un messaggio di posta elettronica alla persona per cui è stata creata l'attività.

  • OnTaskChanged: accetta le informazioni dal modulo di completamento attività. Il flusso di lavoro di approvazione descritto nello scenario precedente utilizza questa attività per accettare l'input di ogni partecipante quando il documento viene approvato.

  • CompleteTask: contrassegna un'attività come completata.

  • DeleteTask: rimuove un'attività da un elenco.

  • OnWorkflowModified: accetta le informazioni dal modulo Modifica, che sarà quindi utilizzabile per modificare il comportamento di questa istanza del flusso di lavoro. Se il creatore del flusso di lavoro sceglie di non includere alcuna istanza di questa attività nel flusso di lavoro, non sarà possibile modificare tale flusso di lavoro durante l'esecuzione.

  • SendEmail: invia un messaggio di posta elettronica a una persona o a un gruppo di persone specificato.

  • LogToHistoryList: scrive le informazioni sull'esecuzione del flusso di lavoro in un elenco della cronologia. Le informazioni contenute in questo elenco vengono utilizzate per mostrare agli utenti l'avanzamento dell'esecuzione di un flusso di lavoro, esaminare la cronologia del flusso di lavoro dopo il completamento e altro ancora. Per consentire questo tipo di monitoraggio, l'autore del flusso di lavoro deve scrivere le informazioni in un elenco della cronologia in corrispondenza dei punti appropriati nell'esecuzione del flusso di lavoro. Poiché implementa un proprio meccanismo per tenere traccia dei flussi di lavoro, SharePoint Server non supporta il servizio di rilevamento standard di Workflow Foundation.

Un modello per un semplice flusso di lavoro inizia in genere con un'attività OnWorkflowActivated e quindi utilizza un'attività CreateTask per assegnare un'attività a un partecipante nel flusso di lavoro. Sarà quindi possibile utilizzare l'attività While standard della raccolta delle attività di base in attesa che l'utente completi l'attività. Per sapere quando ciò si verifica (è possibile che l'utente apporti più modifiche all'attività e al termine selezioni una casella nel modulo di completamento attività), all'interno dell'attività While viene eseguita un'attività OnTaskChanged, che estrae tutte le informazioni immesse dall'utente in tale modulo. Quando l'utente ha completato l'attività, è possibile che venga eseguita un'attività CompleteTask, seguita da DeleteTask. Il flusso di lavoro può quindi procedere al partecipante successivo, utilizzando CreateTask per assegnargli un'attività e così via. È ovviamente possibile che vengano eseguite altre operazioni, quali l'invio di posta elettronica, la registrazione di informazioni nell'elenco della cronologia o anche l'inserimento dell'attività Code della raccolta delle attività di base, che consente l'esecuzione di codice arbitrario.

Lo scopo di tutte le attività disponibili in SharePoint Server è di consentire ai flussi di lavoro di operare all'interno dell'ambiente SharePoint. La regola business implementata da un flusso di lavoro dipende completamente dal creatore di tale flusso di lavoro. Uno sviluppatore che crea un flusso di lavoro infatti è libero di creare e utilizzare attività personalizzate, senza l'obbligo di utilizzare solo quelle disponibili in SharePoint Server e Windows Workflow Foundation.

Come descritto in precedenza, Windows Workflow Foundation supporta flussi di lavoro sequenziali, paralleli e macchina a stati. Anche un flusso di lavoro creato con Progettazione flussi di lavoro può utilizzare una di queste opzioni. A tale scopo, SharePoint Server aggiunge a Visual Studio tipi di progetto per ognuno di questi stili di flusso di lavoro.

Indipendentemente dallo stile scelto, oltre a definire la logica del flusso di lavoro, lo sviluppatore deve specificare i moduli ASPX o di InfoPath da utilizzare. A tale scopo, viene utilizzato un file denominato element.xml, che offre un modello che lo sviluppatore può compilare per specificare quale modulo deve venire eventualmente visualizzato in ognuno dei quattro punti in cui un flusso di lavoro può eseguire questa operazione.

Uno sviluppatore deve eseguire alcune operazioni per passare le informazioni tra un flusso di lavoro e i moduli ASPX utilizzati. Lo spazio dei nomi Microsoft.Windows.SharePoint.Workflow espone un modello a oggetti per gli sviluppatori. Utilizzando i tipi in questo spazio dei nomi, il creatore di un flusso di lavoro può passare le informazioni da un modulo ASPX al flusso di lavoro e viceversa.

Dopo avere creato un flusso di lavoro e i relativi moduli, lo sviluppatore deve inserirli in un pacchetto in modo da costituire un elemento Feature. Un amministratore di SharePoint dovrà quindi installare questo elemento Feature, il che include l'installazione degli assembly del flusso di lavoro nella Global Assembly Cache del sistema di destinazione. Il nuovo flusso di lavoro risulterà visibile per l'amministratore come modello di flusso di lavoro che è possibile associare a una raccolta documenti, un elenco, un tipo di contenuto o un sito.

Per uno sviluppatore software la creazione di un flusso di lavoro di Windows SharePoint Services tramite Visual Studio e Progettazione flussi di lavoro non è particolarmente difficile. Lo sviluppatore deve comprendere le specifiche di utilizzo di questo ambiente, ma la maggior parte delle operazioni gli risulterà familiare. Gli sviluppatori software non sono tuttavia gli unici a creare flussi di lavoro. Come descritto di seguito, anche coloro che non sono sviluppatori professionisti possono creare flussi di lavoro tramite Microsoft SharePoint Designer 2010.

Microsoft SharePoint Designer 2010 è un'applicazione distinta che è possibile scaricare gratuitamente. Microsoft SharePoint Designer consente agli Information Worker e ad altri utenti di aggiungere logica dell'applicazione, implementata come flusso di lavoro, ai siti di SharePoint. Oltre a soddisfare questo obiettivo, decisamente utile, Microsoft SharePoint Designer consente anche di risolvere un altro importante problema. Se uno sviluppatore crea un flusso di lavoro utilizzando Visual Studio, tale flusso di lavoro deve essere distribuito in un server che esegue SharePoint Server, come qualsiasi altra caratteristica. Molti amministratori di SharePoint non consentono tuttavia la distribuzione di codice arbitrario nei server, ritenendo troppo elevato il rischio di destabilizzazione del sistema. La possibilità di creare una regola business semplice associata ai documenti e alle voci di elenco è tuttavia molto utile e talvolta necessaria per numerosi utenti di SharePoint. Oltre a consentire alle persone con competenze meno tecniche di creare flussi di lavoro, Microsoft SharePoint Designer consente inoltre di risolvere questo problema offrendo un modo più sicuro per definire e distribuire la regola business in server che eseguono SharePoint Server.

Gli scenari di flusso di lavoro in cui viene utilizzato Microsoft SharePoint Designer sono in certo modo diversi da quelli in cui vengono utilizzati Visual Studio e Progettazione flussi di lavoro. Sebbene sia certamente possibile creare applicazioni complesse, lo scopo di Microsoft SharePoint Designer è di consentire agli utenti di aggiungere la regola business ai siti di SharePoint. Si supponga ad esempio che un sito contenga un elenco che consente agli utenti di inviare richieste di modifiche. È possibile utilizzare Microsoft SharePoint Designer per creare un flusso di lavoro che informa automaticamente chi ha eseguito l'invio che la richiesta di modifica è stata accettata o rifiutata. Analogamente, un flusso di lavoro personalizzato sarebbe in grado di informare un determinato gruppo di utenti ogniqualvolta un nuovo documento venisse aggiunto a una determinata raccolta documenti. L'esecuzione di questo genere di notifica personalizzata non è complessa, dal momento che è semplice creare i flussi di lavoro, ma risulta difficile con le versioni precedenti di SharePoint Server a causa della riluttanza degli amministratori a installare codice scritto dagli utenti.

La domanda da porsi a questo punto è perché si dovrebbe considerare in modo diverso la logica creata con Microsoft SharePoint Designer. Che cosa dovrebbe spingere gli amministratori di SharePoint a consentire la distribuzione, nei sistemi di cui sono responsabili, dei flussi di lavoro generati con questo strumento? La risposta è che i flussi di lavoro generati con Microsoft SharePoint Designer possono utilizzare solo le attività di un elenco controllato da un amministratore. Sebbene l'amministratore di un sito possa scegliere di includere in questo elenco le attività personalizzate create da uno sviluppatore oltre alle attività fornite da SharePoint Server, non è tuttavia obbligato a farlo. Definendo con esattezza le operazioni consentite ai flussi di lavoro, un amministratore di SharePoint può essere più sicuro che la distribuzione della logica creata tramite Microsoft SharePoint Designer non destabilizzerà il sistema.

Sia perché è destinato agli Information Worker piuttosto che agli sviluppatori, sia perché evidenzia scenari più semplici, Microsoft SharePoint Designer utilizza per la creazione dei flussi di lavoro un modello diverso da quello di Progettazione flussi di lavoro disponibile in Visual Studio. Invece di un approccio grafico, Microsoft SharePoint Designer utilizza un approccio basato sulle regole. È alquanto simile alla Creazione guidata Regole in Microsoft Outlook, uno strumento familiare a molte persone. Nella schermata riportata di seguito viene illustrato come viene definito un passaggio in un flusso di lavoro da un utente di Microsoft SharePoint Designer. Si noti che questo flusso di lavoro esegue alcune azioni in parallelo e altre in serie. Le versioni precedenti di SharePoint Server supportano esclusivamente l'esecuzione di azioni in serie e pertanto le azioni vengono eseguite solo in sequenza.

Flusso di lavoro di elaborazione degli ordini

Process Order Workflow

Ogni passaggio può presentare una condizione e un'azione. La condizione determina se l'azione di questo passaggio deve essere eseguita, come nelle istruzioni If illustrate nella figura precedente. Le scelte per le azioni includono operazioni quali l'assegnazione di un intrattenitore a un evento, la raccolta di approvazioni e così via. Ognuna di queste azioni viene in effetti eseguita da un'attività di SharePoint Server e le attività utilizzate in questo ambito sono le stesse utilizzate con Visual Studio e Progettazione flussi di lavoro. L'elenco di azioni può inoltre includere qualsiasi altra attività consentita dall'amministratore di SharePoint per questo sito, incluse le attività personalizzate create dagli sviluppatori. In SharePoint Server è disponibile inoltre un set di attività speciali che consentono agli utenti di personalizzare il paradigma di raccolta commenti e suggerimenti o approvazione comune consistente nel creare un set di attività e attenderne il completamento in una finestra di progettazione speciale di Microsoft SharePoint Designer.

Sebbene l'interfaccia utente abbia un aspetto piuttosto diverso rispetto all'approccio grafico utilizzato con Visual Studio e Progettazione flussi di lavoro, Microsoft SharePoint Designer crea un flusso di lavoro di Workflow Foundation standard. Ciò che viene effettivamente prodotto è un flusso di lavoro sequenziale, parallelo, o una combinazione di entrambi, con condizioni espresse tramite il motore regole di business di Workflow Foundation. I flussi di lavoro creati con questo strumento presentano tuttavia alcune limitazioni. Non è possibile, ad esempio, modificarli mentre sono in esecuzione, diversamente da quelli generati tramite Visual Studio e Progettazione flussi di lavoro, ed è possibile creare solo flussi di lavoro sequenziali e paralleli, mentre le macchine a stati non sono supportate. I flussi di lavoro generati con questo strumento possono inoltre essere modificati in base a una raccolta documenti, un elenco o un sito specifico, dopo essere stati progettati. Gli autori di flussi di lavoro possono inoltre creare un modello di flusso di lavoro generale che successivamente è possibile associare a qualsiasi raccolta, elenco o tipo di contenuto. Sebbene ciò ponga dei limiti all'utilizzo di un flusso di lavoro, ne rende tuttavia molto più semplice la distribuzione. Quando, infatti, un utente termina la creazione di un flusso di lavoro con Microsoft SharePoint Designer, lo strumento consente di distribuire il flusso di lavoro nel sito di destinazione con un unico clic, compresa l'attivazione del flusso di lavoro. Questo processo di distribuzione è notevolmente meno complesso di quello in più passaggi necessario per i flussi di lavoro creati tramite Visual Studio e Progettazione flussi di lavoro.

I flussi di lavoro creati utilizzando Microsoft SharePoint Designer consentono di visualizzare moduli personalizzati. Anziché richiedere agli autori dei flussi di lavoro di creare direttamente pagine ASPX, queste pagine vengono invece generate dallo strumento. L'autore specifica i dettagli relativi all'aspetto delle pagine generate, ad esempio quali campi devono contenere, e tramite Microsoft SharePoint Designer vengono eseguite le altre operazioni necessarie. Dei quattro punti del ciclo di vita di un flusso di lavoro in cui è possibile utilizzare i moduli, tuttavia, solo due vengono utilizzati con i flussi di lavoro creati tramite Microsoft SharePoint Designer, ovvero Avvio e Completamento attività. Poiché ogni flusso di lavoro creato con questo strumento deve essere associato a una raccolta documenti, un elenco o un tipo di contenuto specifico, non è necessario un passaggio di associazione né un modulo Associazione. Poiché, inoltre, non è possibile modificare questi flussi di lavoro in fase di esecuzione, non è necessario un modulo Modifica.

Microsoft SharePoint Designer consente inoltre di importare flussi di lavoro creati con Microsoft Visio 2010. In questo modo i responsabili aziendali o gli autori di flussi di lavoro possono creare la logica dei flussi di lavoro utilizzando un ambiente grafico familiare. Un autore di flussi di lavoro può quindi importare la logica dei flussi di lavoro in Microsoft SharePoint Designer, modificarla se necessario e infine pubblicarla in un sito di SharePoint.

SharePoint Server offre numerose funzionalità per la creazione di flussi di lavoro orientati ai documenti, sebbene sia sostanzialmente una piattaforma per lo sviluppo e l'esecuzione. Di per sé non offre alcuna funzionalità per i flussi di lavoro che possa essere direttamente utilizzata dagli utenti finali. I flussi di lavoro eseguiti in SharePoint Server presentano inoltre altre restrizioni, ad esempio l'impossibilità di interagire con i partecipanti tramite applicazioni client di Office.

Nella tabella seguente sono illustrate le differenze importanti tra gli strumenti supportati da Microsoft per la creazione di flussi di lavoro in SharePoint Server utilizzando sia SharePoint Designer che Progettazione flussi di lavoro in Visual Studio 2010 Professional Edition.

 

Capacità/requisiti SharePoint Designer Progettazione flussi di lavoro in Visual Studio

I flussi di lavoro possono essere creati utilizzando solo azioni approvate dagli amministratori dei siti?

No

I flussi di lavoro sono accessibili nelle applicazioni client (browser escluso)?

È possibile utilizzare Microsoft Visio Professional per creare la logica dei flussi di lavoro?

No

È necessario scrivere codice?

No

Sono disponibili ulteriori attività, oltre a quelle fornite da SharePoint Server?

No

È possibile creare attività personalizzate?

No

È possibile utilizzare moduli di InfoPath nei flussi di lavoro?

È possibile modificare un flusso di lavoro in esecuzione?

No

È supportata la pubblicazione dei flussi di lavoro tramite clic del mouse?

È supportata la distribuzione remota dei flussi di lavoro?

No

Possono essere disponibili nella farm?

No

È possibile configurare l'ambito per una raccolta siti?

Mostra: