Creazione di flussi di lavoro di Windows SharePoint Services
Un flusso di lavoro di Windows SharePoint Services è 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 comprendere come vengono creati i flussi di lavoro di Windows SharePoint Services, è necessaria una conoscenza generale di entrambi.
Poiché comunica con gli utenti attraverso un Web browser, un flusso di lavoro di Windows SharePoint Services dipende da Microsoft ASP.NET per visualizzare i moduli. Di conseguenza, tali moduli vengono definiti come pagine ASPX. Un flusso di lavoro di Windows SharePoint Services è potenzialmente in grado di visualizzare i moduli in quattro momenti del ciclo di vita:
Associazione: quando un amministratore di Windows SharePoint Services associa un modello di flusso di lavoro a un determinato elenco o 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, come illustrato nel passaggio 3 del diagramma precedente.
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, illustrato nel passaggio 6 del diagramma precedente, è quello che ha consentito ai responsabili dell'approvazione dello scenario precedente di esprimere commenti sul documento e indicare la propria approvazione o rifiuto.
Modifica: sebbene non sia stato illustrato nello scenario precedente, 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 basati esclusivamente su Windows SharePoint Services definiscono i moduli come pagine aspx, mentre quelli basati su Office SharePoint Server possono utilizzare inoltre moduli creati con InfoPath, come illustrato più avanti. In entrambi i casi, la logica di un flusso di lavoro è sempre definita come gruppo di attività, come con qualsiasi flusso di lavoro basato su Workflow Foundation. 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 Progettazione flussi di lavoro disponibile in Visual Studio 2005. Gli Information Worker, che costituiscono un gruppo con competenze meno tecniche, possono utilizzare Office SharePoint Designer per creare flussi di lavoro senza scrivere il codice. Nelle due sezioni successive viene illustrato come creare flussi di lavoro di Windows SharePoint Services utilizzando ognuno di questi strumenti.
Creazione e modifica di flussi di lavoro con Visual Studio 2005 e Progettazione 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 attività di un flusso di lavoro. Per Windows Workflow Foundation, questo strumento è costituito da Progettazione flussi di lavoro, che fa parte di Visual Studio Extensions per Windows Workflow Foundation. Gli sviluppatori possono utilizzare Progettazione flussi di lavoro per definire graficamente le attività di un flusso di lavoro e l'ordine in cui eseguire tali attività. Di seguito è illustrata una schermata di esempio.
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. Windows SharePoint Services offre inoltre una serie di attività progettate espressamente per la creazione di flussi di lavoro di Windows SharePoint Services. Di seguito sono elencate le più importanti:
OnWorkflowActivated: offre un punto di partenza standard per un flusso di lavoro di Windows SharePoint Services. Questa attività è tra l'altro in grado di accettare le informazioni specificate da un amministratore di Windows SharePoint Services tramite il modulo Associazione quando un flusso di lavoro viene associato a un elenco o a una raccolta documenti. È inoltre in grado di accettare le informazioni specificate tramite il modulo Avvio quando il flusso di lavoro viene avviato. Ogni flusso di lavoro di Windows SharePoint Services 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, Windows SharePoint Services non supporta il servizio di rilevamento standard di Workflow Foundation.
Un modello per un semplice flusso di lavoro di Windows SharePoint Services 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 Windows SharePoint Services è di consentire ai flussi di lavoro di operare all'interno dell'ambiente Windows SharePoint Services. La regola business implementata da un flusso di lavoro dipende completamente dal creatore di tale flusso di lavoro. Infatti, uno sviluppatore che crea un flusso di lavoro di Windows SharePoint Services è libero di creare e utilizzare attività personalizzate, senza l'obbligo di utilizzare solo quelle disponibili in Windows SharePoint Services e Windows Workflow Foundation.
Come descritto in precedenza, Windows Workflow Foundation supporta sia i flussi di lavoro sequenziali che i flussi di lavoro macchina a stati. Un flusso di lavoro di Windows SharePoint Services creato con Progettazione flussi di lavoro è inoltre in grado di utilizzare entrambe le opzioni. A questo scopo, Windows SharePoint Services aggiunge due tipi di progetto a Visual Studio 2005, uno per ciascuno 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 workflow.xml, che è costituito da un modello che lo sviluppatore compila per specificare quale modulo deve venire eventualmente visualizzato in ognuno dei quattro punti in cui a un flusso di lavoro di Windows SharePoint Services è consentito eseguire questa operazione.
Uno sviluppatore deve eseguire alcune operazioni per passare le informazioni tra un flusso di lavoro di Windows SharePoint Services e i moduli ASPX utilizzati. In Windows SharePoint Services è disponibile uno spazio dei nomi, Microsoft.Windows.SharePoint.Workflow, che espone un modello a oggetti per gli sviluppatori. Utilizzando i tipi in questo spazio dei nomi, il creatore di un flusso di lavoro di Windows SharePoint Services può passare le informazioni da un modulo ASPX al flusso di lavoro e viceversa.
Dopo avere creato un flusso di lavoro di Windows SharePoint Services e i relativi moduli, lo sviluppatore deve riunirli in un pacchetto, in modo da costituire una funzionalità di Windows SharePoint Services 3.0. Un amministratore di Windows SharePoint Services dovrà quindi installare questa funzionalità, il che include l'installazione degli assembly del flusso di lavoro nella cache di assembly globale del sistema di destinazione. Il nuovo flusso di lavoro risulterà visibile per l'amministratore come modello di flusso di lavoro che è possibile associare a un elenco o a una raccolta documenti.
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 risulteranno familiari. Gli sviluppatori software non sono tuttavia gli unici a creare flussi di lavoro di Windows SharePoint Services. Come descritto di seguito, anche chi non è uno sviluppatore professionista può creare flussi di lavoro tramite Office SharePoint Designer.
Creazione e modifica di flussi di lavoro con Office SharePoint Designer 2007
Office SharePoint Designer 2007, un componente con licenza distinta di Office System 2007, consente agli Information Worker e ad altri utenti di aggiungere la logica dell'applicazione (implementata come flusso di lavoro) ai siti di Windows SharePoint Services. Sebbene ciò sia certamente utile, Office SharePoint Designer risolve anche un altro importante problema. Se uno sviluppatore crea un flusso di lavoro di Windows SharePoint Services tramite Visual Studio, è necessario installare tale flusso di lavoro in un server Windows SharePoint Services come qualsiasi altra applicazione. Eppure molti amministratori di Windows SharePoint Services non consentiranno la distribuzione di codice arbitrario sui 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 è tuttavia molto utile e molti utenti di Windows SharePoint Services ne sentono la necessità. Oltre a consentire alle persone con competenze meno tecniche di creare flussi di lavoro, Office SharePoint Designer risolve questo problema assicurando un modo più sicuro per definire e distribuire la regola business sui server Windows SharePoint Services.
Gli scenari di flusso di lavoro in cui viene utilizzato Office 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 Office SharePoint Designer è di consentire agli utenti di aggiungere la regola business ai siti di Windows SharePoint Services. Si supponga, ad esempio, che un sito contenga un elenco che consente agli utenti di inviare richieste di modifiche. È possibile utilizzare Office 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 Windows SharePoint Services 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 Office SharePoint Designer. Che cosa dovrebbe spingere gli amministratori di Windows SharePoint Services a consentire la distribuzione, sui sistemi di cui sono responsabili, dei flussi di lavoro generati con questo strumento? La risposta è che i flussi di lavoro generati con Office SharePoint Designer possono utilizzare solo le attività di un elenco controllato da un amministratore. Sebbene l'amministratore di un sito possa scegliere di includere le attività personalizzate create da uno sviluppatore in questo elenco, non è tuttavia obbligato a farlo. Definendo con esattezza le operazioni consentite ai flussi di lavoro, un amministratore di Windows SharePoint Services può essere più sicuro che la distribuzione della logica creata tramite Office SharePoint Designer non destabilizzerà il sistema.
Sia perché è destinato agli Information Worker piuttosto che agli sviluppatori sia perché pone in risalto scenari più semplici, Office 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, Office SharePoint Designer utilizza un approccio basato sulle regole. È piuttosto simile alla Creazione guidata Regole in Outlook, uno strumento familiare a molte persone. Nella schermata seguente viene illustrato come un utente di Office SharePoint Designer definisce un passaggio in un flusso di lavoro.
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 elemento attività a un partecipante al flusso di lavoro, l'invio di posta elettronica e altro ancora. Ciascuna di queste azioni viene effettivamente eseguita da qualche attività di Windows SharePoint Services e le attività utilizzate qui sono le stesse utilizzate con Visual Studio e Progettazione flussi di lavoro. L'opzione Invia un messaggio illustrata nella figura precedente, ad esempio, corrisponde all'attività SendEmail, mentre Assegna un elemento attività corrisponde a una versione più specifica dell'attività CreateTask. L'elenco di azioni può inoltre includere qualsiasi altra attività consentita dall'amministratore di Windows SharePoint Services per questo sito, incluse le attività personalizzate create dagli sviluppatori.
Anche se l'interfaccia utente ha un aspetto abbastanza diverso da quello dell'approccio grafico utilizzato con Visual Studio e Progettazione flussi di lavoro, Office SharePoint Designer crea un flusso di lavoro Workflow Foundation standard. Ciò che viene effettivamente prodotto è un flusso di lavoro sequenziale con le condizioni espresse tramite il motore regole di business 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, in quanto le macchine a stati non sono supportate. È inoltre necessario modificare i flussi di lavoro generati con questo strumento a fronte di un elenco o di una raccolta documenti specifica in fase di progettazione. Non è possibile creare un modello di flusso di lavoro generale che sia possibile associare in seguito a qualsiasi raccolta o elenco oppure a 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 un utente termina la creazione di un flusso di lavoro con Office SharePoint Designer, lo strumento distribuisce automaticamente il flusso di lavoro al sito di destinazione. 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 Office 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 Office SharePoint Designer elabora le pagine di conseguenza. Dei quattro punti del ciclo di vita di un flusso di lavoro di Windows SharePoint Services in cui è possibile utilizzare i moduli, tuttavia, solo due vengono utilizzati con i flussi di lavoro creati tramite Office SharePoint Designer: Avvio e Completamento attività. Poiché ogni flusso di lavoro creato con questo strumento deve essere associato a un particolare elenco o raccolta documenti, non esiste la necessità di un passaggio di associazione né di un modulo Associazione. Inoltre, poiché non è possibile modificare questi flussi di lavoro in fase di esecuzione, non esiste la necessità di un modulo Modifica.
È possibile utilizzare Office SharePoint Designer anche per altre operazioni oltre alla creazione di flussi di lavoro di Windows SharePoint Services. È possibile utilizzare lo strumento per creare un sito di Windows SharePoint Services, ad esempio, o per personalizzare l'aspetto delle pagine di un sito modificando la pagina master del sito. È inoltre possibile utilizzarlo per la connessione ai dati esterni, che si basa sul supporto per l'associazione dati in ASP.NET. Per gli Information Worker che devono creare la logica da eseguire su un sito di Windows SharePoint Services, tuttavia, l'aspetto più importante di Office SharePoint Designer è senz'altro il supporto per la creazione e la modifica dei flussi di lavoro.
Windows SharePoint Services offre numerose funzionalità per la creazione di flussi di lavoro orientati ai documenti, sebbene sia sostanzialmente una piattaforma per lo sviluppo e l'esecuzione. In sé e per sé, non offre alcuna funzionalità per i flussi di lavoro che possa essere direttamente utilizzata dagli utenti finali. Se ciò che serve sono applicazioni avanzate per la gestione del flusso di lavoro, Windows SharePoint Services non è sufficiente. I flussi di lavoro creati tramite Windows SharePoint Services presentano inoltre altre restrizioni, ad esempio l'impossibilità di interagire con i partecipanti tramite applicazioni client di Office. Come descritto di seguito, Office SharePoint Server consente di superare tutte queste limitazioni.
Scaricare il manuale
Questo argomento è incluso nel manuale seguente, che può essere scaricato per una lettura e una stampa più agevoli:
Per un elenco completo dei manuali disponibili che è possibile scaricare per Office SharePoint Server 2007, vedere Downloadable content for Office SharePoint Server 2007 (informazioni in lingua inglese).