Home » Orchestrator » Integrate Service Manager and SharePoint announcements with a bit of Orchestrator magic

Integrate Service Manager and SharePoint announcements with a bit of Orchestrator magic

In this post I will show you some ideas how you can administrate announcements in SharePoint with Service Manager and Orchestrator. The idea is that announcements are owned by Service Manager and you only use the Service Manager console to create, update and delete announcements. Everything around announcements are then synchronized to SharePoint with Orchestrator. In Service Manager 2012 the announcement part is removed from the self-service portal, but there is an announcement webpart in SharePoint that you can use. To add an announcement webpart to your Service Manager 2012 self-service portal you can

  1. Browse to your Service Manager self-service portal with an administrator account
  2. Click Home to navigate to the root page
  3.  On the Site Actions menu, select edit page
  4. Click the Insert tab and select Web Part
  5. Select Lists and Libraries/Announcements and click Add
  6. Now, select the Announcements web part and from the List Tools menu select List/List Settings
  7. On the List Settings page, select Create Column
  8. Name the new column Announcement and click OK to save. We will use this column to store the Service Manager announcement ID, to keep the link between an announcement in Service Manager and and announcement in SharePoint.

 

The first runbook is monitoring new announcements in Service Manager. When a new announcement is created in the Service Manager console this runbooks is triggered. The runbook first converts the text that Service Manager has in the announcement from rich text format to plain text. During tests I found some issues around publish text in rich text format on the SharePoint site, so now all text gets published as plain text. The last activity comes from the SharePoint Integration Pack that you can download from Codeplex. The activity creates a list item in the new announcement webpart.

 

As you can see in the pictures we created a announcement in the Service Manager console, the runbook picked it up and created a list item in SharePoint. The title on the list item in SharePoint  is a mix of the announcement title and priority. Next runbook handle updates. When you update a announcement in Service Manager this runbook writes the changes to SharePoint. We use the column we added in the announcement webpart to keep the link between announcement in Service Manager and list item in SharePoint.

It get a bit more complicated when looking at how to handle deleted announcements. Many items in Service Manager have a status that we can look at, for example if the status is equals to closed or resolved. Announcement is deleted as soon as we delete them from the console. Orchestrator can monitor for changes on objects and when a object is created. But we cant monitor when a object is deleted with Orchestrator. But, Service Manager can do that. Service Manager can trigger a workflow when a object is deleted. That is how we will do, we will have a internal Service Manager workflow that will run when a announcement is deleted, it will trigger a runbook that will remove the corresponding list item in SharePoint. The Service Manager workflow will actually drop a file in a folder that Orchestrator will pick up. You can build the workflow with Service Manager Authoring Tool. If you want to look at the example I use you can download it here, SCSMAnnouncements . The picture below show the script that the workflow run. As you can see it writes the announcement ID to a file, the file is named with a GUID and stored in a remote folder on the \\FIELD-SCO02 server.

 

Orchestrator will monitor the folder and pick up any file written to the folder. The file includes the announcement ID of the deleted announcement. Orchestrator will find the corresponding list item in the announcement web part in Sharepoint and delete it.

I also created one runbook that will start when a new problem is created in Service Manager with priority 5 or lower. It will then create a announcement in Service Manager with information from the problem work item. It will also update the action log of the problem work item with information about the announcement. The other runbooks could then trigger on the announcement and create the announcement in SharePoint. This runbook includes a Run .NET script activity that generates a GUID. The GUID is used as ID for the trouble ticket action log on the problem work item. The runbook also includes a Map Published Data activity, that is because the Service Manager announcement and the problem work item handle priority different.

These runbooks use a “RTF to Plain Text” activity that my friend Patrik Sundqvist have built for the community. You can download the RTF-to-PlainText integration pack here. Thanks for the help Patrik, as always!

Please note that this is provided “as is” with no warranties at all.


17 Comments

  1. I am too experiencing the 401 unauthorised issue with the Sharepoint bit – have any of you managed to resolve it? Could we have a twitter convo to see if we can work together to figure it out? (@mysehnsucht on twitter)

  2. I, too, am experiencing the same issues as Mike Neal (401 error) posted on this page. Did Mike and you ever resolve the problem?

  3. Thanks for your quick reply, yeah unfortunately I also in my virtual lab used only one account that was a Domain Admin and the primary account for my SCSM, SharePoint, Database, and Orchestrator installs, yet still continue to get the 401: Unauthorized. I as well did a search and found the loopback fix but that as well did not fix my issue. Also registering SPN’s was not the fix either, so I’m at a loss right now. I’ll possibly revisit this when you post your runbook exports to make sure that all lines up.

  4. Hi Alex,
    I am planning to do that, just need to clean the export file a couple of times and re-build the runbooks to use more variables instead of hard values. I just wanted to share the solution with the community as soon as I had it working. But will try to get a good looking export file online soon.

  5. Anders,

    I know you state “Everything you read here is my own personal opinion and any code is provided “AS-IS” with no warranties.” but I was wondering if along the way you ever ran in to an error on the SharePoint part that gave you a Http status 401: Unauthorized error. I’ve tried this runbook both on our domain test environment and even a self created virtual lab environment and in both instance keep receiving the same 401: Unauthorized. The rest of the runbook works fine, as we added a piece to email us the Announcement, it’s just the posting to the SharePoint list that is not.

    -Mike

  6. This is awesome. loved it. could you please also publish the export of your runbooks?

  7. […] Anders Bengtsson (Contoso.se) blogged a great article on “Publishing Service Manager Announcements to SharePoint Using Orchestrator.”  This is exactly the type of idea, and integration we need to exploit with Service Manager and Orchestrator. While not a *cloud* scenario, I think it is one that shows off the integration of the products and non-System Center products (like SharePoint) quite nicely.  For your reference, the blog article is located here: http://contoso.se/blog/?p=2817 […]

  8. […] Anders Bengtsson (Contoso.se) blogged a great article on “Publishing Service Manager Announcements to SharePoint Using Orchestrator.”  This is exactly the type of idea, and integration we need to exploit with Service Manager and Orchestrator. While not a *cloud* scenario, I think it is one that shows off the integration of the products and non-System Center products (like SharePoint) quite nicely.  For your reference, the blog article is located here: http://contoso.se/blog/?p=2817 […]

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.