Udostępnij za pośrednictwem


Przewodnik: tworzenie niestandardowego działania przepływu pracy witryny

W tym przewodniku pokazano, jak utworzyć działanie niestandardowe dla przepływu pracy na poziomie witryny przy użyciu programu Visual Studio. (Przepływy pracy na poziomie lokacji dotyczą całej witryny, a nie tylko listy w witrynie). Działanie niestandardowe tworzy listę anonsów kopii zapasowej, a następnie kopiuje do niej zawartość listy Anonsy.

W tym przewodniku przedstawiono następujące zadania:

  • Tworzenie przepływu pracy na poziomie lokacji.

  • Tworzenie niestandardowego działania przepływu pracy.

  • Tworzenie i usuwanie listy programu SharePoint.

  • Kopiowanie elementów z jednej listy do innej.

  • Wyświetlanie listy na pasku QuickLaunch.

    Uwaga

    Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.

Wymagania wstępne

Następujące składniki są wymagane do przeprowadzenia tego instruktażu:

  • Obsługiwane wersje systemów Microsoft Windows i SharePoint.

  • Visual Studio.

Tworzenie niestandardowego projektu działania przepływu pracy witryny

Najpierw utwórz projekt do przechowywania i testowania niestandardowego działania przepływu pracy.

Aby utworzyć niestandardowy projekt działania przepływu pracy witryny

  1. Na pasku menu wybierz pozycję Plik>nowy>projekt, aby wyświetlić okno dialogowe Nowy projekt.

  2. Rozwiń węzeł programu SharePoint w obszarze Visual C# lub Visual Basic, a następnie wybierz węzeł 2010.

  3. W okienku Szablony wybierz szablon Projekt programu SharePoint 2010.

  4. W polu Nazwa wprowadź anonsBackup, a następnie wybierz przycisk OK .

    Zostanie wyświetlony Kreator dostosowywania programu SharePoint.

  5. Na stronie Określanie witryny i poziomu zabezpieczeń na potrzeby debugowania wybierz przycisk Wdróż jako rozwiązanie farmy, a następnie wybierz przycisk Zakończ, aby zaakceptować poziom zaufania i domyślną witrynę.

    Ten krok określa poziom zaufania dla rozwiązania jako rozwiązania farmy— jedyną dostępną opcję dla projektów przepływu pracy.

  6. W Eksplorator rozwiązań wybierz węzeł projektu, a następnie na pasku menu wybierz pozycję Project Add New Item (Dodaj nowy element projektu>).

  7. W obszarze Visual C# lub Visual Basic rozwiń węzeł programu SharePoint, a następnie wybierz węzeł 2010.

  8. W okienku Szablony wybierz szablon Sekwencyjny przepływ pracy (tylko rozwiązanie farmy), a następnie wybierz przycisk Dodaj .

    Zostanie wyświetlony Kreator dostosowywania programu SharePoint.

  9. Na stronie Określanie nazwy przepływu pracy do debugowania zaakceptuj nazwę domyślną (AnonsBackup — Workflow1). Zmień typ szablonu przepływu pracy na Przepływ pracy witryny, a następnie wybierz przycisk Dalej .

  10. Wybierz przycisk Zakończ, aby zaakceptować pozostałe ustawienia domyślne.

Dodawanie niestandardowej klasy działania przepływu pracy

Następnie dodaj klasę do projektu, aby zawierała kod dla niestandardowego działania przepływu pracy.

Aby dodać niestandardową klasę działania przepływu pracy

  1. Na pasku menu wybierz pozycję Project Add New Item (Dodaj nowy element),>aby wyświetlić okno dialogowe Dodawanie nowego elementu.

  2. W widoku drzewa Zainstalowane szablony wybierz węzeł Kod, a następnie wybierz szablon Klasa na liście szablonów elementów projektu. Użyj domyślnej nazwy Class1. Wybierz przycisk Dodaj.

  3. Zastąp cały kod w klasie Class1 następującym kodem:

    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. Zapisz projekt, a następnie na pasku menu wybierz pozycję Kompiluj rozwiązanie kompilacji>.

    Klasa 1 jest wyświetlana jako akcja niestandardowa w przyborniku na karcie AnonsBackup Components (Składniki anonsu).

Dodawanie działania niestandardowego do przepływu pracy witryny

Następnie dodaj działanie do przepływu pracy, aby zawierać kod niestandardowy.

Aby dodać działanie niestandardowe do przepływu pracy witryny

  1. Otwórz przepływ pracy1 w projektancie przepływu pracy w widoku projektu.

  2. Przeciągnij klasę Class1 z przybornika , aby była wyświetlana w onWorkflowActivated1 działaniu lub otwórz menu skrótów dla klasy Class1, wybierz pozycję Kopiuj, otwórz menu skrótów dla wiersza pod onWorkflowActivated1 działaniem, a następnie wybierz pozycję Wklej.

  3. Zapisz projekt.

Testowanie niestandardowego działania przepływu pracy witryny

Następnie uruchom projekt i uruchom przepływ pracy witryny. Działanie niestandardowe tworzy listę anonsów kopii zapasowej i kopiuje do niej zawartość z bieżącej listy anonsów. Kod sprawdza również, czy lista kopii zapasowych już istnieje przed utworzeniem. Jeśli lista kopii zapasowych już istnieje, zostanie usunięta. Kod dodaje również link do nowej listy na pasku szybkiego uruchamiania witryny programu SharePoint.

Aby przetestować działanie niestandardowe przepływu pracy witryny

  1. Wybierz klucz F5, aby uruchomić projekt i wdrożyć go w programie SharePoint.

  2. Na pasku Szybkie uruchamianie wybierz link Listy , aby wyświetlić wszystkie listy dostępne w witrynie programu SharePoint. Zwróć uwagę, że istnieje tylko jedna lista anonsów o nazwie Anonsy.

  3. W górnej części strony internetowej programu SharePoint wybierz link Przepływy pracy witryny.

  4. W sekcji Uruchamianie nowego przepływu pracy wybierz link AnonsBackup — Workflow1 . Spowoduje to uruchomienie przepływu pracy witryny i uruchomienie kodu w akcji niestandardowej.

  5. Na pasku Szybkie uruchamianie wybierz link Anonsy Kopia zapasowa . Zwróć uwagę, że wszystkie anonse zawarte na liście anonsów zostały skopiowane do tej nowej listy.