Irányelvek egyéni tevékenységek létrehozásához a Service Manager Authoring ToolGuidelines for creating custom activities in the Service Manager Authoring Tool

Fontos

A Service Manager ezen verziója elérte a támogatás végét, javasoljuk, hogy frissítsen a Service Manager 2019-re.This version of Service Manager has reached the end of support, we recommend you to upgrade to Service Manager 2019.

Service Manager automatizálja a különböző információtechnológiai (IT) folyamatokat.Service Manager automates a variety of information technology (IT) processes. Az incidensek felügyeleti folyamata esetében például a Service Manager különböző automatizált lépéseket tartalmaz, például az incidensek létrehozásakor vagy feloldásakor, illetve az incidensek automatikus útválasztását különböző várólistákba kategorizálás alapján.For the Incident Management process, for example, Service Manager includes various automated steps, such as automated notifications to users when incidents are created or resolved and automatic routing of incidents to various queues, based on categorization. Ennek az automatizálásnak a megvalósítása a különféle megoldásokhoz definiált munkafolyamatok segítségével történik. Az automatizálás a Windows Workflow Foundation (WF) szolgáltatásait használja az automatizált műveletek leírására, végrehajtására és nyomon követésére.This automation is implemented by using workflows that are defined for the various solutions, and it uses Windows Workflow Foundation (WF) capabilities to describe, execute, and track the automated operations.

A beépített automatizálást az ügyfelek és partnerek új munkafolyamatok definiálásával és folyamathoz adásával bővíthetik ki.Customers and partners can extend the included automation by defining new workflows and adding them into a process. A munkafolyamatok úgy állíthatók be, hogy rögzített ütemterven vagy az adatbázisban előforduló megadott feltételen történjenek, például ha egy incidens jön létre, vagy ha egy adott állapotra vált, például aktív vagy megoldott.Workflows can be set to occur on a fixed schedule or on a specified condition occurring in the database, for example, when an incident is created or when it changes to a specified state, such as Active or Resolved.

A Service Manager Authoring Tool egy könnyen használható módszert kínál új munkafolyamatok létrehozásához.The Service Manager Authoring Tool provides an easy-to-use method of creating new workflows. Különböző munkafolyamat-tevékenységeket tesz elérhetővé (például incidens létrehozása vagy frissítése), továbbá egérrel kezelhető grafikus tervezőfelületet kínál, amelyen a munkafolyamat-tevékenységek műveletsorokba rendezhetők.It provides a library of different workflow activities, such as creating an incident or updating an incident, and a drag-and-drop graphical designer that you can use to arrange these workflow activities into a workflow sequence. Az authoring Tool ezt követően lefordítja az új munkafolyamatot definíciók, kódok és felügyeleti csomagok tartalmába.The Authoring Tool then compiles the new workflow into a set of definitions, code, and management pack content. Ha ezeket az információkat Service Managerba importálja, az új munkafolyamatot integrálja a megadott megoldásba.When this information is imported into Service Manager, it integrates the new workflow into the specified solution.

Az authoring Tool (szerzői műveletek) eszköz színterének megismerése több haladó felhasználót is igénybe vehet.Understanding what is going on behind the scenes of the Authoring Tool can benefit more advanced users. Először is az ügyfelek és a partnerek használhatják ezeket az információkat a munkafolyamat-tevékenységek könyvtárának kibővítéséhez Service Manager az adott folyamatokra vonatkozó munkafolyamat-tevékenységekkel.First, customers and partners can use this information to extend the workflow activity library in Service Manager with workflow activities that apply to their specific processes. Másodszor, a fejlesztők ezeket az információkat felhasználhatják olyan egyéni vagy speciális munkafolyamatok készítésére, amelyek kompatibilisek a Service Managerekkel, például a Microsoft Visual Studio fejlesztői rendszer használatával.Secondly, developers can use this information to build custom or advanced workflows that are compatible with Service Manager by using their development tool of choice, such as the Microsoft Visual Studio development system.

Munkafolyamat-tevékenységek és a WorkflowActivityBase osztályWorkflow activities and the WorkflowActivityBase class

Service Manager munkafolyamatok a WF-tevékenységeket használják.Service Manager workflows use WF activities. Az authoring Tool zökkenőmentes működéséhez ezek a tevékenységek az alaposztály WorkflowActivityBaseszármaznak, amely a Microsoft. EnterpriseManagement. workflow. Common névtérhez tartozik.To work smoothly with the Authoring Tool, these activities derive from the base class WorkflowActivityBase, which belongs to the Microsoft.EnterpriseManagement.Workflow.Common namespace. A WorkflowActivityBase alaposztálya olyan tulajdonságokat és metódusokat vezet be, amelyek nem érhetők el az általános tevékenység alaposztályában a WF-tevékenységekhez.The WorkflowActivityBase base class introduces properties and methods that are not available in the generic Activity base class for WF activities. A WF-tevékenységek általános tevékenység alaposztály használatával történő definiálásával kapcsolatos további információkért lásd: Activity osztály.For more information about how to define WF activities by using the generic Activity base class, see Activity Class.

A WorkflowActivityBase osztály használatának előnyeiBenefits of using the WorkflowActivityBase class

A felhasználók a Visual Studio Activity könyvtárából is importálhatók a WF-tevékenységek, és ezekkel a tevékenységekkel dolgozhatnak azauthoring Tool (szerzői műveletek) ablaktáblán.Users can import WF activities from the Visual Studio activity library, and they can work with those activities in the Authoring ToolAuthoring pane. Ezek a tevékenységek azonban ugyanúgy viselkednek, mint a Visual Studio Design környezetben.However, those activities behave in the same way as they do in the Visual Studio Design environment. Nincsenek a Service Manager tevékenység-függvénytárba beépített testreszabások.They do not have the customizations that are built into the Service Manager activity library.

Megjegyzés

Nem minden Visual Studio WF-tevékenység lett tesztelve az authoring Tool eszközzel való kompatibilitás érdekében, és előfordulhat, hogy egyes Visual Studio WF-tevékenységek nem futnak megfelelően az authoring Tool eszközben.Not all Visual Studio WF activities have been tested for compatibility with the Authoring Tool, and some Visual Studio WF activities might not run correctly in the Authoring Tool.

A következő táblázat felsorolja a WF-tevékenységek közötti, az általános tevékenység alaposztályán alapuló WorkflowActivityBase és WF-tevékenységeken alapuló különbségeket.The following table lists the differences in behavior between WF activities that are based on the WorkflowActivityBase base class and WF activities that are based on the generic Activity base class.

ForgatókönyvScenario Authoring Tool WF-tevékenység (WorkflowActivityBase alaposztály)Authoring Tool WF activity (WorkflowActivityBase base class) Visual Studio WF-tevékenység (tevékenység alapja osztály)Visual Studio WF activity (Activity base class)
A felhasználó megköti a tevékenység tulajdonságait (az objektum tulajdonságainak Service Manager vagy más tevékenységek tulajdonságaiból).User binds activity properties (to Service Manager object properties or to properties from other activities). Meghívja a kötés tulajdonságot a Service Manager felhasználók számára testre szabott párbeszédpanelre.Calls the Bind property to dialog box that is customized for Service Manager users. Meghívja a-fejlesztőknek szánt kötési tulajdonságot a párbeszédpanelre.Calls the Bind property to dialog box that is intended for developers.
A felhasználó hozzáadja a tevékenységet egy for-each ciklusos tevékenységhez.User adds the activity to a For-Each Loop activity. Hozzáadja a Propertytobind (a hurok indexe) és a CurrentItemtulajdonságokat, amelyek a hurok-specifikus műveletekben való részvételhez szükségesek (aCurrentItem belső tulajdonság).Adds the properties Propertytobind (the loop index) and CurrentItem, which are required to take part in loop-specific operations (CurrentItem is an internal property). A ciklus minden lépésében ugyanúgy viselkedik, és nem kommunikál a ciklust indexelő tulajdonsággal.Behaves in the same way for each iteration of the loop, and does not interact with the property that indexes the loop.

Fontos

Az authoring Tool munkafolyamat-tervezőhöz szükséges testreszabások miatt a WorkFlowActivityBase osztályon alapuló tevékenységek nem a várt módon működnek a Visual Studio munkafolyamat-tervezési környezetben.Because of the customizations that are required for the Authoring Tool workflow designer, activities that are based on the WorkFlowActivityBase class do not function as expected in the Visual Studio workflow design environment.

A felhasználók egyéni WF-tevékenységeket hozhatnak létre a Visual Studióban az authoring Tool eszközben való használatra.Users can build custom WF activities in Visual Studio for use in the Authoring Tool. Ahhoz azonban, hogy kihasználhassa az authoring Tool egyéni tervezési idejű viselkedését, az egyéni tevékenységeket a WorkflowActivityBase osztályon kell alapulnia a tevékenység osztály helyett.However, to take advantage of the custom design-time behavior of the Authoring Tool, custom activities must be based on the WorkflowActivityBase class instead of the Activity class.

Munkafolyamat-tevékenységek és Service Manager automatizált tevékenységekWorkflow activities and Service Manager automated activities

A WF-tevékenységek különböző típusú tevékenységekkel dolgozhatnak, a Service Manager munkaelemek által használt Service Manager tevékenységeket.WF activities can interact with a different type of activity, the Service Manager activities that are used by Service Manager work items. A munkaelemek az Service Manager által használt objektumok fő típusainak egyike.Work items are one of the main types of objects that Service Manager uses. A munkaelemek nyomon követhetik a munkaegységeket, például az incidenseket, a szolgáltatási kérelmeket, a módosítási kérelmeketés az egyéb munkaegységeket.Work items track units of work, such as Incidents, Service Requests, Change Requests, and other units of work. A legtöbb munkaelem egy vagy több Service Manager tevékenységet tartalmaz.Most work items comprise one or more Service Manager activities. A módosítási kérelem például általában legalább két tevékenységet tartalmaz: egy felülvizsgálati tevékenységet és egy módosítás- végrehajtási tevékenységet.For example, a Change Request typically includes at least two activities: a Review activity and a Change Execution activity. A munkaelem általában sorrendben hajtja végre ezeket a tevékenységeket.The work item typically executes these activities in order.

Munkaelem létrehozásakor az első Service Manager tevékenység aktív lesz, és addig marad aktív, amíg Service Manager (vagy a felhasználó) elvégzi a tevékenység által reprezentált munkát.When a work item is created, the first Service Manager activity becomes active and remains active while Service Manager (or the user) carries out whatever work the activity represents. Ha a művelet befejeződik, Service Manager az első tevékenységet befejezettként jelöli meg, és a következő tevékenységet aktiválja a sorozatban.When that work finishes, Service Manager marks the first activity as Completed and activates the next activity in the sequence. Ha a folyamat utolsó tevékenysége befejezettkéntvan megjelölve, Service Manager a teljes munkaelemet befejezettkéntjelöli meg.When the final activity in the sequence is marked as Completed, Service Manager marks the entire work item as Completed.

Egyes Service Manager tevékenységek manuálisan is végrehajthatók, például egy módosítási kérelem felülvizsgálati tevékenysége.Some Service Manager activities can be executed manually, such as the Review activity of a Change Request. A többi Service Manager tevékenység automatizálható, például egy olyan tevékenység, amely e-mailt küld a felhasználónak.Other Service Manager activities can be automated, such as an activity that sends an email to a user. A módosítási kérelem végrehajtási tevékenysége automatizálható.The Change Execution activity of a Change Request can be automated. A Service Manager WF-munkafolyamatokat használ a Service Manager tevékenységek automatizálására.Service Manager uses WF workflows to automate Service Manager activities.

Példa: a tevékenység állapotának beállítása befejezett tevékenységreExample: The Set Activity Status to Completed activity

Ez a példa egy WF munkafolyamat-tevékenységre Service Manager a tevékenység állapotának beállítása befejezett WF-tevékenységet használja.This example of a WF workflow activity in Service Manager uses the Set Activity Status to Completed WF activity. Ez a WF-tevékenység általában egy automatizált Service Manager tevékenységet megvalósító munkafolyamat utolsó lépését jelenti, és az adott tevékenység állapotát Befejezettreállítja.This WF activity typically represents the last step in a workflow that implements an automated Service Manager activity, and it sets the status of that activity to Completed. A befejezett állapot beállításának hatására a rendszer a munkaelem következő tevékenységére lép tovább, és a folyamat addig ismétlődik, amíg be nem fejeződik a munkaelem utolsó tevékenysége is.Setting this status triggers the system to move to the next activity in the work item, and this process repeats until the last activity in the work item is completed.

A tevékenység beállítása befejezett tevékenységhez egy bemeneti és egy tevékenység-azonosítófog megjelenni, amely azonosítja a Service Manager tevékenységet. A WF-tevékenység ezután csatlakozik a Service Manager felügyeleti kiszolgálóhoz, lekéri a megadott Service Manager tevékenységet az adatbázisból, beállítja az állapotát befejezettértékre, majd visszamenti az adatbázisba.The Set Activity Status to Completed activity takes one input, Activity ID, which identifies the Service Manager activity on which to act. The WF activity then connects to the Service Manager management server, retrieves the specified Service Manager activity from the database, sets its status to Completed, and then saves it back to the database. Az ebben a példában szereplő kódrészletek többsége a SetActivityStatusToCompleted.cs fájlból származik, amely egy mögöttes fájl, amely a tevékenység állapotának befejezett tevékenységre vonatkozó állapotát ismerteti.Most of the code samples that are included in this example come from the SetActivityStatusToCompleted.cs file, an underlying file that describes the Set Activity Status to Completed activity.

A példában szereplő WF-tevékenység inicializálásaInitialize the example WF activity

A SetActivityStatusToCompleted.cs fájl első szakasza a deklarációs és inicializálási utasításokat tartalmazza.The first section of the SetActivityStatusToCompleted.cs file contains the declaration and initialization statements. Ez a tevékenység a WorkflowActivityBase osztályon alapul, és az érvényesítő osztály ellenőrzőosztályt és a tervező osztály WorkflowActivityBaseDesignerhasználja.This activity is based on the WorkflowActivityBase class, and it uses the validator class SetActivityStatusToCompletedValidator and the designer class WorkflowActivityBaseDesigner.

A WorkflowActivityBaseDesigner osztály az előző, "a WorkflowActivityBase osztály használatának előnyei" című szakaszban ismertetett testreszabásokat tartalmazza.The WorkflowActivityBaseDesigner class contains the customizations that are described in the previous section, "Benefits of Using the WorkflowActivityBase Class." Az osztály tovább bővíthető és testreszabható.You can further extend and customize this class.

A példában szereplő tevékenység definíciójának első szakasza a következő kódot tartalmazza:The first section of the activity definition for this example activity includes the following code:

namespace Microsoft.ServiceManager.WorkflowAuthoring.ActivityLibrary
{
    // ---------------------------------------------------------------------
    /// <summary>
    /// Activity to set an activity's status to complete
    /// </summary>
    // ---------------------------------------------------------------------
    [ToolboxItem(typeof(ActivityToolboxItem))]
    [ActivityValidator(typeof(Validators.SetActivityStatusToCompletedValidator))]
    [Designer(typeof(WorkflowActivityBaseDesigner))]
    public sealed partial class SetActivityStatusToCompleted : WorkflowActivityBase
    {

A példában szereplő WF-tevékenység bemeneti tulajdonságaiInput properties for the example WF activity

A kód deklarál egy tulajdonságot, a tevékenységazonosítófüggőségi tulajdonságként.The code declares one property, ActivityId, as a dependency property. Ez azt jelenti, hogy ez a tulajdonság olyan paraméterekhez köthető, amelyek a munkafolyamat szintjén vannak definiálva.This means that this property can be bound to parameters that are defined at the workflow level. Ebben az esetben a Service Manager tevékenység AZONOSÍTÓját munkafolyamat-paraméterként adja át a munkafolyamatnak, és bemenetként ebbe a tevékenységbe kerül.In this case, the ID of the Service Manager activity is passed in to the workflow as a workflow parameter, and it flows into this activity as an input.

  // --------------------------------------------------------------------------------
  /// <summary>
  /// Dependency Property for ActivityId property
  /// </summary>
  // --------------------------------------------------------------------------------
  public static DependencyProperty ActivityIdProperty =
      DependencyProperty.Register("ActivityId", typeof(String), typeof(SetActivityStatusToCompleted));

  // --------------------------------------------------------------------------------
  /// <summary>
  /// Activity ID
  /// </summary>
  // --------------------------------------------------------------------------------
  [Browsable(true)]
  [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
  public string ActivityId
  {
      get
      {
          return (string)this.GetValue(ActivityIdProperty);
      }
      set
      {
          this.SetValue(ActivityIdProperty, value);
      }
}

A példában szereplő WF-tevékenység végrehajtási viselkedéseExecution behavior in the example WF activity

Az Execute METÓDUS a WF-tevékenység tényleges munkáját végzi.The Execute method does the actual work of this WF activity. Az EXECUTE metódus hatókörén belül a WF-tevékenység a következő műveleteket hajtja végre :Within the scope of the Execute method, the WF activity does the following:

  • Észleli, hogy az egy-egy ciklusos tevékenységen belül működik-e, és ha igen, beállítja a megfelelő WF-tevékenység tulajdonságait.Detects whether it is operating within a For-Each Loop activity, and, if so, sets the appropriate WF activity properties.

  • Csatlakozik a megadott Service Manager felügyeleti kiszolgálóhoz, és létrehoz egy EnterpriseManagementGroup objektumot.Connects to the specified Service Manager management server and creates an EnterpriseManagementGroup object.

  • A a tevékenységazonosító tulajdonság használatával kérdezi le az azonosított Service Manager tevékenységet az adatbázisból.Uses the ActivityId property to get the identified Service Manager activity from the database.

  • Megkeresi a Service Manager tevékenység osztályának definícióját, lekérdezi a beolvasott Service Manager tevékenység állapot tulajdonságát, és beállítja a tulajdonságot a befejezett enumerálási lista értékére.Finds the class definition of the Service Manager activity, gets the Status property of the retrieved Service Manager activity, and sets the property to the Completed enumeration list value.

  • Véglegesíti a Service Manager tevékenység módosításait.Commits the changes to the Service Manager activity.

  • A a TrackData metódust (a WF-infrastruktúra részét) használja a rendszer a WF-tevékenység végrehajtásával és állapotával kapcsolatos nyomkövetési információk naplózására.Uses the TrackData method (part of the WF infrastructure) to log tracking information about the execution and status of the WF activity.

        // --------------------------------------------------------------------------------
        /// <summary>
        /// The execute method will have the implementation to set the activity status to complete.
        /// </summary>
        // --------------------------------------------------------------------------------
        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
            try
            {
                // Initialize the current item if the activity contained within the For-Each loop
                base.Execute(executionContext);

                // Validate Parameters
                if (String.IsNullOrEmpty(ActivityId))
                {
                    throw new ArgumentNullException("ActivityId");
                }

                string SMServer = "localhost";

                Guid TaskGuid = new Guid(ActivityId);
                EnterpriseManagementGroup _mg = new EnterpriseManagementGroup(SMServer);

                EnterpriseManagementObject Activity = _mg.EntityObjects.GetObject
                    <EnterpriseManagementObject>(TaskGuid, ObjectQueryOptions.Default);

                ManagementPack SystemMP = _mg.ManagementPacks.GetManagementPack(
                    SystemManagementPack.System);
                ManagementPack ActivityMP = _mg.ManagementPacks.GetManagementPack(
                    Resources.ActivityManagementMP, SystemMP.KeyToken, SystemMP.Version);

                ManagementPackClass activityClass = _mg.EntityTypes.GetClass(
                    Resources.WorkItemActivityClass, ActivityMP);

                ManagementPackProperty status = activityClass.PropertyCollection["Status"];
                ManagementPackEnumeration Completed =
                    _mg.EntityTypes.GetEnumeration("ActivityStatusEnum.Completed", ActivityMP);

                Activity[status].Value = Completed;
                Activity.Commit();
            }
            catch (ArgumentNullException argNullException)
            {
                // Log to Tracking Service
                TrackData(argNullException.ToString());

                throw;
            }
            catch (EnterpriseManagementException mgmtException)
            {
                TrackData(mgmtException.ToString());
                throw;
            }

            return ActivityExecutionStatus.Closed;
        }
    }
}

A példában szereplő WF-tevékenység érvényesítési viselkedéseValidation behavior in the example WF activity

A SetActivityStatusToCompletedValidator.cs fájl határozza meg a WF-tevékenység ellenőrzési viselkedését.The SetActivityStatusToCompletedValidator.cs file defines the validation behavior of the WF activity. Ez a viselkedés határozza meg, hogyan jelzi a tervezőprogram, hogy a WF-tevékenység teljesen definiálva van-e vagy még néhány bemenetét definiálni kell.This behavior defines how the designer indicates whether this WF activity is fully defined or if it still requires one or more inputs to be defined. Az authoring Tool a Visual studióhoz hasonlóan ellenőrző hibát jelez, ha a szerzői műveletek ablaktáblán a munkafolyamat tevékenységében vörös felkiáltójel (!) ikont használ.The Authoring Tool indicates a validation error similarly to Visual Studio by using a red exclamation point (!) icon on the workflow activity in the Authoring pane.

namespace Microsoft.ServiceManager.WorkflowAuthoring.ActivityLibrary.Validators
{
    // --------------------------------------------------------------------------------
    /// <summary>
    /// Validator for the SetActivityStatusToCompleted activity
    /// </summary>
    // --------------------------------------------------------------------------------
    internal class SetActivityStatusToCompletedValidator : ActivityValidator
    {
        // --------------------------------------------------------------------------------
        /// <summary>
        /// Validator for the SetActivityStatusToCompleted activity
        /// </summary>
        // --------------------------------------------------------------------------------
        public override ValidationErrorCollection Validate(ValidationManager manager, object obj)
        {
            // Performing default validation
            ValidationErrorCollection errorColl = base.Validate(manager, obj);

            SetActivityStatusToCompleted setActivityStatusToCompletedObj =
                (SetActivityStatusToCompleted)obj;

            // Check if validation is happening during compilation of activity and
            // not during the hosting of an activity
            if (setActivityStatusToCompletedObj.Parent == null)
            {
                return errorColl;
            }

            string propertyName = Common.GetPropertyName(setActivityStatusToCompletedObj);

            // Add validation error if ActivityId is null or empty
            if (setActivityStatusToCompletedObj.ActivityId == null
                &&
                setActivityStatusToCompletedObj.GetBinding(SetActivityStatusToCompleted.ActivityIdProperty) == null
                &&
                String.Compare(propertyName, "ActivityId", false, CultureInfo.InvariantCulture) != 0)
            {
                errorColl.Add(new ValidationError(
                    Resources.SetActivityStatusToCompleted_ActivityId_DesignTimeValidation, 10, false));
            }

            return errorColl;
        }
    }
}

A példában szereplő WF-tevékenység használata munkafolyamatbanUse the example WF activity in a workflow

A tevékenység állapotának beállítása befejezett tevékenységre az authoring Tool alapértelmezett tevékenységek eszközkészlete ablaktáblán található.The Set Activity Status to Completed activity is included in the Authoring Tool default Activities Toolbox pane. Az egyéni tevékenységek a tevékenységek eszközkészlet ablaktáblán való hozzáadásával kapcsolatos további információkért lásd: egyéni tevékenység-szerelvény telepítése.For more information about adding custom activities to the Activities Toolbox pane, see How to Install a Custom Activity Assembly.

Az authoring Tool szerzői paneljén a munkafolyamatokat a Visual Studio munkafolyamat-tervezési felületének használatához hasonló módon hozhatja létre.You can use the authoring pane of the Authoring Tool to author workflows in a manner that is similar to using the Visual Studio workflow design interface. Az authoring Tool azonban a következő előnyöket kínálja:However, the Authoring Tool offers the following benefits:

  • A fejlesztési ismeretekkel nem rendelkező felhasználók is készíthetnek munkafolyamatokat, mivel programozásra nincs szükség.Users without development skills can build workflows; they do not have to work with code directly.

  • Amikor egy felhasználó egy munkafolyamatot ment az authoring Tool eszközben, az eszköz létrehozza a megfelelő Visual C#-és XOML-kódot, és egy. dll fájlba állítja azt.When a user saves a workflow in the Authoring Tool, the tool generates the corresponding Visual C# and XOML code and compiles it into a .dll file. Az eszköz emellett integrálja a munkafolyamatot egy olyan felügyeleti csomaggal, amely közvetlenül tud kommunikálni Service Managerokkal.The tool also integrates the workflow with a management pack that can interact directly with Service Manager.

A munkafolyamat Visual C#-kódjaVisual C# Code for the workflow

Az alábbi példa azt a Visual C#-kódot mutatja, amelyet az authoring Tool egy példaként szolgáló munkafolyamathoz hoz létre, amely a tevékenység állapotának beállítása befejezett tevékenységre mutat.The following sample shows the Visual C# code that the Authoring Tool generates for an example workflow that uses the Set Activity Status to Completed activity. Ez a kód egy egyszerű szekvenciális munkafolyamatot deklarál, amely egyetlen munkafolyamat-paraméterrel, a függőségi tulajdonság tevékenységazonosító SetActivityStatusToCompleteWFrendelkezik.This code declares a simple sequential workflow, SetActivityStatusToCompleteWF, that has one workflow parameter, the dependency property ActivityId. A tevékenységazonosító értékét a jelen példában később látható felügyeleti csomagok definíciói határozzák meg.The value of ActivityID is determined by the management pack definitions that are shown later in this example. A munkafolyamat futtatásakor Service Manager azonosítja az értéket, és átadja a munkafolyamatnak.When the workflow runs, Service Manager identifies the value and passes it into the workflow.

namespace WorkflowAuthoring
{
    using System;
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.Workflow.ComponentModel.Design;
    using System.Workflow.ComponentModel;
    using System.Workflow.ComponentModel.Serialization;
    using System.Workflow.ComponentModel.Compiler;
    using System.Drawing;
    using System.Collections;
    using System.Workflow.Activities;
    using System.Workflow.Runtime;

    public partial class SetActivityStatusToCompleteWF : System.Workflow.Activities.SequentialWorkflowActivity
    {

        public static DependencyProperty ActivityIdProperty = DependencyProperty.Register("ActivityId", typeof(string), typeof(SetActivityStatusToCompleteWF));

        [System.ComponentModel.DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
        [System.ComponentModel.BrowsableAttribute(true)]
        [System.ComponentModel.CategoryAttribute("Misc")]
        public string ActivityId
        {
            get
            {
                return ((string)(this.GetValue(ActivityIdProperty)));
            }
            set
            {
                this.SetValue(ActivityIdProperty, value);
            }
        }
    }
}

A munkafolyamat XOML kódjaXOML code for the workflow

A WF egyes munkafolyamat-definíciókhoz az XOML formátumot használja.WF uses the XOML format for some of the workflow definitions. A példában szereplő munkafolyamat esetében az authoring Tool a SetActivityStatusToCompleteWF. xoml fájlt hozza létre a következő tartalommal:In the case of the example workflow, the Authoring Tool creates the file SetActivityStatusToCompleteWF.xoml with the following content:

<SequentialWorkflowActivity x:Class="WorkflowAuthoring.SetActivityStatusToCompleteWF" x:Name="SetActivityStatusToCompleteWF" xmlns:ns0="clr-namespace:Microsoft.ServiceManager.WorkflowAuthoring.ActivityLibrary;Assembly=Microsoft.ServiceManager.WorkflowAuthoring.ActivityLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/workflow">
<ns0:SetActivityStatusToCompleted ActivityId="{ActivityBind SetActivityStatusToCompleteWF,Path=ActivityId}" x:Name="setActivityStatusToCompleted1" PropertyToBind="{x:Null}" />
</SequentialWorkflowActivity>

A SetActivityStatusToCompleteWF. xoml kijelenti, hogy a munkafolyamat, a SetActivityStatusToCompleteWF, az egyik munkafolyamat-tevékenység fut, a tevékenység állapota Befejezettértékre van állítva.SetActivityStatusToCompleteWF.xoml declares that the workflow, SetActivityStatusToCompleteWF, runs one workflow activity, Set Activity Status To Completed. Ennek a tevékenységnek egyetlen bemeneti paramétere van, a tevékenységazonosító, amely a munkafolyamat tevékenységazonosító tulajdonságában található értéket kapja meg.That activity has one input parameter, ActivityId, which gets its value from the ActivityId property of the workflow.

A munkafolyamat és a trigger feltételének deklarálása egy felügyeleti csomagbanDeclare the workflow and its trigger condition in a management pack

Service Manager nem használhat elkülönített munkafolyamat. dll fájlt; a munkafolyamatot integrálni kell egy felügyeleti csomaggal.Service Manager cannot use an isolated workflow .dll file; the workflow must be integrated with a management pack. A felügyeleti csomag határozza meg a munkafolyamat futtatásának időpontját, valamint a bemeneti értékeket.The management pack defines when the workflow should run and what input values to use. Egy időben a munkafolyamat-kódot hozza létre, és lefordítja a Workflow. dll fájlt, az authoring Tool hozzáadja a munkafolyamattal kapcsolatos információkat a felügyeleti csomaghoz.At the same time that it generates the workflow code and compiles the workflow .dll file, the Authoring Tool adds the workflow-related information to a management pack.

A példában szereplő SetActivityStatusToCompleteWFmunkafolyamat egy Woodgrove.AutomatedActivity.AddComputerToGroupMP.xml nevű felügyeleti csomaghoz van társítva.The example workflow, SetActivityStatusToCompleteWF, is associated with an example management pack, named Woodgrove.AutomatedActivity.AddComputerToGroupMP.xml. Ez a felügyeleti csomag az új automatizált Service Manager tevékenységgel bővíti a változás-felügyeleti folyamatot.This management pack extends the Change Management process with a new automated Service Manager activity. Ha az új tevékenység aktívvá válik a változási kezelési művelet során, elindítja a SetActivityStatusToCompleteWF -munkafolyamatot.When the new activity becomes active during a change management operation, it triggers the SetActivityStatusToCompleteWF workflow.

A felügyeleti csomag határozza meg a munkafolyamat triggerét (ha az új Service Manager tevékenység megváltoztatja az állapotot), és meghatározza a tevékenységazonosító tulajdonsághoz használandó értéket (az új Service Manager tevékenység egyedi azonosítóját).The management pack defines the trigger of the workflow (when the new Service Manager activity changes state), and it defines the value to use for the ActivityId property (the unique identifier of the new Service Manager activity). A munkafolyamat futásakor az új Service Manager tevékenység állapotát Befejezettremódosítja.When the workflow runs, it changes the status of the new Service Manager activity to Completed. Normál munkafolyamat esetében ez lenne az utolsó lépés, amely a munkafolyamat más WF-tevékenységei által végzett egyéb feladatokat követi.Note that in a normal workflow, this would be the last step following some other task that is performed by other WF activities in the workflow.

A felügyeleti csomag figyelés szakasza tartalmazza a munkafolyamat szabály -definícióját.The Monitoring section of the management pack contains the Rule definition for the workflow. A szabály definíciója pedig két részből áll: a DataSource elemből és a WriteAction elemből.In turn, the Rule definition has two parts, the DataSource element and the WriteAction element.

A példa-munkafolyamat esetében az DataSource elem egy előfizetési elemet tartalmaz, amely megadja, hogy a munkafolyamatnak futnia kell, amikor a AddComputerToGroup osztály (egyéni Service Manager osztály) egy példánya aktívállapotra változik.In the case of the example workflow, the DataSource element contains a Subscription element, which specifies that the workflow should run when an instance of the AddComputerToGroup class (a custom Service Manager class) changes state to Active.

<Monitoring>
    <Rules>
        <Rule ID="SetActivityToCompleteRule" Enabled="true" Target="SystemCenterLibrary!Microsoft.SystemCenter.SubscriptionWorkflowTarget" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
            <Category>Notification</Category>
            <DataSources>
                <DataSource ID="DS" TypeID="Subscriptions!Microsoft.SystemCenter.CmdbInstanceSubscription.DataSourceModule">
                    <Subscription>
                        <InstanceSubscription Type="$MPElement[Name='AddComputerToGroup']$">
                            <UpdateInstance><Criteria><Expression><SimpleExpression>
                                <ValueExpression>
                                    <Property State="Post">$Context/Property[Type='Activity!System.WorkItem.Activity']/Status$</Property>
                                </ValueExpression>
                                <Operator>Equal</Operator>
                                <ValueExpression>
                                    <Value>$MPElement[Name='Activity!ActivityStatusEnum.Active']$</Value>
                                </ValueExpression>
                            </SimpleExpression></Expression></Criteria></UpdateInstance>
                        </InstanceSubscription>
                        <StartWatermark>1</StartWatermark>
                        <PollingIntervalInSeconds>60</PollingIntervalInSeconds>
                        <BatchSize>100</BatchSize>
                    </Subscription>
                </DataSource>
            </DataSources>
        </Rule>
    </Rules>
</Monitoring>

A WriteAction elem (pontosabban Microsoft.EnterpriseManagement.SystemCenter. Subscription. WindowsWorkflowTaskWriteAction) meghatározza, hogy mi a teendő az aktiválási feltétel teljesülése esetén.The WriteAction element (specifically, Microsoft.EnterpriseManagement.SystemCenter.Subscription.WindowsWorkflowTaskWriteAction) defines what to do when the trigger condition is met. Ezen az elemen belül egy előfizetési elem azonosítja a futtatni kívánt munkafolyamat-összeállítási fájlt (SetActivityStatusToCompleteWF.dll) és a szerelvény azon osztályát, amely a munkafolyamatot, a WorkflowTypeNamejelöli.Within this element, a Subscription element identifies the workflow assembly file to run (SetActivityStatusToCompleteWF.dll) and the class in the assembly that represents the workflow, WorkflowTypeName.

Az előfizetési elem tartalmaz egy WorkflowParameter elemet is, amely meghatározza a tevékenységazonosító tulajdonságot, és a /basemanagedentityid $ $Dataszintaxissal összekapcsolja az adatforrás -elemben rögzített Service Manager tevékenység egyedi azonosítójának használatával.The Subscription element also includes a WorkflowParameter element, which defines the ActivityId property and, using the syntax $Data/BaseManagedEntityId$, binds it to the unique identifier of the Service Manager activity that is recorded in the DataSource element.

A WriteAction elem a munkafolyamat opcionális konfigurációs adatait is tárolja, például azt, hogy hány újrapróbálkozás történik, ha a munkafolyamat meghiúsul, milyen gyakran próbálkozik újra, valamint a munkafolyamatok leállása előtti maximális időtartam másodpercben.The WriteAction element also stores optional configuration details for the workflow, such as how many retries to perform if the workflow fails, how frequently to retry, and the maximum time in seconds that a workflow should run before it is shut off.

<WriteActions>
    <WriteAction ID="WA" TypeID="Subscriptions!Microsoft.EnterpriseManagement.SystemCenter.Subscription.WindowsWorkflowTaskWriteAction">
        <Subscription>
            <WindowsWorkflowConfiguration>
                <AssemblyName>SetActivityStatusToCompleteWF</AssemblyName>
                <WorkflowTypeName>WorkflowAuthoring.SetActivityStatusToCompleteWF</WorkflowTypeName>
                <WorkflowParameters>
                    <WorkflowParameter Name="ActivityId" Type="string">
                        $Data/BaseManagedEntityId$
                    </WorkflowParameter>
                </WorkflowParameters>
                <RetryExceptions></RetryExceptions>
                <RetryDelaySeconds>60</RetryDelaySeconds>
                <MaximumRunningTimeSeconds>300</MaximumRunningTimeSeconds>
            </WindowsWorkflowConfiguration>
        </Subscription>
    </WriteAction>
</WriteActions>

A felügyeleti csomag importálásaImport the management pack

Ahhoz, hogy a munkafolyamat egy adott Service Manager felügyeleti kiszolgálón fusson, a munkafolyamathoz kapcsolódó összes fájlnak a kiszolgálón kell lennie.For the workflow to run on a particular Service Manager management server, all of the files that are related to the workflow must reside on that server. Ezek a fájlok a következők:These files include the following:

  • A WF-tevékenység szerelvényfájljai.The WF activity assembly files. Ha csak a Service Manager WF-tevékenységeket használja, a rendszer alapértelmezés szerint telepíti a megfelelő fájlokat.If you are using only the Service Manager WF activities, by default, the appropriate files are installed. Ha egyéni tevékenységeket használ, tekintse meg az egyéni tevékenységek szerelvényének telepítésecímű témakört.If you are using custom activities, see How to Install a Custom Activity Assembly.

  • A munkafolyamat-szerelvény fájlja, ebben az esetben SetActivityStatusToCompleteWF.dll.The workflow assembly file, in this case, SetActivityStatusToCompleteWF.dll. Ezt a fájlt manuálisan kell átmásolni a Service Manager felügyeleti kiszolgálóra.You must manually copy this file to the Service Manager management server.

  • A felügyeleti csomag fájlja, ebben az esetben Woodgrove.AutomatedActivity.AddComputerToGroupMP.xml.The management pack file, in this case, Woodgrove.AutomatedActivity.AddComputerToGroupMP.xml. Ezt a fájlt manuálisan kell átmásolni a Service Manager felügyeleti kiszolgálóra.You must manually copy this file to the Service Manager management server.

Ha az összes fájl bekerül, importálja a felügyeleti csomagot Service Managerba.When all of the files are in place, import the management pack into Service Manager. Ezt a mpimport.exe parancssori eszköz vagy a Service Manager konzol használatával teheti meg.You can do this by using the mpimport.exe command-line tool or the Service Manager console. A felügyeleti csomag importálását követően a munkafolyamat készen áll a futásra, ha teljesül az indítófeltétele.After you have imported the management pack, the workflow is ready to run whenever the condition that is defined as its trigger is met.

További lépésekNext steps