Návod: Vytvoření vlastní aktivity pracovního postupu na webu
Tento návod ukazuje, jak vytvořit vlastní aktivity pracovního postupu úrovni webu pomocí Visual Studio. (Pracovní postupy na úrovni webu platí pro celý web, nikoli pouze seznam na webu). Vlastní aktivity vytvoří zálohu seznam oznámení a pak do něj zkopíruje obsah seznamu oznámení.
Tento návod demonstruje následující úkoly:
Vytvoření pracovního postupu úrovni webu.
Vytvoření vlastní pracovní činnosti.
Vytváření a odstraňování seznamu služby SharePoint.
Kopírování položek z jednoho seznamu do jiného.
Zobrazení seznamu na panel Rychlé spuštění.
[!POZNÁMKA]
Na vašem počítači se můžou v následujících pokynech zobrazovat jiné názvy nebo umístění některých prvků uživatelského rozhraní Visual Studia. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.
Požadavky
Chcete-li dokončit tento návod, potřebujete následující komponenty:
Podporované edice Microsoft Windows a služby SharePoint.Další informace naleznete v tématu Požadavky na vývoj řešení služby SharePoint.
Visual Studio.
Vytváření projektu webu vlastní aktivity pracovního postupu
Nejprve vytvořte projekt držet a otestovat vlastní pracovní činnosti.
Chcete-li vytvořit projekt webu vlastní aktivity pracovního postupu
V řádku nabídek zvolte souboru, nové, projektu Chcete-li zobrazit Nový projekt dialogové okno.
Rozbalte SharePoint uzlu, buď Visual C# nebo jazyka Visual Basica pak zvolte 2010 uzlu.
V šablony podokně zvolte Projektu SharePoint 2010 šablony.
V jméno zadejte AnnouncementBackup a pak zvolte OK tlačítko.
Zobrazí se Průvodce přizpůsobením SharePoint.
Na zadat server a úroveň zabezpečení pro ladění zvolte nasadit jako řešení farmy přepínač a potom zvolte Dokončit tlačítka potvrdíte důvěryhodnost úroveň a výchozí web.
Tento krok nastaví úroveň důvěryhodnosti pro řešení jako řešení farmy, možnost k dispozici pouze pro projekty pracovního postupu.
V Průzkumník řešení, zvolte uzel projektu a potom v řádku nabídek zvolte projektu, Přidat novou položku.
Pod každým Visual C# nebo jazyka Visual Basic, rozbalte SharePoint uzlu a pak zvolte 2010 uzlu.
V šablony podokně zvolte Sekvenční pracovní postup (pouze řešení farmy) šablonu a pak zvolte Přidat tlačítko.
Zobrazí se Průvodce přizpůsobením SharePoint.
Na Zadejte název pracovního postupu pro ladění stránky, přijměte výchozí název (AnnouncementBackup - Workflow1).Změnit typ šablony pracovního postupu k Pracovní postup webua pak zvolte Další tlačítko.
Zvolte Dokončit tlačítko potvrďte zbývající výchozí nastavení.
Přidání třídy vlastní pracovní činnosti
Dále přidáte třídu do projektu, který obsahuje kód pro vlastní pracovní činnosti.
Chcete-li přidat třídy vlastní pracovní činnosti
V řádku nabídek zvolte projektu, Přidat novou položku Chcete-li zobrazit Přidat novou položku dialogové okno.
V Nainstalované šablony stromové zobrazení, vyberte kód uzlu a pak zvolte třídy šablona v seznamu šablon položek projektu.Použijte výchozí název Class1.Klikněte na tlačítko Přidat.
Nahraďte kód v Class1 následující:
Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Text Imports 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 Inherits System.Workflow.ComponentModel.Activity Public Sub New() MyBase.New() End Sub ' Triggers when the activity is executed. Protected Overrides Function Execute(ByVal executionContext As System.Workflow.ComponentModel.ActivityExecutionContext) As System.Workflow.ComponentModel.ActivityExecutionStatus Try ' Get a reference to the SharePoint site. Dim site As SPSite = New SPSite(("http://" + System.Environment.MachineName)) Dim web As SPWeb = site.OpenWeb("/") ' Reference the original Announcements list. Dim aList As SPList = web.GetList("/Lists/Announcements") ' If the Announcements Backup list already exists, delete it. Try Dim bList As SPList = web.GetList("/Lists/Announcements Backup") bList.Delete() Catch End Try ' Create a new backup Announcements list and reference it. Dim newAnnID As Guid = web.Lists.Add("Announcements Backup", "A backup Announcements list.", SPListTemplateType.Announcements) Dim bakList As SPList = web.Lists(newAnnID) ' Copy announcements from original to backup Announcements list. For Each item As SPListItem In aList.Items Dim newAnnItem As SPListItem = bakList.Items.Add For Each field As SPField In aList.Fields If Not field.ReadOnlyField Then newAnnItem(field.Id) = item(field.Id) End If Next newAnnItem.Update() Next ' Put the Backup Announcements list on the QuickLaunch bar. bakList.OnQuickLaunch = True bakList.Update() Catch errx As Exception System.Diagnostics.Debug.WriteLine(("Error: " + errx.ToString)) End Try Return MyBase.Execute(executionContext) End Function End Class End Namespace
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); } } }
Uložte projekt a potom v řádku nabídek zvolte sestavení, Sestavit řešení.
Class1 se zobrazí jako vlastní akce v nástrojů v AnnouncementBackup komponenty kartu.
Přidání vlastní aktivity pracovního postupu webu
Dále přidáte aktivity pracovního postupu, který obsahuje vlastní kód.
Chcete-li přidat vlastní aktivity pracovního postupu webu
V Návrháři sledu prací v návrhovém zobrazení otevřete Workflow1.
Přetáhněte Class1 z nástrojů tak, aby se pod onWorkflowActivated1 činnost nebo otevřít místní nabídku pro Class1, zvolte kopie, otevřete místní nabídku pro řádek v seznamu onWorkflowActivated1 aktivity a pak zvolte Vložit.
Uložte projekt.
Testování webu vlastní aktivity pracovního postupu
Dále spusťte projekt a spustit pracovní postup webu.Vlastní aktivity vytvoří záložní seznam oznámení a do něj zkopíruje obsah z aktuálního seznamu oznámení.Kód také zkontroluje, zda již existuje seznam záložní před vytvořením jedné.Pokud záložní seznam již existuje, se zrušuje.Kód také přidá odkaz na nový seznam na panel Rychlé spuštění webu služby SharePoint.
Chcete-li otestovat vlastní aktivity pracovního postupu webu
Zvolte klávesu F5 spustit projektu a nasazení na web SharePoint.
Na panel Rychlé spuštění, vyberte jsou uvedeny odkaz na zobrazení všech seznamů, které jsou k dispozici na webu služby SharePoint.Všimněte si, existuje pouze jeden seznam pro oznámení s názvem oznámení.
V horní části webové stránky služby SharePoint, zvolte Pracovní postupy webu odkaz.
V poli Začátek oddílu nového pracovního postupu zvolte AnnouncementBackup-Workflow1 odkaz.To spustí pracovní postup webu a spustí kód do vlastní akce.
Na panel Rychlé spuštění, vyberte Zálohování oznámení odkaz.Všimněte si, že všechna oznámení, která jsou obsažena v oznámení seznamu byly zkopírovány do nového seznamu.
Viz také
Úkoly
Postupy: Vytvoření přijímače událostí