Názorný postup: Vytvoření vlastního webu pracovního postupu aktivity
Tento názorný postup ukazuje, jak vytvořit vlastní aktivity pro pracovní úrovni webu pomocí Visual Studio.(Postupy na úrovni webu použít 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:
Vytvář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 druhého.
Zobrazení seznamu na panelu Snadné spuštění.
[!POZNÁMKA]
Ve vašem počítači se pro některé z prvků uživatelského rozhraní sady Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedeny v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Nastavení aplikace Visual Studio.
Požadavky
Chcete-li dokončit tento návod, potřebujete následující komponenty:
Podporované edice Microsoft Windows a SharePoint.Další informace naleznete v tématu Požadavky na vývoj řešení služby SharePoint.
Visual Studio.
Vytvoření webu pracovního postupu vlastní aktivity projektu
Nejprve vytvořte projekt držet a otestovat vlastní pracovní činnosti.
Vytvoření webu pracovního postupu vlastní aktivity projektu
V řádku nabídek zvolte soubor, Nový, projektu zobrazení Nový projekt dialogové okno.
Rozbalte SharePoint buď uzlu Visual C# nebo jazyka Visual Basica pak zvolte 2010 uzel.
V šablony podokně zvolte SharePoint 2010 projektu šablony.
V název pole, zadejte AnnouncementBackup a potom zvolte OK tlačítko.
Průvodce vlastním nastavením aplikace SharePoint se zobrazí.
Na určení webu a úroveň zabezpečení pro ladění zvolte nasadit jako řešení farmy přepínač a pak zvolte Dokončit přijmout důvěryhodnosti webu úroveň a výchozí tlačítko.
Tento krok nastaví úroveň důvěryhodnosti řešení jako řešení farmy, k dispozici pouze možnost pro projekty pracovního postupu.
V Aplikaci Solution Explorer, zvolte projekt uzlu a potom vyberte na panelu nabídek projektu, Přidat novou položku.
Buď podle Visual C# nebo jazyka Visual Basic, rozbalte SharePoint uzlu a pak zvolte 2010 uzel.
V šablony podokně zvolte SequentialWorkflow (pouze roztok farmy) šablony a pak zvolte Přidat tlačítko.
Průvodce vlastním nastavením aplikace SharePoint se zobrazí.
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 na Webu pracovnía pak zvolte Další tlačítko.
Zvolte Dokončit tlačítko přijmout zbývající výchozí nastavení.
Přidání třídy vlastní pracovní činnosti
Dále přidání třídy do projektu obsahuje kód pro vlastní pracovní činnost.
Chcete-li přidat vlastní pracovní činnosti třídy
V řádku nabídek zvolte projektu, Přidat novou položku zobrazení Přidat novou položku dialogové okno.
V Nainstalované šablony stromové zobrazení, zvolte kód uzlu a pak zvolte třídy šablona v seznamu položku šablony aplikace project.Použijte výchozí název Class1.Zvolte Přidat tlačítko.
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); } } }
Projekt uložit a potom vyberte na panelu nabídek sestavení, Sestavit řešení.
Class1 se zobrazí jako vlastní akce v panel na AnnouncementBackup součásti kartu.
Přidání vlastní činnost pracovního postupu webu
Dále přidejte pracovní postup obsahuje vlastní kód aktivity.
Přidejte vlastní aktivity serveru pracovního postupu
V Návrháři pracovního postupu v návrhovém zobrazení otevřete Workflow1.
Přetáhněte Class1 z nástrojů , který se zobrazí v seznamu onWorkflowActivated1 činnosti nebo otevřít místní nabídku Class1, zvolte kopie, otevřete místní nabídku pro řádek pod onWorkflowActivated1 činnost a pak zvolte Vložit.
Uložte projekt.
Testování vlastní činnosti serveru pracovního postupu
Dále spuštění projektu a spuštění pracovního postupu webu.Vlastní aktivity vytvoří záložní seznam oznámení a do něj zkopíruje obsah aktuálního seznamu oznámení.Kód také zkontroluje, zda záložní seznam před vytvořením jedné již existuje.Pokud záložní seznam již existuje, je odstraněn.Kód také přidá odkaz na nový seznam na panelu Snadné spuštění serveru SharePoint.
Testovat vlastní činnosti serveru pracovního postupu
Zvolte spuštění projektu a nasazení do služby SharePoint klávesu F5.
Vyberte na panelu Snadné spuštění seznam odkaz zobrazit všechny seznamy, které jsou k dispozici na webu SharePoint.Existuje pouze jeden seznam oznámení s názvem oznámení oznámení.
V horní části webové stránky služby SharePoint, zvolte Pracovních postupů serveru odkaz.
Zvolte v části nový pracovní postup spustit AnnouncementBackup – Workflow1 odkaz.Toto spuštění pracovního postupu webu a spustí kód v vlastní akce.
Vyberte na panelu Snadné spuštění Zálohování oznámení odkaz.Všimněte si, že všechna oznámení, které jsou obsaženy v oznámení seznamu byly zkopírovány do nového seznamu.
Viz také
Úkoly
Jak: vytvoření příjemce událostí