torsdag den 1. maj 2014

Subscribing to Review Activities - Avoid a Common Pitfall

Setting up a subscription in Service Manager is easy. In many setups something similar to "Automatically Sending Notifications to Reviewers" is configured, or even better "Tricky Way to Handle Review Activity Approvals with the Exchange Connector". But sometimes there are no reviewers for a review activity. The workflow/subscription runs regardles, and when later someone spots the lack of reviewer it is too late - You can use one of my previous posts to configure a view that will show all review activities (or even service requests that have review activities) that is missing a reviewer.

The solution is simple. This won't work with workflows though (they cannot access the related reviewer objects). I much prefer subscriptions and the "Periodically notify when objects meet a criteria" and then select "notify once" in the recurrence pattern. Note: the subscription will not trigger again if someone "returns to activity" - the "is updated" subscription does not have access to the reviewer relationship.

Add an additional criteria that the displayname property of the reviewer object is not empty. What can happen is that the service requests affected user has no manager, and the "Line manager should review" checkbox is checked in the review activity. What Service Manager erroneously does is to create the reviewer object (which is not the actual reviewing user) and a relationship between this and the review activity. It then tries to relate the user (system.user) object which doesn't exists as there is no manager. The DisplayName property is incidently the DisplayName of the user which does not exists and is there the empty string (technically I believe it to be null).

The subscription will then trigger when a reviewer is eventually added to the review activity.

I will also share a tip to solve the issue of review activities that you do not want to subscribe to. Maybe a specific mail should be send, or no mail at all. What I do is to add yet another criteria to the general purporse subscription along the lines of "SomeCustomField" is empty or contains a specific value (like "GeneralPurposeReviewActivitySubscriptionEnabled").

Now that you have fixed the problem on your end talk to your AD-team. If the problem is not of a technical nature, but rather an issue with your organization, you may be able to get a hold of a list of sorts indicating who should act as manager for specific users. A runbook could help you sort this out automatically

  1. Monitor reviewers where DisplayName is empty (you may need to use a regex, I think the empty string would be: ^$
  2. Get the related review activity
  3. Get the affected user of that review activity
  4. look up the acting manager for that user (list, db, AD logic)
  5. Get the acting manager as a user object
  6. Create a relationship between the reviewer object and the acting manager user object

Ingen kommentarer:

Send en kommentar

Søg i denne blog