Advanced Query Results Customization for Request Offerings

This is a follow up post to the Request Offering Wizard Overview post and was also written by Neil Lydick.

Two Query Results settings cannot be modified in the UI and require manual edits to a configuration file or management pack. These settings include:

1. Setting the maximum number of instances displayed in all Query Results controls: The Query Results prompt type is unique in that it fetches live CMDB data to display rows to portal end-users. If the request author specifies a type and criteria that do not adequately restrict the set of instances displayed, then the performance of the portal server and CMDB can degrade. This degradation becomes more apparent as the number of request offering page views per visitor increases.

A global option exists in the SCSM Portal Web Server settings file (inetpubwwwrootSystem Center Service Manager PortalContentHostClientbinSettings.xml) to limit the maximum number of instances that can be displayed in any Query Results control. This setting applies to all clients and request offerings.

The key/value pair that can be added to the Settings.xml file is:

<Setting Key=”DEFAULT_MAX_RESULTS” Value=”100″/>

where Value=”” assumes an integer value. Result sets retrieved from the CMDB are capped at the maximum value specified.

2. Setting the number of instances displayed per-page in a Query Results control: By default, each Query Results control displays the set of instances matching its configured criteria in a series of pages containing 10 instances each. The number of instances displayed per page can be altered for a specific Query Results control by editing the XML of the Management Pack in which its parent Request Offering is saved. In contrast to the DEFAULT_MAX_RESULTS setting, the number of instances displayed per page is not a global setting affecting all Query Results controls: it can vary for individual controls.

The steps to configure this setting are as follows:

1. Identify the Management Pack in which the Request Offering is saved. This is found in the General tab of the Request Offering wizard.

2. Go to the Management Packs view in Administration -> Management Packs and select the Management Pack (MP) found in Step 1.

3. Once the MP is selected, click “Export” on the tasks pane to write this MP to a file.

4. Open the MP in a text editor and locate the XML for the request offering containing the Query Results control you wish to customize. You should see an <Extension> element within the MP containing <RequestOffering> sub-elements. Look for a RequestOffering that has a “Title” attribute that matches the title that you specified in the wizard.

5. Within the <RequestOffering> element, you should see a <PresentationMappingTemplate> element that contains a <Sources> subelement, which itself contains a list of <Source> child elements. Each <Source> element corresponds to a user prompt in the RO wizard. You can identify the Source element that corresponds to the Query Results user prompt you wish to customize by matching the text in the “Prompt” attribute to the text that you entered for the Query Results prompt. The ControlType attribute for the correct Source element will have its ControlType attribute set to “System.SupportingItem.PortalControl.InstancePicker,” which indicates that the corresponding prompt control is a Query Results control.

6. Under the correct <Source> element, you should find two additional subelements: <Configuration>, and, under <Configuration>, <Details>. To customize the number of instances displayed per Query Results page, add an attribute to the <Details> element with the name PageSize. Set the value of this attribute to the number of instances that you wish to display per Query Results page. Add only this attribute and preserve the surrounding XML.

A valid edit will look similar to Figure 54 (highlighted text added manually):


    <Details IsMultiSelectAllowed=”false” HideDetailsView=”true” PageSize=”5″>

    <ClassOrProjection Id=”7b070bc5-0f54-6663-f840-17affa1d6304″ IsProjection=”false” />

Figure 54: Customizing the Number of Instances Displayed Per Page

7. Save the edits to the MP file.

8. Import the saved MP file (Administration -> Management Packs -> (Tasks Pane) -> Import).