Scegliere uno strumento per la creazione di flussi di lavoro (SharePoint Foundation)

SharePoint 2010
 

Si applica a: SharePoint Foundation 2010

Ultima modifica dell'argomento: 2015-03-09

Un flusso di lavoro è sostanzialmente costituito da due elementi: i moduli utilizzati dal 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 gli elementi.

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 opzioni all'avvio di 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 è quello che consente ai responsabili dell'approvazione nello 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 viene utilizzata questa opzione, è necessario che a questo punto venga visualizzato nel flusso di lavoro un modulo che consenta a un partecipante di specificare le modifiche da apportare.

I flussi di lavoro creati unicamente in Microsoft SharePoint Foundation 2010 definiscono i relativi moduli come pagine ASPX. La logica di un flusso di lavoro viene sempre definita come un gruppo di attività, esattamente come per 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 caratteristica Progettazione flussi di lavoro di Windows Workflow Foundation. Questo strumento viene eseguito all'interno di Visual Studio 2010 Professional Edition e offre un ambiente grafico per organizzare le attività in flussi di lavoro. Gli Information Worker, ovvero un gruppo di utenti meno tecnici, 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.

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. Questo strumento è rappresentato dagli strumenti del flusso di lavoro di SharePoint in Visual Studio 2010 Professional, un tipo di progetto che utilizza Progettazione flussi di lavoro di Windows Workflow Foundation (WF) e aggiunge funzionalità di supporto della distribuzione e dei moduli per flussi di lavoro di SharePoint. Gli sviluppatori possono utilizzare Progettazione flussi di lavoro per definire graficamente le attività di un flusso di lavoro e l'ordine di esecuzione delle stesse. Nella schermata seguente di Microsoft Visual Studio è illustrato un semplice esempio.

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. Microsoft SharePoint Foundation include inoltre un set 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 di modifica, che sarà quindi utilizzabile per modificare il comportamento dell'istanza corrente del flusso di lavoro. Se l'autore 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 meccanismo proprio per tenere traccia dei flussi di lavoro, Microsoft SharePoint Foundation non supporta il servizio di rilevamento standard di Windows 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 per l'attesa del completamento dell'attività da parte dell'utente. Per sapere quando ciò si verifica (è possibile che l'utente apporti più modifiche all'attività e al termine selezioni una casella di controllo 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 Foundation è di consentire ai flussi di lavoro di operare all'interno dell'ambiente SharePoint. La regola business implementata da un flusso di lavoro dipende completamente dall'autore 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 Foundation 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 Foundation 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 da utilizzare. A questo scopo, utilizza un file denominato element.xml che rappresenta un modello che lo sviluppatore compila per specificare quale modulo deve essere eventualmente visualizzato in ognuno dei quattro punti in cui a un flusso di lavoro è consentito 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, l'autore 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 assemblarli in un pacchetto definito "caratteristica". Un amministratore di SharePoint dovrà quindi installare questa caratteristica, operazione 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 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 risulteranno familiari. Gli sviluppatori software non sono tuttavia gli unici a creare flussi di lavoro. Come descritto di seguito, anche chi non è uno sviluppatore professionista può creare flussi di lavoro tramite Microsoft SharePoint Designer 2010.

Microsoft SharePoint Designer 2010 è un'applicazione separata che è possibile scaricare gratuitamente. Microsoft SharePoint Designer consente agli Information Worker e ad altri utenti di aggiungere la logica dell'applicazione (implementata come flusso di lavoro) ai siti di SharePoint. Sebbene ciò sia certamente utile, Microsoft SharePoint Designer risolve anche un altro importante problema. Se uno sviluppatore crea un flusso di lavoro tramite Visual Studio, è necessario distribuire tale flusso di lavoro in un server che esegue SharePoint Foundation come qualsiasi altra caratteristica. Molti amministratori di SharePoint non consentiranno tuttavia la distribuzione di codice arbitrario nei server, ritenendo troppo elevato il rischio di destabilizzare il sistema. La possibilità di creare una semplice regola business associata ai documenti e agli elementi di elenco è però molto utile e ritenuta necessaria da molti utenti di SharePoint. Oltre a consentire alle persone con competenze meno tecniche di creare flussi di lavoro, Microsoft SharePoint Designer risolve questo problema assicurando un modo più sicuro per definire e distribuire regole business in server che eseguono SharePoint Foundation.

Gli scenari di flusso di lavoro per cui è previsto l'utilizzo di Microsoft SharePoint Designer sono in certo modo diversi da quelli per 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 regole 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, si potrebbe utilizzare un flusso di lavoro personalizzato per segnalare a un determinato gruppo di utenti l'aggiunta di un nuovo documento 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 Foundation 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 creati 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 Foundation, 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é è progettato per 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 su regole, in modo piuttosto simile alla Creazione guidata Regole in Microsoft Outlook, uno strumento noto a molti. Nella schermata riportata di seguito viene illustrato come un utente di Microsoft SharePoint Designer definisce un passaggio in un flusso di lavoro. Si noti che questo flusso di lavoro esegue alcune azioni in parallelo e altre in sequenza. Le versioni precedenti di SharePoint Foundation supportano esclusivamente l'esecuzione di azioni in sequenza, ovvero consecutivamente.

Flusso di lavoro Process Order

Process Order Workflow

Per ogni passaggio possono esistere una condizione e un'azione. La condizione determina se l'azione del passaggio deve essere eseguita come nell'istruzione If illustrata nella figura precedente. Le scelte per le azioni includono attività quali assegnare un intrattenitore a un evento, raccogliere l'approvazione e altro ancora. Ciascuna di queste azioni viene effettivamente eseguita da una qualche attività di SharePoint Foundation 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 attività personalizzate create dagli sviluppatori.

Anche se l'interfaccia utente ha un aspetto abbastanza diverso dall'approccio grafico utilizzato con Visual Studio e Progettazione flussi di lavoro, Microsoft SharePoint Designer crea un flusso di lavoro Windows Workflow Foundation standard. Ciò che viene effettivamente prodotto è un flusso di lavoro sequenziale, parallelo o una combinazione di questi tipi, con condizioni espresse tramite il motore regole di business Windows Workflow Foundation. Per i flussi di lavoro creati con questo strumento esistono tuttavia alcune limitazioni. Non è possibile, ad esempio, modificarli mentre sono in esecuzione, diversamente da quelli generati utilizzando Visual Studio e Progettazione flussi di lavoro, ed è possibile creare solo flussi di lavoro sequenziali e paralleli, in quanto le macchine a stati non sono supportate. I flussi di lavoro creati con questo strumento, inoltre, devono essere progettati per un elenco, una raccolta documenti o un sito specifico. Gli autori dei flussi di lavoro possono inoltre creare un modello di flusso di lavoro generale che è possibile in seguito associare a una raccolta, un elenco o un tipo di contenuto. Sebbene ciò ponga dei limiti all'utilizzo di un flusso di lavoro, ne rende tuttavia molto più semplice la distribuzione. Infatti, quando l'utente termina la creazione del flusso di lavoro con Microsoft SharePoint Designer, lo strumento consente di distribuire il flusso di lavoro nel sito di destinazione con un solo clic, inclusa 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.

Nei flussi di lavoro creati tramite Microsoft SharePoint Designer è inoltre possibile visualizzare moduli personalizzati. Non è necessario che gli autori dei flussi di lavoro creino direttamente pagine ASPX, in quanto è lo strumento a generarle. L'autore specifica i dettagli relativi all'aspetto delle pagine generate, ad esempio quali campi devono contenere, e Microsoft SharePoint Designer elabora le pagine di conseguenza. Per quanto riguarda i quattro punti del ciclo di vita di un flusso di lavoro in cui è supportato l'utilizzo di moduli, tuttavia, i flussi di lavoro creati tramite Microsoft SharePoint Designer consentono esclusivamente l'utilizzo dei moduli di avvio e di completamento attività. Poiché ogni flusso di lavoro creato con questo strumento deve essere associato a una raccolta documenti, a un elenco, a un tipo di contenuto o a un sito particolare, non è necessario un passaggio di associazione e quindi neanche un modulo di associazione. Non è inoltre richiesto un modulo di modifica, perché non è consentita la modifica di questi flussi di lavoro durante l'esecuzione.

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 del flusso di lavoro in Microsoft SharePoint Designer, modificarla se necessario e infine pubblicarla in un sito di SharePoint.

SharePoint Foundation include 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 Foundation 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 sostanziali tra gli strumenti supportati da Microsoft per la creazione dei flussi di lavoro in SharePoint Foundation tramite SharePoint Designer e 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 Foundation

No

È possibile creare attività personalizzate

No

È possibile modificare un flusso di lavoro in esecuzione

No

È supportata la pubblicazione dei flussi di lavoro tramite un solo clic

È supportata la distribuzione remota dei flussi di lavoro

No

I flussi di lavoro possono essere resi disponibili in tutta la farm

No

È possibile limitare l'ambito a una raccolta siti

Mostra: