SCSM 2012: Fixing the ID ‘DelegateControl1’ error in the Self-Service Portal

Recently we began experimenting with the deployment of the Service Manager 2012 Self-Service Portal SharePoint solution to an existing SharePoint 2010 farm. Anton Gritsenko and Travis Wright have written great blogposts on that. But while carrying on with the scenario we ran into an error applying the Service Manager masterpage. Fortunately I remembered this error from the Technet Forums.

Issue – The ID ‘DelegateControl1’ is already used by another control

Symptoms
This problem occurs when you apply the SMPortalPage.master to a SharePoint site. When you apply it you get a SharePoint 2010 Error message. This message is The ID ‘DelegateControl1’ is already used by another control.

Steps to reproduce
1. Follow the instructions in Anton his blogpost, I deployed them to a new Webapplication with a blank site collection (sts#1 template)
2. Activate the Site Collection feature SharePoint Server Publishing Infrastructure. Btw, in a production environment I wouldn’t do this, because this has some impact on your SharePoint environment.
3. Activite the Site feature SharePoint Server Publishing
4. Go to Master Page in the Look and Feel section which should be available now after activating both features
5. Change both Site Master Page and System Master Page from v4.master to SMPortalPage.master

Cause
First we compared the masterpage we used with the masterpage from an existing Self-Service Portal and a default v4 masterpage. It looks like the solution which we found in the c:\inetpub\wwwroot\wss\VirtualDirectories is an old one. It has some wrong id’s in them. Hopefully more details on that later.

Applies to
Service Manager 2012 RC (version 7.5.1464.0)

Workaround
The workaround is to replace the wrong id’s from ContentPlaceHolders and Controls with the right ones. Below is a cheatsheet if you want to repair your existing masterpage. If you fixed it you can upload it in the masterpage gallery and publish and approve it. Another option is to download a copy from an existing working SCSM environment and upload that one.

Btw, credits for this workaround go to my colleague Sander who really helped me in fixing this.

ElementActionWrong IDRight ID
ASP:ContentPlaceHolderReplaceContentPlaceHolder1PlaceHolderSearchArea

SCSM 2012: Self Service Portal Service default results per page customization

I really notice on the Technet Forums that the customization of the Self-Service Portal of System Center Service Manager 2012 is one of the hot topics. That’s why I wanted to share another quick tip on how to customize it to your likings. Last Wednesday Nichoff asked in this thread about if it was possible to adjust the number of requests in the My Request web part.

Settings.xml
Like in my previous article about Self-Service Portal customization the settings.xml file is the place you want to be. This file contains a lot of configuration options (setting keys) for the Self-Service Portal and can be found in the Inetpub of your SharePoint server.

Solution
1. Go to C:\inetpub\wwwroot\System Center Service Manager Portal\ContentHost\Clientbin (or another location if your installation directory was different
2. Open the Settings.xml file
3. Modify the setting key for DefaultResultsPerPage with the value for the number of request you want to display per page. I adjusted it to 10:
DefaultResultsPerPage setting key
4. Don’t forget to restart your browser and clear your cache

Happy customizing!

SCSM 2012: Self Service Portal Service category color customization

Lately I’ve been wandering a bit more on the Technet Forums, this has been pretty useful. Friday I came across this thread from Bart Timmermans about customization in the Self Service Portal of the product System Center Service Manager 2012. He asked if it was possible to adjust the styling of Service category headers. Of course I accepted the challenge.

Analysis
The Self Service Portal is a solution on SharePoint 2010 which deploys some web parts. Like Travis Wright described in his latest Self Service Portal blogpost those web parts use Silverlight .xap files. After some .NET Reflector work on the Portal.BasicResources DLL. I found that a lot of the color styling for the portal is being done by using brushes.

Brushes
A brush is an Silverlight object which can be used to paint for example solid colors or linear gradient. In that DLL I found a .xaml file which defined some solidcolorbrushes and they had a key. In Silverlight they use a 8 digit notation for the color, this is a RGBA value.

Settings.xml
The Self Service Portal actually has a settings.xml file which can be used to define some basic settings. I noticed it also had some setting keys for colors. This triggered me to add a key for one of the brushes, ExpanderHeaderBgBrush. My attempt worked. After adjusting the Settings.xml and clearing my browsers cache I saw a new green color!

Service Category background color

Solution
1. Go to C:\inetpub\wwwroot\System Center Service Manager Portal\ContentHost\Clientbin (or another location if your installation directory was different
2. Open the Settings.xml file
3. Add a setting key for ExpanderHeaderBgBrush with your desired RGBA color:
ExpanderHeaderBgBrush setting key

Happy customizing!