You are on page 1of 16

White Paper

ServiceCenter™
Best Practices

For Managed Service Providers (MSPs) and


Large Organizations with Multiple Clients

December 23, 2004


Service Management

©2004 Peregrine Systems, Inc. All rights reserved


Information contained in this document is proprietary to Peregrine Systems, Incorporated, and may be used or
disclosed only with written permission from Peregrine Systems, Inc. This document, or any part thereof, may not be
reproduced without the prior written permission of Peregrine Systems, Inc. This document refers to numerous
products by their trade names. In most, if not all, cases these designations are claimed as Trademarks or Registered
Trademarks by their respective companies.

Peregrine Systems, Connect-It, AssetCenter, and ServiceCenter are trademarks of Peregrine Systems, Inc. or its
subsidiaries.

Microsoft, Windows, and names of other Microsoft products referenced herein are trademarks or registered
trademarks of Microsoft Corporation.

The information in this document is subject to change without notice and does not represent a commitment on the
part of Peregrine Systems, Inc. Contact Peregrine Systems, Inc., Customer Support to verify the date of the latest
version of this document. The names of companies and individuals used in the sample database and in examples in
the manuals are fictitious and are intended to illustrate the use of the software. Any resemblance to actual
companies or individuals, whether past or present, is purely coincidental.

To contact Peregrine Systems


To learn more about how Peregrine can help your business, visit
http://www.peregrine.com.

White Paper 2
Service Management

Contents
Problem statement ........................................................................................................... 4
Document audience ......................................................................................................... 4
Recommended solution................................................................................................... 4
Data segregation............................................................................................................ 4
Dynamic subforms ......................................................................................................... 5
Dynamic forms ............................................................................................................... 5
Benefits of this strategy................................................................................................... 5
Steps to Implement .......................................................................................................... 6
Prerequisites .................................................................................................................. 6
Tailoring.......................................................................................................................... 6
Creating dynamic subforms ......................................................................................... 13

White Paper 3
Service Management

Problem statement
The out-of-box ServiceCenter application is designed to provide service-desk support
within an organization. Managed service providers (MSPs) who provide service-desk
support to multiple companies, and large, diverse organizations that provide service-desk
support to multiple clients, need to extend ServiceCenter functionality so that specific
information about each company or client is displayed to the service desk employee.
Extending ServiceCenter functionality to accommodate MSPs and large, complex
organizations with multiple customers requires several modifications.

Document audience
The customization steps described in this document should be undertaken only by
developers, and by experienced, advanced ServiceCenter administrators.

Recommended solution
To extend ServiceCenter functionality to support multiple companies, you tailor
ServiceCenter to allow for:

• Data segregation

• Dynamic subforms

• Dynamic forms

Data segregation
When a help desk employee receives a ticket request from a customer, only data that is
specific to the customer should be displayed. By showing only relevant data on fills and
searches, and by narrowing the available selections, ServiceCenter makes it more
efficient for the employee to open a ticket.

To accomplish this, use Mandanten protection against files such as probsummary,


company, contacts, category, subcategory, producttype and problemtype,
as well as other supporting files such as device and department. The number of files
that should be protected depends on the environment and the modules that are used at
the service-desk site.

Use the mandant(2,{array of security groups}) function to set and reset


Mandanten values to show either records for all of the user’s security groups, or to show
only the security group that is specific to the customer calling in. When the help desk
employee selects the company (or department) from which the customer is calling, the
mandant() function sets the Mandanten environment (all Mandanten protected files) to
display only records that are relevant to that company. After the employee finishes
opening the ticket and returns to his or her work queue, tickets for all the employee's
security groups are displayed once again.

White Paper Page 4


Service Management

Dynamic subforms
ServiceCenter provides subforms to display specialized information. By default, the
name of the subform is specified using Forms Designer, and is hard-coded so that the
subform is static. A dynamic subform is a subform that was created in Forms Designer
where a variable was used to specify the subform name. A subform can be changed
dynamically at execution time.

With dynamic subforms, generic information such as ticket categorization, contact


information, Service Level Agreement (SLA) information, ticket history, and ticket alerting
can be put into a main form such as problem.template.update. Then, all customer-
specific information can be put onto a single subform. As the customer changes from
ticket to ticket, the subform display dynamically changes to the unique information and
format required for each customer.

To reduce the effort of creating these company-specific subforms, Peregrine created an


application to generate them automatically, based on information in the company file.
The administrator simply enters the labels, field names and required field types into the
company record and saves the record. A subform with the correct naming convention
(company.<company_name>.subformat) based on the requested information is
automatically generated. If the subform with that name already exists, it is overwritten.

Dynamic forms
When using ServiceCenter 5.1 version or higher, form names can be dynamically
changed using the Document Engine tailoring tool. Under some circumstances, an
employee may be allowed to see a record only in Read-only mode, or may have
restricted access to a record that provides information about the incident status. To limit
user access, it is easier to maintain and more efficient to change a form or its properties
with a single expression in the Document Engine than by using DVD statements on the
form to manipulate the display properties.

Benefits of this strategy


Dynamic subforms organize form architecture along modular lines, reducing the size and
complexity of main forms. A form record that previously contained several tabs for
different functions (such as Read-only, Read/write, or customer-specific information) can
be replaced by a relatively small form with generic information and a subform. Then these
can be made Read-only or writeable based on the I/O condition in the Document Engine
State; or can be restricted based on the form name in the Document Engine State.
Simplifying forms makes administration easier, more than offsetting the effort required to
create additional company subforms. Reducing the number of DVD statements
significantly decreases the time necessary to display a form on screen, making help desk
employees more efficient and increasing customer satisfaction.

Filling in information based on selection lists is a time-consuming process. With Data


Segregation, including only relevant data in selection lists lets the help desk employee
provide customers with faster service.

White Paper Page 5


Service Management

Steps to Implement
Peregrine provides an unload containing these sample changes. The reader should
apply this unload to an out-of-the-box ServiceCenter test instance, and use it for
reference while following these instructions.

Prerequisites
Make sure the following prerequisites are met:

1. Each Security Group must represent exactly one company.


2. Security Group names must be in upper-case.
3. The Company field must be required in Service Management.
4. Application Threading should be completely turned off for the user. Typically,
this is specified in the Profile records for the various modules in the System
(Service Management, Incident Management, ICM, Change Management, etc.).
5. For ServiceCenter 6.x, in the Windows Preferences menu, click to de-select Use
Form Caching.

Tailoring
The following steps show how to tailor this capability for the Incident Management
module.

1. Modify an existing operator to have multiple security groups.

White Paper Page 6


Service Management

2. The scmandant file should have records for the probsummary and company
dbdicts, and for all other files that should be protected based on the value of
company.

3. Create the scsecuritygroup records to match the companies (see


prerequisites 1 and 2)

4. Create three wizards. These are used to execute the mandant() function to
restore the default login Mandanten settings for the operator, and reset the
current company setting.
• MSP Switch Company
• MSP Reset Company
• MSP Switch Company 2 (which is copy of MSP Switch Company without the
call to the company-specific incident process)

White Paper Page 7


Service Management

5. Create a Process called company.specific.incident that sets the Mandanten


values based on the company selected; and then calls the apm.first application
and a company.specific.incident2 Process that sets only the Mandanten values.
These two steps are depicted in the two screens below:

White Paper Page 8


Service Management

6. Create a form called company.prompt.g that enables selection of the company.

7. Manually create a company-specific subform for each of the company records in


your system using the following naming convention:
company.<company_name_in_lower_case>.subformat.

As an alternative, you can use form settings from the company file and the
subform.create application that Peregrine provides to create subforms
dynamically. See the section Creating dynamic subforms on page 13 for more
information.

8. Add company-specific fields to the probsummary and problem dbdicts.

White Paper Page 9


Service Management

9. Modify the apm.quick and problem.template.* forms to include a tab that displays
the company-specific subform. This is done by:
a. Adding a Company-specific tab to the existing notebook objects on these
forms; or reusing an existing tab.
b. Adding a subformat object to the Company-specific tab. For the Format
property of the subformat object, specify the global variable
$G.company.sub.format.
10. Add a calculation to the login.DEFAULT formatcontrol to determine the
security groups an operator has upon login. The add condition for the calculation
is true, and the expression is:
$G.orig.secgroup=security.group in $file1

White Paper Page 10


Service Management

11. Modify the scm.advanced display screen to fill the name of the MSP Switch
Company wizard into a variable called $wizard.name.

12. Modify the probsummary Object record to call the wizard.run application
calling the wizard (where the name parameter = $wizard.name).

White Paper Page 11


Service Management

13. Modify the cc.create Process to set the Mandanten value based on the setting
in the call, and set the correct subform:
if (not null(company in $L.file)) then
($L.void=mandant(2, {company in $L.file});
$G.company.sub.format="company."+tolower
(company in $L.file)+".subformat")

14. Modify the cc.screlate Process to reset the Mandanten value to base settings.

15. Modify the im.view.init Process to set the subform to the company-specific
subform:
$G.company.sub.format="company."+tolower(company in
$L.file)+".subformat"

White Paper Page 12


Service Management

16. Modify the im.new.incident Process to call the MSP Switch Company 2 wizard.
(This Process is called from the im.search State.)

17. Modify the incidents link to allow the display only of categories for the contact’s
company. In ServiceCenter version 6 add the following Post Link Expressions to
the contact.name line:
$L.security.token=str(toupper(company in $File));
$L.void=mandant(2, {$L.security.token})
18. (Optional) To limit the probsummary list to display only records with the
categories in your Mandanten list, add a build list subroutine to the
formatcontrol login.DEFAULT to build a list $G.my.categories that contains
all categories this user is allowed to see. Then, in scaccess create a record for
probsummary with the query category isin $G.my.categories. This step
is not necessary in a system where Mandanten protection was set from
inception, because users would not have tickets in their queues with categories
that are not allowed.

Creating dynamic subforms


The subform.create application, a modified company.g form, and the company
formatcontrol record, can all be obtained from Peregrine Systems. The
subform.create application can create sub-forms dynamically based on information in the
custom.fields structured array in the company file. Follow these steps to create a form
dynamically:

1. First load the previously mentioned unload, then add the following fields to the
company dbdicts:

White Paper Page 13


Service Management

Field Datatype
custom.fields Array

custom.fields Structure

labels Character

fields Character

types Character

2. To create a dynamic subform, click the Support tab in ServiceCenter as a


SysAdmin user, and click Companies.

White Paper Page 14


Service Management

3. In the company form perform a true search. The following screen is displayed:

4. Click the record for the company for which you want to create or modify a sub-
form. Scroll down to the Custom Fields table.

White Paper Page 15


Service Management

5. Make any changes in the Custom Fields table. You can add fields and labels,
and change their types to Text, Fill, Multitext, and Checkbox.
6. Click either Save or OK to save the record.
7. Go to the Forms Designer in the Toolkit.
8. Search for the form called company.<company_name>.subformat.

9. You can perform the preceding steps on all other company records, following
these rules:
o Text can be put anywhere in fields that do not have the Array datatype.

o Multitext should be placed at the end, and input can be any Character Array
field.

o Fill can be used for fields that are associated with a field in a link record.

o Checkboxes can be used for any Boolean field.

If the table of custom fields remains empty, a subform containing only the title is created,
this helps avoid error messages when tickets for that company are displayed.

If a dynamically created form is changed in Forms Designer, these changes are undone
whenever the company record is updated.

White Paper Page 16

You might also like