Benutzer mit den meisten Antworten
Trigger für verändertes Relationship-Objekt

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
- Bearbeitet TimMuehlhausen Montag, 20. April 2015 11:13 Titel vergessen
- Verschoben Mihaela ParedesMicrosoft contingent staff, Moderator Dienstag, 21. April 2015 10:35 Ich glaube hier werden Sie besser geholfen
- Verschoben Denniver ReiningMVP Samstag, 25. April 2015 02:03 Sehr spezifische Frage, vielleicht hat hier jemand einen Tip.
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):
Andreas Baumgarten | H&D International Group
- Als Antwort vorgeschlagen Andreas BaumgartenMVP Dienstag, 28. April 2015 06:20
- Als Antwort markiert Mihaela ParedesMicrosoft contingent staff, Moderator Donnerstag, 30. April 2015 08:59
-
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>
- Als Antwort markiert Mihaela ParedesMicrosoft contingent staff, Moderator Donnerstag, 30. April 2015 08:59
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):
Andreas Baumgarten | H&D International Group
- Als Antwort vorgeschlagen Andreas BaumgartenMVP Dienstag, 28. April 2015 06:20
- Als Antwort markiert Mihaela ParedesMicrosoft contingent staff, Moderator Donnerstag, 30. April 2015 08:59
-
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>
- Als Antwort markiert Mihaela ParedesMicrosoft contingent staff, Moderator Donnerstag, 30. April 2015 08:59