Knowledge Management is a component within SCSM which is rarely used. This is very unfortunately since it makes so much sense having it in your ITSM system – to be able to have information nearby and easy accessible, to be able to relate the Knowledge Articles to your Work Items and so on. I do understand the reasons why Knowledge Management is under used though, and I really hope we’ll see some investments in this area from Microsoft in the near future.
Some customers does however use Knowledge Management, and the majority (if not all) of these have asked how they would be able to add new Knowledge Article Statuses. Most of them want a new status named Internal for KAs only targeting the analysts. By default only Knowledge Articles with the Status set to Published will be visible for End Users in the Self-service Portal, so by doing this you can have internal articles only visible to IT.
By default there’s three different statuses, like this:
As this is a ordinary list you would think that you would be able to edit it under Library –> Lists, but as you probably already have found out if you are reading this post, the list isn’t listed here.
In order to add new items to this list we have to do some XML editing. The Knowledge Article Status list is stored in a sealed MP named “System.Knowledge.Library” and since it is sealed, we have to add new list items in a new MP. So create a new MP or open an existing in which you would like to store this list item. Then add a reference to the System.Knowledge.Library MP. Just like this:
<Reference Alias="Knowledge"> <ID>System.Knowledge.Library</ID> <Version>7.5.3079.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference>
Then add the actual new list by adding the EnumerationValue tag just like below. The ID can be anything you want, in this example I’m just following the same standard as Microsoft used when they created the original list items.
<TypeDefinitions> <EntityTypes> <EnumerationTypes> <EnumerationValue ID="System.Knowledge.StatusEnum.Internal" Accessibility="Public" Parent="Knowledge!System.Knowledge.StatusEnum" Ordinal="12" /> </EnumerationTypes> </EntityTypes> </TypeDefinitions>
The ordinal of the Out-of-the-box Knowledge Article Statuses are:
Draft – Ordinal=”5″
Published – Ordinal=”10″
Archived – Ordinal=”15″
So by giving my new Internal status the Ordinal 12, it will be placed in between Published and Archived.
The last thing you need to add in the MP is the DisplayString for your new list items. Remember that you need one DisplayString for each new list item and for each language you are going to support.
<DisplayString ElementID="System.Knowledge.StatusEnum.Internal"> <Name>Internal</Name> </DisplayString>
When you’ve added all this to your MP, save it and import it into SCSM. This should result in you having a new KA Status:
I’ve added the complete MP so you can download it and take a look at the XML code as a whole if you would like.