Sdílet prostřednictvím


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:

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

  1. V řádku nabídek zvolte soubor, Nový, projektu zobrazení Nový projekt dialogové okno.

  2. Rozbalte SharePoint buď uzlu Visual C# nebo jazyka Visual Basica pak zvolte 2010 uzel.

  3. V šablony podokně zvolte SharePoint 2010 projektu šablony.

  4. V název pole, zadejte AnnouncementBackup a potom zvolte OK tlačítko.

    Průvodce vlastním nastavením aplikace SharePoint se zobrazí.

  5. 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.

  6. V Aplikaci Solution Explorer, zvolte projekt uzlu a potom vyberte na panelu nabídek projektu, Přidat novou položku.

  7. Buď podle Visual C# nebo jazyka Visual Basic, rozbalte SharePoint uzlu a pak zvolte 2010 uzel.

  8. 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í.

  9. 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.

  10. 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

  1. V řádku nabídek zvolte projektu, Přidat novou položku zobrazení Přidat novou položku dialogové okno.

  2. 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.

  3. 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);
            }
    
    
        }
    }
    
  4. 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

  1. V Návrháři pracovního postupu v návrhovém zobrazení otevřete Workflow1.

  2. 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.

  3. 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

  1. Zvolte spuštění projektu a nasazení do služby SharePoint klávesu F5.

  2. 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í.

  3. V horní části webové stránky služby SharePoint, zvolte Pracovních postupů serveru odkaz.

  4. 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.

  5. 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í

Další zdroje

Vývoj řešení služby SharePoint