Procedura dettagliata: Creare un'attività del flusso di lavoro del sito personalizzata
Questa procedura dettagliata illustra come creare un'attività personalizzata per un flusso di lavoro a livello di sito usando Visual Studio. I flussi di lavoro a livello di sito si applicano all'intero sito, non solo a un elenco nel sito. L'attività personalizzata crea un elenco annunci di backup e quindi copia il contenuto dell'elenco Annunci al suo interno.
In questa procedura dettagliata sono illustrati i task seguenti:
Creazione di un flusso di lavoro a livello di sito.
Creazione di un'attività del flusso di lavoro personalizzata.
Creazione ed eliminazione di un elenco di SharePoint.
Copia di elementi da un elenco a un altro.
Visualizzazione di un elenco sulla barra di avvio rapido.
Nota
I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzare l'IDE.
Prerequisiti
Per completare questa procedura dettagliata, è necessario disporre dei componenti seguenti:
Edizioni supportate di Microsoft Windows e SharePoint.
Visual Studio.
Creare un progetto di attività personalizzato del flusso di lavoro del sito
Creare prima di tutto un progetto per contenere e testare l'attività del flusso di lavoro personalizzata.
Per creare un progetto di attività personalizzata del flusso di lavoro del sito
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 progetto di SharePoint 2010.
Nella casella Nome immettere AnnouncementBackup 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 il livello di attendibilità per la soluzione come soluzione farm, l'unica opzione disponibile per i progetti flusso di lavoro.
In Esplora soluzioni scegliere il nodo del progetto e quindi sulla 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 il modello 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 (AnnouncementBackup - Workflow1). Modificare il tipo di modello del flusso di lavoro in Flusso di lavoro del sito e quindi scegliere il pulsante Avanti .
Scegliere il pulsante Fine per accettare le impostazioni predefinite rimanenti.
Aggiungere una classe di attività del flusso di lavoro personalizzata
Aggiungere quindi una classe al progetto per contenere il codice per l'attività del flusso di lavoro personalizzata.
Per aggiungere una classe di attività del flusso di lavoro personalizzata
Sulla barra dei menu scegliere Progetto>Aggiungi nuovo elemento per visualizzare la finestra di dialogo Aggiungi nuovo elemento.
Nella visualizzazione albero Modelli installati scegliere il nodo Codice e quindi scegliere il modello Classe nell'elenco dei modelli di elemento di progetto. Usare il nome predefinito Class1. Scegliere il pulsante Aggiungi .
Sostituire tutto il codice in Class1 con il codice seguente:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.SharePoint; namespace AnnouncementBackup { // This custom activity will back up all of the announcements in // the Announcements list on the SharePoint site. public class Class1 : System.Workflow.ComponentModel.Activity { public Class1() { } // Triggers when the activity is executed. protected override System.Workflow.ComponentModel.ActivityExecutionStatus Execute(System.Workflow.ComponentModel.ActivityExecutionContext executionContext) { try { // Get a reference to the SharePoint site. SPSite site = new SPSite("http://" + System.Environment.MachineName); SPWeb web = site.OpenWeb("/"); // Reference the original Announcements list. SPList aList = web.GetList("/Lists/Announcements"); // If the Announcements Backup list already exists, delete it. try { SPList bList = web.GetList("/Lists/Announcements Backup"); bList.Delete(); } catch { } // Create a new backup Announcements list and reference it. Guid newAnnID = web.Lists.Add("Announcements Backup", "A backup Announcements list.", SPListTemplateType.Announcements); SPList bakList = web.Lists[newAnnID]; // Copy announcements from original to backup Announcements list. foreach (SPListItem item in aList.Items) { SPListItem newAnnItem = bakList.Items.Add(); foreach (SPField field in aList.Fields) { if (!field.ReadOnlyField) newAnnItem[field.Id] = item[field.Id]; } newAnnItem.Update(); } // Put the Backup Announcements list on the QuickLaunch bar. bakList.OnQuickLaunch = true; bakList.Update(); } catch (Exception errx) { System.Diagnostics.Debug.WriteLine("Error: " + errx.ToString()); } return base.Execute(executionContext); } } }
Salvare il progetto e quindi, nella barra dei menu, scegliere Compila soluzione> di compilazione.
Class1 viene visualizzato come azione personalizzata nella casella degli strumenti nella scheda Annunci Componenti di Backup.
Aggiungere l'attività personalizzata al flusso di lavoro del sito
Aggiungere quindi un'attività al flusso di lavoro per contenere il codice personalizzato.
Per aggiungere un'attività personalizzata al flusso di lavoro del sito
Aprire Workflow1 nella finestra di progettazione del flusso di lavoro nella visualizzazione progettazione.
Trascinare Class1 dalla casella degli strumenti in modo che venga visualizzato sotto l'attività
onWorkflowActivated1
oppure aprire il menu di scelta rapida per Class1, scegliere Copia, aprire il menu di scelta rapida per la riga sotto l'attivitàonWorkflowActivated1
e quindi scegliere Incolla.Salvare il progetto.
Testare l'attività personalizzata del flusso di lavoro del sito
Eseguire quindi il progetto e avviare il flusso di lavoro del sito. L'attività personalizzata crea un elenco annunci di backup e copia il contenuto dall'elenco Annunci corrente. Il codice controlla anche se esiste già un elenco di backup prima di crearne uno. Se esiste già un elenco di backup, viene eliminato. Il codice aggiunge anche un collegamento al nuovo elenco sulla barra di Avvio rapido del sito di SharePoint.
Per testare l'attività personalizzata del flusso di lavoro del sito
Scegliere il tasto F5 per eseguire il progetto e distribuirlo in SharePoint.
Nella barra di avvio rapido scegliere il collegamento Elenchi per visualizzare tutti gli elenchi disponibili nel sito di SharePoint. Si noti che è presente un solo elenco per gli annunci denominati Annunci.
Nella parte superiore della pagina Web di SharePoint scegliere il collegamento Flussi di lavoro del sito.
Nella sezione Avvia un nuovo flusso di lavoro scegliere il collegamento AnnuncioBackup - Flusso di lavoro1 . Verrà avviato il flusso di lavoro del sito ed eseguito il codice nell'azione personalizzata.
Nella barra di avvio rapido scegliere il collegamento Annunci backup . Si noti che tutti gli annunci contenuti nell'elenco Annunci sono stati copiati in questo nuovo elenco.