SCSM Form Customisations Don’t Show in the Console

A few weeks back I hit upon an issue that had me totally at a dead end. Many suggestions on the Social TechNet forums later a solution was found.

https://social.technet.microsoft.com/Forums/systemcenter/en-US/46e33e38-2031-44e5-9503-95af8468da23/custom-manual-activity-forms-not-doing-what-they-should?forum=customization

In short, there was a custom Preview form that also referenced the class I was trying to edit the form of (Manual Activity in my case)

The root cause of this issue is caused by a console bug.

Let me explain.

Within SCSM There are 2 types of forms.

  • Class Forms used by a class to display the properties associated with the class(Such as the Incident or Manual Activity forms)
  • Forms marked as “Overview” forms that are used in the preview pane of the console. These “Preview” forms allow companies, such as Cireson, to create custom previews of forms rather than the ugly out of the box views.

When loading a class form, the SCSM console gets all the forms for that class from the database and sorts their GUIDS alphabetically. If the first form in the sorted list is an overview form, the console thinks it has found a custom form for the class and loads the changes for the class form (Which because it is a preview form is none) and the resultant form is just the default (un-customised) form.

If the console could just recognise that it was trying to load a class form and it had found a Preview form so skip it, we’d be ok. But that’s not the case. 

To workaround this problem, the internal Id of the preview pane form must be changed until the internal ID of the customised class form is higher up the list than the Preview form.

So how do we change the Internal ID?

First we need to know how SCSM determines the Internal ID.
The Internal ID is a GUID that is generated by a hashing algorithm that uses the Internal ID of the form that you enter when you create the form and the Management Pack identity. The MP Identity is a combination of the name of the management pack you created and the public key token used if it is sealed.

To change the Internal ID we need to change one of the factors that goes in to creating the ID in the first place.

To do this simply change the internal name of the MP that contains your customised class form or the customised preview form and re-seal it and or re-seal it with a new SNK file.
Delete the MP from SCSM and import the new one.

Exclamation-icon (32x32)   WARNING!!  Exclamation-icon (32x32)  

If your custom MP has class properties as well as custom forms and you have used this property in your environment, deleting the management pack will delete this property from all your databases and you will lose this data!! If you have property extensions in your MP and you know you have used these properties in your production environment DO NOT USE THIS METHOD!

If your MP does contain both a class extension and your custom form, it is possible to remove the form customisation and reseal the MP without losing the data. Then to create a new MP that contains just the form customisation.

OR

If you have or can get a hold of the un-sealed (XML) MP of the preview form then changing the internal name and or SNK for that MP will work just as well.
(Contact Cireson if you are having this issue with their preview forms)

NOTE: You may have to run rename and reseal process several times before the GUID gets generated in such a way that it sorts correctly.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s