Automatically showing the FAQs in a given FAQ Category

By default when a user clicks on the FAQs in Self Service they are presented with a FAQ Category list and no FAQs. The user then needs to pick a category and use a search string (albeit it can be blank) to show the FAQs for that given category. I was curious to see if I could cause all the FAQs in a given category to show automatically when the drop down list of categories was changed. I could.

Open ShowFaqStaff.htm (located in c:Program FilesBMCService Desk ExpressSelf Service Deskhtml by default) in Notepad.


<select class="BMCDropDownList" style="width:100%;" id="FAQCatNameList" AccessKey=<%=labelKey%> onChange="updateCat();resetFAQ();"  NAME="FAQCatNameList">


<select class="BMCDropDownList" style="width:100%;" id="FAQCatNameList" AccessKey=<%=labelKey%> onChange="updateCat();showFAQ();" NAME="FAQCatNameList">

Then, assuming that you want the FAQs for the first FAQ Category to automatically show when the user first views the FAQs then you need modify a different file.

Open ShowFaqStaff.asp (located in c:Program FilesBMCService Desk ExpressSelf Service Desk by default) in Notepad.

Find the WindowOnLoad function and add the following line of code to the end of it:


so that it looks like:

function WindowOnLoad()
selectedIndex = document.getElementById("FAQCatNameList").selectedIndex;

Save the file and you should be good to go. I have only tested this with Service Desk Express 9.6 but it may work with previous versions as well. As always, comments (positive and negative) are always welcome.

Self Service Authentication – Switching Between Authentication Options

Before Service Desk Express, when “Windows” authentication was not an option for the core product, the installer for Magic (whilst woeful in comparison to nowadays) used to have an option to have “Windows” authentication for Self-ServiceClient Services. Nowadays, the installer gives you the choice between “Windows” for the core product and for Self-Service or just the core product – ah, progress!

Anyway, for those organisations that want “Windows” for Self-Service but not for the core product, I thought I would post a quick “How-To:”

So, log onto the application server using, for example, remote desktop. Open IIS Manager by clicking on Start > All Programs > Administrative Tools > Internet Information Services (IIS) Manager. Assuming that you have installed the product in the Default Web Site, expand the Default Web Site, right-click on the Self-Service virtual directory (called HelpDesk by default) and select Properties for the popup menu that appears. Click on the Directory Security tab and click the button to edit Authentication and access control. Uncheck Enable Anonymous Access and check Integrated Windows authentication. Click OK to exit that window and OK to apply your changes. You will be presented with a screen that looks like the image below:

Inheritance Overrides


You MUST click the button to Select All and then press OK. You can close IIS Manager and log-off the application server.

One final thing to do – tell Service Desk Express that you want to use “Windows” authentication for Self-Service. To do this you need to run the following script against the SDE database:


And that is it. To reverse the process run the script above replacing the ‘1’ with ‘0’, check the Enable Anonymous Access and uncheck Integrated Windows authentication. Again, do NOT forget to click the Select All on the Inheritance Overrides window that appears.

Client Reference Field

One of the limitations of Magic/Service Desk Express is that you can’t sort on a free text field i.e. a column of data type ntext. More often than not this isn’t an issue and can be resolved by a variety of solutions. However, recently I had a complaint from a self-service customer because when viewing their incidents in self-service they couldn’t search their tickets.

My immediate reaction was that they could double click the column they wanted to search and enter the search criteria. However, that only works on fields other than ntext fields and calculated fields. If your organisation either doesn’t have a detailed category/subject tree or alternatively you have, for example, an other category that gets used a little more than it should, a customer with a lot of tickets (open or closed) can have a significant challenge in finding the correct ticket in question.

So a solution then:

Using DB Admin create a new field in the incident module of type text, allowing 255 characters (or less) and null. Call this field something like “Client Ref Text” as shown below:

Client Reference Field

Then using self-service customisation, add the field to the incident form such that users can enter their choice of reference text that will help them find the record in the future.

Additionally, you can modify the pop-up (Select all incidents) such that that field is in the list. Now they can double-click on that column and search using SDE/Magic’s built in functionality.

I would suggest that you also add this field to technicians incident form (making it read-only) and to their popup such that should a client quote this reference text as opposed to the incident no, the ticket can still be found.

As always, all comments/suggestions welcome.

Whiteboard ticker for support staff

The whiteboard ticker is a superb tool for communicating everything from major incidents to future outages. However, whilst it is on by default in Self-Service it is not for support staff using the core application. This post will address two issues:

a) How to turn the ticker on by default and

b) How to change the default refresh period to something other than 30 minutes

To fix both these issues we need to do a couple of hacks in options_nailogo.asp (located in C:Program FilesBMCService Desk ExpressApplication Server by default)

As these are hacks, please please please take a backup of this file before following the remainder of this post. Additionally, it is worth noting that after you install a patch from BMC for Service Desk Express, you need to check to see if the patch overwrote these hacks. If so, just reapply them.

Ok, so with that stuff covered let’s look at these two issues:

How to turn the ticker on by default?

This one is a complete doddle and there have been many posts in the MagicSolutions forums regarding how to do this. Open options_nailogo.asp in Notepad and scroll down until you see a line that looks like:

<body style="background-image:url(images/header_main_bkgd.gif); background-repeat:repeat-x;padding:0px; margin:0px;margin:0;border:0;height:100%;overflow:auto" onload="WindowLoad()" onunload="WinUnload()">

Edit this line so it looks like:

<body style="background-image:url(images/header_main_bkgd.gif); background-repeat:repeat-x;padding:0px; margin:0px;margin:0;border:0;height:100%;overflow:auto" onload="WindowLoad();StartWBTimer()" onunload="WinUnload()">

Save the file, log out and log back into Service Desk Express and you are done.

How to change the default refresh period to something other than 30 minutes?

This one is a little more complicated although not much. A while back someone in the group wanted to be able to default the ticker refresh period to five minutes as opposed to 30 minutes.

Open options_nailogo.asp in Notepad and scroll down a little where you’ll find some code that looks like:

<script Language="JavaScript">
var timerID=null;
var sRefreshTime=30
var timerRunning=false
var bPPS = ("1" == "<%= Response.Write((bPPS? "1" : "0"))%>")
var coldiv = "250px, *";
var fmstCall = "frmstNavDash";
var sUserName = "<%=DbConn.User.Name%>"

Edit this to look like:

<script Language="JavaScript">
var timerID=null;
var sRefreshTime=5
var timerRunning=false
var bPPS = ("1" == "<%= Response.Write((bPPS? "1" : "0"))%>")
var coldiv = "250px, *";
var fmstCall = "frmstNavDash";
var sUserName = "<%=DbConn.User.Name%>"

Save the file, log out and log back into Service Desk Express and you are done. The refresh rate will now default to 5 minutes.

Hope this is helpful. Any comments, as always, are very welcome.

Forward schedule of change (for Self-Service)

One of the first projects I ever did was a forward schedule of change (FSC) for self-service. The organisation I was working for wanted to be able to display the FSC from within self-service. As this functionality wasn’t supported by Service Desk Express, I created a web application that enabled it.

Since then I have had a number of queries about how it was done (as I posted the pictures of it in the MagicSolutions Yahoo Group) and thought that it would be fun to rewrite with a bit of a spruce up, a little more functionality and, very importantly, a simple installer. For anyone interested, you will be pleased to know it is complete.

As with all JOATIT projects, it is available free of charge (as long as you don’t try to sell the application or the code (or any part of it) to anyone else). Additionally, the source code is available for anyone who wants to customise/reuse.

It is available from the Projects zone and as always, feedback is very welcome.

Client Configurations popup in Self-Service

Client Configurations is Magic/SDE’s way of assigning clients to configurations (usually used as locations or personal configurations) and consequently to assets (inventory items). Whilst there is clearly a benefit to the client of the service desk knowing what assets the client has and where they are located, when logging a call via Self-Service the vast majority of clients just want to give the minimum information possible.

That said most clients understand the necessity of completing certain information that may assist the service desk in fixing their call as long as they understand what they are being asked for.¬†Select from Client Configurations doesn’t exactly make much sense to the average client. Furthermore, this popup cannot be customised and consequently appears to be an annoying popup with no purpose to the average client.

Awhile ago I posted a hack in the Yahoo MagicSolutions group that prevented a user from getting the Select from Client Configurations popup in Self Service when they had more than one configuration assigned to them. As specific posts can be a bit difficult to find in the Yahoo group I thought it might be beneficial to post the hack here:

Open CommonScript.js in notepad (by default this file lives in C:Program FilesRemedyMagic Service DeskSelf Service DeskScripts. Scroll down until you find the function PopulateDependants(VColName) which starts:

function PopulateDependants(VColName)
bDataChanged = true

Add the following line of code above the bDataChanged = true

if (VColName=="Client Config") return

so it ends up looking like…

function PopulateDependants(VColName)
if (VColName=="Client Config") return
bDataChanged = true

… and that should be you sorted for both Incidents and Work Order (Service Requests).