A post in the MagicSolutions forum posed a challenge that I thought would be fun to try and solve, namely how to filter the Assign To grids in Service Desk Express. Unlike other popups that are accessed from a popup icon on the form these popups are accessed by clicking on the Assign To menu item. As such there is no out of the box facility within the application to filter this list as there is with other popups (see How to dynamically filter a popup list in Service Desk Express).
This is an unsupported hack of the ASP.NET code
The first thing to do is determine how you want to filter the popup as there is usually little point hardcoding something if it can be dynamic. For my example, I created a new field in the Support Staff module called Hide In Popups as shown below:
Now this field will be granted a unique number by Service Desk Express and it is important that you find out what this number is using the SQL statement below:
SELECT COLSEQ FROM dbo.SMSYSBASEVIEWDATA WHERE TBLSEQ = 18 AND VIEWCOLNAME = 'Hide In Popups'
In my case this returned a value of 1001.
To filter the popup we need to add some code in assignto_grid.aspx (located in C:Program FilesBMCService Desk ExpressApplication Server by default) just before the opening <HTML> tag:
if (ViewName == "18" && sMode == "STAFF")
AddWhereClause += " + ||1001|| = 0";
else if (ViewName == "18" && sMode == "MYGROUP")
AddWhereClause += " AND ||1001|| = 0";
Save the file and you should be good to go.
So how does this code work. Well the ViewName == “18” bit means that I only want to filter the Support Staff not the Groups (which incidentally would be ViewName == “13”). The sMode bit refers to which menu item this popup was called from e.g. Member of My Groups. The AddWhereClause bit simply says check if field 1001 (my new Hide in Popups field) is equal to 0. As to why the syntax is different for the two modes – PASS!
Anyway, seems to work. As always any feedback (positive or negative) is always welcome.