Category: ‘Service Manager’

Minor SSP modifications, part 1 – Preperations

May 7, 2011 Posted by Anders Asp

The source code for the Self-service Portal (SSP) has been released for a while and along with the code you got the option to use an upgraded version of the portal. This upgraded version includes a completly new look, a couple of bug fixes and some new features.

Official blogpost regarding the SSP source code can be found here:
http://blogs.technet.com/b/servicemanager/archive/2011/03/02/service-manager-portal-source-code-released.aspx

That is all great, but there might still be some minor things that you want to change with the portal, and that’s why I’m starting this series of blogposts regarding minor modifications of the SSP. Before we start, I just want to add a disclaimer: I’m not a developer and this is all new to me. All code is provided “as is” and I do not give any warranties or take any responsible for any errors that might occur.

Before I start this series of blogposts “for real”, we need to make sure that you have made any preperations required to follow the serie.

1. Install Visual Studio (I will be using Visual Studio 2010 in this serie)
2. Download the SSP source code and extract the files (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=65fbe0a3-1928-469f-b941-146d27aa6bac&displaylang=en)
3. Since we will be working with the upgraded version of the portal, we need to deploy it into our test/lab/development environment.
3.1. Locate the zip-file containing the updated SSP (..\SCSM2010SP1PORTALSOURCERELEASE\NewExamplePortal.zip) and extract the files.
3.2 Browse the extracted files and rename the EndUser folder to Customized_EndUser and Analyst to Customized_Analyst.
3.3 Copy Customized_EndUser and Customized_Analyst to %systemDrive%\inetpub\wwwroot\System Center Service Manager Portal\ on your SSP server in your test/lab/development environment.

Copy files to SSP

3.4 Open IIS Manager and locate the SCSMPortal. Now, right click the Customized_EndUser folder and choose Convert to application. Repeat for the Customized_Analyst folder.

Convert to application

4. Open Internet Explorer and browse https://<SERVERNAME>/customized_enduser. If everything was done correctly, the updated SSP should now be displayed.

Updated SSP

5. Locate the zip-file containing the source code for the new portal, and extract it (..\SCSM2010SP1PORTALSOURCERELEASE\SourceCode\New\PortalSource-New.zip)
6. Copy the reference binaries listed below from %systemDrive%\inetpub\wwwroot\System Center Service Manager Portal\EndUser\bin\on the SSP server into the ..\SCSM2010SP1PORTALSOURCERELEASE\SourceCode\New\PortalSource-New\Common folder in the Visual Studio solution.  These assemblies can then be used to resolve the VS project assembly references.
– Microsoft.EnterpriseManagement.Config.dll
– Microsoft.EnterpriseManagement.UI.Foundation.dll
– Microsoft.EnterpriseManagement.UI.SdkDataAccess.dll
– Microsoft.Mom.BuildConstants.dll
– Microsoft.EnterpriseManagement.DataAccessService.Core.dll
– Microsoft.EnterpriseManagement.ServiceManager.dll
– Microsoft.EnterpriseManagement.ServiceManager.Portal.Common.dll
7. StartVisual Studio and open the project for the updated SSP. This file should be named Portal.sln and was extracted in step 5.

Visual Studio

7.1 On the right hand side in Visual Studio, you should have something called the Solution Explorer. This is where all the files related to this project is displayed. Some of these files need to be re-loaded and is therefore marked with a yellow exclamation mark. (All of these files should be in the different Reference folders in the Solution Explorer)

Exclamation mark

7.2 Note the name of the file with an exclamation mark, remove it from the project, and add it again. We copied all these files in step 6, so you should be able to find all the files needed on this path: ..\SCSM2010SP1PORTALSOURCERELEASE\SourceCode\New\PortalSource-New\Common. Repeat this step for all files with an exclamation mark.
(Take a look at the screenshot)

Add reference

8. When you’ve finished replacing all the broken references, we are actually finished with all the preparations. But as a final step, lets build our solution to make sure we won’t get any errors before we even got started with the modifications!
8.1 Build your solution by pressing F6 or by clicking Build Solution under Build in the main menu.
8.2 Make sure that “Build succeeded” is displayed in the status bar on the bottom of the left hand side of the screen.

Build

And that’s it. We’ve installed Visual Studio, “installed” the updated SSP and corrected the broken references in the Visual Studio project. We are now ready to begin editing some code!

Microsoft Community Contributor Award

April 28, 2011 Posted by Anders Asp

This morning when I went through my mailbox, I found a mail that started like this: 

Dear Anders,

Congratulations! We’re pleased to inform you that your contributions to Microsoft online technical communities have been recognized with the Microsoft Community Contributor Award.

I’m very proud and happy to recive such an award and I will do my best to continue to contribute to the SCSM community.
If you have any ideas for future blogpost or if you simply have som questions regarding SCSM, feel free to send me an e-mail (anders[at]scsm[dot]se) or write a comment here.
Information regarding MCC can be found here: https://www.microsoftcommunitycontributor.com/faq.aspx

Sorting a view by ID

April 24, 2011 Posted by Anders Asp

Have you ever tried to sort a view after the ID only to realise that it’s actually sorted alphabetically?

Sort by ID - Before

Sort by ID - Before

Now, you could use properties such as Created date to do a proper sort, but wouldn’t it be better if we could make the sorting of ID numerical instead?

That is actually possible and to do so you would have to start with exporting your MP in which the view is stored. Then open the MP and locate your view within the XML code, and take a look at the <columns> section. In the columns section, you should have a line that looks like this:

<mux:Column Name=”Id” DisplayMemberBinding=”{Binding Path=Id}” Width=”100″ DisplayName=”Id.9108474bffe74ec98f268d6e5f7b948b” Property=”Id” DataType=”s:String” />

Now to make the sorting to work ‘correctly’, all we need to do is changing the Property from “Id” to “Id$ReturnValueAsBigInt$”, like this:

<mux:Column Name=”Id” DisplayMemberBinding=”{Binding Path=Id}” Width=”100″ DisplayName=”Id.9108474bffe74ec98f268d6e5f7b948b” Property=”Id$ReturnValueAsBigInt$” DataType=”s:Int32″ />

After you’ve done this, save your MP, re-import it and restart your console. Now the sorting of ID in that view should be done in a numerical way instead of an alphabetic.

Sort by ID - After

Sort by ID - After

What’s new in Service Manager 2012 – Part 2

April 3, 2011 Posted by Anders Asp

So in my previous post I described some of the new features and functions in Service Manager 2012 briefly. In this post I’ll try to describe how they all tie together. As in the last article, all the information and screenshots in this post is from the MMS session “Service Manager 2012 Overview”.

To start with, I would like to describe how the System Center Orchestrator (Opalis) connector can be used.

System Center Orchestrator connector

SCO connector

  1. The Service Manager connector will connect to the Orchestrator Web Service to import runbooks into Service Manager.
  2. From these runbooks, an Service Manager administrator can use a console task to create a new custom Activity using the input parameters from the runbook and automatically map these to properties of this new Activity. Without authoring or coding in the authoring tool!
    (Example: You have a runbook that requires the input parameters DiskType and DiskSize. When clicking the console task from this runbook in Service Manager a new custom activity will be created. This activity will have two new, additional properties named DiskType and DiskSize.)
  3. The administrator can now create a Work Item template (CR, SR or RR) which include this new custom activity and present that as a Request Offering on the Self-service Portal.
  4. Now, if an end-user goes to the Self-service portal and creates a Service Request of this type, the custom activity of this work item will get the status In Progress, which will …
  5. … invoke the runbook in Orchestrator by utilizing the Web Service of Orchestrator. The runbook would now start and a workflow …
  6. … within Service Manager could monitor this workflow by using the same web service. When the workflow discovers that the runbook has finished, we could trigger some actions inside Service Manager. (Such as completing the activity/work item).

With this information in mind, let’s move on to a real example. In this example we will take a look at an automated Self-service Request where our end-user is requesting a new virtual machine.

Self-service Portal

SSP1

SSP - Picture 1

In this first picture, we can see the first page of the Self-service Portal. This is where all your Service Offerings will be presented. All these Service Offerings is created from the Service Manager console by an administrator, and no web-coding is required to make them appear on the Self-service Portal.

SSP2

SSP - Picture 2

When clicking a certain Service Offering, we will get to the main page of that Service Offering. Here will all the Service Requests and Knowledge Articles related to this Service Offering be presented. Again, no coding required.

SSP3

SSP - Picture 3

This third picture simply displays more information regarding the certain Service Request that was clicked.

SSP4

SSP - Picture 4

And finally, here is the realted form for this Service Request. This form is dynamically created from the information stored within the Service Request itself. See more details below.

Let’s take a look at all of this from the Service Manager console. To start with, let’s take a look at the Service Offerings.

Service Offerings

Service Offering View

Service Offering View

Here you can see that a Service Catalog item has been added under Library. In this particular screenshot the “All Service Offerings” view is loaded, and you can see that we only have two Service Offerings for the moment; “Access” and “Cloud services”. Also note that both of these has the status published, which makes them appear in the Self-service Portal. If you take a look at the first picture of the Self-service Portal set above, you can see that this is exactly what your users will see.

Service Offering General

Service Offering, General

Above you can see the General settings of the Service Offering named “Cloud Services”. All the information on this tab used on the Sef-service Portal and can be seen in the previous screenshots. (Except for the Image, but that is a bug in the build that was used to demo during the session).

Service Offering Request

Service Offering, Request Offering

The last picture displays the Request Offerings related to this particular Service Offering. And this leads us to:

Request Offerings

So a Request Offering is a request bound to one or more Service Offerings. Just like the Service Offerings dialog above, the Request Offerings have several fields for information that will be displayed on the Self-service Portal, but whats unique with the Request Offering, is this.

Request Offering User Prompts

Request Offering User Prompts

In this part of the Request Offering dialog, you will be able to enter questions that will be displayed when clicking the corresponding Request Offering in the Self-service Portal (in this case, we are looking at the “Request VM with SQL” Request Offering). You can also define whether these questions is Required, Optional or Informational. Again, take a look at the screenshots of this Request Offering earlier in this post, and you will understand how it all works together.

Request Offering Mapping

Request Offering Mapping

Here we can see how each question is mapped to a property of the selected template. This information together with the User Prompts is what will create the dynamic form seen in the Self-service Portal. If we are storing a question in an enum property, that will show up as a list picker in the Self-service Portal, only allowing users to pick answers from that particular enum-list.

Service Request

Allright, let’s go back to that particular Service Request that we did at the Self-service Portal and take a look at that inside the console.

Service Request

Service Request

Here we can see some basic information around the Service Request. We could (and should) have stored more information in the template and/or created more mappings in the Request Offering to be more detailed.

Service Request Activities

Service Request Activities

Here’s the activities related to this Service Request. As you can see there is two activities assigned to this Service Request; one Review Activity that is used for notification and to request an approval, and one Runbook Activity that will invoke an Orchestrator runbook.

Service Request Extensions

Service Request Extensions

On the extension tab we can see that the answers that was provided to the Request Offering on the Self-service Portal is stored.

Runbook Activity and Orchestrator Connector

So a Runbook Activity, is based upon a Runbook brought over to Service Manager by the Orchestrator Connector. As I described first in this post, you can create custom activities based upon these runbooks.

Orchestrator Runbook

Orchestrator Runbook

Here’s what the runbook looks like in Orchestrator. The dialog that’s opened displays the input parameters required for the runbook to beeing able to start.

Runbook

Runbook

This is how it looks like inside Service Manager. Also note the task named “Create Runbook Activity Template”. When clicking that task, a new Runbook Activity is created. Basicly, the thing that differs this activity from other activities…

Runbook Activity

Runbook Activity

… is the Runbook tab. This is where the mappings between Service Manager and Orchestrator is defined.

Service Request – again

Let’s go back to that Service Request again. As you remember, we had an Review activity in our Service Request that needed to be approved before the Runbook Activity would start. So let’s say we did that approval and the Runbook Activity went into “In Progress”. What would happend then, is that Service Manager would invoke the runbook inside Orchestrator, using the Orchestrator web service and the parameters/properties from our activity.

Service Request Log

Service Request Log

When this has happend, our Service Request would get updated with two comments in the Action Log. One that’s telling us that the runbook was invoked, and another one telling us with what parameters.

This runbook would now run inside Orchestrator and when it’s done, it would update the status of the activity to completed; which would trigger an internal workflow inside Service Manager that would set the status of the Service Request itself to completed aswell.

Summary

Allright. I hope you did get some better understanding on how all these new functions and features will work in Service Manager 2012. I’m very thrilled about the new Self-service Portal and how we can integrate with Orchestrator to automate as much work as possible. The possibility to create Service Offerings in a Service Catalog from the Service Manager console and present all this on a Self-service Portal that doesn’t require any coding at all is a Wonderful feature that I know everyone will appreciate. I find it safe to say that if the Self-service Portal is as good as it looks at the moment, it will be deployed and used in every Service Manager 2012 installation.

Please comment if anything is unclear or if you have some questions.

What’s new in Service Manager 2012 – Part 1

March 30, 2011 Posted by Anders Asp

So MMS was last week and loads of new information regarding Service Manager 2012 was released.

This is what we know so far:

Planned public beta: Q3, 2011
Planned release: Q4, 2011

Major Investment Areas

  • Service Requests
  • Self-Service Portal
  • Release Management
  • Data Warehouse/Reporting
  • Orchestrator(Opalis)/VMM Integration

Incremental Improvements

  • Incident SLA
  • Parent/Child Work Items
  • AD Connector Improvements
  • Powershell
  • Subscription Infrastructure
  • Parallel Activities
  • Performance Improvements
  • Bug Fixes

Let’s go through all these one at a time:

Service Requests

Service Manager will now support the Service Request process that’s been requested since beta. Solutions like this: http://scsmservicerequest.codeplex.com/ won’t be necessary anymore. By the look, Service Request is pretty similar to a Change Request and is also focused around activities. I’ll provide some more information on how a Service Request can be used in part 2 of this post.

Service Request Views

Service Request Views

Service Request Form

Service Request Form

Self-Service Portal

The Self-Service Portal in SCSM 2010 is really limited and Microsoft has gotten plenty of complaints and negative feedback on it. That’s why they decided to create an entirely new Portal based on SharePoint 2010 and Silverlight. This new portal has many of the requested features that the old one didn’t have, such as the simple function to allow end users to post comments on their own active Work Items. The layout and functions on the portal itself is based upon a Service Catalog and is defined from within the console. Another useful function is that you can configure different security setting depending on which role the user is member of. More details on the Self-Service Portal in part 2 of this post.

Microsoft has also written custom SharePoint webpart controls, that allows easy customization for all Service Manager related webparts.

The new Self Service Portal

The new Self Service Portal

Self Service Portal Customization

Self Service Portal Customization

Release Management

Just like the Service Request, this is a new process that Service Manager now is supporting. A Release Record has a close relationship with a Change Request and the Work Item itself is focused around activities.

Release Record Form

Release Record Form

Data Warehouse/Reporting

In SCSM 2012 you will be able to gather data from SCCM, SCOM, SCSM and custom sources (such as SAP or HR) to the same Data Warehouse. By defining OLAP cubes within SCSM you can easily create reports by drag and drop in Sharepoint or Excel. The goal is to make reporting as codeless as possible.

OLAP Cubes

OLAP Cubes

Sharepoint report

Sharepoint report

Excel PowerPivot Report

Excel PowerPivot Report

Orchestrator(Opalis)/VMM Integration

Two new connectors are available in SCSM2012; the Orchestrator and the VMM connector. The Orchestrator connector is used to import runbooks from Orchestrator so these can be used from within SCSM. The VMM connector imports information on different clouds and VM templates so these can be used when creating Service Offerings in the Service Catalog. More on how these new connectors are used in part 2.

Orchestrator Runbooks

Orchestrator Runbooks

VMM Clouds View

VMM Clouds View

Incremental Improvements

Unfortunately, almost no information has been released regarding these improvements yet with one exception. That exception is maybe the most important incremental improvements, and is used in Service Request and Release Records. I’m of course talking about the parallel activities. You can now group several activities into a parallel activity group. This parallel activity won’t be completed until all activities within it have been completed. Sounds complicated? Well, it isn’t. Just take a look at the picture and you’ll understand.

If the parallel activities will work within a Change Request is still unclear, but we do know that the look and feel in the activities tab for a Change Request will remain the same as it is now.

Parallel Activities

Parallel Activities

In the next part of this blogpost, I’ll try to explain how several of these new features and functions ties together.

Disclaimer: All the information and screenshots are from the session named “Service Manager 2012 Overview” that were presented in MMS2011. Remember that all pictures is from an early build of SCSM 2012.

Service Manager 2012

March 23, 2011 Posted by Stefan Allansson

Today it was a session about next release, Service Manager 2012.
It was very cool and I want it right now! 🙂
There will be a public Beta in Q3 and RTM Q4.

Some of the new things are:
– A new Self-service portal on Sharepoint 2010 that runs Silverlight
– Connectors for Virtual Machines and Orchestrator
– Service Request Management
– Release Management
– Parallel Activities in a Change Request, Incident Request and Release Management
– Improved Reporting with OLAP cubes that makes it easier to customize your reports

Service Manager 2012 pictures

March 23, 2011 Posted by Anders Asp

Here’s a couple of pictures from the Service Manager 2012 Overview session some hours ago. I know the quality is bad and I’ll try to get some better screenshots later on today. Stefan is writing a post with some information related to Service Manager 2012, he will post it shortly.

20110323-143116.jpg

20110323-143131.jpg

20110323-143141.jpg

20110323-143148.jpg

20110323-143200.jpg

20110323-143214.jpg

20110323-143228.jpg

20110323-143236.jpg

20110323-143246.jpg

MMS Keynote (updated)

March 22, 2011 Posted by Anders Asp

Here’s a short update from MMS.
– Opalis new name was announced: System Center Orchestrator
– New product announced: System Center Advisor.
For information and download link for RC release, see: http://www.microsoft.com/systemcenter/en/us/Advisor.aspx

Quote from the link above:
Q: What is System Center Advisor
A: System Center Advisor (formerly named Microsoft Codename Atlanta) is a cloud service that enables IT pros to assess their server configuration and proactively avoid problems, while helping support staff to resolve issues faster by accessing current and historical configuration data, all with the security features that meet their needs. Additionally, System Center Advisor reduces downtime by providing suggestions for improvement, and notifying customers of key updates specific to their configuration.

– New product announced: System Center codename “Concero”
Concero is a product for managing one or more private or public clouds. Integrated with Xen, ESX and Hyper-V.

– The new Selfservice Portal for SCSM vNext was displayed in a slide very quickly. I’ll try to get a screenshot of it to upload for you guys at home.

MMS 2011

March 10, 2011 Posted by Anders Asp

Hello!

I know it’s been a while since we posted now, but both me and Stefan is out on the field helping customers implementing SCSM atm. However, I just wanted to inform you all that Stefan and I is going to MMS 2011 in Las Vegas in a couple of days! Five days packed with great sessions and loads of SCSM!

Are you going to attend aswell? Post a comment! 🙂

Creating recurring Change Requests

February 11, 2011 Posted by Anders Asp

There was a question on the official forum on how one would be able to create recurring Change Requests (http://social.technet.microsoft.com/Forums/en-US/systemcenterservicemanager/thread/3f9f08ce-c331-43cf-b22c-2fe43da1440d/). So I figured that it might be a good idea to create a blog post on how to achive this.

In this blogpost, we are going to use the authoring tool to create a new custom workflow that runs a powershell script to create a new change request (with a template) on a pre-defined schedule.

To be able to do what’s decribed in this post, you will need to download and “install” the latest version of SmLets: http://smlets.codeplex.com/

Step 1 – Create a Change Request template

  1. Start your SCSM console and go to Library -> Templates.
  2. Click Create template in the task pane.
  3. Enter a name, description and choose to target the Change Request class. We’ll also have to decide where we want to save this template. I’ll chose to create a new MP to save the whole solution/blogpost within.
  4. When pressing Ok the template will be displayed in design mode. Enter the appropiate information and remember to add atleast one activity.
  5. Oki, so now when the template is finished, we need to export the MP in which it was stored. To do this, go to Administration -> Management Packs and locate the MP. Mark it and then click Export in the task pane.

Step 2 – Create the workflow

  1. Start the Authoring Tool and open the MP we just exported from SCSM and in which our template is stored.
  2. In the Management Pack Explorer, right click Workflows and select Create.
  3. Enter a good name and description.
  4. At the next page of the wizard, we’ll have to enter a workflow run condition. The defualt value “Run at scheduled time or at scheduled intervals” suits us perfectly.
  5. Enter on what days of the week and at what time you want the workflow to run. Then click your way through the rest of the wizard.
  6. An empty workflow should now be displayed in the authoring tool. Let’s add a script activity to this workflow, so something happens when it’s triggered. Do this by dragging the Windows Powershell Script activity from the Activities Toolbox to the workflow.
  7. Next we will have to define the properties of the Powershell activity. This is done by marking the activity and then locating the Script Body in the Details pane. When marking the Script Body, a “…” button will appear. Click that button.
  8. A dialog box named Configure a Script Activity should appear and in that box there should be a line that says “View or Edit Script”. Click that line to show the field in which we can add our Powershell script.
  9. Copy this Powershell script and paste into the Script body of the activity.
  10. Import-Module Smlets
    
    $CrClass = Get-SCSMClass -name System.WorkItem.ChangeRequest$
    $Params = @{
    ID="CR{0}"
    Title="Recurring CR: " + [datetime]::now
    }
    
    $o = New-SCSMObject -Class $CrClass -PropertyHashtable $Params -pass
    
    $title = $o.Id
    $changeRequest = Get-SCSMObjectProjection System.WorkItem.ChangeRequestProjection -filter "Id -eq '$title'"
    
    $template = get-scsmobjecttemplate standard.*change
    
    $changeRequest.__base.ApplyTemplate($template)
    $changeRequest.__base.Commit()
    

    Like this:

  11. Before we press Ok, there is (atleast) one thing we need to edit first, and that is the $template. In step 1 we created a template that we wanted to use in this workflow, and to be able to use that, we need to find out the ID of that template. In order to do that, we need to open the MP/XML file in which it is stored.Locate your MP and open it with an XML editor (notepad should be fine). Now do a search for the name of your template, until you find a display string for it. In that display string, an ElementID should be defined. Copy that ID (without the ” ” characters).
  12. Now, replace the ‘standard.*change’ text in your powershell script with this ID, like this:
  13. Press Ok to close the dialog box and then hit the Save All button in the authoring tool.
  14. Along with our updated MP, the authoring tool should now have created a couple of files. One of them should be a DLL file which needs to be copied to the installation directory of SCSM (by default: C:\Program Files\Microsoft System Center\Service Manager 2010). After you’ve copied the DLL into place, open the SCSM console and import the MP (Administration -> Management Packs).

Now a CR should be created every time your schedule starts the workflow!

Thanks to Jim Truher who helped me with the Powershell syntax for applying a template!