Company and Contact filtering with a Complex List on Raise User

Version 4

    Verified Product Versions

    LANDESK Service Desk 7.8.x

    Enviroment

    Service Desk Pre 7.5

    Problem

    I want to use Company and Contact filtering on my Raise User and Company fields so that if I pick a Contact the Company is automatically chosen but if I pick a Company the list of Contacts is reduced to only show members of that Company.  I also want to have a complex list on Raise User so that I can search by more than just the Title field - I can look by email address or phone number too.

    Background

    To set up the filtering I would normally go to Window Manager and select the 'Raise User' field.  Then I would look at the Advanced Properties of that on the 'Properties' tree and set the proeprty for "Is 'company and contacts' selection?" to true.  I would set exactly the same property for the 'Company' field too.  This will get the filtering working.

     

    To set up the complex list I would create a new query in 'Query and Report Designer' based on the User object.  I would add all the columns I wanted to be able to search on and not set any criteria.  Having saved this query I would then go to Window Manager and select the 'Raise User' field again.  On the properties I would set the "Complex List" property to true and set the "Query" property to the query I had just created.  This will ensure that the drop-down for Raise User will include all the fields I could want to search on.

     

    However, if you follow the instructions for both the sets of filtering above then when you select a Company the Raise User drop-down doesn't display properly.

     

    Solution

    To make this work I need to ensure that both the Raise User and Company fields have the Base Page Handlers applied to them.  By default Handlers are normally hidden because making changes to them can cause problems so usually only consultants have the ability to view them.  For this reason the following instructions should be carried out on your test system first and you should ensure you have a full back-up of your database before you make these changes to a live system.

     

    To make the handlers viewable you will need to close Console and then open up your console.exe.config file on the machine from which you wish to make the changes.  This file is usually located at: C:\Program Files\LANDesk\LANDesk ServiceDesk though older versions will be in a Touchpaper directory and OneTouch installs will be something similar to: C:\Documents and Settings\<user profile>\Local Settings\Apps\2.0\0YOENM5C.HKJ\1PTQ3VBC.EVR\gsdc...app_f3d04ed7784c1c3a_0007.0002_c05cd713979e017f - the folder names will be different on your system.  To this file you will need to add the following  two keys:

     

    <add key="ShowHandlerConfiguration" value="true" />

    <add key="ConfigureHandlers" value="true" />

     

    These should be inserted somewhere between the <appsettings> and </appsettings> tags.  Save the file and launch Console, now when you look in Window Manager you will have a new property on your fields called 'Handlers'.

     

    To get the right handlers on to the fields you will need to delete them from the window, save it and put them back.  It's worth noting at this point that if you have any related fields on the window (such as the users phone number or the company address) these fields will be deleted too so take a screen shot to refer back to!

     

    If you now look at the Handers property for the Raise User and Company fields you will see they have a number of 'Base Paged' handlers on them.  To these you will need to add all 6 of the handlers from the 'CustomerAndCompanySelectionApplicationLogic' set of handlers.  By doing this you will be setting the Advanced Property described above to 'True' but unlike if you just set the property you will be able to maintain the Base Paged handlers on the field.  Having done this you can now apply the Complex list criteria as normal.

     

    There is one further very important consideration to remember here.  By having two sets of paging handlers you will find that if you have more Contacts than fit on a single page of the list then when you click the button to skip to the next page you will actually skip 2 pages forward.  Effectively you will not be able to see even numbered pages without manually typing the page number in to the selection box.

     

    When you have set the handlers up as you require them remember to remove or disable the keys in your console.exe.config so that you can't accidentally change them again in the future.