Irányelvek egyéni tevékenységek létrehozásához

 

Közzétéve: 2016. március

Hatókör: System Center 2012 SP1 - Service Manager, System Center 2012 R2 Service Manager, System Center 2012 - Service Manager

A System Center 2012 – Service Manager számos informatikai (IT) folyamatot automatizál. Az incidenskezelési folyamathoz például a System Center 2012 – Service Manager különféle automatizált lépéseket biztosít, például a felhasználók automatikus értesítését az incidensek létrehozásáról vagy megoldásáról, vagy az incidensek automatikus, kategorizált átirányítását különféle várósorokba. 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 rendszeres ütemezés szerint vagy az adatbázishoz megadott feltétel alapján futtathatók, többek között incidens létrehozásakor vagy adott állapotra váltásakor (például Aktív vagy Megoldva).

A System Center 2012 – Service Manager Authoring Tool egyszerűen alkalmazható módszert kínál 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 ezután definíciók, kódok és felügyeleticsomag-tartalmak készletévé állítja össze az új munkafolyamatot. Amikor ezeket az információkat importálja a Service Manager alkalmazásba, az új munkafolyamat a megadott megoldásba integrálódik.

Haladó felhasználók számára hasznos lehet az Authoring Tool háttérbeli működésének megértése. Először is, az ügyfelek és a partnerek ezekkel az információkkal kibővíthetik a munkafolyamat-tevékenységek tárát a Service Manager alkalmazásban a saját folyamataikra vonatkozó munkafolyamat-tevékenységekkel. Másodsorban a fejlesztők is felhasználhatják ezeket az információkat olyan egyéni vagy haladó munkafolyamatok létrehozására – tetszés szerinti fejlesztőeszközzel, például a Microsoft Visual Studio programmal –, amelyek kompatibilisek a Service Manager alkalmazással.

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

A Service Manager munkafolyamatai WF-tevékenységeket használnak. Az Authoring Tool eszközzel végzett munka megkönnyítése érdekében ezek a tevékenységek a WorkflowActivityBase alaposztályból vannak származtatva, amely a Microsoft.EnterpriseManagement.Workflow.Common névtérhez tartozik. A WorkflowActivityBase alaposztály olyan tulajdonságokat és metódusokat vezet be, amelyek nem érhetők el az általános Activity alaposztályban a WF-tevékenységekhez. További tudnivalók a WF-tevékenységek Activity alaposztállyal történő definiálásáról: Activity Class (Activity osztály).

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

A felhasználók importálhatják a WF-tevékenységeket a Visual Studio tevékenységtárából, majd az Authoring ToolSzerzői műveletek ablaktábláján dolgozhatnak azokkal. Ezek a tevékenységek azonban ugyanúgy viselkednek, mint a Visual Studio Design környezetben. Nem rendelkeznek a Service Manager tevékenységtárába épített testreszabásokkal.

System_CAPS_ICON_note.jpg Megjegyzés


Nem minden Visual Studio WF-tevékenység van tesztelve az Authoring Tool eszközzel való kompatibilitás szempontjából, és előfordulhat, hogy egyes Visual Studio WF-tevékenységek nem futnak megfelelően az Authoring Tool eszközben.

A következő táblázat a WorkflowActivityBase alaposztályra épülő WF-tevékenységek és az Activity alaposztályra épülő WF-tevékenységek viselkedési különbségeit foglalja össze.

Forgatókönyv Authoring Tool WF-tevékenység (WorkflowActivityBase alaposztály) Visual Studio WF-tevékenység (Activity alaposztály)
A felhasználó végzi a tevékenységtulajdonságok kötését (a Service Manager objektumtulajdonságaihoz vagy más tevékenységekből származó tulajdonságokhoz). A Service Manager felhasználói számára testreszabott Tulajdonság kötése párbeszédpanelt hívja meg. A fejlesztőknek szánt Tulajdonság kötése párbeszédpanelt hívja meg.
A felhasználó adja hozzá a tevékenységet egy For-Each ciklus tevékenységhez. Hozzáadja a Propertytobind (ciklusindex) és CurrentItem tulajdonságokat, amelyek a ciklustevékenységekben való részvételhez szükségesek (a CurrentItem belső tulajdonság). A ciklus minden lépésében ugyanúgy viselkedik, és nem kommunikál a ciklust indexelő tulajdonsággal.
System_CAPS_ICON_important.jpg Fontos!


Az Authoring Tool munkafolyamat-tervezőjéhez szükséges testreszabások miatt a WorkFlowActivityBase osztályra épülő tevékenységek a Visual Studio munkafolyamat-tervező környezetében nem a várt módon működnek.

A Visual Studio programban a felhasználók egyéni WF-tevékenységeket hozhatnak létre az Authoring Tool eszközben való felhasználásra. Azonban az Authoring Tool eszköz egyéni tervezéskori viselkedésének használatához az egyéni tevékenységeket a WorkflowActivityBase osztályra kell alapozni az Activity osztály helyett.

Munkafolyamat tevékenységek és a Service Manager automatizált tevékenységei

A WF-tevékenységek képesek egy másik tevékenységtípussal, a Service Manager tevékenységeivel együttműködni, amelyet a Service Manager munkaelemei használnak. A munkaelem a Service Manager által használt fő objektumtípusok egyike. A munkaelemek a munkaegységeket követik nyomon, többek között az Incidensek, Szolgáltatáskérések és Változáskérések típusú munkaegységeket. A legtöbb munkaelem egy vagy több Service Manager tevékenységből áll. A Változáskérés például jellemzően legalább két tevékenységet tartalmaz: egy Felülvizsgálat és egy Változás-végrehajtás tevékenységet. A munkaelem általában sorrendben hajtja végre ezeket a tevékenységeket.

Egy munkaelem létrehozásakor az első Service Manager tevékenység válik aktívvá, és addig marad aktív, amíg a Service Manager (vagy a felhasználó) el nem végzi a tevékenységhez tartozó műveletet. Amikor a művelet befejeződik, a Service Manager az első tevékenységet Befejezve állapotúként jelöli meg, majd aktiválja a sorban következő tevékenységet. Miután a sorban utolsó tevékenységet is Befejezve állapotúként jelölte meg, a Service Manager a teljes munkaelemet Befejezve állapotba állítja.

A Service Manager egyes tevékenységei manuálisan is végrehajthatóak, például a Változáskérés elemhez tartozó Felülvizsgálat tevékenység. A Service Manager más tevékenységei automatizálhatók, például a felhasználónak e-mailt küldő tevékenységek. A Változáskérés elemhez tartozó Változás-végrehajtás szintén automatizálható. A Service Manager WF-munkafolyamatok használatával automatizálja a Service Manager tevékenységeket.

Példa: A tevékenységállapotot befejezett állapotúra állító tevékenység

Ez a WF-tevékenységet bemutató példa a Service Manager alkalmazásban használja a Tevékenységállapot befejezettre állítása WF-tevékenységet. Ez a WF-tevékenység általában egy automatizált Service Manager tevékenységet alkalmazó munkafolyamat utolsó lépése, amely Befejezve értékűre állítja az adott tevékenység állapotát. 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 befejezettre állítása tevékenység egy bemenettel rendelkezik, az Activity ID paraméterrel, amely a megcélzott Service Manager tevékenységet azonosítja. A WF-tevékenység ezután kapcsolódik a Service Manager felügyeleti kiszolgálóhoz, lekéri a megadott Service Manager tevékenységet az adatbázisból, Befejezve értékűre állítja az állapotát, majd az új állapottal menti az adatbázisba. Az ebben a példában található mintakódok nagy része a Tevékenységállapot befejezettre állítása tevékenységet leíró SetActivityStatusToCompleted.cs fájlból származik.

A példában szereplő 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ályra épül, és a SetActivityStatusToCompletedValidator ellenőrzőosztályt, valamint a WorkflowActivityBaseDesigner tervezői osztályt használja.

A WorkflowActivityBaseDesigner osztály tartalmazza az előző részben (A WorkflowActivityBase osztály használatának előnyei) leírt testreszabásokat. 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  
    {  
  

A példában szereplő WF-tevékenység bemeneti tulajdonságai

Függőségi tulajdonságként a kód egyetlen tulajdonságot deklarál: az ActivityId tulajdonságot. 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 kerül átadásra a munkafolyamat számára, és bemenetként szolgál a tevékenységhez.

  // --------------------------------------------------------------------------------  
  /// <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ése

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

  • Észleli, hogy For-Each ciklus tevékenységen belül fut-e, és ha igen, akkor beállítja a megfelelő WF-tevékenységtulajdonságokat.

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

  • Az ActivityId tulajdonság használatával beolvassa a megadott Service Manager tevékenységet az adatbázisból.

  • Megkeresi a Service Manager tevékenység osztálydefinícióját, beolvassa a lekért Service Manager tevékenység Status tulajdonságát, majd a tulajdonságot az enumerációs lista Completed értékére állítja.

  • Véglegesíti a Service Manager tevékenység változásait.

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

        // --------------------------------------------------------------------------------  
        /// <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 ellenőrzési viselkedése

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. Az Authoring Tool a Visual Studio programhoz hasonlóan, piros felkiáltójel (!) ikonnal jelzi az ellenőrzési hibákat a munkafolyamat-tevékenységnél a Szerzői műveletek ablaktáblán.

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 munkafolyamatban

A Tevékenységállapot befejezettre állítása tevékenység az Authoring Tool alapértelmezett Tevékenység-eszközkészlet ablaktábláján szerepel. További tudnivalók az egyéni tevékenységek Tevékenység-eszközkészlet ablaktáblához való hozzáadásáról: Egy egyéni tevékenység szerelvény telepítése az Authoring Tool online súgójában.

Az Authoring Tool szerzői műveleteket tartalmazó ablaktábláján a munkafolyamatokat a Visual Studio munkafolyamat-tervezési felületéhez hasonló módon hozhatja létre. Ugyanakkor az Authoring Tool használata következő előnyökkel jár:

  • A fejlesztési ismeretekkel nem rendelkező felhasználók is készíthetnek munkafolyamatokat, mivel programozásra nincs szükség.

  • Amikor egy felhasználó ment egy munkafolyamatot az Authoring Tool eszközben, az eszköz létrehozza a megfelelő Visual C# és XOML programkódot, majd .dll fájlba fordítja le azt. Az eszköz emellett olyan felügyeleti csomagba integrálja a munkafolyamatot, amely képes közvetlenül együttműködni a Service Manager alkalmazással.

A munkafolyamat Visual C# programkódja

A következő példában az Authoring Tool által egy a Tevékenységállapot befejezettre állítása tevékenységet használó munkafolyamat-példához létrehozott Visual C# programkód látható. Ez a kód egy egyszerű soros munkafolyamatot (SetActivityStatusToCompleteWF) deklarál, amely egyetlen munkafolyamat-paraméterrel, az ActivityId függőségi tulajdonsággal rendelkezik. Az ActivityID értékét a példa későbbi részében látható felügyeleticsomag-definíciók határozzák meg. A munkafolyamat futtatásakor a Service Manager azonosítja az értéket, és továbbadja azt a munkafolyamat számára.

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 programkódja

A WF egyes munkafolyamat-definíciókhoz az XOML formátumot használja. A példában szereplő munkafolyamat esetében az Authoring Tool 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 egyetlen munkafolyamat-tevékenységet futtat: a Tevékenységállapot befejezettre állítása tevékenységet. Ez a tevékenység egyetlen bemeneti paraméterrel (ActivityId) rendelkezik, amely a munkafolyamat ActivityId tulajdonságából kapja az értékét.

Munkafolyamat és indítófeltétel deklarálása felügyeleti csomagban

A Service Manager nem képes különálló .dll munkafolyamat-fájlt használni; a munkafolyamatot felügyeleti csomagba kell integrálni. A felügyeleti csomag határozza meg a munkafolyamat futtatásának időpontját, valamint a bemeneti értékeket. A munkafolyamat kódjának létrehozásával és a munkafolyamat .dll fájljának lefordításával egyidejűleg az Authoring Tool felügyeleti csomaghoz adja a munkafolyamattal kapcsolatos információkat.

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

A felügyeleti csomag határozza meg a munkafolyamat indítóját (azt, hogy mikor változzon meg a Service Manager tevékenység állapota), valamint az ActivityId tulajdonsághoz használt értéket (az új Service Manager tevékenység egyedi azonosítóját). A munkafolyamat a futása során Befejezve értékűre módosítja az új Service Manager tevékenység állapotát. 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 Monitoring szakasza tartalmazza a munkafolyamat Rule definícióját. A Rule definí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 egy Subscription elemet tartalmaz, amely azt adja meg, hogy a munkafolyamatnak akkor kell futnia, ha az AddComputerToGroup osztály (egyéni Service Manager osztály) egy példányának állapota Aktív értékre változik.

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

A WriteAction elem (pontosan: Microsoft.EnterpriseManagement.SystemCenter.Subscription.WindowsWorkflowTaskWriteAction) azt határozza meg, mit kell tenni, ha az indítófeltétel teljesül. Ezen az elemen belül egy Subscription elem azonosítja a futtatandó munkafolyamat-szerelvényfájlt (SetActivityStatusToCompleteWF.dll), valamint a szerelvényben a munkafolyamatot leíró osztályt (WorkflowTypeName).

A Subscription elem emellett tartalmaz még egy WorkflowParameter elemet is, amely az ActivityId tulajdonságot határozza meg, és a $Data/BaseManagedEntityId$ szintaxis használatával a DataSource elemben rögzített Service Manager tevékenység egyedi azonosítójához köti azt.

A WriteAction elem emellett opcionális konfigurációs beállításokat is tartalmaz a munkafolyamatra vonatkozóan, például azt, hogy hány újrapróbálkozás után tekintendő meghiúsultnak a munkafolyamat, milyen gyakran történjen újrapróbálkozás, valamint hogy maximálisan mennyi ideig (másodpercben) futhat a munkafolyamat, mielőtt leállna.

    <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>  
   </Rule>  
 </Rules>  
</Monitoring>  

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 a kérdéses kiszolgálón kell lennie. Ezek a fájlok a következők:

  • A WF-tevékenység szerelvényfájljai. Ha csak a System Center 2012 – Service Manager WF-tevékenységeit használja, a rendszer alapértelmezés szerint telepíti a szükséges fájlokat. Ha egyéni tevékenységeket használ, tekintse át a következő témakört az Authoring Tool online súgójában: Egy egyéni tevékenység szerelvény telepítése.

  • A munkafolyamat szerelvényfájlja, ebben az esetben a SetActivityStatusToCompleteWF.dll. Ezt a fájlt manuálisan kell átmásolni a Service Manager felügyeleti kiszolgálóra.

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

Ha minden fájl a helyére került, importálja a felügyeleti csomagot a Service Manager alkalmazásba. Ezt az mpimport.exe parancssori eszközzel vagy a Service Manager konzollal végezheti el. 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.

Lásd még

Munkafolyamat-tevékenységre vonatkozó referencia