Útmutató egyéni tevékenységek létrehozásához a Service Manager Authoring Tool eszközben

Fontos

A Service Manager ezen verziója elérte a támogatás végét. Javasoljuk, hogy frissítsen Service Manager 2022-re.

Service Manager automatizálja a különböző informatikai folyamatokat. Az incidenskezelési folyamat esetében például a Service Manager különböző automatizált lépéseket tartalmaz, például automatikus értesítéseket a felhasználók számára az incidensek létrehozásakor vagy megoldásakor, valamint az incidensek automatikus átirányítását különböző üzenetsorokra kategorizálás alapján. 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.

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. A munkafolyamatok beállíthatók rögzített ütemezés szerint vagy az adatbázisban előforduló meghatározott feltételek alapján, például egy incidens létrehozásakor vagy egy adott állapotra való váltáskor, például Aktív vagy Feloldva.

A Service Manager Authoring Tool egy könnyen használható módszert biztosít az új munkafolyamatok létrehozásához. 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. Az Authoring Tool ezt követően definíciók, kódok és felügyeleti csomagok tartalmának halmazába állítja össze az új munkafolyamatot. Amikor ezeket az adatokat importálja a Service Manager, integrálja az új munkafolyamatot a megadott megoldásba.

A szerzői eszköz színfalak mögötti működésének megértése a fejlettebb felhasználók számára is előnyös lehet. Először is az ügyfelek és a partnerek felhasználhatják ezeket az információkat a munkafolyamat-tevékenységtár kibővítésére Service Manager az adott folyamatokra vonatkozó munkafolyamat-tevékenységekkel. Másodszor, a fejlesztők felhasználhatják ezeket az információkat olyan egyéni vagy speciális munkafolyamatok létrehozásához, amelyek kompatibilisek a Service Manager a választott fejlesztői eszközzel, például a Microsoft Visual Studio fejlesztői rendszerével.

Munkafolyamat-tevékenységek és a WorkflowActivityBase osztály

Service Manager munkafolyamatok WF-tevékenységeket használnak. A szerzői eszközzel való zökkenőmentes munka érdekében ezek a tevékenységek a WorkflowActivityBase alaposztályból származnak, amely a Microsoft.EnterpriseManagement.Workflow.Common névtérhez tartozik. A WorkflowActivityBase alaposztály olyan tulajdonságokat és metódusokat mutat be, amelyek nem érhetők el a WF-tevékenységek általános Tevékenység alaposztályában. A WF-tevékenységek általános tevékenységbázisosztály használatával történő definiálásáról további információt a Tevékenységosztály című témakörben talál.

A WorkflowActivityBase osztály használatának előnyei

A felhasználók a Visual Studio tevékenységtárából importálhatnak WF-tevékenységeket, és a Szerzői eszköz szerzői paneljén dolgozhatnak ezekkel a tevékenységekkel. Ezek a tevékenységek azonban ugyanúgy viselkednek, mint a Visual Studio Design környezetben. Nem rendelkeznek a Service Manager tevékenységkódtárba beépített testreszabásokkal.

Megjegyzés

Nem minden Visual Studio WF-tevékenységet teszteltek a szerzői eszközzel való kompatibilitás érdekében, és előfordulhat, hogy egyes Visual Studio WF-tevékenységek nem megfelelően futnak a Szerkesztőeszközben.

Az alábbi táblázat a WorkflowActivityBase alaposztályon alapuló WF-tevékenységek és az általános tevékenységalaposztályon alapuló WF-tevékenységek közötti viselkedésbeli különbségeket sorolja fel.

Eset Szerkesztőeszköz WF-tevékenysége (WorkflowActivityBase alaposztály) Visual Studio WF-tevékenység (Tevékenység alaposztálya)
A felhasználó tevékenységtulajdonságokat köt (Service Manager objektumtulajdonságokhoz vagy más tevékenységek tulajdonságaihoz). Meghívja a Bind tulajdonságot a Service Manager felhasználók számára testre szabott párbeszédpanelre. Meghívja a Bind tulajdonságot a fejlesztőknek szánt párbeszédpanelre.
A felhasználó hozzáadja a tevékenységet egy For-Each Loop tevékenységhez. Hozzáadja a Propertytobind (a hurokindex) és a CurrentItem tulajdonságot, amelyek a ciklusspecifikus műveletekben való részvételhez szükségesek (a CurrentItem egy belső tulajdonság). Ugyanúgy viselkedik a hurok minden iterációjához, és nem használja a hurkot indexelő tulajdonságot.

Fontos

A szerkesztőeszköz munkafolyamat-tervezőjéhez 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örnyezetében.

A felhasználók egyéni WF-tevékenységeket hozhatnak létre a Visual Studióban a Szerzői eszközben való használatra. Ahhoz azonban, hogy kihasználhassa a Szerkesztőeszköz egyéni tervezési idő viselkedését, az egyéni tevékenységeknek a WorkflowActivityBase osztályon kell alapulniuk a Tevékenység osztály helyett.

Munkafolyamat-tevékenységek és Service Manager automatizált tevékenységek

A WF-tevékenységek más típusú tevékenységekkel kommunikálhatnak, a Service Manager munkaelemek által használt Service Manager tevékenységekkel. A munkaelemek a Service Manager által használt objektumok egyik fő típusa. A munkaelemek nyomon követik a munkaegységeket, például az incidenseket, a szolgáltatáskéréseket, a változáskéréseket és más munkaegységeket. A legtöbb munkaelem egy vagy több Service Manager tevékenységet tartalmaz. A változáskérések például általában legalább két tevékenységet tartalmaznak: egy Felülvizsgálati tevékenységet és egy Változásvégrehajtási tevékenységet. A munkaelem általában sorrendben hajtja végre ezeket a tevékenységeket.

Munkaelem létrehozásakor az első Service Manager tevékenység aktívvá válik, és aktív marad, amíg Service Manager (vagy a felhasználó) végrehajtja a tevékenység által képviselt munkát. Amikor a munka befejeződik, Service Manager befejezettként jelöli meg az első tevékenységet, és aktiválja a következő tevékenységet a sorozatban. Ha a sorozat utolsó tevékenysége Befejezve állapotúként van megjelölve, Service Manager befejezettként jelöli meg a teljes munkaelemet.

Egyes Service Manager tevékenységek manuálisan is végrehajthatók, például egy változáskérésFelülvizsgálati tevékenysége. Más Service Manager tevékenységek is automatizálhatók, például olyan tevékenységek, amelyek e-mailt küldenek egy felhasználónak. A változáskérések módosítás-végrehajtási tevékenysége automatizálható. Service Manager WF-munkafolyamatokkal automatizálja Service Manager tevékenységeket.

Példa: A Tevékenységállapot beállítása Befejezve tevékenységre

Ez a példa egy WF-munkafolyamat-tevékenységre Service Manager a Tevékenységállapot beállítása befejezett WF tevékenységre. 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 jelöli, és a tevékenység állapotát Befejezve értékre állítja. 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.

A Tevékenységállapot beállítása Befejezve tevékenységhez egy tevékenységazonosító bemenetet vesz fel, amely azonosítja azt a Service Manager tevékenységet, amelyre reagálni szeretne. 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, Befejezve értékre állítja, majd visszamenti az adatbázisba. Az ebben a példában szereplő kódminták többsége a SetActivityStatusToCompleted.cs fájlból származik, amely egy mögöttes fájl, amely a Tevékenység állapota befejezett tevékenységre való beállítását ismerteti.

A példa WF-tevékenység inicializálása

A SetActivityStatusToCompleted.cs fájl első szakasza a deklarációs és inicializálási utasításokat tartalmazza. Ez a tevékenység a WorkflowActivityBase osztályon alapul, és a SetActivityStatusToCompletedValidator érvényesítő osztályt és a WorkflowActivityBaseDesigner tervezőosztályt használja.

A WorkflowActivityBaseDesigner osztály az előző, A WorkflowActivityBase osztály használatának előnyei című szakaszban ismertetett testreszabásokat tartalmazza. Az osztály tovább bővíthető és testreszabható.

A példában szereplő tevékenység definíciójának első szakasza a következő kódot tartalmazza:

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
    {

Bemeneti tulajdonságok a példa WF-tevékenységhez

A kód egy ActivityId tulajdonságot deklarál függőségi tulajdonságként. Ez azt jelenti, hogy ez a tulajdonság olyan paraméterekhez köthető, amelyek a munkafolyamat szintjén vannak definiálva. Ebben az esetben a Service Manager tevékenység azonosítója munkafolyamat-paraméterként lesz átadva a munkafolyamatnak, és bemenetként áramlik ebbe a tevékenységbe.

  // --------------------------------------------------------------------------------
  /// <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);
      }
}

Végrehajtási viselkedés a példa WF-tevékenységben

A WF-tevékenység tényleges munkáját az Execute metódus végzi. Az Execute metódus hatókörén belül a WF-tevékenység a következőket végzi el:

  • Észleli, hogy egy For-Each Loop tevékenységen belül működik-e , és ha igen, beállítja a megfelelő WF-tevékenységtulajdonságokat.

  • Csatlakozik a megadott Service Manager felügyeleti kiszolgálóhoz, és létrehoz egy EnterpriseManagementGroup objektumot.

  • Az ActivityId tulajdonság használatával lekérheti az azonosított Service Manager tevékenységet az adatbázisból.

  • Megkeresi a Service Manager tevékenység osztálydefinícióját, lekéri a lekért Service Manager tevékenység Status tulajdonságát, és a tulajdonságot a Completed enumeration list értékre állítja.

  • Véglegesíti a módosításokat a Service Manager tevékenységben.

  • A TrackData metódus (a WF-infrastruktúra része) használatával naplózza a WF-tevékenység végrehajtásával és állapotával kapcsolatos információkat.

        // --------------------------------------------------------------------------------
        /// <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;
        }
    }
}

Érvényesítési viselkedés a példa WF-tevékenységben

A SetActivityStatusToCompletedValidator.cs fájl határozza meg a WF-tevékenység ellenőrzési viselkedését. 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. A Szerzői eszköz a Visual Studióhoz hasonlóan érvényesítési hibát jelez egy piros felkiáltójel (!) ikon használatával a munkafolyamat-tevékenységen a Szerzői műveletek panelen.

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élda WF-tevékenység használata egy munkafolyamatban

A Tevékenységállapot beállítása Befejezve tevékenységre a Szerkesztőeszköz alapértelmezett tevékenységek eszközpaneljén található. További információ az egyéni tevékenységek Tevékenységek eszközkészlet panelhez való hozzáadásáról: Egyéni tevékenységszerelvény telepítése.

A Szerzői eszköz szerzői paneljén a Visual Studio munkafolyamat-tervező felületéhez hasonló módon hozhat létre munkafolyamatokat. A Szerzői eszköz azonban a következő előnyöket nyújtja:

  • A fejlesztési készségekkel nem rendelkező felhasználók munkafolyamatokat hozhatnak létre; nem kell közvetlenül a kóddal dolgozniuk.

  • Amikor egy felhasználó munkafolyamatot ment a Szerkesztőeszközbe, az eszköz létrehozza a megfelelő Visual C# és XOML-kódot, és lefordítja egy .dll fájlba. Az eszköz emellett integrálja a munkafolyamatot egy felügyeleti csomaggal, amely közvetlenül kommunikálhat Service Manager.

Visual C#-kód a munkafolyamathoz

Az alábbi minta azt a Visual C#-kódot mutatja be, amelyet a szerkesztőeszköz egy olyan példamunkafolyamathoz hoz létre, amely a Tevékenységállapot beállítása Befejezve tevékenységre van állítva . Ez a kód deklarál egy egyszerű szekvenciális munkafolyamatot( SetActivityStatusToCompleteWF ), amely egy munkafolyamat-paraméterrel, a függőségi tulajdonság ActivityId tulajdonságával rendelkezik. Az ActivityID értékét a példában később megjelenő felügyeleticsomag-definíciók határozzák meg. A munkafolyamat futtatásakor Service Manager azonosítja az értéket, és átadja azt a munkafolyamatnak.

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);
            }
        }
    }
}

XOML-kód a munkafolyamathoz

A WF egyes munkafolyamat-definíciókhoz az XOML formátumot használja. A példa-munkafolyamathoz a szerzői eszköz a Következő tartalommal hozza létre a SetActivityStatusToCompleteWF.xoml fájlt:

<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 deklarálja, hogy a SetActivityStatusToCompleteWF munkafolyamat egy munkafolyamat-tevékenységet futtat, a Tevékenységállapot beállítása befejezettre. A tevékenységnek van egy bemeneti paramétere, az ActivityId, amely a munkafolyamat ActivityId tulajdonságából szerzi be az értékét.

A munkafolyamat és eseményindító feltételének deklarálása egy felügyeleti csomagban

Service Manager nem használhat elkülönített munkafolyamatot .dll fájlt; a munkafolyamatot integrálnia kell egy felügyeleti csomaggal. A felügyeleti csomag határozza meg a munkafolyamat futtatásának időpontját, valamint a bemeneti értékeket. Ugyanakkor, amikor létrehozza a munkafolyamat-kódot, és lefordítja a munkafolyamat-.dll fájlt, a szerzői eszköz hozzáadja a munkafolyamattal kapcsolatos információkat egy felügyeleti csomaghoz.

A SetActivityStatusToCompleteWF példa-munkafolyamat egy Woodgrove.AutomatedActivity.AddComputerToGroupMP.xml nevű minta felügyeleti csomaghoz van társítva. Ez a felügyeleti csomag egy új automatizált Service Manager tevékenységgel bővíti a Change Management folyamatot. Amikor az új tevékenység aktívvá válik egy változáskezelési művelet során, elindítja a SetActivityStatusToCompleteWF munkafolyamatot.

A felügyeleti csomag meghatározza a munkafolyamat eseményindítóját (amikor az új Service Manager tevékenység állapota megváltozik), és meghatározza az ActivityId tulajdonsághoz használni kívánt értéket (az új Service Manager tevékenység egyedi azonosítóját). A munkafolyamat futtatásakor az új Service Manager tevékenység állapotát Befejezve értékre módosítja. 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.

A felügyeleti csomag Figyelés szakasza tartalmazza a munkafolyamat szabálydefinícióját. A szabálydefiníció két részből áll, a DataSource elemből és a WriteAction elemből.

A példa munkafolyamat esetében a DataSource elem tartalmaz egy Előfizetés elemet, amely azt határozza meg, hogy a munkafolyamatnak futnia kell, amikor az AddComputerToGroup osztály (egyéni Service Manager osztály) egy példánya Aktív állapotba módosítja az állapotot.

<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 a Microsoft.EnterpriseManagement.SystemCenter.Subscription.WindowsWorkflowTaskWriteAction) határozza meg, hogy mi a teendő az eseményindító feltétel teljesülésekor. Ebben az elemben az Előfizetés elem azonosítja a futtatandó munkafolyamat-szerelvényfájlt (SetActivityStatusToCompleteWF.dll) és a szerelvény azon osztályát, amely a munkafolyamatot ( WorkflowTypeName) képviseli.

Az Előfizetés elem tartalmaz egy WorkflowParameter elemet is, amely meghatározza az ActivityId tulajdonságot, és a $Data/BaseManagedEntityId$ szintaxist használva a DataSource elemben rögzített Service Manager tevékenység egyedi azonosítójára köti.

A WriteAction elem emellett a munkafolyamat opcionális konfigurációs adatait is tárolja, például azt, hogy hány újrapróbálkozást kell végrehajtani, ha a munkafolyamat meghiúsul, milyen gyakran kell újrapróbálkoznia, valamint azt a maximális időt másodpercben, amíg a munkafolyamatnak le kell futnia a leállítása előtt.

<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ása

Ahhoz, hogy a munkafolyamat egy adott Service Manager felügyeleti kiszolgálón fusson, a munkafolyamathoz kapcsolódó összes fájlnak az adott kiszolgálón kell lennie. Ezek a fájlok a következők:

  • A WF-tevékenység szerelvényfájljai. Ha csak a Service Manager WF-tevékenységeket használja, alapértelmezés szerint a megfelelő fájlok lesznek telepítve. Ha egyéni tevékenységeket használ, tekintse meg az Egyéni tevékenységszerelvény telepítése című témakört.

  • Ebben az esetben a munkafolyamat-szerelvényfájl SetActivityStatusToCompleteWF.dll. Ezt a fájlt manuálisan kell átmásolnia a Service Manager felügyeleti kiszolgálóra.

  • Ebben az esetben a felügyeleti csomag fájlja Woodgrove.AutomatedActivity.AddComputerToGroupMP.xml. Ezt a fájlt manuálisan kell átmásolnia a Service Manager felügyeleti kiszolgálóra.

Ha minden fájl a helyén van, importálja a felügyeleti csomagot a Service Manager. Ezt a mpimport.exe parancssori eszközzel vagy a Service Manager konzollal teheti meg. A felügyeleti csomag importálása után a munkafolyamat készen áll a futtatásra, amikor teljesül az eseményindítóként definiált feltétel.

Következő lépések