none
Trigger für verändertes Relationship-Objekt RRS feed

  • Frage

  • Hallo zusammen,

    folgende Problemstellung :

    Im Change-Management habe die Klasse CR um zwei weitere Beziehungsobjekte (Durchführender und Funktionstester) erweitert. Diese werden per Workflow + PS automatisch nach der CR-Erstellung in je eine Manuelle Aktivität als assigned User zugewiesen. Das funktioniert soweit. Nun benötige ich allerdings noch einen Workflow-Trigger, der aktiviert, sobald eines der zwei neuen Beziehungsobjekte geändert wird.

    bestehender Change --> Durchführender wird verändert --> WF-Trigger --> PS verändert auch Assigned User in der MA

    Als Ansatz dienten mir diese Artikel:

    http://blogs.technet.com/b/servicemanager/archive/2010/08/24/workflow-notification-subscription-notequal-criteria.aspx

    https://helshabini.wordpress.com/2013/07/24/how-to-create-scsm-2012-relationship-subscriptions-for-email-notifications/

    Hier der Abschnitt meines MP für den Workflow Durchführender

          <Rule ID="UserToActivityEX" Enabled="true" Target="SystemCenter!Microsoft.SystemCenter.SubscriptionWorkflowTarget" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
            <Category>Notification</Category>
            <DataSources>
              <DataSource ID="DS" TypeID="SystemCenter1!Microsoft.SystemCenter.CmdbInstanceSubscription.DataSourceModule">
                <Subscription>
    				<RelationshipSubscription RelType="$MPElement[Name='Customekom21!Executor']$" SourceType="$MPElement[Name='System_WorkItem_ChangeRequest_Library!System.WorkItem.ChangeRequest']$" TargetType="$MPElement[Name='CustomSystem_Library!System.User']$">
    					<AddRelationship />
    				</RelationshipSubscription>
                  <PollingIntervalInSeconds>60</PollingIntervalInSeconds>
                  <BatchSize>100</BatchSize>
                </Subscription>
              </DataSource>
            </DataSources>
            <WriteActions>
              <WriteAction ID="WA" TypeID="SystemCenter1!Microsoft.EnterpriseManagement.SystemCenter.Subscription.WindowsWorkflowTaskWriteAction">
                <Subscription>
                  <WindowsWorkflowConfiguration>
                    <AssemblyName>UserToActivityEX</AssemblyName>
                    <WorkflowTypeName>WorkflowAuthoring.UserToActivityEX</WorkflowTypeName>
                    <WorkflowParameters>
                      <WorkflowParameter Name="windowsPowerShellScript1_CRID" Type="string">$Data/Property[@ID='$MPElement[Name="System_WorkItem_Library!System.WorkItem"]/Id$' and @State='Post']$</WorkflowParameter>
                    </WorkflowParameters>
                    <RetryExceptions></RetryExceptions>
                    <RetryDelaySeconds>60</RetryDelaySeconds>
                    <MaximumRunningTimeSeconds>300</MaximumRunningTimeSeconds>
                  </WindowsWorkflowConfiguration>
                </Subscription>
              </WriteAction>
            </WriteActions>
          </Rule>

    Beim importieren kommt dann diese Fehlermeldung:

    The management pack import failed. 
    Errors (1):
    The configuration specified for Module DS is not valid.
    : Cannot find specified MPElement CustomSystem_Library!System.User in expression: $MPElement[Name='CustomSystem_Library!System.User']$
    Cannot resolve identifier CustomSystem_Library!System.User in the context of management pack ekom21WF. Unknown alias: CustomSystem_Library

    Konkrete Fragestellung: Was muss in <Subscription> </Subscription>, sodass er triggert, sobald der User "Durchführender" eines bestehenden Changes verändert wird.

    Vielen Dank schon mal!

    Grüße Tim


    Montag, 20. April 2015 11:12

Antworten

  • Ist die Reference "CustomSystem_Library!System.User" im MP in der Manifest-Sektion mit einem Alias eingetragen?

    Alternativ kann auch der Target-Eintrag auf TargetType="$MPElement[Name='System!System.Domain.User'] geändert werden.

    Vielleicht hilft dieser Blog-Beitrag weiter (das komplette MP gibt es am Ende des Beitrags als Download zum Nachschauen):

    How to configure notifications for assignment/re-assignment as well as action log and user comment updates for Incidents and Service Requests in SCSM


    Andreas Baumgarten | H&D International Group

    Montag, 27. April 2015 09:15
  • Jap, der User war es am Ende des Tages. :) Eine Änderung auf TargetType="$MPElement[Name='System!System.Domain.User'] hat das gewünschte Ergebnis geliefert, vielen Dank!

    Hier auch noch einmal der funktionierende Code:

     <Rule ID="UserUpdateExecutor" Enabled="true" Target="SystemCenter!Microsoft.SystemCenter.SubscriptionWorkflowTarget" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
            <Category>Notification</Category>
            <DataSources>
              <DataSource ID="DS" TypeID="SystemCenter1!Microsoft.SystemCenter.CmdbInstanceSubscription.DataSourceModule">
                <Subscription>
                  <RelationshipSubscription RelType="$MPElement[Name='Customekom21!Executor']$" SourceType="$MPElement[Name='System_WorkItem_ChangeRequest_Library!System.WorkItem.ChangeRequest']$" TargetType="$MPElement[Name='System!System.Domain.User']$">
                    <AddRelationship />
                  </RelationshipSubscription>
                  <PollingIntervalInSeconds>60</PollingIntervalInSeconds>
                  <BatchSize>100</BatchSize>
                </Subscription>
              </DataSource>
            </DataSources>
            <WriteActions>
              <WriteAction ID="WA" TypeID="SystemCenter1!Microsoft.EnterpriseManagement.SystemCenter.Subscription.WindowsWorkflowTaskWriteAction">
                <Subscription>
                  <WindowsWorkflowConfiguration>
                    <AssemblyName>UserUpdateExecutor</AssemblyName>
                    <WorkflowTypeName>WorkflowAuthoring.UserUpdateExecutor</WorkflowTypeName>
                    <WorkflowParameters>
                      <WorkflowParameter Name="windowsPowerShellScript1_CRID" Type="string">$Data/Property[@ID='$MPElement[Name="System_WorkItem_Library!System.WorkItem"]/Id$' and @State='Post']$</WorkflowParameter>
                    </WorkflowParameters>
                    <RetryExceptions></RetryExceptions>
                    <RetryDelaySeconds>60</RetryDelaySeconds>
                    <MaximumRunningTimeSeconds>300</MaximumRunningTimeSeconds>
                  </WindowsWorkflowConfiguration>
                </Subscription>
              </WriteAction>
            </WriteActions>
          </Rule>

    Dienstag, 28. April 2015 04:17

Alle Antworten

  • Ist die Reference "CustomSystem_Library!System.User" im MP in der Manifest-Sektion mit einem Alias eingetragen?

    Alternativ kann auch der Target-Eintrag auf TargetType="$MPElement[Name='System!System.Domain.User'] geändert werden.

    Vielleicht hilft dieser Blog-Beitrag weiter (das komplette MP gibt es am Ende des Beitrags als Download zum Nachschauen):

    How to configure notifications for assignment/re-assignment as well as action log and user comment updates for Incidents and Service Requests in SCSM


    Andreas Baumgarten | H&D International Group

    Montag, 27. April 2015 09:15
  • Jap, der User war es am Ende des Tages. :) Eine Änderung auf TargetType="$MPElement[Name='System!System.Domain.User'] hat das gewünschte Ergebnis geliefert, vielen Dank!

    Hier auch noch einmal der funktionierende Code:

     <Rule ID="UserUpdateExecutor" Enabled="true" Target="SystemCenter!Microsoft.SystemCenter.SubscriptionWorkflowTarget" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
            <Category>Notification</Category>
            <DataSources>
              <DataSource ID="DS" TypeID="SystemCenter1!Microsoft.SystemCenter.CmdbInstanceSubscription.DataSourceModule">
                <Subscription>
                  <RelationshipSubscription RelType="$MPElement[Name='Customekom21!Executor']$" SourceType="$MPElement[Name='System_WorkItem_ChangeRequest_Library!System.WorkItem.ChangeRequest']$" TargetType="$MPElement[Name='System!System.Domain.User']$">
                    <AddRelationship />
                  </RelationshipSubscription>
                  <PollingIntervalInSeconds>60</PollingIntervalInSeconds>
                  <BatchSize>100</BatchSize>
                </Subscription>
              </DataSource>
            </DataSources>
            <WriteActions>
              <WriteAction ID="WA" TypeID="SystemCenter1!Microsoft.EnterpriseManagement.SystemCenter.Subscription.WindowsWorkflowTaskWriteAction">
                <Subscription>
                  <WindowsWorkflowConfiguration>
                    <AssemblyName>UserUpdateExecutor</AssemblyName>
                    <WorkflowTypeName>WorkflowAuthoring.UserUpdateExecutor</WorkflowTypeName>
                    <WorkflowParameters>
                      <WorkflowParameter Name="windowsPowerShellScript1_CRID" Type="string">$Data/Property[@ID='$MPElement[Name="System_WorkItem_Library!System.WorkItem"]/Id$' and @State='Post']$</WorkflowParameter>
                    </WorkflowParameters>
                    <RetryExceptions></RetryExceptions>
                    <RetryDelaySeconds>60</RetryDelaySeconds>
                    <MaximumRunningTimeSeconds>300</MaximumRunningTimeSeconds>
                  </WindowsWorkflowConfiguration>
                </Subscription>
              </WriteAction>
            </WriteActions>
          </Rule>

    Dienstag, 28. April 2015 04:17