Sei sulla pagina 1di 361

®

Advanced Customization Guide


5.5
This documentation and related computer software program (hereinafter referred to as the “Documentation”) is for
the end user’s informational purposes only and is subject to change or withdrawal by Computer Associates
International, Inc. (“CA”) at any time.

This documentation may not be copied, transferred, reproduced, disclosed or duplicated, in whole or in part, without
the prior written consent of CA. This documentation is proprietary information of CA and protected by the copyright
laws of the United States and international treaties.
Notwithstanding the foregoing, licensed users may print a reasonable number of copies of this documentation for
their own internal use, provided that all CA copyright notices and legends are affixed to each reproduced copy. Only
authorized employees, consultants, or agents of the user who are bound by the confidentiality provisions of the
license for the software are permitted to have access to such copies.

This right to print copies is limited to the period during which the license for the product remains in full force and
effect. Should the license terminate for any reason, it shall be the user’s responsibility to return to CA the reproduced
copies or to certify to CA that same have been destroyed.

To the extent permitted by applicable law, CA provides this documentation “as is” without warranty of any kind,
including without limitation, any implied warranties of merchantability, fitness for a particular purpose or
noninfringement. In no event will CA be liable to the end user or any third party for any loss or damage, direct or
indirect, from the use of this documentation, including without limitation, lost profits, business interruption,
goodwill, or lost data, even if CA is expressly advised of such loss or damage.

The use of any product referenced in this documentation and this documentation is governed by the end user’s
applicable license agreement.

The manufacturer of this documentation is Computer Associates International, Inc.

Provided with “Restricted Rights” as set forth in 48 C.F.R. Section 12.212, 48 C.F.R. Sections 52.227-19(c)(1) and (2) or
DFARS Section 252.227-7013(c)(1)(ii) or applicable successor provisions.

 2001 Computer Associates International, Inc.

All trademarks, trade names, service marks, and logos referenced herein belong to their respective companies.
Contents

Chapter 1: Introduction
What You Need to Know ..................................................................... 1-1
Conventions ................................................................................. 1-2

Chapter 2: Customizing Notification Methods


The Notification Process ...................................................................... 2-1
Environment Variables ....................................................................... 2-2
Customization Steps.......................................................................... 2-2
Creating a Script ......................................................................... 2-3
Adding the Notification Method ........................................................... 2-3

Chapter 3: Generating Custom Reports


Designing Reports ........................................................................... 3-2
Selecting Information for the Report........................................................ 3-2
Creating a Report Template ............................................................... 3-2
Block Statements ..................................................................... 3-3
Layout Statements .................................................................... 3-3
Variable Expressions .................................................................. 3-5
Example ............................................................................. 3-6
Generating Reports........................................................................... 3-9
Running the Report Program .............................................................. 3-9
Displaying a Dialog (UNIX Only) ......................................................... 3-10
Reference .................................................................................. 3-10
Variable Expressions .................................................................... 3-10
Functions ............................................................................... 3-12
BLOCK................................................................................. 3-15
FOOTER ............................................................................... 3-17
HEADER ............................................................................... 3-18
HEADER2 .............................................................................. 3-19

Contents iii
PAGE FOOTER .......................................................................... 3-20
PAGE HEADER ......................................................................... 3-21
PRINT .................................................................................. 3-22

Chapter 4: Using Screen Painter


Introduction ................................................................................. 4-1
Configuration Overview ................................................................... 4-2
Customizing the Database Schema ......................................................... 4-3
Customizing the Object Schema ............................................................ 4-3
Customizing the Windows ................................................................. 4-4
Tags ................................................................................. 4-4
Relationship Between Window (Form) Groups ........................................... 4-5
Window Naming Conventions ................................................................. 4-5
Basic Steps for Customizing Windows .......................................................... 4-6
Starting Screen Painter ........................................................................ 4-6
Opening an Existing Window .................................................................. 4-7
Copying a Window Definition ................................................................. 4-8
Customizing a Window ....................................................................... 4-9
Arranging Items on a Window ............................................................. 4-9
Defining the Tabbing Order ............................................................... 4-10
Working with Controls ................................................................... 4-10
Adding Controls ..................................................................... 4-11
Editing Controls ..................................................................... 4-12
Working with Tags ...................................................................... 4-12
Working with Menus..................................................................... 4-14
Adding a Menu Bar .................................................................. 4-14
Adding Menu Commands ............................................................ 4-15
Editing a Menu ...................................................................... 4-17
Adding Remote References ............................................................... 4-18
Defining the Remote Reference ........................................................ 4-18
Activating the Remote Reference from a Window ....................................... 4-20
Saving Changes ............................................................................. 4-22
Previewing a Window ....................................................................... 4-22
Quitting Screen Painter ...................................................................... 4-22
Testing Your New Window ................................................................... 4-22

iv Advanced Customization Guide


Chapter 5: Customizing the Database Schema
General Procedures .......................................................................... 5-2
Making Backups ......................................................................... 5-2
Identifying the Schema Items to Modify .................................................... 5-2
Updating the Database Schema ............................................................ 5-3
Populating New Reference Tables.......................................................... 5-4
Specific Procedures .......................................................................... 5-5
Lengthening Fields ....................................................................... 5-5
Making a Field Required .................................................................. 5-7
Making a Field Required Without Making Schema Changes .................................. 5-9
Adding Non-Reference Fields to Tables .................................................... 5-9
Adding Reference Fields to Tables ........................................................ 5-12
Adding Reference Tables................................................................. 5-14
Defining Activity Associations for User-Defined Attributes .................................. 5-19

Chapter 6: Customizing Queries and Messages


Defining Scoreboard Queries .................................................................. 6-1
Stored Queries for Logged-in User ......................................................... 6-2
Syntax for cr Object ................................................................... 6-2
Syntax for cnt Object .................................................................. 6-3
WHERE Clause ...................................................................... 6-3
Label ................................................................................ 6-3
The IN Keyword ..................................................................... 6-4
Time-Based Queries ...................................................................... 6-5
Start Time ........................................................................... 6-5
End Time ............................................................................ 6-6
Trigger Time ......................................................................... 6-6
Customizing Activity Notification Messages .................................................... 6-7
Attributes from the Activity Log Object..................................................... 6-7
Information on Specific Requests .......................................................... 6-7

Chapter 7: Integration with Other Products


Asset Management Option or AimIT Enterprise Edition ......................................... 7-1
FAXServe ................................................................................... 7-2
Set Up Fax Notification ................................................................... 7-2
Determining Information to Send .......................................................... 7-4
Remote Control Option or ControlIT Enterprise Edition .......................................... 7-4

Contents v
Chapter 8: Version Control
Requirements ................................................................................ 8-2
Primary Server ........................................................................... 8-2
Secondary Server ......................................................................... 8-3
Client .................................................................................... 8-3
Version Control for Installation Customizations ................................................. 8-4
Version Control Server Modes ................................................................. 8-5
Version Control File Syntax .................................................................... 8-6

Chapter 9: Using the C Language API


Requirements ................................................................................ 9-1
Components ................................................................................. 9-2
API Server ............................................................................... 9-2
Specified Application Protocol I/O (SAPIO) ................................................. 9-3
API Library .............................................................................. 9-3
High-Level Functions.................................................................. 9-4
Low-Level Functions .................................................................. 9-4
Parsing Tools ......................................................................... 9-5
Usage ....................................................................................... 9-7
Sending Requests ......................................................................... 9-7
Using Special Characters in Requests ................................................... 9-8
Getting Responses ........................................................................ 9-9
Performing Queries ...................................................................... 9-10
Sample WHERE Clauses .............................................................. 9-11
Sample Query Messages .............................................................. 9-12
Handling Errors ......................................................................... 9-12
Error Format ........................................................................ 9-13
Attribute Lists ............................................................................... 9-14
Asset (NR) Attributes .................................................................... 9-15
Search Attributes for Modify Requests ................................................. 9-17
Creating and Modifying Assets ........................................................ 9-17
Identifying the Asset in Queries ....................................................... 9-19
Sample Asset Messages ............................................................... 9-19
Contact (CT) Attributes................................................................... 9-20
Search Attributes for Modify Requests ................................................. 9-21
Creating and Modifying Contacts ...................................................... 9-22
Identifying Contacts in Queries ........................................................ 9-23
Sample Contact Messages ............................................................. 9-24

vi Advanced Customization Guide


Sample Test Programs ....................................................................... 9-24
Processing Requests from a File ........................................................... 9-24
Creating a Query ........................................................................ 9-27
Compiling API Programs ................................................................ 9-28

Appendix A: Data Element Dictionary


A_Comment Table ...........................................................................A-1
Act_Log Table ...............................................................................A-2
Act_Tpl Table ...............................................................................A-2
Act_Tpl_Ent Table ...........................................................................A-3
Act_Type Table ..............................................................................A-3
Act_Type_Assoc Table .......................................................................A-5
Action Table .................................................................................A-6
Action_Delay Table ..........................................................................A-6
Action_Delay_Code Table ....................................................................A-6
Action_Status Table ..........................................................................A-6
Active_Boolean_Table Table ..................................................................A-7
Active_Reverse_Boolean_Table Table ..........................................................A-8
AD_Comment Table .........................................................................A-9
Animator Table ..............................................................................A-9
Asset_Assignment Table .....................................................................A-10
Atomic_Condition ..........................................................................A-11
Attached_Events Table ......................................................................A-12
Attachment Table ...........................................................................A-13
Attachment_Lrel ............................................................................A-14
Attribute_Name Table .......................................................................A-14
Audit_Log Table ............................................................................A-15
Behavior_Template Table ....................................................................A-16
Boolean_Table Table ........................................................................A-17
Bop_Workshift Table ........................................................................A-18
Call_Req Table..............................................................................A-18
Call_Req_Type Table ........................................................................A-21
Call_Solution Table .........................................................................A-22
Cause Table ................................................................................A-23
Change_Act_Log............................................................................A-23
Change_Category Table .....................................................................A-24
Change_Request Table ......................................................................A-25
Change_Status Table ........................................................................A-27
CL_Comment Table .........................................................................A-28
Close_Entry Table ...........................................................................A-28

Contents vii
Column_Name Table ....................................................................... A-28
Computer_Extension Table .................................................................. A-28
Contact Table .............................................................................. A-29
Contact_Method Table ...................................................................... A-32
Contact_Type Table......................................................................... A-32
Controlled_Table Table ..................................................................... A-33
Cr_Call_Timers Table ....................................................................... A-34
Cr_Status Table ............................................................................ A-35
CR_Stored_Queries Table ................................................................... A-36
CT_Comment Table ........................................................................ A-37
D_PAINTER Table ......................................................................... A-37
Delegation_Server Table .................................................................... A-38
Delegation_Status Table ..................................................................... A-38
Delegation_Transport Table ................................................................. A-39
Document_Repository Table ................................................................. A-39
Domain Table .............................................................................. A-40
Domain_Constraint Table ................................................................... A-41
Domain_Constraint_Type Table ............................................................. A-42
Escalation_Control Table .................................................................... A-42
Escalation_Entry_Log Table ................................................................. A-42
Escalation_Level Table ...................................................................... A-43
Event_Delay Table .......................................................................... A-43
Event_Delay_Type Table .................................................................... A-44
Events Table ............................................................................... A-45
Expense_Code_Opt Table ................................................................... A-46
Failure Table ............................................................................... A-46
General_Resource_Class Table ............................................................... A-46
Geo_Coord_Type Table ..................................................................... A-48
GRC_Comment Table ....................................................................... A-48
Group_Member Table....................................................................... A-49
Impact Table ............................................................................... A-50
Initial_Report Table ......................................................................... A-50
Interface ................................................................................... A-51
Internal_Organization Table ................................................................. A-52
IR_Order_By Table ......................................................................... A-53
IR_Stored_wc Table......................................................................... A-53
Key_Control Table .......................................................................... A-53
Knowledge_Keywords Table ................................................................ A-54
Knowledge_Lrel_Table Table ................................................................ A-54
Location Table ............................................................................. A-55
Location_Type Table ........................................................................ A-56
Lrel_Table Table............................................................................ A-57

viii Advanced Customization Guide


Manufacturer Table .........................................................................A-58
Manufacturer_Model Table ..................................................................A-59
Mdl_Comment Table ........................................................................A-60
Network_Resource Table ....................................................................A-60
Note_Board Table ...........................................................................A-64
Notification_Urgency Table ..................................................................A-64
Notify_Log_Header Table ...................................................................A-65
Notify_Msg Table ...........................................................................A-66
Notify_Object_Attr Table ....................................................................A-67
Notify_Rule Table ...........................................................................A-68
NR_Comment Table .........................................................................A-69
Options Table...............................................................................A-70
Priority Table ...............................................................................A-71
Prob_Category Table ........................................................................A-72
Property Table ..............................................................................A-73
Property_Template Table ....................................................................A-74
Recipient_Type Table........................................................................A-75
Remote_Ref ................................................................................A-76
Req_Property Table .........................................................................A-77
Req_Property_Template Table ...............................................................A-78
Resolution_Code Table ......................................................................A-79
Resource_Family Table ......................................................................A-79
Resource_Service_Status Table ...............................................................A-80
Reverse_Boolean_Table Table ................................................................A-80
Rpt_Meth Table .............................................................................A-81
Sequence_Control Table .....................................................................A-82
Service_Desc Table ..........................................................................A-83
Service_Level_Agreement Table ..............................................................A-84
Severity Table ..............................................................................A-84
Site Table ..................................................................................A-85
SLA_Progress_Level Table ...................................................................A-85
SLA_Progress_Notification_Log Table ........................................................A-86
SLA_Template Table ........................................................................A-86
Software_Extension Table ....................................................................A-87
Spell_Macro Table ..........................................................................A-88
Spell_Macro_Type Table .....................................................................A-89
SQL_Script Table ...........................................................................A-90
Survey .....................................................................................A-90
Survey_Answer .............................................................................A-91
Survey_Answer_Template ...................................................................A-92
Survey_Question............................................................................A-93
Survey_Question_Template ..................................................................A-94

Contents ix
Survey_Template ........................................................................... A-95
System_Defaults Table ...................................................................... A-95
Table_Name Table .......................................................................... A-95
Task_Status Table .......................................................................... A-96
Task_Type Table ........................................................................... A-97
Ticket_Status Table ......................................................................... A-97
Timespan .................................................................................. A-98
Timezone Table ............................................................................ A-99
Transition_Points Table .................................................................... A-100
Trouble_Code Table ....................................................................... A-100
Trouble_Ticket Table ...................................................................... A-100
TT_Comment Table ........................................................................ A-101
TT_Order_By Table ........................................................................ A-101
TT_Stored_wc Table ....................................................................... A-101
TT_Template Table ........................................................................ A-101
Urgency Table ............................................................................ A-101
User_Query ............................................................................... A-102
V_Comment Table ......................................................................... A-103
Vendor_Provider Table .................................................................... A-103
Vendor_Provider_Type Table ............................................................... A-104
Workflow_Task Table ...................................................................... A-105
Workflow_Task_Template Table ............................................................ A-106

Appendix B: Objects and Attributes


ANI Object.................................................................................. B-1
act_com Object .............................................................................. B-2
act_stat Object ............................................................................... B-2
act_type_assoc Object ........................................................................ B-2
actbool Object ............................................................................... B-3
actrbool Object .............................................................................. B-3
alg Object ................................................................................... B-4
atev Object .................................................................................. B-5
atomic_cond Object .......................................................................... B-5
attmnt Object ............................................................................... B-6
attmnt_lrel Object ........................................................................... B-7
aty Object ................................................................................... B-7
audlog Object ............................................................................... B-8
bhvtpl Object................................................................................ B-9
bool Object ................................................................................. B-10
chg Object ................................................................................. B-10

x Advanced Customization Guide


chgalg Object ............................................................................... B-13
chgcat Object ............................................................................... B-14
chgstat Object............................................................................... B-15
close_entry Object ........................................................................... B-15
cmth Object ................................................................................ B-16
cnote Object ................................................................................ B-16
cnt Object .................................................................................. B-16
cpex Object ................................................................................. B-18
cr Object ................................................................................... B-19
cr_prp Object ............................................................................... B-22
cr_prptpl Object ............................................................................ B-22
crs Object .................................................................................. B-23
crsol Object ................................................................................. B-23
crsq Object ................................................................................. B-24
crt Object ................................................................................... B-24
ctab Object ................................................................................. B-25
ctimer Object ............................................................................... B-25
ctp Object .................................................................................. B-26
dcon Object................................................................................. B-26
dcon_typ Object ............................................................................ B-27
dlgsrvr Object .............................................................................. B-27
dmn Object ................................................................................. B-28
doc_rep Object .............................................................................. B-28
evt Object .................................................................................. B-29
evtdly Object ............................................................................... B-29
evtdlytp Object ............................................................................. B-30
fail_t Object ................................................................................ B-30
grc Object .................................................................................. B-31
grpmem Object ............................................................................. B-32
hier Object ................................................................................. B-32
imp Object ................................................................................. B-33
intfc Object ................................................................................. B-33
ir Object .................................................................................... B-33
kmlrel Object ............................................................................... B-35
kwrd Object ................................................................................ B-35
loc Object .................................................................................. B-35
lr Object .................................................................................... B-36
lrel1 Object ................................................................................. B-37
macro Object ............................................................................... B-37
macro_type Object .......................................................................... B-38
mfr Object .................................................................................. B-39
mfrmod Object.............................................................................. B-39

Contents xi
noturg Object .............................................................................. B-40
nr Object................................................................................... B-40
nr_com Object .............................................................................. B-42
nrf Object .................................................................................. B-43
ntfl Object ................................................................................. B-43
options Object .............................................................................. B-44
org Object ................................................................................. B-44
pcat Object ................................................................................. B-45
pri Object .................................................................................. B-46
prod_list Object ............................................................................ B-46
prp Object ................................................................................. B-47
prptpl Object ............................................................................... B-47
rescde Object ............................................................................... B-48
rptm Object ................................................................................ B-48
rrf Object .................................................................................. B-49
rss Object .................................................................................. B-49
sdsc Object ................................................................................. B-50
seq Object.................................................................................. B-50
sev Object.................................................................................. B-51
site Object ................................................................................. B-51
sla Object .................................................................................. B-52
slatpl Object................................................................................ B-53
survey Object .............................................................................. B-53
svy_ans Object ............................................................................. B-54
svy_atpl Object ............................................................................. B-54
svy_qtpl Object ............................................................................. B-55
svy_ques Object ............................................................................ B-55
svy_tpl Object .............................................................................. B-56
swex Object ................................................................................ B-56
tcat Object ................................................................................. B-57
tskstat Object ............................................................................... B-57
tskty Object ................................................................................ B-58
tspan Object................................................................................ B-59
tt Object ................................................................................... B-60
tt_act Object................................................................................ B-61
tt_com Object .............................................................................. B-62
tt_esclvl Object ............................................................................. B-63
tt_stat Object ............................................................................... B-63
tttpl Object ................................................................................. B-64
tz Object ................................................................................... B-64
urg Object ................................................................................. B-65
usq Object ................................................................................. B-65

xii Advanced Customization Guide


vp Object ................................................................................... B-66
vpt Object .................................................................................. B-66
wf Object ................................................................................... B-67
wftpl Object ................................................................................ B-69
wrkshft Object .............................................................................. B-70

Appendix C: Table and Object Cross-References


Table to SQL Name and Object ................................................................ C-1
SQL Name to Table and Object ................................................................ C-6
Object to Table and SQL Name ............................................................... C-11

Appendix D: Schema Files Syntax


TABLE Statement ............................................................................ D-1
TABLE_INFO Statement ...................................................................... D-4
Mapping Statement .......................................................................... D-6

Appendix E: Object Definition Syntax


Directories .................................................................................. E-1
Types of Statements .......................................................................... E-1
OBJECT Statement ........................................................................... E-2
ATTRIBUTES Optional Statement.......................................................... E-3
ON Statements ........................................................................... E-4
FACTORY Optional Statement ............................................................ E-6
STANDARD_LISTS Optional Statement .................................................... E-7
MODIFY Statement .......................................................................... E-9
MODIFY FACTORY Statement ............................................................... E-10

Index

Contents xiii
Chapter

Introduction
1
This guide explains how to customize Unicenter Service Desk, the most advanced
and comprehensive service desk management tool available for the UNIX and
Windows operating systems. It is intended for the system administrator or
application developer whose job it is to change the way Unicenter Service Desk
looks and works. Some customization techniques apply to all of Unicenter
Service Desk, while other techniques are specific to each function. The types of
customization that you can perform include:
■ Generating custom reports
■ Customizing the database schema
■ Customizing the object schema
■ Customizing windows and add new windows
■ Customizing notification methods
■ Customizing queries and messages
■ Integrating with other products

What You Need to Know


To fully understand the information in this book, you should have a basic
knowledge of:
■ Programming terminology, techniques, and concepts, especially if you are
using the Unicenter Service Desk C language API
■ The operating system with which you will be working
■ Basic database concepts such as records (rows), fields (columns), tables
(relations), schemas, and SQL
■ Object-oriented programming concepts, if you are customizing windows and
the database schema

Before reading this guide, you should be familiar with the information in the
Unicenter Service Desk Getting Started and Administrator Guide. This guide does
not describe any of the basic concepts that those guides discuss.

Introduction 1–1
Conventions

Conventions
When representing syntax and user input, the following conventions are used:

Convention Usage
Bold Indicates text that must be typed exactly as shown
Italic Indicates a variable name or placeholder for which you
must supply an actual value—this convention is used in
explanatory text, as well as syntax
[ ] (square brackets) Indicates an optional item
| (vertical bar) Indicates that you must choose one option or the other
… (ellipsis) In syntax, indicates that an item that can be repeated; in
examples, indicates that an irrelevant portion is omitted

In addition, the following operating system dependent conventions are used to


refer to the directory where you installed Unicenter Service Desk:
■ On Windows, installation-directory
■ On UNIX, the $NX_ROOT environment variable

Tip: UNIX is case-sensitive, so, if you are using UNIX, you must be careful to
type your login ID, UNIX commands, file names, and so forth, in the correct
case.

1–2 Advanced Customization Guide


Chapter

Customizing Notification Methods


2
The Unicenter Service Desk automatic notification methods notify personnel at
key points in the help desk management process. The standard notification
methods are (see the online help for a complete description of each):
■ Email
■ FAXserve
■ Notification (Log)
■ Pager_Email

You can define customized notification methods to specify a new method of


transmission, for example, voice mail, display boards, or a specific printer. You
can also access data from another application and include it in the notification
message.

This chapter explains how to create your own customized notification methods.
See the chapter “Notifications” in the Administrator Guide for information about
using the standard notification methods.

The Notification Process


Request and change order notifications are processed when the request or change
order is saved, as described below:
■ For each notification requested, the notification processor sets the
NX_NTF_MESSAGE and NX_NTF_SUMMARY environment variables using
the Notification Message Title and Notification Message Body information
provided on the Message Template notebook page of the Activity
Notifications Detail window.
■ A list of contacts to receive the notification is built from the information
provided on the Objects, Contacts, Types, and Survey notebook pages of the
Activity Notifications Detail window. For those having a notification method
matching the Notify Level, a notification is generated first to the notification
log.
■ If the notification method is other than Notification (for example, Email or
FAXserve), the notification processor executes the notification method for
each contact in the list.

Customizing Notification Methods 2–1


Environment Variables

Environment Variables
Two sets of environment variables are created and made available to the
notification method. The first set of environment variables is always available:

Environment Variable Description


NX_NTF_MESSAGE The completed message template text,
including full expansion of all variables.
NX_NTF_SUMMARY The completed message template header,
including full expansion of all variables.

The second set of environment variables is available only if the recipient is a


valid Unicenter Service Desk contact. These variables are created and filled with
values from the recipient’s Contact Detail record as shown in the following table:

Environment Variable Contact Detail Window Field(s)


NX_NTF_BEEPER_PHONE Pager Number
NX_NTF_COMBO_NAME Last Name, First Name, Middle Name
NX_NTF_CONTACT Contact ID
NX_NTF_EMAIL_ADDRESS Email Address
NX_NTF_FAX_PHONE Fax Number
NX_NTF_PUBLIC_PHONE Phone Number
NX_NTF_USERID System Login
NX_NTF_VOICE_PHONE Alt. Phone #

Note: If Where to Get Recipient on the Notification Rule Detail is set to Specific
Script or Action’s Script, these environment variables cannot be used because
these methods do not use contact information.

Customization Steps
Creating a customized notification method involves the following steps:
1. Create a script to process the message template and transmit it to the
recipient. The script can be any executable, depending on the platform.
Third-party or public domain interpreters can also be used. Typically,
Bourne shell scripts are used on UNIX and .bat files are used on Windows. If
your script requires a special template, you must create it.
2. Add the new notification method to Unicenter Service Desk.

2–2 Advanced Customization Guide


Customization Steps

Creating a Script

Use the following steps to create a notification method script:


1. Determine how you want the notification to be delivered (for example,
printed on a particular printer).
2. Determine the contents of the notification message.
3. Specify what information from the message template to include in the
notification.
4. Set up a script to transmit the notification.
5. Make the script an executable file in the path of the Unicenter Service Desk
user.

Adding the Notification Method

After you create a script, you must define the new notification method to
Unicenter Service Desk. To do so, perform these steps using the Unicenter
Service Desk client interface:
1. Choose Notification Setup, Notification Methods from the Administration
menu. The Notification Method List window appears:

Customizing Notification Methods 2–3


Customization Steps

2. Choose New from the File menu. The Notification Method Detail window
appears:

3. Enter data in the following fields:


Symbol—Identify the notification method. This is a required field (1-6
alphanumeric characters).
Write to File—Check this box to write the context information of the
notification method to a file.
Description—Describe the notification method (1-40 alphanumeric
characters).
Notification Method—Specify the full path of the executable script for the
notification method, preceded by launchit.exe for Windows server (1-240
alphanumeric characters).
Note: Since the notification method runs from the Unicenter Service Desk
server, you must put the notification method script in a directory that can be
accessed from the path on the server. On UNIX, depending on the shell you
are running, you may be able to check this by executing this command:
which pathname_to_script

If there appears to be a problem with the notification methods, examine the


logs in the $NX_ROOT/log directory on UNIX.
4. Click OK.

2–4 Advanced Customization Guide


Customization Steps

UNIX Example The following steps create a notification method shell script that sends the
notification message to the help desk printer, HelpPR2. In this example, the
notification message will consist of the message header and the message text
from the message template:
1. Set up the shell script to assemble the notification text and transmit it, as
shown below:
#!/bin/sh
echo "

TO: $NX_NTF_USERID
SUBJECT: $NX_NTF_SUMMARY

MESSAGE:
$NX_NTF_MESSAGE" |lp -dHelpPR2

2. Name the executable file hlp_print, and place it in any directory used for
common scripts at your site, such as /usr/local/netbin.
3. Make the shell script an executable file using chmod.
4. Using the Unicenter Service Desk client interface, choose Notification Setup,
Notification Methods from the Administration menu.
5. Choose New from the File menu.
6. Enter data in these fields:

Field Value
Symbol HelpPR2
Description Send backup notification to help desk printer HelpPR2
Notification Method /usr/local/netbin/hlp_print

7. Click Close to close the detail window, and click Close again to close the list
window.

Customizing Notification Methods 2–5


Chapter

Generating Custom Reports


3
Unicenter Service Desk lets you customize existing reports or design your own
reports. You can:
■ Customize existing reports to contain exactly the information you need, such
as additional fields.
■ Produce a new report with any information available from the database in a
format that is useful to you.
■ Pass arguments of variable information into the report by including
command line arguments. Arguments can be values or expressions, such as
the current value of a field or an SQL WHERE clause expression.
■ Generate reports at the command line, from a script file, or from a menu
option.

To generate a custom report, you need to follow these basic steps, which are
discussed in more detail in this chapter:
1. Design the report:
■ Decide what data you want to include in the report
■ Create a report template that contains SQL-like queries, expressions, and
functions to manipulate data, and statements to format the data for the
printed page
2. Generate the report from:
■ The command line
■ A Unicenter Service Desk menu option
■ A script file

Note: If you have a third-party database system such as Sybase or Oracle, you
can use its report generating tools to create reports with data from the Unicenter
Service Desk database. See the documentation for your database system for
information about reporting on databases.

Generating Custom Reports 3–1


Designing Reports

Designing Reports
To design a custom report, you should have a basic understanding of the
following concepts:
■ Writing SQL queries.
■ Programming, especially in C.
■ Creating special programs or script files that you may need to execute before
you execute the report template program. For example, you may want to
create a program that prompts the user to enter an argument, such as the
conditions for a WHERE clause. These programming techniques are not
described in this chapter.

Selecting Information for the Report

To help you select data from the Unicenter Service Desk database for customized
reports, see the appendix “Data Element Dictionary” in this guide lists database
tables, fields, descriptions, and other database information.

Creating a Report Template

A report template is a file that, when executed by a Unicenter Service Desk report
program, generates a report of a particular design. A report template contains
variable expressions, functions, and statements that define how the data is
fetched, calculated, and printed. For complete descriptions of the variable
expressions, functions, and statements that make up a report template, see the
Reference section at the end of this chapter. For a sample report template that
illustrates how to pass arguments into a report, see the example at the end of this
section.

To create a report template, create a file containing the following types of report
statements:
■ Block statements to define the Unicenter Service Desk database tables from
which data will be fetched and the actions that are to be performed on the
fetched data
■ Layout statements to define how the data variables and literal text will
appear on the report output

Each of these types of statements is described in more detail below.

3–2 Advanced Customization Guide


Designing Reports

Tip: Store all your .rpt files in a new directory, $NX_ROOT/site/mods/rpt


(UNIX) or installation-directory\site\mods\rpt (Windows). This will preserve
them when you upgrade to a new release of Unicenter Service Desk.

Block Statements

Block statements provide the report template with its framework. They define the
data to be manipulated and control the execution of the report. Block statements
begin with a name that must be unique throughout the report template. They
then have two sections:
■ The data query section contains SQL SELECT, WHERE, and SORT clauses to
define which data will be fetched from the database
■ The output program section defines the actions that are to be performed on
the fetched data. It contains variable declarations, functions, and other block
statements, including nested statements, which can be used to create
conditional reports. It can also contain layout statements, which format and
print the data as ASCII text.

A simplified version of the syntax of a block statement that shows the


relationship between the two sections follows:
BLOCK blockname ("SELECT clause", "WHERE clause")
SORT clause {output program statements}

See BLOCK in the Reference section later in this chapter for a detailed version of
the syntax, along with a description of each clause and parameter.

Layout Statements

Layout statements define how variables and literal text will appear on the report
output:
■ You can use the PAGE HEADER and PAGE FOOTER statements to place
information at the top and bottom of each report page.
■ You can nest HEADER, HEADER2, FOOTER, and PRINT statements within
the braces section of the parent BLOCK statement to create titles and
summary totals for the various reporting sections (parts of the report output).

Tip: When nesting, be careful not to confuse the braces used in layout
statements with the braces that encompass the nested statements within a
parent BLOCK statement.

Generating Custom Reports 3–3


Designing Reports

■ You can include literal text to create labels and line drawing characters to
enhance the appearance of the report.

The layout statements are as follows:


■ PAGE HEADER places information at the top of each report page. This is
placed outside the BLOCK statement.
■ PAGE FOOTER places information at the bottom of each report page. This is
placed outside the BLOCK statement.
■ HEADER places information at the top of each reporting section. This is
placed inside the BLOCK statement.
■ HEADER2 places continuation header information at the top of each
succeeding page of a reporting section, if that reporting section extends over
multiple pages. This is placed inside the BLOCK statement.
■ FOOTER places information at the bottom of each reporting section. This is
placed inside the BLOCK statement.
■ PRINT places the data in a reporting section. This is placed inside the
BLOCK statement.

You can also use the following predefined variables in layout statements:
■ CT prints the current time
■ CD prints the current date
■ PG prints the page number

Data Fields A data field is any variable in a layout statement that results in a piece of data
when you generate the report. Use the following guidelines when placing fields
in your report template:
■ Enclose data fields in square brackets ([ ]).
■ The field’s square brackets define its print space on each line of output. This
space is the number of characters delimited by the square brackets, including
the brackets. If the output of a variable is longer than the print space, the
output is truncated. To ensure that the field has enough print space, you can
add trailing spaces between the variable name and the closing bracket. For
example, these trailing spaces allow for contacts with long names:
[contact ]

■ For output that is less than one line, the field can be closed with a greater
than right angle bracket (>). This extends the print space to the right margin.
For example, the right angle bracket used in a HEADER statement allows the
current date to print without being truncated:
[CD >

3–4 Advanced Customization Guide


Designing Reports

Note: When the field is more than one line and the variable is flagged as
MULTILINE, the right angle bracket (>) acts exactly the same as the right
square bracket (]). If the print statement for a MULTILINE variable is closed
with the right angle bracket (>), characters wrap on white space to stay
within the field defined by the left bracket ([) and the right angle bracket (>).
Also, if the variable is not MULTILINE, the right angle bracket (>) causes all
the data to be displayed on the current line regardless of its length.
■ A field in a layout statement can refer to a previously defined variable or a
column name.
■ To reference a variable or column name in another block statement, use the
following syntax:
blockname::column | variable-name

Literal Text Literal text allows you to include supplementary information in your report. It
will appear on the report output exactly as specified in the template. To include
literal text in a layout statement, place it on any line after the opening brace ({)
and before the closing brace (}). Do not enclose it in quotes or square brackets.

In this example, “ACME Company” and “Page: ” are interpreted as literal text by
the Unicenter Service Desk report program:
PAGE HEADER {
ACME Company Page: [PG]
}

See FOOTER, HEADER, HEADER2, PAGE FOOTER, PAGE HEADER, and


PRINT in the Reference section later in this chapter for more information on the
layout statements.

Variable Expressions

Every value that you want to appear on the report output can be assigned to a
variable. Variable expressions let you:
■ Manipulate Unicenter Service Desk data
■ Use functions to perform calculations on fetched values

The following example creates a variable named desc to reference the contents of
the chg_desc field in the Change Order window. The MULTILINE flag allows the
variable to print in its entirety over multiple lines:
desc = chg_desc MULTILINE

The following example prints the description. The output will be as long as the
length defined in the brackets. If you want a longer description to appear,
increase the number of spaces in the brackets.
PRINT { [desc ] }

Generating Custom Reports 3–5


Designing Reports

See Variable Expressions in the Reference section later in this chapter for more
information on variable expressions.

Example

The Affected Contact Report template below shows how to create a report
template. It produces a report that lists open change orders with the same
affected contact:
PAGE HEADER { As Of: [CD>
[CT>
}
PAGE FOOTER {
Page: [PG>
}
BLOCK chg ("SELECT \
chg_ref_num, description, priority, \
status, category, assignee \
FROM Change_Request",
"WHERE #Change_Request.status = ‘OP’ \
AND #Change_Request.requestor = #Contact.id \
AND #Contact.c_last_name = ? \
AND #Contact.c_first_name = ? \
AND #Contact.c_middle_name = ? " , $1, $2, $3)
{
BLOCK st ("SELECT sym FROM Change_Status",
"WHERE code = ? ", chg::status) {}
BLOCK (strlen(category)) cat ("SELECT sym FROM Change_Category",
"WHERE code = ? ", chg::category) {}
HEADER {
OPEN CHANGE ORDERS WITH SAME REQUESTOR/FROM CONTACT
CHANGE ORDER Summary Pri Status Category Assignee
}
HEADER2 {
CHANGE ORDER Summary Pri Status Category Assignee
--------------------------------------------------------------------
}
num = chg_ref_num;
desc = description MULTILINE;
pr = deref (priority);
stat = st::sym;
catgry = cat::sym;
asgn = deref (assignee);

PRINT {
[num ] [desc ] [pr] [stat] [catgry] [asgn ]

}
}

3–6 Advanced Customization Guide


Designing Reports

Page Header The PAGE HEADER statement tells what to print on the top of each page of the
report. CD and CT are predefined variables that give the current date and time.
They will appear in the header on the top of each page. Each of these fields ends
with an angle bracket, which allows the field to expand towards the right margin.
Because “As Of:” is outside of a field and because it is on a line after the opening
brace, it will appear as literal text on the report output.
PAGE HEADER { As Of: [CD>
[CT>
}

Page Footer PAGE FOOTER includes the page number with “Page: ” as literal text.
PAGE FOOTER {
Page: [PG>
}

Note: Since PAGE HEADER and PAGE FOOTER statements produce global
headers and footers, they are not included in a BLOCK statement.

Reporting Section The main BLOCK statement, along with its nested statements, creates a reporting
section. A reporting section is usually only part of the data in the report, but this
report has only one reporting section. The unique name of this block is chg.

The SELECT clause selects the columns to be included in the data for the report
FROM three tables, but only where conditions specified by the WHERE clause
are met.

The last three AND expressions in the WHERE clause contain question marks,
which act as argument placeholders that take the values of the $1, $2, and $3
arguments, in order. Thus $1 is for c_last_name, $2 is for c_first_name, and $3 is
for c_middle_name. The $1, $2, and $3 arguments obtain the values of command
line arguments. For a command line example, see Running the Report Program
later in this chapter.
BLOCK chg ("SELECT \
...",
"WHERE \
...\
AND #Contact.c_last_name = ? \
AND #Contact.c_first_name = ? \
AND #Contact.c_middle_name = ? ", $1, $2, $3)

Generating Custom Reports 3–7


Designing Reports

Reporting Section The opening brace starts the output program part of the BLOCK statement: its
Headers statements tell what to do with the data fetched by the SELECT and WHERE
clauses. This example has nested HEADER and HEADER2 statements that will
apply to this reporting section only. HEADER2 prints only if the report output
is on multiple pages.
{
...
HEADER {
OPEN CHANGE ORDERS WITH SAME REQUESTOR/FROM CONTACT
CHANGE ORDER Summary Pri Status Category Assignee
}
HEADER2 {
CHANGE ORDER Summary Pri Status Category Assignee
--------------------------------------------------------------------
}

Variable Assignments Here are the variable expressions that act on the data specified by the SELECT
clauses. They assign variables to the values of columns and to the results of
expressions. These variables match the fields in the PRINT statement that
follows.

The MULTILINE flag on the desc variable causes them to print or display on
multiple lines rather than being truncated. The deref function is used to return
the string expression contained in the referenced columns.
num = chg_ref_num;
desc = description MULTILINE;
pr = deref (priority);
stat = st::sym;
catgry = cat::sym;
asgn = deref (assignee);

Printing The PRINT statement contains the fields to be printed. This statement could have
also included literal text of lines that could enhance the appearance of the report.
The final ending brace matches the opening brace of the output program section
of the BLOCK statement.
PRINT {
[num ] [desc ] [pr] [stat] [catgry] [asgn ]

}
}

3–8 Advanced Customization Guide


Generating Reports

Generating Reports
After you create the report template, you can generate the report by running the
Unicenter Service Desk report program. The program can be executed from:
■ The command line
■ A Unicenter Service Desk menu option
■ A script file

Note: If you are working on a UNIX server, you can include the report output
redirector (rptuiDsp) parameter with the report command to display a dialog
with options for sending the report to the screen, a file, or the printer. See
Displaying a Dialog (UNIX Only) later in this chapter for details.

Running the Report Program

To generate a report from the command line, on UNIX, you must use the
Unicenter Service Desk report command:
pdm_task report [-h][-e][-f][-F ffstring][-p pagelength] filename [command-line
arguments]

Note that the report command is preceded by the pdm_task command, which
sets necessary environment variables. If the report is designed to accept
command line arguments, you must enter one for each argument in the report
template.

On Windows, use the rpt_srv command:


rpt_srv report-title

For a complete description of each option in the report and rpt_srv commands,
see the CA Reference Guide.

UNIX Example This example includes the three command line arguments (Smith, Jane, and L)
needed for the Affected Contact Report described in the report template example
earlier in this chapter:
pdm_task report /reports/myrpt.rpt Smith Jane L

If an argument is empty, you must use a null string. For example, if Jane Smith
did not have a middle initial, the syntax would be:
pdm_task report /reports/myrpt.rpt Smith Jane ""

Windows Example rpt_srv \reports\myrpt.rpt Smith Jane L

Generating Custom Reports 3–9


Reference

Displaying a Dialog (UNIX Only)

You can include the report output redirector (rptuiDsp) parameter with the
report command to display a dialog. The dialog displays the options to print the
report to a file, display it in an Xterm window, or send it to the printer. For
example:
pdm_task rptuiDsp report /reports/myrpt.rpt Smith Jane L

This example adds the title “Inventory Report” to the dialog:


pdm_task rptuiDsp report /reports/myrpt.rpt Smith Jane L "title:Inventory Report"

Reference
This section describes the variable expressions, functions, and statements in a
report template.

Variable Expressions

Variable expressions define the data to be printed or displayed. They are placed
in a layout or block statement.

Syntax
variable-name = expression [flags]

Flags

Flags format the result of a variable expression. Use these flags to format text
fields:

Flag Description
MULTILINE Displays on multiple lines rather than truncating
RIGHT Right justifies

3–10 Advanced Customization Guide


Reference

Use these flags to format numeric fields:

Flag Description
BLANKZERO Functions as null-value fields, which do not print a zero
BOOL Converts zero to no or non-zero to yes
REAL Displays as floating point (default is integer)
ZEROFILL Shows leading or trailing zeros

Use these flags to format date and time fields:

Flag Description
DATE Shows only date portion of date/time
DAYS Displays durations with days
HOURS Displays durations with hours
MINUTES Displays durations with minutes
SECONDS Displays durations with seconds
TIME Shows only time portion of date/time

Example
desc = description MULTILINE

Remarks

Variable names must be unique within a BLOCK statement and must not
duplicate any column in the SELECT clause for the block. The same variable
name can be used in different BLOCK statements but it cannot be repeated
within a BLOCK statement.

Follow these syntax rules when including expressions in your report template:
■ Use any valid C expression.
■ Do not enclose variable or column names in quotes.
■ Enclose string constants in single or double quotes.
■ You can refer to a nested block, but only if it contains exactly one row.
■ To include a column name that is the same as a keyword, precede the column
name with a backslash (\). For example, ALIAS is a keyword and \alias is a
column name.

Generating Custom Reports 3–11


Reference

■ Use the dollar sign ($) to reference environment variables, such as $name,
and to reference command line arguments, such as $n, where n is the position
of the argument on the command line.
■ To specify the number of command line arguments, use $#. For example, the
following expression means that if the number of command line arguments is
greater than one, use the additional argument as an argument; otherwise, set
the value of the argument to an empty string. Note that the report template
itself is considered a command line argument. Therefore, the number of
arguments is at least one.
$# > 1 ? $1 : "

■ Use ## to concatenate two strings, for example:


title = "This is the " ## "first line. "
long_name = first_name ## last_name

■ The following casts are supported:


– (number)
– (string)
– (date_time)
– (duration)
■ To reference a variable or column name in another block, precede the name
with its block name and two colons. For example:
blockname::column | variable-name

Functions

The following functions can be used in your report template:


■ is_null (expr) returns true if the expression is null
false = 0
true = is_null (false)

■ sqrt (expr) calculates square root of the expression


nine = 9
three = sqrt (nine)

■ pow (expr1, expr2) raises expr1 to the power expr2


two = 2
three = 3
eight = pow (two,three)

■ log (expr, expr) calculates the natural log of the expression


ten = 10
result = log (ten)

3–12 Advanced Customization Guide


Reference

■ catname (expr, expr, expr) concatenates three strings representing a contact


name into a string with commas, according to rules in the field format file
last = "Murphy"
first = "Fred"
middle = "P"
contact_name=catname (last, first, middle)

■ strlen (string) returns the length of the string


buffer = "A thirty character long string"
thirty = strlen(buffer)

■ strindex (string, pattern [, start_index]) returns the index of the first pattern
match, or the next pattern match after the start_index, in the string. Returns
-1 if there is no match.
buffer = "A thirty character long string"
zero = strindex(buffer, " [A-Z] ")
two = strindex(buffer, " [a-z] ")

■ substr (string, pattern [, length]) returns the portion of the string after the first
pattern match. It length is defined, it limits the length of the output string.
Returns a string of zero length, if there is no match.
buffer = "A thirty character long string"
last_word = substr(buffer, " [a-z]*$ ")
first_capital_letter = substr(buffer, " [A-Z] ",
1)

■ substr (string, index [, length]) returns the portion of the string after the index.
Its length is defined and limits the length of the output string. Returns a
string of zero length, if there is no match.
buffer = "Summary: The network card displays a
code of ... "
summary = substr(buffer, 9)
30_char_summary = strindex(buffer, 9, 30)

The remaining functions (pseudofunctions) perform on a block of data rather


than on variable expressions. These functions are usually placed in a BLOCK
statement to get information about a nested BLOCK statement’s data.
■ count (block-name) returns the number of rows in the block specified in the
BLOCK statement. The block-name must be a simple string.
BLOCK sample ("SELECT id FROM Contact") {
entries = count (sample)
}

■ sum (block-name, expr) executes the expression for each row of the specified
block and sums the result
BLOCK sample ("SELECT actual_cost, est_cost FROM Change_Request") {
difference = sum (sample, est_cost-actual_cost)
}

■ average (block-name, expr) executes the expression for each row of the block
and returns the average of the result
BLOCK sample ("SELECT actual_cost, est_cost FROM Change_Request"){
avg_difference = average (sample, est_cost-actual_cost)
}

Generating Custom Reports 3–13


Reference

■ prev (expr) returns the previous value of the expression. This function should
be used with caution so its value does not overwrite the latest value by
accident.
■ downtime (sla_schedule, expr1, expr2 [, delay-block, expr, expr]) invokes an SLA
downtime calculation. The first argument must be a string that identifies a
service level agreement that was defined on an SLA Detail window. The
other arguments are start and end times:
– expr1 is the start date/time of the event
– expr2 is the end date/time of the event
In this example, the third BLOCK statement fetches the delays and
sla_downtime uses these records to calculate the downtime.
BLOCK act ("SELECT id a_sla_id, a_start_dt, a_finish_dt FROM Action") {
BLOCK act_sla ("SELECT id, sla_sched FROM Service_Level_Agreement", "WHERE id =
? ", act::a_sla_id) {
BLOCK act_dly ("SELECT ad_start_dt, ad_end_dt FROM Action_Delay", "WHERE
ad_a_id = ? ", act::id) {}
sla_downtime (act_sla::sla_sched, act::a_start_dt, act::a_finish_dt, act_dly,
act_dly::ad_start_dt, act_dly::ad_end_dt)
}
}

■ deref (column-name) returns the string representation of the pointer by


performing an automatic lookup in the appropriate table.
BLOCK chg ("SELECT organization FROM Change_Request") {
org = deref (organization)
}

Because this pseudofunction involves lookups, it is valid only if it is the only


thing in the expression. For example, this is valid:
model = deref (nr_model)

This is not valid:


model = "model" ## deref (nr_model)

Note: Forward references to variables or blocks are not allowed.

3–14 Advanced Customization Guide


Reference

BLOCK

Block statements define the Unicenter Service Desk database tables from which
data will be fetched. Can include actions to perform on the fetched data.

Syntax
BLOCK blockname (
"SELECT [ALIAS,] field_name[, field_name ...]
FROM table_name[, table_name ...] "
[,"WHERE where_clause"][, arguments,] )
[SORT "sort clause"]
[,ALIAS]
{
output program statements
}

Parameters

blockname Identifies the block. Each blockname must be unique.

SELECT clause Follows the blockname and is delimited by double quotes. Lists the columns to be
fetched, followed by the keyword FROM, followed by the tables from which the
columns are to be fetched. It is required. Here is an example with three tables
specified:
"SELECT open_date, chg_ref_num\
c_last_name, c_first_name\
FROM Change_Request,\
Contact"

You cannot include an SQL alias, such as:


"SELECT open_date As OpenDate"

WHERE clause Optionally follows the SELECT clause and further qualifies the information
selected. Can be a string constant or an expression evaluating to a string. If the
WHERE clause is an empty string, all records are returned. WHERE clauses can
contain replacement arguments (which refer to variables or command line
arguments) using the syntax of a question mark (?). The following WHERE clause
could follow the previous SELECT clause:
"WHERE #change_request.open_date > = ? \
AND #change_request.active_flag = 1 \
AND #Contact.c_last_name = ? ", $1

Note: The WHERE clause must be separate from the SELECT clause because the
WHERE clause can be an expression evaluating to a string, whereas the SELECT
clause is exclusively a string constant. This gives you more flexibility and data
manipulation capabilities in producing your report.

Generating Custom Reports 3–15


Reference

SORT clause Optionally follows the SELECT and WHERE clauses and sorts the fetched rows
of data. The SORT clause is formatted like the SQL ORDER BY clause. Here is an
example:
SORT "open_date"

ALIAS Optionally follows the SELECT and WHERE clauses, and requires alias records
to be resolved before the fetched rows of data are examined. If a SORT clause is
present, rows of data are sorted before aliases are resolved.

output program statements


Control execution of the report. First, before the data query, the HEADER
statement, if included, prints the header text for the block. The data query then
runs. If data is returned, each statement is executed in the order written, with one
exception. Block functions, like sum and average, behave as though they were at
the end of the output program. In fact, their values are not stable until execution
begins on the next data record.

It is important to remember that the output program depends on the success of


the data query. If no data is returned from the query, then, except for the
HEADER statement, the output program will not execute.

Example

This BLOCK statement assumes that an argument will be passed that holds an
integer equal to the ticket priority. The WHERE clause first checks the number of
arguments passed ($#). If one is present, it is used to evaluate the expression to
produce the WHERE clause; otherwise a null WHERE clause is substituted (" ").
BLOCK chg ("SELECT priority FROM change_request"
$# > 1 ? "WHERE priority =" ##$1 : ")

Remarks

HEADER, HEADER2, FOOTER, PRINT and variable expressions can be placed


in the braces. Any statement will be executed for each row selected.

PAGE HEADER and PAGE FOOTER statements cannot be placed in a BLOCK


statement.

3–16 Advanced Customization Guide


Reference

FOOTER

This layout statement places information at the bottom of a reporting section.

Syntax
FOOTER {parameters}

Parameters

CD A predefined variable used to display the current date.

CT A predefined variable used to display the current time.

PG A predefined variable used to display the current page number.

column | variable-name This field can be a variable from an earlier variable expression or a reference to a
column in the SQL clause of a BLOCK statement.

literal-text Any text that is not a predefined variable or a column or variable name is
interpreted as literal text. Literal text that you include in the FOOTER statement
appears in the exact horizontal location where you enter it.

Example
FOOTER {
Summary Information:
Total Failures: [Fail_count >
Total Downtime: [Downtime >
}

Remarks

FOOTER statements are printed at the bottom of a reporting section. A typical


use might be to present summary information or statistics. You can include a
FOOTER statement in a BLOCK statement.

A field’s content occupies the exact space delineated by the square brackets. Any
excess characters are truncated. However, you can close a field with an angle
bracket (>) to permit its content to expand in its entirety towards the right
margin.

To reference a variable or column name in another BLOCK statement, use the


following syntax:
blockname::column | variable-name

Generating Custom Reports 3–17


Reference

HEADER

This layout statement places information at the top of a reporting section.

Syntax
HEADER {parameters}

Parameters

See FOOTER for a list and explanation of the valid parameters for this statement.

Example
HEADER {
Contact Summary Report
Contact Name Contact Alias Organization
}

Remarks

HEADERS are printed at the beginning of a reporting section and can be


included in a BLOCK statement. HEADERS are typically used to present section
and/or column headings.

A field’s content occupies the exact space delineated by the square brackets. Any
excess characters are truncated. However, you can close a field with an angle
bracket (>) to permit its content to expand in its entirety towards the right
margin.

Note: If the print statement for a MULTILINE variable is closed with the right
angle bracket (>), characters wrap on white space to stay within the field defined
by the left bracket ([) and the right angle bracket (>). Also, if the variable is not
MULTILINE, the right angle bracket (>) causes all the data to be displayed on the
current line regardless of its length.

To reference a variable or column name in another BLOCK statement, use the


following syntax:
blockname::column | variable-name

3–18 Advanced Customization Guide


Reference

HEADER2

This layout statement places continuation HEADER information at the top of


each succeeding page of a reporting section, if that reporting section extends over
multiple pages.

Syntax
HEADER2 {parameters}

Parameters

See FOOTER for a list and explanation of the valid parameters for this statement.

Example
HEADER2 {
Contact Summary Report (continued)
Contact Name Contact Alias Organization
}

Remarks

A HEADER2 statement can be included in a BLOCK statement.

A field’s content occupies the exact space delineated by the square brackets. Any
excess characters are truncated. However, you can close a field with an angle
bracket (>) to permit its content to expand in its entirety towards the right
margin.

To reference a variable or column name in another BLOCK statement, use the


following syntax:
blockname::column | variable-name

Generating Custom Reports 3–19


Reference

PAGE FOOTER

This layout statement places information at the bottom of each report page.

Syntax
PAGE FOOTER {parameters}

Parameters

With the exception that you cannot use column and variable names, the
parameters for this statement are the same as those for FOOTER. See FOOTER
for a list and explanation of the valid parameters for this statement.

Example
PAGE FOOTER {
Page Number: [PG>
}

Remarks

A field’s content occupies the exact space delineated by the square brackets. Any
excess characters are truncated. However, you can close a field with an angle
bracket (>) to permit its content to expand in its entirety towards the right
margin.

To reference a variable or column name in another BLOCK statement, use the


following syntax:
blockname::column | variable-name

3–20 Advanced Customization Guide


Reference

PAGE HEADER

This layout statement places information at the top of each report page.

Syntax
PAGE HEADER {parameters}

Parameters

With the exception that you cannot use column and variable names, the
parameters for this statement are the same as those for FOOTER. See FOOTER
for a list and explanation of the valid parameters for this statement.

Example
PAGE HEADER {
Date of Report: [CD>
Time of Report: [CT>
}

Remarks

PAGE HEADERS are printed at the top of every report page. They can be
defined at any point within the report template file, but they cannot be included
within a BLOCK statement.

A field’s content occupies the exact space delineated by the square brackets. Any
excess characters are truncated. However, you can close a field with an angle
bracket (>) to permit its content to expand in its entirety towards the right
margin.

To reference a variable or column name in another BLOCK statement, use the


following syntax:
blockname::column | variable-name

Generating Custom Reports 3–21


Reference

PRINT

This layout statement places data in a reporting section.

Syntax
PRINT {parameters}

Parameters

See FOOTER for a list and explanation of the valid parameters for this statement.

Example
PRINT {
[num ] [desc ] [pr] [stat] [catgry] [asgn ]
}

Remarks

Place PRINT where you want the data for a reporting section to appear in the
report. You can include a PRINT statement in a BLOCK statement.

A field’s content occupies the exact space delineated by the square brackets. Any
excess characters are truncated. However, you can close a field with an angle
bracket (>) to permit its content to expand in its entirety towards the right
margin.

Note: If the print statement for a MULTILINE variable is closed with the right
angle bracket (>), characters wrap on white space to stay within the field defined
by the left bracket ([) and the right angle bracket (>). Also, if the variable is not
MULTILINE, the right angle bracket (>) causes all the data to be displayed on the
current line regardless of its length.

To reference a variable or column name in another BLOCK statement, use the


following syntax:
blockname::column | variable-name

3–22 Advanced Customization Guide


Chapter

Using Screen Painter


4
You can customize windows defined in the database to meet the needs of your
enterprise using Screen Painter. Screen Painter is an interactive editing tool that
lets you:
■ Add, delete, move, or change items on a window, such as menus, fields,
buttons, grids, notebooks, and so forth
■ Change the way items (fields) on a window are connected to each other,
which affects the way a window looks after it has been resized

Most tasks and examples in this chapter focus on customizing existing windows.
You can also create entirely new windows using Screen Painter.

Tip: It is easier and faster to copy and then edit an existing window that most
closely resembles the window you want than to create a new window.

Introduction
The Request Management, Change Order Management, Knowledge
Management, and the Options Manager functions of Unicenter Service Desk are
graphically based business process applications developed using an
object-oriented distributed client/server environment. You can customize these
applications, including the database schema, object schema, and windows
defined in Screen Painter to best suit your needs.

Using Screen Painter 4–1


Introduction

Configuration Overview

The architecture of Unicenter Service Desk consists of the following tiers, or


layers:
■ The database schema
■ Object schema (definition and behavior of objects)
■ The application level viewer to manipulate the objects (graphical user
interface)

The first two tiers represent the server layer, and the last tier represents the client
layer.

Database Schema The database schema, or backstore, defines database tables, the fields (columns) in
a record (row) of each table, the relationship among these records, and how they
are sorted and indexed in the database. This backstore provides persistent (that
is, continuous and lasting) storage and access for the data contained in objects.

Object Schema Objects represent specific business knowledge and functionality. Each object
contains data (attributes) and behavior (methods and triggers) and each
associates with other objects by containment or other types of relationships.
Objects generally correspond to database schema specifications. For example, an
object attribute typically corresponds to a field in a database table.

Objects are assembled and manipulated by an object manager. The object server
(domsrvr) uses the backstore as a repository for persistent objects. Object
configuration files (Majic language files with a .maj extension) are interpreted at
object manager startup time.

Objects are distributed. The domain server executes on one computer on a


network (server), and one or more viewers execute on other computers (clients) on
the network. Domain server objects and other special services exist concurrently
and communicate using an underlying asynchronous messaging protocol that is
transparent to most programmers.

Application Level The object viewer displays domain server objects in a graphical manner. The
Viewer viewer is the Unicenter Service Desk Windows client interface, in which all of
the windows are defined as Screen Painter forms.

4–2 Advanced Customization Guide


Introduction

Customizing the Database Schema

You can modify the flexible schema to meet your needs. For example, you can
add a field to a table or add a new table.

Specific database tables, fields, and attributes are defined in schema (.sch) files.
All schema files are stored in the $NX_ROOT\site directory (UNIX) or
installation-directory\site directory (Windows). Unicenter Service Desk provides
an additional directory called $NX_ROOT/site/mods (UNIX) or
installation-directory\site\mods (Windows) in which to store product
modifications, including any changes or additions you make to the database
schema. You should copy all of your changes into this mods directory—it is
never overwritten when you install a new version of Unicenter Service Desk.

When you configure Unicenter Service Desk, all of the schema files, including the
new ones you create and copy into mods directory, are merged into ddict.sch.
This contains the definition of the provider, partition, tables, storage details, and
mappings for the backstore. See the chapter “Customizing the Database
Schema” for specific procedures for merging the schema files and for more
information on customizing the database schema, in general.

Customizing the Object Schema

You can also modify the object schema to meet your needs. For example, you can
customize the objects or add new objects. Majic is the metalanguage that defines
the objects; therefore, objects are defined in Majic (.maj) files (see the appendix
“Object Definition Syntax” for Majic language syntax.

All Unicenter Service Desk object definition files are stored in the
$NX_ROOT/bopcfg/majic directory (UNIX) or installation-directory\bopcfg\majic
directory (Windows). Unicenter Service Desk provides an additional directory
called $NX_ROOT/site/mods/majic (UNIX) or
installation-directory\site\mods\majic (Windows) in which to store any changes
or additions you make to the object schema. You should copy all of your object
schema changes into the $NX_ROOT/site/mods/majic (UNIX) or
installation-directory\site\mods\majic (Windows). This directory is never
overwritten when you install a new version of Unicenter Service Desk.

These object configuration files are interpreted at domsrvr startup time. When
the domsrvr starts, it reads the object definition files in the
$NX_ROOT/bopcfg/majic directory (UNIX) or installation-directory\bopcfg\majic
directory (Windows) first, and then searches the $NX_ROOT/site/mods/majic
(UNIX) or installation-directory\site\mods\majic (Windows) directory for
modifications.

Using Screen Painter 4–3


Introduction

See the chapter “Customizing the Database Schema” for more information
about customizing objects. See the appendix “Objects and Attributes” for a list
of all objects and attributes that define Unicenter Service Desk.

Customizing the Windows

You can edit most of the window definitions contained in the database to
customize the user interface using Screen Painter. You can also create a new
window to display data from an existing object or to display data from a new
database table and object you created. The sections that follow give you a brief
introduction to Screen Painter, and the remainder of this chapter goes into
greater detail about how to use Screen Painter.

Tags

Screen Painter uses tags to identify:


■ The name of an object
■ An attribute to display or enter
■ A method to run

A tag consists of an object name and an attribute name, in the format


object.att_name. One example is chg.open_date, which provides the open date in
the Date field on the Change Order Detail window. Another example is
agt.contact_num, where contact_num is an attribute in the cnt object and agt is a
factory of the cnt object. A factory is a subset of an object, that is, a different view
of the object. For example, the cnt (contact) object has three factories: cst
(customer), agt (analyst), and grp (group).

The tag can include additional attributes, in the format


object.att1_name.att2_name.att_name. The additional attributes are part of related
objects. This relationship is based on the SREL (single relationship) parameter,
which refers an attribute to another object. An example of this is cnt.location.id,
where location is an attribute in the cnt object that is defined with SREL loc,
which means it refers to the loc object, and id is an attribute in the loc object.

The selection of a tag is very important. If the tag name is entered incorrectly, the
object, attribute, or method cannot be accessed and the field is unusable. Screen
Painter contains a Tag Helper that displays the objects, attributes, and methods
that are currently available. It also shows the relationships among objects and
builds the correct tag name for you. You can select a tag name from the Tag
Helper tree and apply it to a field on your window.

4–4 Advanced Customization Guide


Window Naming Conventions

Relationship Between Window (Form) Groups

Window (form) groups are used to control which users are allowed to view
which windows. Window groups let you display specific data for a group of
users, or display data in a different way for a group of users. Most Unicenter
Service Desk windows are part of the default window group, which means that
most Unicenter Service Desk users see the same windows when they are using
the product.

When using Screen Painter, you can save a form in a new form group using the
Save As option.

Window Naming Conventions


Window definitions are stored in the database and retrieved using specific
naming conventions. To apply the viewer’s default rules to your windows, you
must name your windows according to the following conventions, where xxx is
the same as the object name (see the appendix “Objects and Attributes” for the
list of object names):

Window Name Window Description


xxx_list List window
xxx_select Helper list window
xxx_detail Detail window
xxx_hier Hierarchical helper window

Using Screen Painter 4–5


Basic Steps for Customizing Windows

Basic Steps for Customizing Windows


The basic steps for customizing a window are:
1. Start Screen Painter.
2. Open the form representing the window you want to modify.
3. If the form you want to change is one of the original forms in the DEFAULT
form group, it will have a Property of Default in the Open Form dialog. You
cannot modify the original forms directly. Instead, save the form using the
Save As menu command, using the same form name. If two forms have the
same name, the The Unicenter Service Desk Windows client interface will
automatically use the modified copy instead of the original (Default) one.
4. Edit the form, making whatever changes you wish.
Important! If you are creating or updating a form that you want only a specific
group of users to view, name your form group something other than DEFAULT.
You must also define the form group using the pdm_makegrp utility. Then you must
assign users to this new form group on the Security window.
5. Save the newly edited form, and preview it.
6. Using the Unicenter Service Desk Windows client interface, choose Form
Group, Refresh from the Administration menu.
7. Test your new form.

Starting Screen Painter


Important! Before you can use Screen Painter, you must configure it to work with your
database. See the chapter “Windows Client Installation” in the Installation Guide for
instructions. The Unicenter Service Desk daemons (UNIX) or the daemon server
(Windows) must also be started on the server machine. See the chapter “System
Management” in the Administrator Guide for instructions.

4–6 Advanced Customization Guide


Opening an Existing Window

To start Screen Painter click Start on the taskbar, and then choose Programs,
Unicenter Service Desk, Screen Painter. After entering your login information,
the Screen Painter main window is displayed:

Note: To start Screen Painter from the command line, use painter32.exe. See the
CA Reference Guide for details.

Opening an Existing Window


To open an existing form:
1. Choose Open Form from the File menu. The Open Form dialog is displayed:

Using Screen Painter 4–7


Copying a Window Definition

2. To select a form from a group other than DEFAULT, select a new group from
the Form Group drop-down list.
3. The Open Form list shows the forms that belong to the currently selected
group. If the DEFAULT group is selected, the forms initially listed are for the
windows in the Unicenter Service Desk client interface. Select the form that
you want to edit from the Open Form list, and click Open. The form is
opened.
4. If the form you open is one of the original forms in the DEFAULT form
group, it will have a Property of Default in the Open Form dialog. You
cannot modify the original forms directly. Instead, save a copy of the form
using the instructions in Copying a Window Definition, which you will be
able to modify.

Copying a Window Definition


If instead of modifying an existing form directly, you want to modify a copy of
the form, follow these steps after opening the form you want to modify as
described previously (see Opening an Existing Window):
1. Once you have opened the form you wish to copy, choose Save Form As
from the File menu. The Save Form dialog is displayed.
2. Select the group to which the new form will belong from the Form Group
drop-down list. You can save the new form in the DEFAULT group if you
want to replace one of the original forms with your customized version.
3. Enter the new name for the form in the Save Form As field, and click Save
(see Window Naming Conventions earlier in this chapter for information on
how to correctly name your new form). If you are editing one of the original
forms in the DEFAULT group, use the same name as the original form. The
The Unicenter Service Desk Windows client interface will automatically use
the customized copy instead of the original (Default) one. The copy is now
loaded in Screen Painter, ready for you to edit.

4–8 Advanced Customization Guide


Customizing a Window

Customizing a Window
Once the form for the window you want to edit is loaded in Screen Painter, you
can use the toolbar, menu commands, and shortcuts to customize the window.
The sections that follow describe how to perform some basic tasks using Screen
Painter (for more information, see the Screen Painter online help).

Arranging Items on a Window

You can reposition items on a window by selecting and dragging the items on the
form. This changes the item’s positioning properties, which control the relative
placement of an item in a window.

Tip: You can select multiple items at once by creating a selection box by
holding down the mouse button and dragging. You can also press and hold
Ctrl to select multiple items individually.

Items have a relative front-to-back position in a window. When you add an item
to a window, it is placed in front of other items already in the window. You can
see this if you try to drag a new item behind an existing item. The front-to-back
position reflects the tabbing order of the items. See Defining the Tabbing Order
later in this chapter for more information.

To move an item:
1. On the form, select the item or items you want to move. Handles appear
around the selection as shown in the following example:

2. Drag the selected items to a new position in the window. When more than
one item is selected, all selected items move as a group.

Tip: If needed, you can choose Undo from the Edit menu to reverse the most
recent editing action or to repeatedly undo a series of actions.

Using Screen Painter 4–9


Customizing a Window

Defining the Tabbing Order

You can define the order in which you can tab through items on a window using
the TabIndex property. The TabIndex property can be found within the
Properties dialog of any Screen Painter control.
1. Double-click a control on the form to open its Properties dialog.
2. Select the value for the TabIndex property, and enter a number. The value
that you enter becomes the tab order of the control.

Using Tab Index Mode Rather than define the tabbing order by setting a value for each control as
described above, you can define it by navigating directly on the form. To do this:
1. Choose Tab Index Mode from the Control menu.
2. Click the controls on the form in the correct tabbing order. When you click a
control, a number indicating the order of the tab sequence is displayed on the
control.
3. When you are finished setting the tabbing order, choose Tab Index Mode
from the Control menu to turn this mode off.

You can test the tabbing order by pressing Tab on the form within Screen Painter.
The controls will be selected using the order that you have defined.

Working with Controls

Within Screen Painter, you have access to a collection of controls that you can
place on a window, as described below:
■ Check Box—A toggle item with values for on and off. For example:

■ Combo Box—A drop-down list of possible selections, combined with a text


box. A user can either make a selection from the drop-down list, or enter a
value directly in the text box. For example:

■ Command Button—A rectangular shaped item that initiates an action when


it is clicked. For example:

 Frame—A border used to hold other items on a window that behave as a


unit.
 Grid—A container that displays a list corresponding to a database table.

4–10 Advanced Customization Guide


Customizing a Window

 Index Card—A series of containers allowing you to group related


information on notebook pages. You can display the information on each
page by clicking a tab. For example:

■ Label—One line of text that is typically used as a title for a text box. For
example:

 Option Button—Also referred to as radio buttons, option buttons are


grouped together in a frame. Only one of the option buttons can be enabled
at a time. The option buttons act only as placeholders. They are updated
dynamically from the database at runtime and may override settings
changed using Screen Painter. For example:

■ Text Box—A rectangular shaped item that initiates an action when it is


clicked. For example:

Note: Use a label to display a title for a text box.

Adding Controls

To add any type of control to your window:


1. Click the toolbar button for the control that you want to add.
2. Place the cursor in the window where you want to put the control, and then
click and drag until the control is the size you want it to be.
3. When adding a grid, double-click within the grid to define the grid columns
and their properties using the Custom Grid dialog. When adding any other
type of control, double-click the control to define properties for the control
using the Properties dialog.
4. After you are finished, close the dialog.

Using Screen Painter 4–11


Customizing a Window

Editing Controls

To edit any type of control on your window:


1. Double-click the control on the window. If the control is a grid, the Custom
Grid dialog is displayed; otherwise, the Properties dialog is displayed.
2. Change any properties that you like (use the online help if you need more
information about a particular property).
3. After you are finished changing properties, close the dialog.

Tip: You can change the size of a control directly on the window. Simply click
the control to select it, and resize it using one of the handles.

Working with Tags

Tags let you reference and display objects, attributes, and methods on your
windows. Every item on a window, including all controls, grid columns, and
menu items, has a tag. You specify the tag for an item in the Tag field, which may
be located within the Properties dialog, the Menu Editor dialog, or the Custom
Grid dialog. See Tags earlier in this chapter for more information about tags.

4–12 Advanced Customization Guide


Customizing a Window

You can use the Tag Helper within Screen Painter to select a tag for a control on
your window. Use the following procedure to access the Tag Helper and use it to
associate a tag with a control on your window:
1. Choose Tag Helper from the Controls menu. The Tag Helper dialog appears:

2. Scroll through the tag tree on the left side of the dialog to find the object you
want to use. Because this is a tree, the tag you are looking for may be
contained within another tag. To expand any item in the tag tree, double-
click the item. Use the tag type legend on the right side of the dialog to
interpret the types of tags in the tree.
3. Select the appropriate tag, drag it to the control on your window, and drop it
there. The tag is now associated with the control. The next time you open the
Properties dialog for the control, the tag that you selected will be displayed
in the Tag field.
4. Repeat Steps 2-3 for as many control tags as you want to define.
5. Click Close to close the Tag Helper dialog.

Using Screen Painter 4–13


Customizing a Window

Working with Menus

You can use the Menu Editor within Screen Painter to add a menu bar to your
window. You can add a pull-down menu with menu commands for each item on
the menu bar, as well adding submenus and other effects, such as underlining
shortcut keys and separating groups of menu commands. For example:

Adding a Menu Bar

To add a menu bar to a form that does not already have one:
1. Choose Menu Editor from the Controls menu. The Menu Editor dialog is
displayed:

2. The main list box at the top of the dialog shows the structure of the menu as
you define it. To add the first item, simply enter the name of the item in the
Caption field. To add subsequent items, click Add before entering the
caption.

Tip: Include an ampersand (&) before a single letter in the caption to


underline that letter. This allows the user to make accelerated menu
selections using Alt key combinations for items on the menu bar. For
example, you might enter &File for the File menu caption so that the user
can open this menu by pressing Alt+F.

4–14 Advanced Customization Guide


Customizing a Window

3. Enter a value in the Tag field for each menu bar item that you add (see Tags
earlier in this chapter for an explanation). For example, you might enter
FileMenu for the File menu bar item. After adding File, Edit, and Help items,
the Menu Editor looks similar to the following:

Adding Menu Commands

To add a menu command for a menu bar item:


1. Select the position in the main list box where you want to add the command,
and click Insert. All items in the list below the current position are pushed
down in the list, and a blank line opens.
2. In the previous set of steps, all of the items you added were at the leftmost
level in the list, which is what makes them appear as items on the menu bar.
To create a menu command, you need to indent it underneath the menu bar
item to which it belongs. To do this, click the large right arrow. Four dots
appear at the beginning of the item to indicate that it is subordinate to the
item above.

Tip: To create a submenu, indent the submenu commands to the next level
underneath the menu command that activates the submenu.

3. Enter the name of the menu command in the Caption field. Once again, you
can use an ampersand to underline a letter in the caption, indicating how the
user can accelerate the selection. For example, if you create a New command
on the File menu by entering &New, the user can select this command by
entering Alt+F, N.

Using Screen Painter 4–15


Customizing a Window

4. Enter a value in the Tag field for the menu command (see Tags earlier in this
chapter for an explanation).
5. If you want the user to be able to activate the menu command directly from
the window using a shortcut key, select a key from the Shortcut drop-down
list. The shortcut key appears next to the caption in the menu.

Tip: At any time while you are working with the Menu Editor, click Apply to
save the changes you have made without exiting the Menu Editor.

6. If you want to display a short description of the menu command when the
user points to it, enter a value in the ToolTip field.
7. If a menu command marks the first one in a new group, check Begin Group.
This will include a separator before this command when the menu is
displayed.
8. Repeats Steps 3-7 to add as many menu commands as you need for each
menu bar item. An example of a complete menu definition is shown below:

9. Click OK when you are finished with your menu and want to exit the Menu
Editor. The menu you created appears on your window, and you can click
the items on the menu bar to display the corresponding menus.

4–16 Advanced Customization Guide


Customizing a Window

Editing a Menu

If your window already has a menu, and you want to edit it:
1. Choose Menu Editor from the Controls menu. The Menu Editor dialog is
displayed, showing the existing menu definition:

2. To delete any item displayed in the main list box, select it and click Delete.

Tip: At any time while you are working with the Menu Editor dialog, click
Apply to save the changes you have made without exiting the Menu Editor.

3. To change the level of any item, select it and click the large right or left
arrow.
4. To change any of the properties associated with an item, select it and enter or
select new values in the controls beneath the main list box.
5. Click OK when you are finished with your menu and want to exit the Menu
Editor. The menu you created appears on your window, and you can click
the items on the menu bar to display the corresponding menus.

Using Screen Painter 4–17


Customizing a Window

Adding Remote References

Remote references let you click a button or select a menu item on a Request or
Change Order Management window to run another application. To do this, you
must add the remote reference to Request or Change Order Management; then
add the button or menu item to a window using Screen Painter.

Note: The application that you want to run must be executable on the same
platform on which the window is displayed.

Defining the Remote Reference

To add the remote reference to Request or Change Order Management, start the
Unicenter Service Desk Windows client interface and follow these steps:
1. Choose Remote References from the Administration menu. The Remote
Reference List window appears.
2. Choose New from the File menu. The Remote Reference Detail window
appears:

3. Enter data in the following fields:


Symbol—Specify a name for this remote reference.
Code—Specify the code to identify the application. You will use this code
later when you define the Tag for the associated control in Screen Painter (see
Step 5 under Activating the Remote Reference from a Window).
NT Server, Unix Server, or Unix Client Exec Command—Specify the
command to start the application on a Windows server, UNIX server, or
UNIX client (see Using Launchit for tips on running applications).

4–18 Advanced Customization Guide


Customizing a Window

Windows Client Exec Command—Specify the command to start the


application on a Windows client (see Using Launchit for tips on running
applications). You need to include the .exe extension in this field.
Note: When specifying the command for the server and client fields above,
you need to enter the full path to the command only if the operating system
will not otherwise be able to locate the command. For example, if the
command is in the PATH, you do not need to enter the full path. When
entering a path, use forward slashes.
Other fields are optional or have defaults. For explanations of all fields on
this window, see to the online help.
4. Choose Save from the File menu, and click OK to close the Remote Reference
Detail window. The Remote Reference List window appears, with the new
remote reference now appearing in the list.
5. Click OK to close the Remote Reference List window, and exit the Unicenter
Service Desk Windows client interface.

Using Launchit You can use Launchit in remote references to execute program files and, in
Windows environments only, to run batch files and to load non-executable files
(referred to as documents). Launchit is installed in $NX_ROOT/bin (UNIX) or
installation-directory\bin (Windows). For usage notes on launchit, run launchit -h.

Using launchit to run a program or batch file for a remote reference guarantees
that Unicenter Service Desk environment variables are available to the program
or batch file.

Using it to load a document automatically runs the application associated with


the document type through Windows, thereby loading the document just as if
you had double-clicked it from the Windows Explorer. For example, if you
double-click an HTML file, Windows automatically loads the file in your web
browser because the HTML file type is associated with the web browser
program. Launchit, when passed an HTML file as an argument, will run the web
browser and load the document.

To use launchit in a remote reference, the NT Server, Unix Server, or Unix Client
Exec Command field and the Windows Client Exec Command field on the
Remote Reference Detail window must begin with launchit and launchit.exe,
respectively. Follow this by command line options for launchit (if any), and then
the name of the file to launch (enter launchit -h from the command line if you
need more information on its usage).

For example, if you wanted to load the file Display.html in your web browser,
you would enter launchit Display.html in NT Server, Unix Server, or Unix
Client Exec Command field, and you would enter launchit.exe Display.html in
the Windows Client Exec Command field on the Remote Reference Detail
window (see Step 3 under Defining the Remote Reference).

Using Screen Painter 4–19


Customizing a Window

Activating the Remote Reference from a Window

To link the remote reference you just defined to a command button on a window,
follow these steps:
1. From within Screen Painter, open the window where you want to add the
remote reference link. If it is one of the original forms in the DEFAULT
group, save it using the same name. (See Opening an Existing Window and
Copying a Window Definition for specific instructions.)
2. When the window appears in the Screen Painter work area, click the
command button on the toolbar.
3. Place the cursor in the window where you want to put the command button,
and then click and drag until the button is the size you want it to be.
4. Double-click the new button to display its Properties dialog:

5. Enter the following for the Tag property, where code is the value you entered
as the code to identify the application (see Step 3 under Defining the Remote
Reference):
smart_hook#code
6. Enter a label for the button for the Caption property, and define any of the
other properties to suit your needs, and then close the Properties dialog.
7. The new button will be put at the end of the tabbing order on the window. If
you want to change it, you can do so now. See Defining the Tabbing Order
for instructions.

4–20 Advanced Customization Guide


Customizing a Window

Example You can use a similar set of steps to link the remote reference to a menu
command, as shown in the following example that adds a remote reference link
to the Show menu on the Request Detail window:
1. From the Unicenter Service Desk Windows client interface, choose Remote
References from the Administration menu. The Remote Reference List
window appears.
2. Choose New from the File menu. The Remote Reference Detail window
appears.
3. Enter data in the following fields:
Symbol—Enter Screen Painter.
Code—Enter USDSP.
NT Server, Unix Server, or Unix Client Exec Command—Enter painter32.
Windows Client Exec Command—Enter painter32.exe.
4. Choose Save from the File menu, and click OK to close the Remote Reference
Detail window. The Remote Reference List window appears, with the new
remote reference now appearing in the list.
5. Click OK to close the Remote Reference List window, and exit the Unicenter
Service Desk Windows client interface.
6. From within Screen Painter, open the cr_detail window and save ii using the
same name. (See Opening an Existing Window and Copying a Window
Definition for specific instructions.)
7. Choose Menu Editor from the Control menu. The Menu Editor dialog
appears.
8. Locate the Show menu bar item in the main list box, click the menu
command just below it (Activities), and then click Insert. All items in the list
below the current position are pushed down in the list, and a blank line
opens.
9. Click the large right arrow to indent the new item, making it a command on
the Show menu. Four dots appear at the beginning of the item to indicate
that it is subordinate to the item above.
10. Enter the name of the menu command, Screen &Painter, in the Caption field.
The ampersand underlines the letter “P,” indicating how the user can
accelerate the selection. For example, the user will be able to select this
command by entering Alt+S, P.
11. Enter the following for the Tag field:
smart_hook#USDSP
12. Click OK to save the newly added menu command and close the Menu
Editor dialog.
13. Click the Show menu bar item on the window definition, and you should see
the newly added Screen Painter menu command.

Using Screen Painter 4–21


Saving Changes

Note: If you like, you can also preview the form using the Preview Form
command on the Edit menu; however, the preview version of the window will
not run the remote reference. You must start the Unicenter Service Desk
Windows client interface to test the remote reference.

When you are finished making changes to this window, you can save it and quit
Screen Painter. The next time you access the Unicenter Service Desk Windows
client interface, the Screen Painter command will be at the top of the Show menu
on the Request Detail window, and selecting it will launch Screen Painter. If the
new version of the window does not appear automatically, you need to choose
Form Group, Refresh from the Administration menu to ensure that the latest
forms are in use.

Saving Changes
From time to time while you are editing a form, you will want to save your
changes to the database. To do this, choose Save Form from the File menu.

Previewing a Window
Important! You must save the current form before you can preview it

To preview your form to show the final result:


1. Choose Preview Form from the Edit menu. After a few moments, your form
is displayed in a separate window.
2. When you are finished reviewing the form, close the form preview window
to return to Screen Painter.

Quitting Screen Painter


To quit Screen Painter, choose Exit from the File menu. If you have not saved
your latest changes, you will be prompted to save them before quitting.

Testing Your New Window


Besides using the preview feature in Screen Painter to test your new form, you
will want to bring it up in the Unicenter Service Desk Windows client interface to
make sure it works to your satisfaction. If the new version of the window is not in
effect when you open it in the Windows client interface, choose Form Group,
Refresh from the Administration menu.

4–22 Advanced Customization Guide


Customizing the Database
Chapter

5 Schema

You can modify the flexible database schema of Unicenter Service Desk to meet
your needs. You can make any of these changes and use them in the windows or
reports you design:
■ Increase the length of an existing field
■ Change a field from not being required to being required
■ Add fields to any table that is not used as an internal table
■ Add reference tables that can be referenced by fields in a table

CAUTION! Change field lengths and add fields carefully. You can inadvertently exceed
the record length capacity of the underlying database. Check the specifications for the
database that you are using with Unicenter Service Desk and make modifications within
the limits of that database. Never shorten string fields or delete existing fields from the
database. Data may be lost and Unicenter Service Desk may fail. Changes to the database
schema could require limited or considerable down time, depending on the changes you
make and the capabilities of your database.

Tip: If you are a new user of Unicenter Service Desk, it is easier to make all of
your changes during testing instead of waiting until you are in production.
We highly recommend that you carefully log all changes you make.

The beginning of this chapter reviews the general procedures you must perform
before and after changing the database schema. The rest of the chapter contains
specific procedures you can use to customize your schema. Most of these
procedures are followed by an example of a change you might want to make to
the standard database schema.

This chapter refers to several database utilities, such as pdm_replace and


pdm_extract. See the CA Reference Guide for more information on any utility
referenced in this chapter.

Customizing the Database Schema 5–1


General Procedures

General Procedures
This section contains the following general procedures:
■ Making backups
■ Identifying the schema items to modify
■ Updating the database schema
■ Populating new reference tables

Making Backups

Before making any changes, make a backup copy of ddict.sch. You can then
restore that file if you need to back out your changes.

If you are changing a field or adding a field to a table, back up the data in that
table with pdm_extract:
pdm_extract -backup_file table

Note: These steps are not required if you are only adding a new reference table.

Identifying the Schema Items to Modify

The appendix “Data Element Dictionary” in this guide describes the standard
Unicenter Service Desk schema. Before modifying the schema, study it to see if
an existing table or field meets your needs.

If you decide that you must modify the schema, you will make the changes in
your own .sch files. Then you will place these .sch files in $NX_ROOT/site/mods
(UNIX) or installation-directory\site\mods (Windows) to be merged with the
ddict.sch file, which you have already backed up (see Making Backups earlier in
this chapter).

The ddict.sch file defines:


■ Tables and columns (fields)
■ Table indexes

Each table is mapped to an internal table in the underlying database. For


example, the Change_Status table maps to an internal table named
change_status. The Contact_Type table, which will be used in the examples in
this chapter, maps to an internal table named ct_ty.

Important! Do not modify the .sch files in the $NX_ROOT/site (UNIX) or


installation-directory\site (Windows) directory directly. These files define the current
Unicenter Service Desk schema.

5–2 Advanced Customization Guide


General Procedures

Updating the Database Schema

After making changes or additions to the .sch files, you must update the database
schema and reload the data you backed up.

CAUTION! If you are still in the testing phase and have no data, you can follow the first
set of steps, which tell you to reinitialize your database. Otherwise, if you do not want to
reinitialize your database, and therefore, lose all data, use the second set of steps.

If Your Database If your database contains no production data that you want to save, follow
Contains No these steps:
Production Data...
1. Make sure all users are logged off of Unicenter Service Desk.
2. Stop the Unicenter Service Desk daemons (UNIX) or the daemon server
(Windows) (see the chapter “System Management” in the Administrator Guide
if you need instructions).
3. Run the configuration utility (See Changing the Configuration in the CA
Procedures Guide for if you need instructions) to merge your .sch files with the
ddict.sch file. Choose to reinitialize database, either by selecting the
appropriate field or answering Yes when prompted.
4. Restart the Unicenter Service Desk daemons (UNIX) or the daemon server
(Windows) (see the chapter “System Management” in the Administrator Guide
if you need instructions).

If Your Database If you have an existing database and do not want to reinitialize the database,
Contains Production follow these steps:
Data...
1. Make sure all users are logged off of Unicenter Service Desk and that you
have backed up your data (see Making Backups earlier in this chapter).
2. Stop the Unicenter Service Desk daemons (UNIX) or the daemon server
(Windows) (see the chapter “System Management” in the Administrator Guide
if you need instructions).
3. Run the configuration utility (See Changing the Configuration in the CA
Procedures Guide for if you need instructions) to merge your .sch files with the
ddict.sch file. Choose not to reinitialize database, either by clearing the
appropriate field or answering No when prompted.
4. Change to the $NX_ROOT/site (UNIX) or installation-directory\site
(Windows) directory.
5. Run the build command on the server to add the new or modified tables to
the database:
xxxbuild -p table database-name ddict-path

where:
■ xxx is your database (for example, sql, syb, inf, orcl, ingres).
■ -p performs a partial build.

Customizing the Database Schema 5–3


General Procedures

■ table is the name of the table you created or modified.


■ database-name is the name of your database.
■ ddict-path is the full path to ddict.sch, which is
$NX_ROOT/site/ddict.sch (UNIX) or installation-directory\site\ddict.sch
(Windows.
This example adds a new Reason Code table to an Oracle database:
orclbuild -p zReason_Codes paradigm $NX_ROOT/site/ddict.sch

6. If you have changed a field or added a field to a table, run pdm_replace to


reload the data file you created with pdm_extract:
pdm_replace -v -fbackup_file

7. Restart the Unicenter Service Desk daemons (UNIX) or the daemon server
(Windows) (see the chapter “System Management” in the Administrator Guide
if you need instructions).

If Your Database If your database contains no production data that you want to save and
Supports Altering supports the altering of tables dynamically, follow these steps:
Tables Dynamically…
1. Make sure all users are logged off of Unicenter Service Desk and that you
have backed up your data (see Making Backups earlier in this chapter).
2. Stop the Unicenter Service Desk daemons (UNIX) or the daemon server
(Windows) (see the chapter “System Management” in the Administrator Guide
if you need instructions).
3. Run the database vendor’s utilities to add or lengthen a field.
4. Run the configuration utility (See Changing the Configuration in the CA
Procedures Guide for if you need instructions) to merge your .sch files with the
ddict.sch file. Choose not to reinitialize database, either by clearing the
appropriate field or answering No when prompted.
5. If you have changed a field or added a field to a table, run pdm_replace to
reload the data file you created with pdm_extract:
pdm_replace -v -fbackup_file

6. Restart the Unicenter Service Desk daemons (UNIX) or the daemon server
(Windows) (see the chapter “System Management” in the Administrator Guide
if you need instructions).

Populating New Reference Tables

Open any new reference table using the Unicenter Service Desk client interface
and fill them with values.

5–4 Advanced Customization Guide


Specific Procedures

Specific Procedures
This section contains the following specific procedures:
■ Lengthening fields
■ Making a field required (recommended for a new database)
■ Making a field required without making schema changes (recommended for
an existing database)
■ Adding non-reference fields to tables
■ Adding reference fields to tables
■ Adding reference tables
■ Defining activity associations for user-defined attributes

Lengthening Fields

Follow these steps to increase the number of characters that can be entered in an
input field on a window:
1. Create an .sch file for the table that contains the field with the increased
number of characters in $NX_ROOT/site/mods (UNIX) or
installation-directory\site\mods (Windows), or use an existing .sch file if one
exists.
Note: You must include the schema.mac macro file in new .sch files, as
shown below:
#include "../schema.mac"

2. Enter this statement in the file to define the increased number of characters:
TABLE table_name {field value_type size ;}

where:
■ table_name identifies the database table that contains the field you are
lengthening (for example, Change_Request).
■ field is the name of the field you are lengthening (for example,
charge_back_id).
■ value_type is the field’s data-type. This could be a macro that determines
the current length of the field.
■ size is the new length.
3. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.
4. Start Screen Painter.

Customizing the Database Schema 5–5


Specific Procedures

5. Using the directions under Copying a Window Definition in the chapter


“Using Screen Painter,” copy the form containing the field you want to
lengthen.
6. Open the form you wish to change. The window definition for the form
appears.
7. Select the field you want to lengthen.
8. Click the square handle at the end of the field and drag it out until it is wide
enough.
9. Save the form, and quit Screen Painter.
10. For your new form to take effect, choose Form Group, Refresh from the
Administration menu in the Unicenter Service Desk client interface.

Example

This example increases the length of the Expense Code field in the schema, and
then lengthens the corresponding display field on the Contact Detail window to
display more of the field at once, without having to scroll:
1. Create a file named contact.sch in $NX_ROOT/site/mods (UNIX) or
installation-directory\site\mods (Windows), or modify an existing contact.sch
file if one exists.
Note: You must include the schema.mac macro file in new .sch files, as
shown below:
#include "../schema.mac"

2. Enter this statement in contact.sch:


TABLE Contact {c_expense STRING 30;}

3. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.
4. Start Screen Painter.
5. Using the directions under Copying a Window Definition in the chapter
“Using Screen Painter,” copy cnt_detail.
6. Open the cnt_detail form. The window definition for cnt_detail appears.
7. Click the Organization Info tab, and select the Expense Code field—be sure
to select the text box, not the label.
8. Click the square handle at the end of the field and drag it out until it is as
wide as you want it to be.
9. Save the form, and quit Screen Painter.
10. For your new form to take effect, choose Form Group, Refresh from the
Administration menu in the Unicenter Service Desk client interface.

5–6 Advanced Customization Guide


Specific Procedures

Making a Field Required

Note: Modification to the schema to make a field required is recommended only


with a new database. See Making a Field Required Without Making Schema
Changes for procedures to make a field required for an existing database.

Follow these steps to force users to enter a value in a field before they can close a
window:
1. Add a value to the field in all existing records by following these steps:
a. Run pdm_extract to copy existing records that contain this field to a file:
pdm_extract table_name > filename

where:
■ table_name identifies the database table that contains the field you are
making required.
■ filename is the name of the file that will contain the output.
b. Edit the output file to define a value for every occurrence of the field you
are making required.
Note: Windows users should use WordPad to edit the file.
c. Run pdm_userload to update the database with the new data in the
edited file, where filename is the name of the file with the edited output
from pdm_extract:
pdm_userload -ffilename -u

2. Create an .sch file for the table that contains the field that will be required at
the database level in $NX_ROOT/site/mods (UNIX) or
installation-directory\site\mods (Windows), or use an existing .sch file if one
exists.
Note: You must include the schema.mac macro file in new .sch files, as
shown below:
#include "../schema.mac"

3. Enter this statement in the .sch file to define the field as being required at the
database level:
TABLE table_name {field value_type NOT_NULL;}

where:
■ table_name identifies the database table that contains the field you are
making required.
■ field is the name of the field you are making required.
■ value_type is the field’s data type.

Customizing the Database Schema 5–7


Specific Procedures

4. Create a new .mod file to contain the statement that will define the field as
being required at the object level in $NX_ROOT/site/mods/majic (UNIX) or
installation-directory\site\mods\majic (Windows).
5. Enter this modification statement in the .mod file:
MODIFY obj_name att_name REQUIRED;

where:
■ obj_name identifies the object whose attribute is being modified.
■ att_name identifies the attribute being modified.
See the appendix “Object Definition Syntax” for this statement’s complete
syntax.
6. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.

Example

This example makes the Priority field on the Change Order Detail window a
required field.
1. Add a value to the Priority field in all existing requests following these steps:
a. Run pdm_extract to copy all requests to a file:
pdm_extract Change_Request > workfile

b. Edit workfile to add 3 to the Priority field in every record that does not
have a defined priority.
Note: Windows users should use WordPad to edit the file.
c. Run pdm_userload to add the priority value to the database:
pdm_userload -fworkfile -u

2. Create a file called cr.sch in $NX_ROOT/site/mods (UNIX) or


installation-directory\site\mods (Windows), or modify an existing cr.sch file.
Note: You must include the schema.mac macro file in new .sch files, as
shown below:
#include "../schema.mac"

3. Enter this statement in cr.sch:


TABLE Change_Request {priority INTEGER NOT_NULL;}

4. Create a new .mod file called prireq.mod in $NX_ROOT/site/mods/majic


(UNIX) or installation-directory\site\mods\majic (Windows).
5. Enter this statement in prireq.mod:
MODIFY chg priority REQUIRED;

6. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.

5–8 Advanced Customization Guide


Specific Procedures

From now on, when a new Change Order is opened, a value must be entered in
the Priority field.

Making a Field Required Without Making Schema Changes

Note: Making a field required without making schema changes is recommended


only with an existing database. See Making a Field Required for procedures to
make a field required for a new database.

Follow these steps to force users to enter a value in a field before they can close a
window:
1. Create a new .mod file to contain the statement that will define the field as
being required at the object level in $NX_ROOT/site/mods/majic (UNIX) or
installation-directory\site\mods\majic (Windows).
2. Enter this modification statement in the .mod file:
MODIFY obj_name att_name REQUIRED;

where:
■ obj_name identifies the object whose attribute is being modified.
■ att_name identifies the attribute being modified.
For example, to make the Category field on the Change Order Detail window
required, use the following statement:
MODIFY chg category REQUIRED;

See the appendix “Object Definition Syntax” for this statement’s complete
syntax.
3. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.

Adding Non-Reference Fields to Tables

You can add a field to a table, and then add a field to a window to display the
information in that new table field. Follow these steps to add a non-reference
field (a field that does not display a list of values when you double-click it):
1. Create an .sch file for the table that will contain the new field in
$NX_ROOT/site/mods (UNIX) or installation-directory\site\mods
(Windows), or use an existing .sch file if one exists.
Note: You must include the schema.mac macro file in new .sch files, as
shown below:
#include "../schema.mac"

2. Enter this statement in the .sch file to describe the new field:
TABLE table_name {field value_type;}

Customizing the Database Schema 5–9


Specific Procedures

where:
■ table_name identifies the database table that will contain the field you are
adding.
■ field is the name of the field you are adding, in the format
table_name_zfield_name, where z identifies user-defined field names. Note
that in addtion to starting user-defined field names with the letter z,
fields names must not end with the characters “_f.”
■ value_type is the field’s data type.
3. Create a new .mod file to define the attribute in the object that will
correspond to the new field in $NX_ROOT/site/mods/majic (UNIX) or
installation-directory\site\mods\majic (Windows).
4. Enter this OBJECT statement in the .mod file:
OBJECT obj_name {ATTRIBUTES table_name {att_name [field_name] value_type;};};

where:
■ obj_name is the object that corresponds to the database table to which the
field was added.
■ table_name is the database table to which the field was added.
■ att_name is the attribute in the object that corresponds to the field you are
adding.
■ field_name is the field you are adding, if it is different from att_name.
■ value_type is the attribute’s data type.
5. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.
6. Start Screen Painter.
7. Using the directions under Copying a Window Definition in the chapter
“Using Screen Painter,” copy all the forms that will display the new field.
8. Open the form you wish to change. The window definition for the form
appears.
9. Add a text box control to display the new field and a label control to identify
it (see the chapter “Using Screen Painter” if you need instructions on this and
remaining steps).
10. Enter the following for the text box’s Tag property, where obj_name and
att_name are the same values you used in Step 4:
obj_name.att_name

11. Enter a value for the label’s Caption property, and change any other label
properties that you like.

5–10 Advanced Customization Guide


Specific Procedures

12. Change the tabbing order of the fields on the window to include the new
field.
13. Save the form, and quit Screen Painter.
14. For your new form to take effect, choose Form Group, Refresh from the
Administration menu in the Unicenter Service Desk client interface.

Example

This example adds a field for the Internet address to the Contact table and the
Contact Detail window:
1. Create a file named contact.sch in $NX_ROOT/site/mods (UNIX) or
installation-directory\site\mods (Windows), or modify an existing contact.sch
file if one exists.
Note: You must include the schema.mac macro file in new .sch files, as
shown below:
#include "../schema.mac"

2. Enter this statement in contact.sch:


TABLE Contact {ctct_zintadd STRING;}

3. Create a new .mod file called netid.mod in $NX_ROOT/site/mods/majic


(UNIX) or installation-directory\site\mods\majic (Windows).
4. Enter this OBJECT statement in netid.mod:
OBJECT cnt {ATTRIBUTES Contact {intadd ctct_zintadd STRING;};} ;

5. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.
6. Start Screen Painter.
7. Using the directions under Copying a Window Definition in the chapter
“Using Screen Painter,” copy the cnt_detail form to a new form.
8. Open the cnt_detail form. The window definition for cnt_detail appears.
9. Add a text box control to display the new field and a label control to identify
it (see the chapter “Using Screen Painter” if you need instructions on this and
remaining steps).
10. Enter the following for the text box’s Tag property:
cnt.intadd

11. Enter the following for the label’s Caption property, and change any other
label properties that you like:
Internet Address

Customizing the Database Schema 5–11


Specific Procedures

12. Change the tabbing order of the fields on the window to include the new
field.
13. Save the form, and quit Screen Painter.
14. For your new forms to take effect, choose Form Group, Refresh from the
Administration menu in the Unicenter Service Desk client interface.

Adding Reference Fields to Tables

You can add a reference field to a table, and then add a field to a window to
display the information in the new table field. A reference field is a field followed
by an ellipsis (…) indicating you can double-click it to see a list of values. To
display this list of values, a reference field must refer to another table where that
list of values is maintained. (See Adding Reference Tables later in this chapter for
more information about reference tables.) Follow these steps to add a reference
field:
1. Create an .sch file for the table that will contain the new field in
$NX_ROOT/site/mods (UNIX) or installation-directory\site\mods
(Windows), or use an existing .sch file if one exists.
Note: You must include the schema.mac macro file in new .sch files, as
shown below:
#include "../schema.mac"

2. Enter this statement in the .sch file to describe the new field:
TABLE table_name {field value_type REF other_table_name ;}

where:
■ table_name identifies the database table that will contain the field you are
adding.
■ field is the name of the field you are adding, in the format
table_name_zfield_name, where z identifies user-defined field names. Note
that in addtion to starting user-defined field names with the letter z,
fields names must not end with the characters “_f.”
■ value_type is the field’s data type.
■ other_table_name identifies the other table the new field refers to in order
to display a list of values when you double-click.

Tip: If you are using a database that allows fields to be modified


dynamically, like Sybase, Oracle, or Informix, use the ALTER TABLE
command in the format documented in your SQL reference guide.

5–12 Advanced Customization Guide


Specific Procedures

3. Create a new .mod file to define the attribute in the object that will
correspond to the new field in $NX_ROOT/site/mods/majic (UNIX) or
installation-directory\site\mods\majic (Windows).
4. Enter this OBJECT statement in the .mod file:
OBJECT obj_name {ATTRIBUTES table_name {att_name [field_name] SREL
obj2_name;};};

where:
■ obj_name is the object that corresponds to the database table to which the
field was added.
■ table_name is the database table the field was added to.
■ att_name is the attribute in the object that corresponds to the field you are
adding.
■ field_name is the field you are adding, if it is different from att_name.
■ SREL refers to the object that corresponds to the other table.
■ obj2_name is the object that corresponds to the other table.
5. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.

Important! If you are using a Sybase, Oracle, or Informix database, be sure the
Reinitialize Database field is set to NO on the Configuration window.
6. Start Screen Painter.
7. Using the directions under Copying a Window Definition in the chapter
“Using Screen Painter,” copy the form that will display the new reference
field.
8. Open the form you wish to change. The window definition for the form
appears.
9. Add a text box control to display the new field and a label control to identify
it (see the chapter “Using Screen Painter” if you need instructions on this and
remaining steps).
10. Enter the following for the text box’s Tag property, where obj_name and
att_name are the same values you used in Step 4:
obj_name.att_name

11. Change the tabbing order of the fields on the window to include the new
field.
12. Save the form, and quit Screen Painter.
13. For your new form to take effect, choose Form Group, Refresh from the
Administration menu in the Unicenter Service Desk client interface.

Customizing the Database Schema 5–13


Specific Procedures

Adding Reference Tables

A reference table is a list of values that can be used to fill in fields on windows. For
example, the Contact_Type table lists the kinds of people who will use requests
or change orders (like analysts, technicians, users, or vendors). The Type field on
the Contact Detail window can be filled in from the values listed in the
Contact_Type table by double-clicking the Type field. Therefore, if you add a
reference field, you must create a reference table to maintain the list of values.

Creating a new reference table requires four sets of steps:


■ The first set of steps adds the new reference table to the database schema.
■ The second set of steps creates a new object to correspond to the new
reference table in the database schema.
■ The third set of steps creates windows to display and maintain the values in
the new reference table.
■ The fourth set of steps adds a command to the Administration menu to
access the maintenance window.

Follow these steps to create a new reference table:


1. Create a new .sch file to contain the description of the new table and an
optional table index definition in $NX_ROOT/site/mods (UNIX) or
installation-directory\site\mods (Windows).
2. Add the description of the new table to the new .sch file following these
steps:
a. Copy the description of a four-field table, like the Contact_Type table,
from schema.sch.
b. Edit the description of the copied table to contain the new table’s name
and base name (name of the internal table). To avoid possible conflict
with existing and future Unicenter Service Desk names, all table names,
base names, and field names must begin with a lowercase letter z. In
addition, fields names must not end with the characters “_f.” The base
name must also be six characters or less. If necessary, change the fields’
data types, references to other tables, and the parameters that indicate
whether they are required.
Note: Windows users should use WordPad to edit the file.
3. Optionally add a table index definition for the new table to the new .sch file
as described in the following steps. A table index definition improves
performance if you have a lot of records.
a. Copy the table index definition for Contact_Type from index.sch.
b. Edit the description of the copied table index definition to change the
table name.
Note: Windows users should use WordPad to edit the file.

5–14 Advanced Customization Guide


Specific Procedures

4. Create a new .mod file to the new table’s object name and attributes in
$NX_ROOT/site/mods/majic (UNIX) or
installation-directory\site\mods\majic (Windows).
5. Enter this OBJECT statement in the .mod file:
OBJECT obj_name{
[ATTRIBUTES [table_name]{
att_name [field_name] value_type
[access_type[status_type]]{
|SET value|NOW ;]
[ON_NEW DEFAULT|
|SET value|NOW ;]
[ON_CI DEFAULT|
|SET value|NOW ;]} ; } ;
[ON_DB_INIT DEFAULT|
[FACTORY [fac_name]{
[REL_ATTR name ;]
[COMMON_NAME name ;]
[FUNCTION_GROUP name ;]
[STANDARD_LISTS {
SORT_BY sort-col(s);};};

where:
■ obj_name is the object that corresponds to the new database table created
in step 2.
■ table_name is the new database table.
■ att_name is the name of each attribute in the object that corresponds to
the new database table.
■ field_name is the field in the new database table that the attribute name
relates to, if it is different from the name of the attribute
■ value_type is the attribute’s data type.
See the appendix “Object Definition Syntax” for this statement’s complete
syntax.
6. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.

Important! Always be sure the Reinitialize Database field is set to NO on the


Configuration window.
7. Use Screen Painter to create the windows that will let you display and
maintain the values in the new table. You will need a list window, a detail
window, and a select window (helper list window). See the chapter “Using
Screen Painter” for more information on window naming conventions and if
you need help completing the remaining instructions.
8. Enter the following for the field’s Tag property for search fields in the list
window:
list.@QBE.op.att_name

where op is:
■ GT (greater than)
■ GE (greater than or equal to)

Customizing the Database Schema 5–15


Specific Procedures

■ LE (less than or equal to)


■ EQ (equal to)
■ NE (not equal to)
■ IN (containing)
Use this format for the detail and select window, where obj_name and
att_name are the same values you used in Step 5:
obj_name.att_name

9. Add a command to a menu that allows you to open the new maintenance
window. Enter the following in the Tag field for the menu command you
add, where obj_name is the object that corresponds to the new database table:
obj_name_list_manager.manage_dispob

10. Save the form, and quit Screen Painter.


11. For your new form to take effect, choose Form Group, Refresh from the
Administration menu in the Unicenter Service Desk client interface.

Example

This example creates a table of reason codes for Change Orders:


1. Create a new .sch file called rcmaint.sch in $NX_ROOT/site/mods (UNIX) or
installation-directory\site\mods (Windows).
2. Add the description of the new table to the new .sch file following these
steps:
a. Copy the description of the Contact_Type table from schema.sch. It looks
like this:
TABLE Contact_Type SMALL READ_ONLY {
// Contact type classifies the type of the contact.

id INTEGER uniq KEY; // key id


del INTEGER nn; // 0=present,1=gone
sym HIER_SYM uniq S_KEY; // type symbol
desc ENT_DESC; // non-OSI specified column
}
p1 Contact_Type -> CURR_PROV ct_ty {desc -> nx-desc;}

b. Edit the description of the copied table to contain the new table’s name
and base name, a code field, and a date field that tracks when changes
were made. To comply with the naming convention, the new table name
will be zReason_Codes, not just Reason_Codes. The table base name will
be zrc. Changes are in italics.
TABLE zReason_Codes {
// Gives the Change Order’s reasons for close.
code STRING 30 uniq; // internal key
last_mod_dt LOCAL_TIME; // date changes were made
id INTEGER uniq KEY; // key id
del INTEGER nn; // 0=present,1=gone
sym HIER_SYM uniq S_KEY; // type symbol

5–16 Advanced Customization Guide


Specific Procedures

description ENT_DESC; // desc of reason codes


}
p1 zReason_Codes -> CURR_PROV zrc;

Note: Windows users should use WordPad to edit the file.


3. Add a table index definition for the new table to the new .sch file following
these steps:
a. Copy the table index definition for Contact_Type from index.sch. It looks
like this:
TABLE_INFO Contact_Type {
INDEX SORT CLUSTER ASCENDING (ORDER_BY) UNIQUE sym;
}

b. Edit the description of the copied table index definition to change the
table name. Changes are in italics.
TABLE_INFO zReason_Codes {
INDEX SORT CLUSTER ASCENDING (ORDER_BY) UNIQUE sym;
INDEX SORT ASCENDING UNIQUE code;
}

Note: Windows users should use WordPad to edit the file.


4. Create a new .mod file called rcmaint.mod in $NX_ROOT/site/mods/majic
(UNIX) or installation-directory\site\mods\majic (Windows).

Tip: You can copy the definition of the chgcat object (Change_Category) in
$NX_ROOT/bopcfg/majic/change.maj (UNIX) or
installation-directory\bopcfg\majic\change.maj (Windows) and modify it to
fit this example.

5. Enter this statement in rcmaint.mod:


//reason codes
OBJECT rc {
ATTRIBUTES zReason_Codes {
sym STRING REQUIRED;
delete_flag del SREL actbool
REQUIRED {ON_NEW DEFAULT 0;};
last_mod_dt DATE {ON_CI SET NOW;};
description STRING ;
code STRING WRITE_NEW REQUIRED;
};
FACTORY {
STANDARD_LISTS {
SORT_BY "sym,code";
WHERE "delete_flag = 0";};
REL_ATTR code;
COMMON_NAME sym;
FUNCTION_GROUP "reference";};
};

Customizing the Database Schema 5–17


Specific Procedures

6. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.

Important! If you are using a Sybase, Oracle, or Informix database, be sure the
Reinitialize Database field is set to NO on the Configuration window.
7. Use Screen Painter to create the Reason Code List window, the Reason Code
Detail window, and the Reason Code Select window (see the chapter “Using
Screen Painter” if you need instructions on this and remaining steps).
8. For each field on the detail or select window, enter a value such as rc.sym
(that is, one with the prefix rc for the object name) for the Tag property. For
each search field on the list window, enter a value such as
list.@QBE.EQ.last_mod_dt for the Tag property.
9. Add a command named Reason Codes to the Administration, Change
Orders submenu. Enter the following in the Tag field for the menu command
you add:
rc_list_manager.manage_dispob

10. Save the form, and quit Screen Painter.


11. For your new form to take effect, choose Form Group, Refresh from the
Administration menu in the Unicenter Service Desk client interface.

The database now has a new reference table, zReason_Codes, but it is empty.
Open it under the Unicenter Service Desk client interface and fill it with values
using the new windows. Then you can double-click the new reason code field on
Change Orders to select a reason code.

5–18 Advanced Customization Guide


Specific Procedures

Defining Activity Associations for User-Defined Attributes

Activity associations enable you to define activity types that can be associated with
an attribute (field) of various objects (change orders, plan tasks, and so forth).
You can define activity associations for user-defined attributes. Only one activity
association per object attribute is supported. See Setting Up Activity Associations
in the CA Procedures Guide for more information about activity associations.

Use this procedure to define activity associations for user-defined attributes. This
procedure assumes that the user-defined field exists, and that an OBJECT
statement has been created in a .mod file in the $NX_ROOT/site/mods/majic
(UNIX) or installation-directory\site\mods\majic (Windows) directory:
1. Edit the function val_fieldupdate_site() for the OBJECT in the
$NX_ROOT/samples/function/object_site.mod (UNIX) or
installation-directory\samples\function\object_site.mod (Windows) directory,
where function is the Unicenter Service Desk function, such as Change
Orders, and object is the object-identifier, such as chg.
The new attribute must be added to the parameter list as follows:
OBJECT chg{
TRIGGERS {
//log field changes
POST_CI val_fieldupdate (persistent-id, audit_userid,
new_attribute) 40 ;

2. Move the .mod file to the $NX_ROOT/site/mods/majic (UNIX) or


installation-directory\site\mods\majic (Windows) directory.
3. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.
4. Create a new activity association. Type the new attribute name in the Object
Type Attribute field. See Defining Activity Associations in the CA Procedures
Guide for procedures to define an activity association.

Customizing the Database Schema 5–19


Specific Procedures

Example

This example creates an activity notification for a new field in the


Change_Request table called maintenance_level. The new field has been added
to the schema and an object statement has been created in a .mod file in
$NX_ROOT/site/mods/majic (UNIX) or installation-directory\site\mods\majic
(Windows) as shown below:
OBJECT chg {
ATTRIBUTES Change_Request {
maintenance_level STRING;
};
};

1. Add maintenance_level to the parameter list in the val_fieldupdate_sit()


function for the cr object. This function is in the
$NX_ROOT/samples/call_mgr/cr_site.mod (UNIX) or
installation-directory\samples\call_mgr\cr_site.mod (Windows) directory.
OBJECT chg{
TRIGGERS {
//log field changes
POST_CI val_fieldupdate (persistent-id, audit_userid,
maintenance_level) 40 ;

2. Move the .mod file to the $NX_ROOT/site/mods/majic (UNIX) or


installation-directory\site\mods\majic (Windows) directory.
3. Follow the appropriate set of steps under Updating the Database Schema to
stop, reconfigure, and restart Unicenter Service Desk, and reload the data.
4. Create a new activity association:
a. Type maintenance_level in the Object Type Attribute field.
b. Select Field Update from the Activity Type pull down.
c. Choose Save from the File menu, and click OK.
Note: See Defining Activity Associations in the CA Procedures Guide if you
need more help defining the activity association.

When a user modifies the maintenance_level field in a Change Order, an entry is


created in the Activities log with type Field Update.

5–20 Advanced Customization Guide


Customizing Queries and
Chapter

6 Messages

Unicenter Service Desk provides a number of features that allow you to narrow
the focus of Request or Change Order Management so you can concentrate on
requests or change orders that apply to your immediate situation. One of these
functions stores queries that you can use to see relevant requests or change
orders when you open Unicenter Service Desk. Another lets you customize the
messages that notify key personnel of request or change order activities.

The first part of this chapter explains how you can provide stored queries that
focus on request or change orders related to the logged-in user and customize the
counter fields in the scoreboard area of the Unicenter Service Desk Windows
client and web interfaces. The second part explains how you can customize
activity notification messages to include attributes from the activity log object
and information on specific requests.

Defining Scoreboard Queries


One of the tables in the database, Cr_Stored_Queries, defines stored queries for
Request Management. These stored queries can be used to customize the counter
fields on request nodes in the scoreboard area of the Unicenter Service Desk
Windows client client and web interfaces. The counter fields tell how many
records match the query. For example, they can tell how many of various types of
requests have been assigned to the logged-in user.

Each user can customize the counter fields that appear on his or her scoreboard.
(This is explained in the CA Procedures Guide.) However, the system
administrator must first define the various types of requests that can be counted
in these counter fields as stored queries. This is explained in Setting Up Stored
Queries in the Administrator Guide. Setting Up Stored Queries contains
instructions for defining new stored queries using Request and Change Order
Management.

Customizing Queries and Messages 6–1


Defining Scoreboard Queries

Stored Queries for Logged-in User

Two of the fields that must be defined on the Stored Query Detail window are
Where Clause and Label. Both of these fields can contain stored queries that are
customized to the logged-in user. In Request and Change Order Management,
stored queries refer to objects and attributes, rather than to table names and
columns. A stored query that is customized to the logged-in user consists of two
parts:
■ The request object (cr). This is usually specified on the left of the equal (=)
sign. The syntax for this part of the stored query is:
att_name[.att_name...].SREL_att_name

■ The logged-in user (the instance of the cnt object for this user). This must be
specified on the right of the equal (=) sign if the requests are to be selected
based on an attribute of the logged-in user. The syntax for this part of the
stored query is:
@obj_name.att_name[.att_name...].SREL_att_name

Syntax for cr Object

Use this syntax if the reference is to the cr object:


att_name[.att_name...].SREL_att_name

This example identifies the location of the person assigned to handle a request (In
this example, the object name is omitted, which implies the cr object.):
assignee.location.id

where:

assignee The attribute in the cr object that maps to the assignee field in the Call_Req table.
The assignee attribute is defined in the cr object with SREL agt, which means it
refers to the agt factory. The agt factory is part of the cnt object definition.

location The attribute in the cnt object that maps to the c_l_id field in the Contact table.
The location attribute is defined in the cnt object with SREL loc, which means it
refers to the loc object.

id An attribute in the loc object. Note that the id attribute is not defined explicitly
but is always part of an object definition.

6–2 Advanced Customization Guide


Defining Scoreboard Queries

Syntax for cnt Object

Use this syntax if the reference is to an object other than cr:


@obj_name.att_name[.att_name...].SREL_att_name

This example identifies the location of the logged-in user:


@cnt.location.id

where:

@ Indicates to replace this expression in the label or WHERE clause.

cnt The object name, which is specified because the reference is to an object other
than cr.

location The attribute in the cnt object that maps to the c_l_id field in the Contact table.
The location attribute is defined in the cnt object with SREL loc, which means it
refers to the loc object.

id An attribute in the loc object. Note that the id attribute is not defined explicitly
but is always part of an object definition.

WHERE Clause

The following example demonstrates a value you can code in a WHERE clause:
assignee.location.id = @cnt.location.id AND active=1

This query selects all active requests where the assignee’s location is the same as
the location of the logged-in user.

Label

Attributes in the cnt object can be included in labels the same way they are
included in WHERE clauses. Here is an example of the use of an attribute in the
cnt object in a label:
@cnt.location.name Calls

This label will include the name of a location, for example, Phoenix, where
Phoenix is substituted for @cnt.location.name when the label is displayed on a
window. The label will be displayed as Phoenix Calls.

Customizing Queries and Messages 6–3


Defining Scoreboard Queries

The IN Keyword

The IN keyword allows a stored query to reference two (or more) tables without
creating a join. This can result in significant efficiencies in executing the query. It
is coded as follows:
SREL_att_name IN ( value1 [, value2 [,…]] )

For example, a request query could be coded as:


category.sym IN (’Soft%’, ’Email’)

This results in the SQL WHERE clause:


category IN (SELECT persid FROM prob_ctg
WHERE sym LIKE ’Soft%’ OR persid = ’Email’)

One use of IN is to avoid Cartesian products. For example, the following query
results in a Cartesian product and is very inefficient:
assignee.last_name LIKE ’MIS%’ OR group.last_name LIKE ’MIS%’

Using IN, the query can be coded as:


assignee.last_name IN ’MIS%’ OR group.last_name IN ’MIS%’

This query does not create a Cartesian product; in fact, it creates no joins at all.
Note that the parentheses that normally enclose the list of values on the right side
of IN can be omitted if there is only one value in the list.

Similarly, you should avoid joins in data partitions by converting a data partition
such as:
assignee.last_name LIKE ’Smith’

to:
assignee = 12345

This avoids the join with some loss in clarity. Using IN, the same partition can be
written as, which has the clarity of the first version, with almost the same
efficiency as the second version:
assignee.last_name IN ’Smith’

6–4 Advanced Customization Guide


Defining Scoreboard Queries

Time-Based Queries

Time spans can be used to create time-based stored queries. A time span specifies
a period of time, which can be relative to the current date. For example, a time
span could refer to today, yesterday, last week, or last month. A time span has a
name, such as TODAY or YESTERDAY. You refer to a time span in a stored
query by using either of two built-in functions:
■ StartAtTime (timespan-name) refers to the beginning of the period described
by the time span.
■ EndAtTime (timespan-name) refers to the end of the period described by the
time span.

The syntax rules for stored queries require that the time span name be enclosed
in single quotes, with each single quote preceded by a backslash. For example, to
refer to the beginning of last week, you would specify:
StartAtTime(\’LAST WEEK\’)

The passage of time makes it necessary to periodically refresh a stored query


containing a reference to a time span. For example, the interval described by
“yesterday” changes at midnight. You specify the Start Time, End Time, and
Trigger Time for refreshes in the Timespan Detail window.

Start Time

Start Time specifies the beginning of the time span in absolute or relative terms.
There are five fields within the Start Time section of the Timespan Detail
window:
■ Year
■ Month
■ Day
■ Hour
■ Minute

Customizing Queries and Messages 6–5


Defining Scoreboard Queries

The following table describes the Start Time fields of the Timespan Detail
window.

Field Description
Year An explicit year, such as 2000, or a relative year such as +1 (next
year) or –1 (last year)
Month An explicit month from 1 (January) to 12 (December), or a relative
month such as +1 (next month) or –1 (last month)
Day An explicit day from 1 to 31, or a relative day such as +1
(tomorrow) or –1 (yesterday)
Hour An explicit hour from 0 to 24, or a relative hour such as +1 (next
hour) or –1 (last hour)
Minute An explicit minute from 0 to 59, or a relative minute such as +1 or
–1

End Time

End Time specifies the end of the time span in absolute or relative terms. The
End Time fields of the Timespan Detail window are the same as the Start Time
fields of the Timespan Detail window (see Start Time earlier in this chapter).

Trigger Time

The Trigger Time field specifies when the WHERE clause of a stored query
containing a reference to the time span is recreated and the stored query
refreshed. Trigger Time must be relative to the current time as described in the
following table:

Field Description
Year Must a relative year from –1 (last year) to +36 (36 years from now)
Month Must a relative month from –1 (last month) to +11 (11 months from
now)
Day Must a relative day from –1 (yesterday) to +31 (31 days from now)
Hour Must a relative hour from –1 (last hour) to +23 (23 hours from
now)
Minute Must a relative minutes from +9 (9 minutes from now) to +59 (59
minutes from now)

6–6 Advanced Customization Guide


Customizing Activity Notification Messages

Customizing Activity Notification Messages


Notification messages can be sent automatically when request activities occur.
This is explained under Setting Up Activity Notifications in the Administrator
Guide. That section contains instructions for defining activity notifications using
Request Management.

Two of the fields that must be defined on the Activity Notifications Detail
window are Notification Message Title and Notification Message Body. Both of
these fields can contain attributes from the activity log object (alg) and can
identify the specific request related to the activity.

Attributes from the Activity Log Object

To include an attribute from the activity log object, include this in the
Notification Message Title or Notification Message Body field:
att_name

Note that the name of the object, alg, is the default and need not be specified. For
example, to include the type of activity in the message title, enter this in the
Notification Message Title field (along with the rest of what you want in the title):
type

To include the description of the activity in the message body, enter this in the
Notification Message Body field (along with the rest of what you want in the
body):
description

Information on Specific Requests

For messages to provide information on the specific request that triggered the
notification, the Notification Message Title or Notification Message Body fields
must contain an attribute in the activity log object that references the request
object. Enter this reference in this format:
@{call_req_id.cr_att_name}

where:

@ Indicates to replace this expression. It is specified because the first attribute is in


an object other than cr. With activity notification messages, this object is always
alg, the activity log object. (Since this is the default, it is not specified.)

call_req_id The attribute in the activity log object that links it to a specific instantiation of the
request object (cr).

Customizing Queries and Messages 6–7


Customizing Activity Notification Messages

cr_att_name Any attribute in the cr object.

For example, to include the impact of the request in the message title, enter this in
the Notification Message Title field (along with the rest of what you want in the
title):
@{call_req_id.impact.sym}

To identify the affected resource in the message body, enter this in the
Notification Message Body field (along with the rest of what you want in the
body):
@{call_req_id.affected_resource.name}

To specify to reopen a specific request by number, enter this in the Notification


Message Title field:
Reopen Request @{call_req_id.ref_num}

6–8 Advanced Customization Guide


Chapter

Integration with Other Products


7
You can integrate Unicenter Service Desk with other software products.
Information and integration procedures, if necessary, are provided in this
chapter.

Asset Management Option or AimIT Enterprise Edition


You can integrate Unicenter Service Desk with the Unicenter NSM Asset
Management Option or ServiceIT with the AimIT Enterprise Edition. The Asset
Management Option or AimIT Enterprise Edition provides a complete set of
hardware and software inventory functions. See the Computer Associates
website at ca.com for more information about the Asset Management Option or
AimIT Enterprise Edition.

Integration between Unicenter Service Desk and the Asset Management Option
is done automatically and activated when the Asset Management Option and the
Unicenter NSM clients are installed on the Unicenter Service Desk client
machine. Integration between ServiceIT and AimIT is done automatically and
activated when AimIT and the Unicenter NSM Framework clients are installed
on the ServiceIT client machine. (Unicenter NSM or Unicenter NSM Framework
must be installed on each client.)

When the Unicenter Service Desk or ServiceIT client is started, it looks to see if
the Asset Management Option and Unicenter NSM clients or AimIT and the
Unicenter NSM Framework clients are installed on the machine. If installed, the
Asset Management Option or AimIT button is selectable (active) on the Asset
Detail window. Clicking this button with an Asset Detail window populated
starts the Asset Management Option or AimIT and displays additional
information about that asset. This button is dimmed (inactive) if the Asset
Management Option and Unicenter NSM clients or AimIT and Unicenter NSM
Framework clients are not installed on the Unicenter Service Desk client.

Integration with Other Products 7–1


FAXServe

FAXServe
The FAXServe notification method lets you send notification messages by fax to
recipients. Fax notification is supported for Windows only.

To use FAXServe, the Unicenter Service Desk Windows server must also be a
FAXServe client, meaning the FAXServe client must be installed on the same
machine as the Unicenter Service Desk server. In addition to being a FAXServe
client, the Unicenter Service Desk server can also act as the FAXServe server.

Set Up Fax Notification

To set up fax notification, the Unicenter Service Desk administrator must perform
the following steps. We recommend that any non-essential applications be closed,
as the machine must be rebooted at the end of these procedures.
1. Change the Unicenter Service Desk daemons to run as a real user that also
appears in the FAXServe list of approved users. The Paradigm user is
recommended:
a. Open Services on the Unicenter Service Desk server.
b. Double-click a Unicenter Service Desk service.
c. Change the Log On As section from System Account to This Account,
and enter the Paradigm user name and password information.
d. Click OK.
e. Repeat for remaining Unicenter Service Desk services.
2. Add the Paradigm user to the FAXServe user list:
a. Verify that a FAXServe client is installed on your Unicenter Service Desk
server. The default directory of C:\FAXclnt is recommended.
b. Open the FAXServe Administrator by clicking Start on the taskbar, and
then choosing Programs, FAXserve Client.
c. Choose Default Server from the Tools menu to open your server window
and to set up your default server if you have not already done so. See the
FAXServe documentation for more information.
d. Right-click User List and choose New.
e. To add the user to the valid FAXServe User list, select the Paradigm user
from the Domain User(s) and click Add.

7–2 Advanced Customization Guide


FAXServe

f. Click OK.
g. To add personal information to the user record, right-click the user in the
User List and choose Properties.
h. Click the Personal tab, enter the desired information and click OK. This is
where Unicenter Service Desk obtains information about the sender of
Unicenter Service Desk fax notifications.
3. Verify that you have the updated sendfax.exe in your FAXclnt install
directory. We recommend backing up the original. Contact Unicenter Service
Desk Technical Support if you do not have this executable.
4. Verify that the path to sendfax.exe is in the system PATH variable for your
Unicenter Service Desk server by checking the value and modifying if
necessary.
5. Add new System environment variable(s) to the Unicenter Service Desk
server.
a. Click Start on the taskbar, and then choose Settings, Control Panel.
b. Double-click System.
c. Click the Environment tab.
d. Click any System Variable.
e. Overwrite the Variable name with NX_FS_SERVER.
f. Overwrite the Value with the machine name of your FAXServe server.
g. Click Set.
h. To use an RTF template other than the default sample, repeat steps d-g,
creating a variable called NX_FS_TEMPLATE set to the fully qualified
file name of the RTF template desired.
i. Click OK to accept changes, and close the Control Panel.
A sample rich text format (RTF) template is provided in
%NX_ROOT%\samples\FAXserve. This is the default. The samples can be
used as models for other RTF templates that can be edited with almost any
word processing application.
6. Reboot the Unicenter Service Desk server.

Integration with Other Products 7–3


Remote Control Option or ControlIT Enterprise Edition

Determining Information to Send

Information about the sender of the Unicenter Service Desk notification is


obtained from the FAXServe user record of the Paradigm user, or whichever user
is running the Unicenter Service Desk service.

Information about the recipient of the notification is obtained from the recipient’s
Unicenter Service Desk contact record. If the recipient’s fax number is not on the
internal phone network, any pre-dial numbers to reach an outside line must be
included in the Fax Number field on the Contact Detail. If the fax is going to an
internal extension, the extension alone is sufficient.

Notification data is obtained from activity notification records. Double quotes in


any passed notification fields are removed.

Remote Control Option or ControlIT Enterprise Edition


The Remote Control Option or ControlIT Enterprise Edition is a remote control
application that lets you log in to another computer to service requests remotely
on another personal computer that also has the Remote Control Option or
ControlIT installed. Both the Unicenter Service Desk PC client and the remote
machine must have the Remote Control Option or ControlIT installed.
Integration with the Remote Control Option or ControlIT is supported only for
Windows platforms.

When the Unicenter Service Desk client is started, it looks to see if the Remote
Control Option or ControlIT is installed on the machine. If the Unicenter Service
Desk client finds the Remote Control Option or ControlIT installed on the
machine, then the Remote Control button is active on the Request Detail window.

When you click the Remote Control button, a Remote Control Option or
ControlIT login window is displayed and you must provide information that
identifies you to the remote computer. If the remote computer is identified in the
Asset field on the Request Detail window and its IP address is provided in the
System ID/IP Addr field on the Properties page of its Asset Detail record, the IP
address is filled in on this login window. Otherwise, you must provide the IP
address.

If the Unicenter Service Desk client does not see the Remote Control Option or
ControlIT installed on the machine, then the Remote Control button on the
Request Detail window is dimmed (inactive).

7–4 Advanced Customization Guide


Chapter

Version Control
8
Unicenter Service Desk version control helps you manage system customizations
affecting clients and secondary servers. This chapter describes how to use version
control on client and secondary server installations. Note that in this chapter,
most references to “client” apply to either a client or a secondary server.

When a client connects to the server, it sends a list of its controlled components to
the server. The server compares the list to its own master list. If it finds any
differences, it can notify the client, fail the connection attempt, or upgrade the
client to the correct version of the controlled components. Note that version
control is not a software delivery system; the upgrade feature simply provides a
way to correct minor synchronization problems between client and server.

There are two sets of version control files maintained. One set is for secondary
servers and the other is for all clients. The client components under version
control are defined in two files on the server.

On a UNIX server, these files are:


■ $NX_ROOT/site/server_default.ver
■ $NX_ROOT/site/mods/server_custom.ver

On a Windows server, these files are:


■ installation-directory\site\server_default.ver
■ installation-directory\site\mods\server_custom.ver

The server_default.ver file is part of the standard installation package, and you
should not modify it. You can create the server_custom.ver file to control your
site’s own customizations.

Version control automatically creates and maintains similar files on each client.
On UNIX clients, these files are:
■ $NX_ROOT/site/default.ver
■ $NX_ROOT/site/mods/custom.ver

Version Control 8–1


Requirements

On Windows clients, these files are:


■ installation-directory\site\default.ver
■ installation-directory\site\mods\custom.ver

The corresponding files on a secondary server are:


■ server_secondary.ver
■ server_secondary_custom.ver
■ secondary.ver
■ secondary_custom.ver

These files describe the components and versions currently installed on the client
or secondary server.

A controlled component can represent a file, a directory, or the client_nx.env


environment variable file. A component can also be generic; that is, not
associated with any external object. You can use a generic component to provide
version control for the client as a whole, or for a file or directory too large for an
automatic upgrade. A version mismatch that would cause a generic component
to be upgraded instead, results in the client connection failing.

Requirements
This section describes the server and client requirements for using version
control.

Primary Server

Version control on the Unicenter Service Desk server consists of one executable,
pdm_ver_nxd, and two version control files, server_default.ver and
server_secondary.ver. If you want, you can create and maintain two custom
version control files, server_secondary_custom.ver and server_custom.ver, to
manage customizations. The default setting of the NX.env variable
NX_VER_CTL is UPGRADE, causing version control to upgrade the when a
discrepancy is detected (see Version Control Server Modes later in this chapter
for more information).

8–2 Advanced Customization Guide


Requirements

Pdm_ver_nxd validates version request messages from clients by comparing the


data in the request with the version control files: server_default.ver,
server_secondary.ver, server_custom.ver and server_secondary_custom.ver. If it
detects a component version discrepancy, it logs a message about the problem
and, since UPGRADE is enabled, the client is upgraded. The contents of the client
notification message depend on the setting of the ver ctl option (see the chapter
“Options Manager” in the Administrator Guide for more information).

Secondary Server

Version control on a Unicenter Service Desk secondary server consists of one


executable, pdm_ver, and a version control file, secondary.ver. If you want, you
can create and maintain a second version control file,
server_secondary_custom.ver, to manage customizations. The default setting of
the NX.env variable NX_VER_CTL is UPGRADE, causing version control to
upgrade the secondary server when a discrepancy is detected (see Version
Control Server Modes later in this chapter for more information).

Pdm_ver validates version request messages from clients by comparing the data
in the request with the secondary.ver and secondary_custom.ver files. If it detects
a component version discrepancy, it logs a message about the problem and, since
UPGRADE is enabled, the secondary server is upgraded. The contents of the
client notification message depend on the setting of the ver ctl option (see the
chapter “Options Manager” in the Administrator Guide for more information).

Client

The client software includes one executable, pdm_ver, and a default version file,
default.ver. Version control automatically creates a second version file
(custom.ver) on the client if a server_custom.ver file exists on the server. The two
client version files track the versions of standard and customized components
installed on the client.

Version checking is performed only for remote clients (there is no need for
version control on clients running on the server machine, since the server
contains the master copies of all components). When a client starts up, it reads its
version files and sends a message to the server listing all installed components
and their versions. If there is a component version discrepancy, the server
determines its response by checking the NX_VER_CTL environment variable (see
Version Control Server Modes later in this chapter for more information). The
server response tells the client whether to continue, terminate, or upgrade
components.

Note: Most clients will receive a download of files and option variables upon
initial startup.

Version Control 8–3


Version Control for Installation Customizations

Version Control for Installation Customizations


If you customize your Unicenter Service Desk client, you can use version control
to monitor and control the installation of the customizations on the clients. To do
this, create a server_custom.ver (or server_secondary_custom.ver for secondary
servers) file describing your customizations.

Follow these steps:


1. Create the server_custom.ver file. On UNIX, create this file in
$NX_ROOT/site/mods/server_custom.ver. On Windows, create this file in
installation-directory\site\mods\server_custom.ver.
2. Add components to server_custom.ver for each of your changes using one of
the following techniques:
■ Create dir_ctl components to implement version control at the directory
level. When you do this, all files in the directory are considered to be at
the same version and are upgraded at the same time. This minimizes
maintenance to server_custom.ver, but may sometimes result in
upgrading files that are already up to date on the client.
■ Create file_ctl components to implement version control at the file level.
This provides better documentation and control at the cost of a larger
server_custom.ver file.

Regardless of the method you use, you must update the version number in
server_custom.ver whenever you make a change to a customized component.
This allows version control to recognize clients that have a different version.

Version control uses the two version files (server_default.ver and


server_custom.ver) independently to verify the version of components on the
clients. Components should not be duplicated between the two files; if they are,
version control will verify the component twice, which could have unexpected
results if the version number or date is not the same.

8–4 Advanced Customization Guide


Version Control Server Modes

Version Control Server Modes


The ver_ctl server option (which sets the NX_VER_CTL environment variable)
determines how version control responds to version discrepancies between
installed components in the server and client. You set this option with the
Options Manager (see the chapter “Options Manager” in the Administrator Guide
for more information). It can have one of the following values:

NOTIFY On a Windows client, a version discrepancy results in a message window asking


if the user wants to continue or quit. On a UNIX client, a version discrepancy is
logged, but the client always completes initialization.

FAIL A version discrepancy causes the client to terminate. The user is prevented from
using Unicenter Service Desk until the client is manually updated.

UPGRADE When the server finds a version discrepancy, it asks the client to upgrade the
affected components to the correct version. If this upgrade is successful, the client
connection continues. Otherwise, the client terminates. The method of upgrade
depends on the version control type of the component. Valid settings are:

Setting Description
dir_ctl The client adds, updates, or deletes files in the directory from
copies provided by the server. The directory itself is never deleted.
file_ctl The client adds, updates, or deletes the file from a copy provided
by the server.
nxenv_ctl The client updates its NX.env file.
ver_ctl A ver_ctl component cannot be upgraded. A discrepancy in this
type of component causes the client to terminate without
connecting to the server.

DISABLE The server ignores version discrepancies. All clients are allowed to connect.

Version Control 8–5


Version Control File Syntax

Version Control File Syntax


Each version control file describes one or more components. A component can
represent a file, directory, or the client_nx.env environment variable file. A
component can also be generic; that is, not directly associated with any external
object.

Tip: For more information about the structure and syntax of version control
files, look at the .ver files that are installed on your system in the site
subdirectory of the main Unicenter Service Desk installation directory. These
files have useful comments and example settings that may help you.

Use the following syntax to define each component. Items in italic represent data
that you supply, and are further described below. All other items represent
keywords that you must enter exactly as shown:
[ component-name ]
version = "x.x, yyyymmdd"
control-type
filename = "filename"
directory = "directory"
link = "link-directory"
source = "source-directory"
effectivity = "effect-spec"
checksum
min_release = "release"
max_release = "release"
component_type = "file-type"
o_mode = "owner-mode"
g_mode = "group-mode"
w_mode = "world-mode"

The component-name and version parameters are always required. Other


parameters may be required, depending on the value of control-type.

Parameters

[ component-name ] Specifies the name of an item under version control. The name must be unique
and enclosed in square brackets. component-name is not case-sensitive. This
parameter is required to begin a component definition.

version=“x.x, yyyymmd”
Specifies a version number (x.x) and a date (yyyymmdd) that define the version of
the component. This parameter is required, and must be enclosed in double
quotes. Version control verifies the version of a component by comparing the
version number and date on the server with the version number and date on the
client. Both version number and date must match for the component to be
considered in sync between client and server.

8–6 Advanced Customization Guide


Version Control File Syntax

control-type Specifies the type of version control for this component. Valid settings are:

Setting Description
dir_ctl Specifies that the component represents a directory. You must
provide the directory parameter to specify the path to the
directory. On a Windows server, you can also provide the filename
parameter to specify a mask for files in the directory to upgrade
when an upgrade is required. The filename parameter is ignored
for dir_ctl components on a UNIX server. Subdirectories are not
upgraded on either UNIX or Windows.
file_ctl Specifies that the component represents a file. You must provide
the directory and filename parameters to specify the path to the
file.
nxenv_ctl Specifies that this component represents the client_nx.env file,
which is used to store client environment variables. Unicenter
Service Desk version control and the Options Manager
automatically maintain this file (see the chapter “Options
Manager” in the Administrator Guide for more information). There
is exactly one nxenv_ctl component, and its component name must
be CLIENT_NXENV.
ver_ctl This is the default control type. It specifies that the component is
generic; that is, not associated with any specific external object.
You can use a generic component to provide version control for
the client as a whole, or for a file or directory too large for an
automatic upgrade. Components with a control type of ver_ctl
cannot be upgraded; a version mismatch on a ver_ctl component
when the server is in UPGRADE mode causes the client connection
to fail.

filename=“filename” Specifies the name of a file under version control. This parameter is required for
file_ctl components, and is optional for direct control components. You can use
the filename parameter as a mask to control upgrades from directories associated
with dir_ctl components. For example, if the filename for a dir_ctl component is
*.README, then an upgrade from that directory would include only files ending
with “.README.”

directory=“directory” Specifies the path to the directory for dir_ctl components, or to the directory
containing the file for file_ctl components. This parameter is ignored for ver_ctl
and nxenv_ctl components. The directory path must be enclosed in quotes, and
can contain references to environment variables preceded with a $.

Note: Always use forward slashes (not backslashes) to separate subdirectories in


the path name, even on a Windows server.

Version Control 8–7


Version Control File Syntax

link=“link-directory” Specifies a link directory on the client in the same format described previously
for directory parameter. This parameter is optional for file_ctl and dir_ctl
components, and ignored for ver_ctl and nxenv_ctl components.

If it is specified, an upgrade to a UNIX client causes a symbolic link to be placed


in the link directory, pointing to the actual file copied to the location specified by
the directory parameter. An upgrade to a Windows client causes the actual file to
be copied to both the link and directory locations.

source=“source-directory”
Specifies a different directory where the server will retrieve files in the same
format described previously for the directory parameter. This parameter is used
to tell the server to retrieve the file from source-directory and deliver it to the
location specified by the directory parameter.

effectivity=“effect-spec” Specifies whether the client should get this component. It allows you to exclude
download to some clients. If a client is not included in the effectivity
specification, then the client will not get the component. This parameter is
optional. If it is omitted, all clients will receive the component. The effectivity
specification uses the following symbols:

Setting Description
+ Indicates to add a client type or group.
- Indicates to exclude a client type group.

The valid client types are:

WINNT
WIN95
WIN98
ME
WIN2000K

The valid client groups are:

PC_CLIENTS
UNIX_CLIENTS

For example, the following specification indicates that WIN95 and WINNT
clients will get the component; however, UNIX will not:
effectivity = "+ WIN95 WINNT – UNIX_CLIENTS"

8–8 Advanced Customization Guide


Version Control File Syntax

checksum This parameter indicates that the component will be upgraded if the checksum of
the component on the client does not match that the corresponding checksum on
the server. If it is applied to a directory, then checksum is applied to each file.

min_release=“release” Specifies the oldest and latest client this component will be distributed to.
max_release="release" Statements in the server_default.ver file define releases. These parameters are in
the following form:

! Release GA50 50MVV000900 50W7T000900


! Release GA45 45MW000900 50WTT000900

Where Gaxx indicates the release, and the values following that are genlevels
associated with the release. The order indicates that GA50 is newer than GA45.

component_type=“file-type”
Specifies whether the file is an executable that is dependent upon the client’s
operating system. This parameter is used only during an upgrade operation. It
has two possible settings:

Setting Description
file This is the default component type. It specifies that files copied to
the client be obtained directly from the location on the server
indicated by the directory parameter.
exe_file Specifies that files copied to the client are obtained from a location
on the server that is dependent o the client’s operating system, as
shown below:
■ win95—Windows 95 and 98
■ winNT—Windows NT
■ sun4Sol—Solaris
■ hp—HP-UX
■ aix—AIX
Where these subdirectories are located depends on the setting of
the directory parameter. If this parameter is set, then they are
located under the indicated directory. Otherwise, they are located
under the bin directory of the main Unicenter Service Desk
installation directory.

Version Control 8–9


Version Control File Syntax

o_mode=“owner-mode” Specifies file access permissions for the file’s owner.

g_mode=“group-mode” Specifies file access permissions for users in the file owner’s group (used for
UNIX clients only).

w_mode=“world-mode” Specifies file access permissions for users not in the file owner’s group (used for
UNIX clients only).

The three mode parameters allow different versions of the same executable to be
maintained on the server. They specify access controls on the file when copied to
the client. These parameters are used only during an upgrade operation. They
consist of one to three characters, with the following significance:

Setting Description
R Read
W Write
X Execute

PC clients ignore Write and Execute permissions.

You can specify any combination of one or more file access modes. On UNIX
clients, the file is given the access mode specified. On PC clients, the file is made
writeable or read-only, depending on whether w_mode was specified.

8–10 Advanced Customization Guide


Chapter

Using the C Language API


9
The Unicenter Service Desk API is a C language external interface to Unicenter
Service Desk. It provides a communication layer between the user application
and the Unicenter Service Desk system. External applications can use the API to
create, modify, and query the following objects in the Unicenter Service Desk
database: contacts and assets.

The Unicenter Service Desk objects supported by the API have a full set of
attributes associated with them. Each attribute corresponds to a column in a table
in the Unicenter Service Desk database. Therefore, you must know which
attributes are associated with which objects (see the appendix “Objects and
Attributes” for details).

This chapter discusses the requirements for using the API, as well as its
components and usage.

Requirements
The API runs on a Unicenter Service Desk server or client and is supported on all
platforms that support Unicenter Service Desk.

Before starting a process that uses the API, ensure the following:
■ The current release of the Unicenter Service Desk server is installed
■ You are operating on the Unicenter Service Desk server or a properly
installed Unicenter Service Desk client
■ On UNIX, NX_ROOT is properly set in the environment to point to the
directory in which Unicenter Service Desk is installed (for example, on
Solaris installations, this is typically /opt/CApdm)
■ ON UNIX, $NX_ROOT/bin is in your path
■ The user ID of the process that uses the API appears as a user ID in the
Unicenter Service Desk Contact table

Using the C Language API 9–1


Components

Components
The API consists of three parts:
■ The API server
■ A gateway process called Specified Application Protocol Input/Output
(SAPIO)
■ The API library

API Server

On UNIX, the API server, api_svr_nxd, is a daemon that is part of the Unicenter
Service Desk installation. It resides in the $NX_ROOT/bin directory on the
Unicenter Service Desk server. It starts automatically during pdm_init and shuts
down when Unicenter Service Desk is shut down.

On Windows, the API server, api_svr_nxd.exe, is a program that is part of the


Unicenter Service Desk installation. It resides in the installation-directory\bin
directory on the Unicenter Service Desk server. It starts automatically during
when Unicenter Service Desk starts and stops when Unicenter Service Desk is
shut down.

The API server handles all requests from the API library by accessing different
parts of the Unicenter Service Desk system. Upon initialization, the API server
makes a connection with the Unicenter Service Desk interprocess
message-passing facility. The API server uses this TCP/IP socket-based facility to
communicate with its slaves and other Unicenter Service Desk processes, such as
database agents. As the figure illustrates, the API server receives requests from
SAPIO and distributes them to its slaves. Under normal circumstances, the slaves
reply directly to SAPIO, bypassing the API server.

The default number of slaves is three. This number gives optimum performance
for most users, but increasing it may improve performance on multiprocessor
servers if the API is used heavily. The number can be changed by editing
$NX_ROOT/NX.env (UNIX) or installation-directory\NX.env (Windows),
changing NX_API_NUM_SLAVES, and then stopping and restarting Unicenter
Service Desk.

Note that a Unicenter Service Desk system can have only one API server, but
multiple user applications can connect to it. As the figure illustrates, each user
application has its own SAPIO process to connect it to the API server.

9–2 Advanced Customization Guide


Components

Specified Application Protocol I/O (SAPIO)

The SAPIO process provides a gateway between the API server and the API
library. This gateway insulates the user from changes in the underlying
Unicenter Service Desk implementation.

SAPIO is started from the parent process (the user application) when the user
sends a request. Messages are passed to and from SAPIO through pipes. SAPIO
connects with the API server process via the Unicenter Service Desk
message-passing facility.

API Library

The API library is the collection of available functions, written in ANSI C, that
you can use to access Unicenter Service Desk via SAPIO. These functions, which
are called from the user application, are used to create and send requests and to
receive and parse responses (the data returned from a request).

Two levels of functions are available:


■ High-level functions take attribute-value pairs and create the request using
the low-level functions
■ Low-level functions can be called directly to create a request, with
attribute-value pairs added manually. Parsing tools are provided to prepare
these requests.

You use either high-level or low-level functions to create a request message. All
of the requests are encoded ASCII strings. After having properly built and
formatted the API message, the send_request function is called to send the
message to SAPIO. SAPIO forwards the message to the API server. SAPIO may
reject the request if licensing is violated or the user does not have access
privileges.

A response is returned to SAPIO from the server. It is also an encoded ASCII


string message. The format of the response can be a single value, a simple list of
record IDs, or a nested list of attributes and values.
■ If you are using high-level functions, the response is parsed for you and is
returned in a return parameter
■ If you are using low-level functions, you must parse the response. Parsing
tools are provided to help you extract the information.

After extracting the data and the information needed, you must free up any
memory allocated from the library calls.

API functions are declared in nx_capi.h and stored in the nx_capi.a. library. See
Compiling API Programs at the end of this chapter for more information.

Using the C Language API 9–3


Components

High-Level Functions

The following high-level functions are available. Most of them return an API
error indicating success or failure (see Attribute Lists for a description of all
attributes).

query_object The query_object function sends a QUERY request message. The user defines the
WHERE clause and sets the query flags.
api_err query_object (char *obj, char *where_clause,
int deref, int full_desc, int max_to_get,
pv_NXPV **response);

fetch_by_id The fetch_by_id function sends a QUERY request message. The user supplies the
integer internal ID of the object to be retrieved. Since various queries generally
return the internal ID of objects, this function allows the user to save some effort
fetching objects by their IDs directly.
api_err fetch_by_id (int id, char *obj, pv_NXPV **response);

Low-Level Functions

The following low-level API functions are available.

send_request The send_request function sends an API request to the API server. The request
must be properly built before calling this function. The request is a formatted API
message that contains request and data information necessary to complete the
request.
api_err send_request (pv_NXPV **request);

receive_response The receive_response function receives an API response from the API server. The
results are returned in an API-formatted message and must be parsed to obtain
log and data information.
api_err receive_response (pv_NXPV **result);

build_template The build_template function builds a template to create, modify, or query an


asset.
pv_NXPV *build_template (char *obj, char *oper);

add_to_message The add_to_message function adds new label and value string fields to an
existing ASCII message.
api_err add_to_message (char *msg, int size,
char *label, char *value);

get_log_msg The get_log_msg function retrieves the log message from a pv_NXPV response.
char *get_log_msg (pv_NXPV *results);

9–4 Advanced Customization Guide


Components

set_err_handler The set_err_handler function allows you to change the current error handler to a
new error handling routing.
void set_err_handler (int (*err_handler) ( ));

API requests generate extensive descriptive error messages. With high-level


functions, the default is to write these messages to stderr output. To avoid
writing “noise” to stderr, you can provide an alternate error handler. The sample
test programs at the end of the chapter have “null” error handlers, which ignore
error output. Other possibilities include writing to a file or to the system log.

handle_err The handle_err function is the default error handler. This routine writes to
standard error output. See set_err_handler above to see how to handle this
output.
void handle_err (char *location, char *err_code);

validate_enum The validate_enum function validates a parameter as a valid value. Use this
function to verify that values for impact, priority, and severity are between zero
and five.
char *validate_enum (int enum_value);

Parsing Tools

Parsing tools are also provided in the API library. They can be used to create
messages in the strict format required for strings in API messages. An
attribute-value node syntax is used to create both API request and response
messages. The format of responses and requests is similar. Therefore, the same
parsing tools are used to both create the requests and parse the replies.

The API syntax creates a tree for each part of the API message. The basis of the
syntax is that of a property value list data structure. Each node on the tree may
be one of the following:
■ A property name and value, such as:
label = value

■ A property name and list of values, such as:


label = { value1 value2 value3 }

■ An unnamed single value, such as:


value

■ An unnamed list of values, such as:


{ value1 value2 value3 }

Attribute-value lists are stored as nested linked lists. The parsing tools provide
functions to create, modify, search, and delete the attribute-value lists. The
parsing tools also provide functions to convert attribute-value lists to and from a
character string.

Using the C Language API 9–5


Components

For example, the API messages look like the following:


req_id = ###
obj = object_code
oper = operation_requested
msg = { data }

In this representation, data can be a single attribute-value pair, a list of


attribute-value pairs, or a nested list of attribute-value pairs. object_code and
operation_requested are enumerated strings that specify the object and the
operation that define the request. See Attribute Lists later in this chapter for the
definition of these enumerated strings.

The API syntax creates a pv_NXPV node with the following definition:
typedef struct plist_nxpv {
char *name;
char *value;
struct plist_nxpv *first_child;
struct plist_nxpv *parent;
struct plist_nxpv *next_sib;
struct plist_nxpv *prev_sib;
} pv_NXPV;

You can use the following parsing functions with the pv_NXPV node
attribute-value lists:
■ To create and delete lists:
pv_NXPV *create_nxpv( );
void delete_nxpv( pv_NXPV *);

■ To convert to and from a character string:


pv_NXPV *str_to_nxpv( char * str);
char *nxpv_errtxt( );
char *nxpv_to_str (pv_NXPV * nxpv, char * buffer, long bufsize);
char *nxpv_to_str_helper(pv_NXPV *nxpv, char *buffer, long bufsize);

■ To get a pointer to a property’s name and value:


char *get_name_nxpv(pv_NXPV *me);
char *get_value_nxpv(pv_NXPV *me);

■ To find the first or last child of a parent:


pv_NXPV *find_first_child(pv_NXPV *me);
pv_NXPV *find_last_child(pv_NXPV *me);

■ To print all children of a parent to stdout:


void print_children(int level, pv_NXPV *me);

■ To set the name or value of a property list:


void set_name_nxpv(pv_NXPV *me, char *name);
void set_value_nxpv(pv_NXPV *me, char *value);

9–6 Advanced Customization Guide


Usage

■ To allow modifications to the tree structure:


int add_child_nxpv(pv_NXPV *me, pv_NXPV *child);
void remove_nxpv(pv_NXPV *me);
int add_before_nxpv(pv_NXPV *me, pv_NXPV *sib);
int add_after_nxpv(pv_NXPV *me, pv_NXPV *sib);

■ To provide a means of traversing a data tree:


pv_NXPV *next_sib_nxpv(pv_NXPV *me);
pv_NXPV *prev_sib_nxpv(pv_NXPV *me);
pv_NXPV *parent_nxpv(pv_NXPV *me);
pv_NXPV *find_child_nxpv(pv_NXPV *me, char *child_name);

Tip: Parsing tools are unnecessary if strings are constructed correctly, as are
the sample queries in Sample Query Messages. Syntactically correct strings
can be constructed directly and converted to a nxpv tree with str_to_nxpv.
The reply can be converted to a string with nxpv_to_str. This is illustrated in
the sample test program under Processing Requests from a File.

Usage
You can use the functions in the API library to send requests, get responses, and
perform queries.

Sending Requests

Before you send a request to an API server, you must create an API message to
send. A request includes the following parameters:

Parameter Description
req_id A message request ID, which you assign to each request. This
request ID is most useful if it is a unique string. (You can
generate one from, for example, a combination of the client host
name, process ID, and a sequence number, or you can use the
generate_req_id function.)
obj The type of object. Each request specifies a valid object code for
each object. See the table below for object codes.
oper The type of operation to be performed. Each request specifies a
valid operation for the object. See the table below for operations.

Using the C Language API 9–7


Usage

Parameter Description
msg The data needed for the request. The data appears in a message
consisting of attribute-value pairs. The content of the message
depends on the object, its attributes, and the type of operation to
be performed. The message may contain attributes of the object
and other non-attribute parameters necessary to process the
request. The user ID of the person sending the request is
attached to the end of this section. (This user ID must be listed
in the Unicenter Service Desk Contact table in order to process
the request.)

The following table lists valid objects with their associated object codes and the
operations that you can perform on each object:

Object Object Name Operations


Asset NR CREATE, MODIFY, QUERY
Contact CT CREATE, MODIFY, QUERY

The following is a sample request:


req_id = 1 // request ID supplied by user application
obj="NR" // object of concern
oper="CREATE" // type of operation to perform
msg={ // data for the request
grc="modem" // any necessary parameters
resource="eng_modem_2" // or attribute-value pairs
location="phone room"
model="123Xr"
sender="john" // user ID of person sending request
} // end of request

Using Special Characters in Requests

Some characters must be preceded by an escape character if they are included in


the attribute-value pair in a request. If you want to include double quotes ( " " ),
braces ( { } ), or a backslash ( \ ) in the string values for an API CREATE or
MODIFY request, you must use a backslash as an escape character.

For example, if you want the quotes to be recognized in the following


attribute-value pair, you must use the escape character:
log = "Ann said this, \"Shutdown system at 22:00\""

Similarly, you must use the escape character if you are entering braces or a
backslash as part of the string. The following example shows proper use of the
escape character:
log = "You can add another pair \{parameter=value\}"

9–8 Advanced Customization Guide


Usage

This log entry is interpreted as:


log = You can add another pair {parameter=value}

You do not have to use the escape character with a single quote ( ' ), so an entry
such as this is valid:
log = "These are Dave's instructions."

However, single quotes and double quotes are handled differently if they are
part of the WHERE clause in an API query. In a WHERE clause, the escape
characters used depend on the SQL engine.

Getting Responses

The data returned from a request is in a format similar to that of a request and is
called a response. A response consists of these four parameters in this order:

Parameter Description
req_id The number assigned to the request.
req_status The status of the request. See the table below.
req_log Additional details about request processing appear here. This
string contains error messages or parsing warnings generated
during processing of the request.
msg The data that results from the operation. For example, for
response for a query, this section contains the data for matching
records. Some error responses will not have this section if the
complete content of the error appears in the req_log parameter.

The following is a sample response:


req_id = 1
req_status = "OK"
req_log = "Asset: eng_modem_2 created ID=20626"
msg = {resource = eng_modem_2
resource_id = "20626"}

The following table lists the possible values of the parameter req_status in a
response:

req_status Description
DATA_ERROR Error in attribute or attribute value
DOMAIN_VIOLATION Requested operation violated one or more data
partitioning restrictions
OK Requests was processed successfully

Using the C Language API 9–9


Usage

req_status Description
PROCESSING Response is an intermediate one from a query. See
Note below.
RETRY Record in request is locked. Try request again.
SYSTEM_FAILURE System failure prevented processing request.
WARNING Parsing error on attribute name or processing
warning.

Note: Intermediate responses for queries that return multiple responses have a
req_status of PROCESSING. The final response for such a query has a req_status
of OK. All responses other than those with a req_status of PROCESSING are the
final responses for the original request.

In the following sections, the examples that accompany the descriptions of the
attribute lists apply to one specific database, and index values of foreign key
fields shown in the examples are specific to that database.

Performing Queries

You can use the API library to query the following tables in the Unicenter Service
Desk database:
■ Contact (CT)
■ Network_Resource (NR)

The SQL WHERE clause forms the basis for your query. The WHERE clause is
the only required data field. The other data fields are optional.

The WHERE clause is not parsed by the API server, nor is it validated before
being sent to the database server. Therefore, you must specify a valid WHERE
clause or the response to your request produces a SYSTEM_FAILURE status. Use
the query reference tags in the tables earlier in this chapter (see Attribute Lists) to
create a valid WHERE clause. These tables list the attributes for each object and
provide any pertinent information about the field for each attribute.

The WHERE clause data must be in a format readable by the database and must
be input properly, following these rules:
■ The keyword WHERE must be entirely uppercase or entirely lowercase.
Mixed case (Where) is not allowed.
■ The entire WHERE clause must be enclosed in quotes.
■ The wildcard character (%) may be used with the LIKE feature when you are
searching for string fields.

9–10 Advanced Customization Guide


Usage

■ References to dates must be in a specific format.


■ References to enumerated types must be in the internal format.

Tip: You can use pdm_extract to dump a database table and obtain the
internal values.

Along with a valid WHERE clause, you must specify the following:
■ A request ID
■ The type of object to be queried: CT or NR
■ That the operation to be performed is QUERY

You can also specify the following optional data:


■ The maximum number of matches to return (max_return). If max_return is
not specified, all matching values are returned.
■ A Boolean flag to return a full description of all fields in the matching records
(full_desc).
■ A Boolean flag to dereference all foreign key fields in the target table (deref).
The deref flag is valid only if the full_desc flag is set.

A single query may produce one response or multiple responses:


■ If you do not specify full_desc=”yes,” a single record is returned that
contains the IDs of all matching records. It has a reply_status of OK.
■ If you specify full_desc=”yes,” more than one response can occur. Each
response includes data for one record that matches the request. Each
response has a reply_status of PROCESSING. The final response has a
reply_status of OK. It acts as an end-of-query-results.

Sample WHERE Clauses

The WHERE clauses shown in this section are valid for all the supported
databases. SQL keywords are indicated by capital letters.

The following clause searches for contacts whose last name is Smith:
"WHERE c_last_name LIKE 'Smith'"

The following clause searches for an asset system named Machine10:


"WHERE nr_system_name LIKE 'Machine10'"

Using the C Language API 9–11


Usage

The following clause searches for a charge back value of 1, which means the
charge back is set:
"WHERE a_charge_back=1"

Sample Query Messages

These are examples of complete API query messages. They apply to one specific
database; values of foreign key fields shown in the samples are specific to that
database.

The following query message returns all matching contact records whose last
name is Smith and whose user type is enumerated type 111. The returned records
are returned in full description format and contain dereferenced data:
req_id=15
obj="CT"
oper="QUERY"
msg={where="WHERE c_last_name LIKE 'Smith' AND
c_ctp_id = 111"
deref="yes"
full_desc="yes"}

The following query message returns all matching network_resource records


whose maintenance vendor ID is 1101. The returned records are returned in full
description format and contain dereferenced data:
req_id=17
obj="NR"
oper="QUERY"
msg={where="WHERE nr_maint_v_id=1101"
deref="yes"
full_desc="yes"}

Handling Errors

This section describes how to resolve problems and how the API server operates
under adverse conditions. To track down errors, follow these steps:
1. Check the status of the response. Errors or warnings are reported in the log
of the response.
2. Check the system log on Unicenter Service Desk. API errors are reported
there.

The following questions and answers describe common problems and the
system’s behavior:

What if the client Unicenter Service Desk notifies the client that a valid license is required to run
node is not licensed? Unicenter Service Desk.

9–12 Advanced Customization Guide


Usage

What if the user ID is The API server returns an error to SAPIO, and SAPIO returns an error to you.
not valid? An error is logged in the system log. The user ID of the person sending the
requests must be in the Unicenter Service Desk Contact table.

What if the API server The API library function is not able to send requests. SAPIO fails when
is down? connecting to the API server. The API request appears to hang waiting for a
response. Run pdm_status to check if the API server is running.

What if Unicenter SAPIO fails when connecting to the interprocess message-passing facility. An
Service Desk is down? error is returned to you. The pipe is broken between SAPIO and the user
application.

What if the message An error is returned to you, with the maximum buffer size returned.
data exceeds the
maximum buffer size?

What if the data The API library function returns an error. The returned message states that
requested is locked another user has locked the current object. This is logged in the system log.
by another user? Locked records may cause long delays in the processing of API requests.

What if the data The API library functions return an error. The returned message states that the
requested is not part user does not have the proper privileges to perform the requested operation or
of the user’s access that certain attributes are read-only. This is logged in the response log.
privileges?

Error Format

Errors returned from the API server are packaged as part of the response data
like this:
req_id = 123
req_status = "DATA_ERROR" | "OK" | "PROCESSING" |
"RETRY" | "SYSTEM_FAILURE" | "WARNING"
req_log = "Error or warning message returned"
msg = {
return data
or list of data
or parameter= "value"
...
}

Using the C Language API 9–13


Attribute Lists

Attribute Lists
This section contains tables listing the attributes of each object and special
classifications of these attributes used in API message requests. Following the
tables are sample valid messages for that object.

Each table contains, for each attribute, a description, qualifications, a user code
(used to refer to an attribute in an API message unless the message is a QUERY
operation), a label, and a query reference tag (used for QUERY operations).

The following column headers are used in the tables:

Column Header Description


Attribute Description Provides a brief description of the attribute.
Rq Indicates if the attribute is required for CREATE or
MODIFY operations. The numbers in this column
refer to the footnotes at the end of the table.
R/O Identifies read-only attributes. An X in this column
means you cannot update the attribute.
Enumerated Table Name Indicates which attributes are enumerated. If an
attribute is enumerated, the attribute value must be
one of the values listed in the appropriate Unicenter
Service Desk inventory table. This column indicates
the table in which the valid attribute values are
contained.
Default Indicates the default value for the field, if applicable.
The numbers in this column refer to the footnotes at
the end of the table.
User Code Provides the API reference label to that object
attribute. It corresponds to the user field listed in the
Unicenter Service Desk system file extname.dat. The
user codes are used for CREATE, MODIFY, and
CHANGE_STATUS operations.
API Label Substitutes for the user code when using the API.
These labels are listed in the Unicenter Service Desk
system file nx_def.h.
Query Ref Tag An API tag that references a specified object
attribute. The query reference tags are used only in
queries. These tags are listed in the Unicenter Service
Desk system file nx_def.h. Some attributes do not
have a query reference tag associated with them
(indicated N/A in this column).

9–14 Advanced Customization Guide


Attribute Lists

Asset (NR) Attributes

The following table lists attributes of assets. Use the user code for CREATE and
MODIFY operations and the query reference tag for QUERY operations.
Additional information about query parameters follows the table.

Attribute Enumerated Table Query Ref Tags


Description Rq R/O Name Default User Code API Label

Acquired date acquire_date api_nr_acquire nr_aq_dt

Cabinet cabinet api_nr_cabinet nr_cabinet

Contact Contact contact api_nr_contact nr_prim_c_id

Expense code expense_ api_nr_expcode nr_expense_


code code

Expiration date expire_date api_nr_expire nr_exp_dt

Family X on GRC family api_nr_family nr_family

Floor floor api_nr_floor nr_floor

General resource 1 General_ grc api_nr_grc nr_grc_id


class Resource_Class

Last modified X cur time last_mod_ api_nr_lastmod last_mod


date date

License number license_num api_nr_license nr_license_


num

Location Location location api_nr_location nr_loc_id

Log log api_nr_log nr_desc

MAC address 2, 3 mac_addr api_nr_macaddr nr_mac_addr

Maintenance org Internal_ maint_org api_nr_maintorg nr_maint_org_


Organization id

Maintenance Vendor_ maint_vendor api_nr_ nr_maint_v_id


vendor Provider maintvendor

Manufacturer X Manufacturer mfr api_nr_mfr nr_mfr_id

Model Manufacturer_ model api_nr_model nr_mdl_id


Model

Organization Internal_ resp_org api_nr_org nr_org_id


Organization

Orig vendor Vendor_ orig_vendor api_nr_origvendor nr_prim_v_id


Provider

Priority Priority priority api_nr_priority nr_pr_id

Record Status X active status api_nr_status del

Reference1 Contact ref1 api_ref1 nr_nx_ref_1

Reference2 Contact ref2 api_ref2 nr_nx_ref_2

Reference3 Contact ref3 api_ref3 nr_nx_ref_3

Using the C Language API 9–15


Attribute Lists

Attribute Enumerated Table Query Ref Tags


Description Rq R/O Name Default User Code API Label

Release release api_nr_release nr_release

Resource name 1, 2 resource api_nr_name nr_prim_search_


key

Resp vendor Vendor_ resp_vendor api_nr_ nr_resp_v_id


Provider respvendor

Room room api_nr_room nr_room

Sender 1, 5 4 sender N/A

Serial number serial_num api_nr_serialnum nr_serial_num

Service status Resource_ service_ api_nr_serviceflag nr_rss_id


Service_Status status

Shelf shelf api_nr_shelf nr_shelf

SLA Service_Level_Agre sla api_nr_sla nr_sla_id


ement

Slot slot api_nr_slot nr_slot

String1 str1 api_string1 nr_nx_string1

String2 str2 api_string2 nr_nx_string2

String3 str3 api_string3 nr_nx_string3

String4 str4 api_string4 nr_nx_string4

System ID 2 ip_addr api_nr_ipaddr nr_raw_id

System name 2, 3 sys_name api_nr_system nr_system_


name

1 These attributes are required for CREATE operations.


2 If one or more of the search fields are not used, one of these attributes is
required for MODIFY operations.
3 These attributes are not required for CREATE operations, but it is
recommended that you use them.
4 The default value of this attribute is the user ID.
5 This attribute is required for MODIFY operations.

9–16 Advanced Customization Guide


Attribute Lists

Search Attributes for Modify Requests

Asset objects have additional search attributes for MODIFY requests. You specify
a value for one of these search attributes, and if a record matches your search
specification, the values of additionally specified attributes are changed to the
new ones you specify. If more than one resource matches the search criteria, the
MODIFY request fails. The following table lists the search attributes and their
user codes.

Search Attribute Description User Code


Cabinet SearchCabinet
Expense code SearchExpenseCode
Floor SearchFloor
IP address SearchIPAddress
License number SearchLicenseNum
Resource name SearchName
Release SearchRelease
Room SearchRoom
Serial number SearchSerialNum
Shelf SearchShelf
Slot SearchSlot
System name SearchSysName

Creating and Modifying Assets

When you create an asset, you are required to use only the resource name
(resource) and general resource class (grc) attributes. However, it is
recommended that you also use the MAC address (mac_addr) and system name
(sys_name) fields. The fields that you specify in the CREATE request are used to
create an asset record. These fields are also used to uniquely identify the asset
when you submit a MODIFY request. If you use the recommended fields as well
as the required fields, the asset record is uniquely identified more easily.

Using the C Language API 9–17


Attribute Lists

When you submit a CREATE request, the API determines if a resource with the
same attributes already exists by searching for an existing resource that has the
same resource name, system name, IP address (system ID), and MAC address.
Depending on whether the API finds a matching asset, one of the following
occurs:
■ If there is no match, a new asset is created.
■ If there is a single match, the existing resource is updated and the API
returns a message stating that the existing resource was updated instead of a
new resource being created.
■ If there is more than one match, the API returns a message stating that more
than one asset was identified and that the CREATE request failed. This
prevents you from creating more than one asset with the same resource
name, system name, IP address, and MAC address.

When you submit a MODIFY request, the API determines if the asset exists in
this way:
■ If you specified search fields in the request, the API searches for a resource
whose attribute values match all the search field attributes values you
included in the request.
■ If you did not specify search fields in the request, the API searches for a
resource whose attribute values match the attribute values you included in
the request. It tries to identify the resource using these fields: resource name
(resource), general resource class (grc), MAC address (mac_addr), and
system name (sys_name).

Depending on whether the API finds a matching asset, one of the following
occurs:
■ If there is no match, the MODIFY request becomes a CREATE request and a
new asset is created.
■ If there is a single match, the MODIFY request is executed.
■ If there is more than one match, the API returns a message indicating that
more than one asset was identified and the MODIFY request failed.

Note that if you want to modify the values in or add values to the identifying
fields (resource name, IP address, system name, and MAC address) in an existing
asset, you must use the search attributes to locate the record to be updated, and
then indicate the new attribute value. For example, the following request uses the
search attributes to locate the asset record where the system name is “penguin”
and the serial number is 17JQ5. It then modifies the expense code to be 32T:
Req_id = 3
obj = "NR"
oper = "MODIFY"

9–18 Advanced Customization Guide


Attribute Lists

msg = {
SearchSysName = "penguin"
SearchSerialNum = "17JQ5"
expense_code = "32T"
user_id = "anne"
}

If you do not use the search attributes to locate the record you want to modify,
the API will create a new record instead of modifying an existing one.

Identifying the Asset in Queries

An asset can be identified by one of several attributes including resource,


sys_name, mac_addr, and ip_addr, each of whose value must be unique. An
additional field associated with the asset object represents the internal database
ID of the object. You can only use this field in QUERY requests:

Attribute Description User Code Query Ref Tag


Internal database ID for asset resource_id id

Sample Asset Messages

The following are sample resource messages:


req_id = 1 obj="NR" oper="CREATE"
msg={grc="modem" resource="eng_modem_2"
location="phone room" model="123Xr" sender="john"}
req_id = 2 obj="NR" oper="MODIFY"
msg={sys_name="bobcat" status = "Inactive"
sender="john"}
req_id = 3 obj="NR" oper="QUERY"
msg={max_return=10 where="WHERE nr_family=1223"
sender="john"}
req_id = 4 obj="NR" oper="QUERY"
msg={where="WHERE nr_system_name='owl' AND
nr_mfr_id=1455" sender="john"}

The following is a sample response to the first request:


req_id = 1
req_status = "OK"
req_log = "Asset: eng_modem_2 created ID=20626"
msg = {resource = eng_modem_2
resource_id = "20626"}

Using the C Language API 9–19


Attribute Lists

Contact (CT) Attributes

The following table lists attributes of contacts. Use the user code for CREATE and
MODIFY operations and the query reference tag for QUERY operations.
Additional information about query parameters follows the table:

Attribute Enumerated Table Query Ref Tag


Description Rq R/O Name Default User Code API Label

Administrative Internal_ admin_org api_ct_ c_admin_


organization Organization adminorg org_id

Alias 1 alt_name api_ct_alias alias

Email address email_addr api_ct_email c_email_addr

Emergency Contact_Method emg_notify api_ct_ c_cm_id4


notification emgnotify

Expense code expense_ api_ct_ c_expense


code expcode

Fax phone fax_phone api_ct_fax c_fax_phone

First name fname api_ct_ c_first_name


firstname

Functional Internal_ funct_org api_ct_ c_org_id


organization Organization functorg

High priority Contact_Method hp_notify api_ct_ c_cm_id3


notification hpnotify

Last modified X cur time last_mod_ api_ct_ last_mod


date date lastmod

Last name 1 lname api_ct_ c_last_name


lastname

Location Location location api_ct_ c_l_id


location

Log log api_ct_log N/A

Low priority Contact_Method lp_notify api_ct_ c_cm_id1


notification lpnotify

Middle Initial middle api_ct_middle c_middle_


name

Normal Contact_Method norm_notify api_ct_ c_cm_id2


notification normnotify

Notes notes api_ct_notes c_notes

Pager pager api_ct_pager c_beeper_


phone

Record Status X status api_ct_status del

Reference1 Contact ref1 api_ref1 c_nx_ref_1

Reference2 Contact ref2 api_ref2 c_nx_ref_2

9–20 Advanced Customization Guide


Attribute Lists

Attribute Enumerated Table Query Ref Tag


Description Rq R/O Name Default User Code API Label

Reference3 Contact ref3 api_ref3 c_nx_ref_3

Sender 3 2 sender N/A

String1 str1 api_string1 c_nx_string1

String2 str2 api_string2 c_nx_string2

String3 str3 api_string3 c_nx_string3

String4 str4 api_string4 c_nx_string4

Type Contact_Type type api_ct_type c_ctp_id

User ID 1 user_id api_ct_userid c_userid

Voicemail vmail api_ct_vmail c_voice_


number phone

Work phone work_phone api_ct_ c_public_


worknum phone

1 If one or more of the Search Fields are not used, one of these attributes is
required for MODIFY operations. These attributes are not required for
CREATE operations, but it is recommended that you use them.
2 The default value of this attribute is the user ID.
3 This attribute is required for CREATE and MODIFY operations.

Search Attributes for Modify Requests

Contact objects have additional search attributes for MODIFY requests. You
specify a value for one of these search attributes, and if a record matches your
search specification, the values of additionally specified attributes are changed to
the new ones you specify. If more than one contact matches the search criteria,
the MODIFY request fails. The following table lists the search attributes and their
user codes:

Search Attribute Description User Code


Last name SearchLName
First name SearchFName
Middle SearchMName
User ID SearchUser
Alias SearchAKA
Email address SearchEmail

Using the C Language API 9–21


Attribute Lists

Search Attribute Description User Code


Location SearchLocation
Type SearchType
Funct organization SearchFunctorg
Admin organization SearchAdminorg

Creating and Modifying Contacts

When you create a contact, there are no required fields. However, it is


recommended that you use the following identifying fields to help specify a
unique contact record (the user code for each field is shown in parenthesis): last
name (lname), first name (fname), middle name (middle), user ID (user_id), and
alias (alt_name). By specifying all or most of these identifying fields in the
CREATE request, you will be creating a well-defined user record. These fields are
used to identify the record when you submit subsequent MODIFY requests.

When you submit a CREATE request, the API determines if a contact with the
same attributes already exists by searching for an existing resource that has the
same last name, first name, middle name, user ID, and alias. Depending on
whether the API finds a matching contact, one of the following occurs:
■ If there is no match, a new contact is created.
■ If there is a single match, the existing contact is updated and the API returns
a message stating that the existing contact was updated instead of a new
contact being created.
■ If there is more than one match, the API returns a message stating that more
than one contact was identified and that the CREATE request failed. This
prevents you from creating more than one contact with the same identifying
fields.

When you submit a MODIFY request, the API determines if the contact exists in
this way:
■ If you specified search attributes in the request, the API searches for a contact
whose attribute values match all the search field attributes values you
included in the request.
■ If you did not specify search attributes in the request, the API searches for a
contact whose attribute values match the attribute values you included in the
request. It tries to identify the contact using the last name, first name, middle
name, user ID, and alias fields.

9–22 Advanced Customization Guide


Attribute Lists

Depending on whether the API finds a matching contact, one of the following
occurs:
■ If there is no match, the MODIFY request becomes a CREATE request and a
new contact is created.
■ If there is a single match, the MODIFY request is executed.
■ If there is more than one match, the API returns a message indicating that
more than one contact was identified and the MODIFY request failed.

Note that if you want to modify the values in or add values to the identifying
fields (last name, first name, middle name, user ID, and alias) in an existing
contact, you must use the search attributes to locate the record to be updated,
and then indicate the new attribute value. For example, the following request
uses the search attributes to locate the contact record where the last name is
Reese and the first name is Anne. It then modifies the alias to be annie and the
user ID to be anne:
req_id = 1
obj = "CT"
oper = "MODIFY"
msg = {
SearchFName = "Anne"
SearchLName = "Reese"
alt_name = "annie"
user_id = "anne"
}

If you do not use the search attributes to locate the record you want to modify,
the API will create a new record instead of modifying an existing one.

Identifying Contacts in Queries

A contact can be identified by one of several attributes including lname, fname,


middle, user_id, and alt_name. A combination of all these fields may be
necessary to uniquely identify a single contact. An additional field associated
with the asset object represents the internal database ID of the object. You can
only use this field in QUERY requests:

Description User Code Query Ref Tag


Internal database ID for contact contact_id id

Using the C Language API 9–23


Sample Test Programs

Sample Contact Messages

The following are sample contact messages:


req_id = 1 obj="CT" oper="CREATE"
msg={lname="Smith" fname="Jim" mi="C" type="user"
userid= "joe" email_addr="ann@networx.com"
location="Bellevue" work_phone="206 646-0557"
norm_notify="email" hp_notify="pager"
sender="bill"}
req_id = 2 obj="CT" oper="MODIFY"
msg={lname="Smith" lp_notify="vmail"
vmail="646-8999" sender="bill"}
req_id = 3 obj="CT" oper="QUERY"
msg={where="WHERE c_last_name LIKE 'Smith'"
full_desc="yes"
deref="yes" sender="bill" }
req_id = 4 obj="CT" oper="QUERY"
msg={where="WHERE c_l_id=10221 AND c_dp_id=1500"
full_desc="yes" deref="yes" sender="bill" }

The following is a sample response to the first request:


req_id = 1
req_status = "OK"
req_log = "Created Contact: lname = Smith ID:40112"
msg = {lname = Smith
fname = Jim
contact_id = 40112}

Sample Test Programs


Following are examples of the different API functions. At the end of the examples
are instructions for compiling them.

Note: The examples here are provided as illustrations, not production code. They
have been compiled and tested as illustrations, but they have not been subjected
to the rigor of production testing.

Processing Requests from a File

This section provides a sample program for processing requests from a file:
/* process request from file */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#include "nx_capi.h"

9–24 Advanced Customization Guide


Sample Test Programs

void processFile(const char* fName)


{
FILE* fin;

if (!fName)
{
printf("Null file name.\n");
return;
}

/* open the file */


fin = fopen(fName, "r");
if (!fin)
{
printf("Could not open %s\n", fName);
return;
}
else
{
char buff[MAX_FILE_SIZE];
pv_NXPV * req = 0;
int num_read = 0;

if (0 == (num_read = fread(buff, sizeof(char), MAX_FILE_SIZE, fin)))


{
printf("Nothing read from %s\n", fName);
return;
}
/* null terminate the buffer */
if (num_read < MAX_FILE_SIZE)
buff[num_read] = '\0';
else
{
buff[MAX_FILE_SIZE - 1] = '\0';
printf("Buffer truncated.\n");
}

/* convert buffer to request tree */


req = str_to_nxpv(buff);

/* send request */
if (FAILURE == send_request(req))
{
printf("Request error.\n");
delete_nxpv (req);
}
else
{
/* receive response -- could be a series of responses
from a query */
char statusStr[20];
do
{
pv_NXPV * resp = 0;
pv_NXPV * status = 0;

if (FAILURE == receive_response( &resp ))


{
printf("Reponse error\n");
break;
}

Using the C Language API 9–25


Sample Test Programs

else
{
/* convert response tree to string */
nxpv_to_str(resp, buff, sizeof(buff));
printf("Reponse:\n%s\n", buff);
status = find_child_nxpv(resp, stat_label);
if (!status)
{
printf("No status.\n");
break;
}
strcpy(statusStr, status->value);
delete_nxpv(resp);
resp = 0;
}
} while(!strcmp(statusStr, "PROCESSING"));
}
/* clean up heap */ delete_nxpv (req);
}
} /* end of processFile */

main(int argc, char** argv)


{
int c;
for (c = 1; c < argc; c++)
processFile(argv[c]);

exit(0);
} /* end of main */

Sample Files

Use this to create an asset:


req_id=1 obj="NR" oper="CREATE"
msg={grc="Personal Computer"
resource="MY Computer"}

Use this to create a contact:


req_id=3 obj="CT" oper="CREATE"
msg={lname=Smith
fname=Travis
work_phone="555-2233" }

Other examples can be found in $NX_ROOT/samples/sdk/api_msg (UNIX) or


installation-directory\samples\sdk\api_msg (Windows).

9–26 Advanced Customization Guide


Sample Test Programs

Creating a Query

This section provides a sample program for creating a query using query_object:
/* Use query_object */

#include <stdio.h>
#include "nx_capi.h"

/* no-op error function to prevent spewing to stderr */


int err_fn()
{ }

main (int argc, char** argv)


{
pv_NXPV * resp = 0;
/* divert messages from stderr with null err handler -- OPTIONAL */
set_err_handler(err_fn);

if (argc < 6)
{
printf("5 parameters required.\n");
exit(0);
}
/* send query */
if (FAILURE == query_object(argv[1], /* obj */
argv[2], /* where clause */
strtol(argv[3], 0, 10), /* deref flag */
strtol(argv[4], 0, 10), /* full desc flag */
strtol(argv[5], 0, 10), /* max to get */
&resp
))
{
printf("Error querying object.\n");
exit(0);
}
else
{
/* step through individual responses packed in
sibling-linked list, deleting nodes as they are read */
char buff[MAX_FILE_SIZE];
pv_NXPV * oneToDelete = 0;
while (resp)
{
nxpv_to_str(resp, buff, sizeof(buff));
printf("Reponse\n%s\n", buff);
oneToDelete = resp;
resp = resp->next_sib;
delete_nxpv (oneToDelete);
}
}
exit(0);
} /* end of main */

Using the C Language API 9–27


Sample Test Programs

Compiling API Programs

Compile the Unicenter Service Desk C language API with any ANSI-compliant C
compiler. Since Unicenter Service Desk is a networked client/server application,
the nx_capi library uses several network functions that may require special
linking. In particular, gethostbyname, inet_addr, inet_ntoa, and gethostname.
The first example was compiled with the following command using the Sun
Solaris Sparcworks 3.0.1 C compiler:
cc -Xc procfile.c nx_capi.a -lnsl -o procfile

Note the -Xc flag for ANSI compliance and the -lnsl parameter to link in libnsl,
the library that contains the network functions on Solaris platforms. Other
platforms and compilers will require variations on this compile line. Consult
your compiler and operating system manuals for further information.

In addition to the library, nx_capi.a, four header files are required: nx_capi.h,
nx_defs.h, nx_err.h, and nx_parser.h. These files can be found in
$NX_ROOT/sdk/lib and $NX_ROOT/sdk/include (UNIX) or
installation-directory\sdk\lib and installation-directory\sdk\include (Windows) on
the Unicenter Service Desk server. The files can be copied to any convenient
location for development, although on some systems ranlib may have to be run
against nx_capi.a. Sample programs can be found in
$NX_ROOT/samples/sdk/api_comm (UNIX) or
installation-directory\samples\sdk\api_comm (Windows).

The compiled programs must be run on an installed Unicenter Service Desk


server or client. To run the programs on UNIX, the NX_ROOT environment must
be set to the Unicenter Service Desk installation directory (/opt/CApdm
typically on Solaris) and SAPIO must appear on the path. SAPIO is installed in
$NX_ROOT/bin (UNIX) or installation-directory\bin (Windows), but it can be
moved if needed.

9–28 Advanced Customization Guide


Appendix

Data Element Dictionary


A
This chapter contains the definitions for the tables in the Unicenter Service Desk
database. The tables are found in schema (.sch) files. See the ddict.sch file in the
$NX_ROOT/site directory (UNIX) or installation-directory/site directory
(Windows) for the most current list of all database tables for your specific
installation.

Important! Although several of the tables in this appendix are obsolete, for backward
compatibility, or reserved for future use, it is important that you not delete these—or any
other table—from the database schema. You can add tables and modify the existing tables,
but never delete any of the tables documented in this appendix.

A_Comment Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Data Element Dictionary A–1


Act_Log Table

Act_Log Table
History of activities associated with a request. Types of activities are listed in the
Act_Type table.
■ SQL Name—act_log
■ Object—alg

Field Data Type Index Reference Remarks


action_desc STRING 700 description of automated
action
analyst INTEGER secondary Contact::id who performed the activity
call_req_id STRING 30 primary sort Call_Req::persid request to which activity
dsc belongs
description STRING 1000 description of activity (user)
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
internal INTEGER 0=all can access; 1=internal
knowledge_session STRING 80 persistent ID of Call Solution
knowledge_tool STRING 12
last_mod_dt LOCAL_TIME d/t comment written
persid STRING 30 internal ID: “act:id”
system_time LOCAL_TIME date/time of record creation
time_spent DURATION primary desc time spent on activity (user)
time_stamp LOCAL_TIME date/time of activity (user)
type STRING 30 secondary Act_Type::code activity type code

Act_Tpl Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

A–2 Advanced Customization Guide


Act_Tpl_Ent Table

Act_Tpl_Ent Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Act_Type Table
Request and change order activity types. Identifies the activities that can be used
to create, update, and resolve requests and change orders. Controls whether the
creation of the activity automatically generates a notification to those contacts
specified in the activity notification and what the notification level and message
are.
■ SQL Name—act_type
■ Object—aty

Note: Adding an activity type requires customization to allow the activity to be


part of a request’s history.

Field Data Type Index Reference Remarks


chg_default_survey INTEGER Survey_Template::id
chg_notify_info STRING 30 Spell_Macro::persid notification macro
chg_send_survey INTEGER
chg_survey_method INTEGER Contact_Method::id
chg_survey_msgbody STRING 1000
chg_survey_msgtitle STRING 80
code STRING 12 primary non-editable
UNIQUE desc identifier for the
NOT_NULL activity type
S_KEY
cr_default_survey INTEGER Survey_Template::id
cr_notify_info STRING 30 Spell_Macro::persid notification macro
cr_send_survey INTEGER
cr_survey_method INTEGER Contact_Method::id
cr_survey_msgbody STRING 1000
cr_survey_msgtitle STRING 80

Data Element Dictionary A–3


Act_Type Table

Field Data Type Index Reference Remarks


del INTEGER Active_Boolean_Table::enum 0=present, 1=gone
NOT_NULL
description STRING 500 description of
activity
flag1 INTEGER Boolean_Table::enum flag—type for
requests
flag2 INTEGER Boolean_Table::enum flag—this type is for
change
flag3 INTEGER not used—reserved
flag4 INTEGER not used—reserved
flag5 INTEGER not used—reserved
id INTEGER storage key ID
UNIQUE hash
NOT_NULL
KEY
internal INTEGER flag—this type is
internal to system
last_mod_dt LOCAL_TIME last modify time
notify INTEGER 0=no, 1=yes
notify_ack STRING 240 notification message
acknowledgment
notify_body STRING 1000 notification message
body
notify_level INTEGER Notification_Urgency::enum notification level
notify_title STRING 80 notification message
title
persid STRING 30 internal ID: “aty:.id”
sym STRING 30 name of activity
NOT_NULL
S_KEY

A–4 Advanced Customization Guide


Act_Type_Assoc Table

Act_Type_Assoc Table
Used for activity associations.
■ SQL Name—atyp_asc
■ Object—act_type_assoc

Field Data Type Index Reference Remarks


act_type STRING 30 Act_Type::code associated activity type
code STRING 12 unique code
UNIQUE
NOT_NULL
S_KEY
description STRING 80 description of activity
association
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
int1_rsrved INTEGER reserved
int2_rsrved INTEGER reserved
int3_rsrved INTEGER reserved
log_me_f INTEGER log flag
ob_type STRING 30 associated object type
ob_type_attr STRING 50 attribute name within
associated object
persid STRING 30 internal ID: “atype_asc:.id”
str1_rsrved STRING 30 reserved
str2_rsrved STRING 30 reserved
str3_rsrved STRING 30 reserved
sym STRING 30 name of activity association
NOT_NULL

Data Element Dictionary A–5


Action Table

Action Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Action_Delay Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Action_Delay_Code Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Action_Status Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

A–6 Advanced Customization Guide


Active_Boolean_Table Table

Active_Boolean_Table Table
Table to translate 0 and 1 to whatever the user wants to see.
■ SQL Name—actbool
■ Object—actbool

Field Data Type Index Reference Remarks


del INTEGER 0=present, 1=gone
NOT_NULL
description STRING 240 description
enum INTEGER primary sort dsc internal use only
NOT_NULL
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME d/t last modified
sym STRING 12 sort dsc 0=inactive, 1=active
S_KEY

Data Element Dictionary A–7


Active_Reverse_Boolean_Table Table

Active_Reverse_Boolean_Table Table
Table to translate 0 and 1 to whatever the user wants to see.
■ SQL Name—acrtbool
■ Object—actrbool

Field Data Type Index Reference Remarks


del INTEGER 0=present, 1=gone
NOT_NULL
description STRING 240 description
enum INTEGER primary sort dsc internal use only
NOT_NULL
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME d/t last modified
sym STRING 12 sort dsc 0=active, 1=inactive
S_KEY

A–8 Advanced Customization Guide


AD_Comment Table

AD_Comment Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Animator Table
Internal table used to manage event firing.
■ SQL Name—anima
■ Object—ANI

Field Data Type Index Reference Remarks


a_act INTEGER internal use only
a_delta DURATION internal use only
a_lock STRING 200 internal use only
a_name STRING 30 internal use only
S_KEY
a_org LOCAL_TIME internal use only
a_string STRING 30 internal use only
a_time LOCAL_TIME internal use only
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
t_method STRING 30 internal use only
S_KEY
t_persid STRING 30 internal use only
S_KEY
t_type INTEGER internal use only

Data Element Dictionary A–9


Asset_Assignment Table

Asset_Assignment Table
Table of hierarchical relationships between assets.
■ SQL Name—hier
■ Object—hier

Field Data Type Index Reference Remarks


hier_child INTEGER Network_
NOT_NULL Resource::i
S_KEY d
hier_license_num STRING 40
hier_log_date LOCAL_TIME
NOT_NULL
hier_parent INTEGER Network_
NOT_NULL Resource::i
S_KEY d
id INTEGER key ID
UNIQUE
NOT_NULL KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
persid STRING 30 internal ID: “hier:.id”

A–10 Advanced Customization Guide


Atomic_Condition

Atomic_Condition
Stores conditional statements.
■ SQL Name—atomic_cond
■ Object—atomic_cond

Field Data Type Index Reference Remarks


cond_code STRING 500
connecter INTEGER
NOT_NULL
del INTEGER Active_Boo
NOT_NULL lean_Table::
enum
description STRING 240
id INTEGER
UNIQUE
NOT_NULL
KEY
l_paran INTEGER
NOT_NULL
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
lval STRING 30 Act_Type_
NOT_NULL Assoc::code
operator INTEGER
NOT_NULL
owning_macro STRING 30 Spell_Macr
o::persid
persid STRING 30
r_paran INTEGER
NOT_NULL
rval STRING 50
rval_assoc STRING 30 Act_Type_
Assoc::code
sequence INTEGER
NOT_NULL

Data Element Dictionary A–11


Attached_Events Table

Attached_Events Table
Table of events attached to requests and change orders.
■ SQL Name—att_evt
■ Object—atev

Field Data Type Index Reference Remarks


cancel_time LOCAL_TIME cancel time
event_tmpl STRING 30 Events::per event template
NOT_NULL sid
S_KEY
fire_time LOCAL_TIME execution time
group_name STRING 30 Associated group
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME d/t last modified
num_fire INTEGER recurring event time
interval
obj_id STRING 30 attached object
NOT_NULL
persid STRING 30 internal ID: “atev:.id”
start_time LOCAL_TIME time event was attached
status_flag INTEGER status of event
user_smag STRING 200 data passed to event
wait_time DURATION wait time before execution

A–12 Advanced Customization Guide


Attachment Table

Attachment Table
Records stored attachments.
■ SQL Name—attmnt
■ Object—attmnt

Field Data Type Index Reference Remarks


attmnt_name STRING 240
created_by INTEGER Contact::id
created_dt LOCAL_TIME
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 500
exec_cmd STRING 12 Remote_Re
f::code
file_date LOCAL_TIME
file_name STRING 240
NOT_NULL
file_size INTEGER
file_type STRING 12
id INTEGER
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
link_only INTEGER Boolean_Ta
ble::enum
orig_file_name STRING 240
persid STRING 30 internal ID: “attmnt:.id”
repository STRING 30 Document_
Repository:
:persid
status STRING 12

Data Element Dictionary A–13


Attachment_Lrel

Attachment_Lrel
Connects stored attachments to change orders and requests in many-to-many
relationships
■ SQL Name—attmnt_lrel
■ Object—attmnt_lrel

Field Data Type Index Reference Remarks


id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
l_attr STRING 30 internal use only
l_persid STRING 30 internal use only
l_sql INTEGER internal use only
r_attr STRING 30 internal use only
r_persid STRING 30 internal use only
r_sql INTEGER internal use only

Attribute_Name Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

A–14 Advanced Customization Guide


Audit_Log Table

Audit_Log Table
Contains all audit log entries.
■ SQL Name—audit_log
■ Object—audlog

Field Data Type Index Reference Remarks


analyst INTEGER Contact::id
attr_after_val STRING 160 after image
attr_before_val STRING 160 before image
attr_name STRING 80 attribute changed
aud_opr INTEGER
audobj_name STRING 10
audobj_persid STRING 30
audobj_trkid STRING 40
audobj_uniqueid STRING 30
change_date LOCAL_TIME
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
int1_rsrved INTEGER reserved
int2_rsrved INTEGER reserved
persid STRING 30 internal ID:
“audit_log”.id”
str1_rsrved STRING 25 reserved

Data Element Dictionary A–15


Behavior_Template Table

Behavior_Template Table
Template for behaviors associated with workflows.
■ SQL Name—bhvtpl
■ Object—bhvtpl

Field Data Type Index Reference Remarks


context_attrname STRING 30 name of an object
context_attrval INTEGER code of an object
context_type STRING 30 type of object attached to
NOT_NULL
del INTEGER Active_Boo flag—this behavior is
NOT_NULL lean_Table: deleteable
:enum
description STRING 500 description
id INTEGER
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME date last modified
macro_condition STRING 30 Spell_Macr
o::persid
object_id INTEGER ID of object attached to
NOT_NULL
object_type STRING 30 factory name of object
NOT_NULL attached to
persid STRING 30 internal ID: “bhvtpl:.id”
transition_errmsg STRING 240 user message
transition_test STRING 30 Spell_Macr
o::persid

A–16 Advanced Customization Guide


Boolean_Table Table

Boolean_Table Table
Table to translate 0 and 1 to whatever the user wants to see.
■ SQL Name—bool_tab
■ Object—bool

Field Data Type Index Reference Remarks


del INTEGER 0=present, 1=gone
NOT_NULL
desc STRING 40 description
enum INTEGER internal use only
NOT_NULL
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
sym STRING 12 primary sort dsc 0=no, 1=yes
UNIQUE
NOT_NULL
S_KEY

Data Element Dictionary A–17


Bop_Workshift Table

Bop_Workshift Table
Business hours, or workshifts, for events.
■ SQL Name—bpwshft
■ Object—wrkshft

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 80 description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME d/t last modified
persid STRING 30 internal ID: “wrkshft:.id”
sched STRING 1000 workshift schedule
sym STRING 30 primary sort dsc name of workshift
NOT_NULL

Call_Req Table
Request Management analyst’s recording of a user issue. Users are of type
customer. A user’s system configuration or environment consists of network
assets associated with the user.
■ SQL Name—call_req
■ Object—cr

Field Data Type Index Reference Remarks


active_flag INTEGER Boolean_Ta 0=inactive, 1=active
NOT_NULL ble::enum
affected_rc INTEGER secondary Network_R affected resource
esource::id
assignee INTEGER secondary Contact::id current assignee
call_back_date LOCAL_TIME

A–18 Advanced Customization Guide


Call_Req Table

Field Data Type Index Reference Remarks


call_back_flag INTEGER
category STRING 30 secondary Prob_Categ problem area
ory::persid
change INTEGER Change_Re
quest::id
charge_back_id STRING 12 user-definable
close_date LOCAL_TIME when closed
cr_tticket INTEGER Trouble_Ti id of associated ticket
cket::id
created_via INTEGER Interface::i
d
customer INTEGER primary Contact::id user
NOT_NULL
description STRING 1000 description of problem
event_token STRING 30
extern_ref STRING 30 secondary associated ticket
group_id INTEGER secondary Contact::id group assignee
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
impact INTEGER Impact::enu request impact
m
last_act_id STRING 12 ID of last activity
last_mod_dt LOCAL_TIME last modify time
log_agent INTEGER secondary Contact::id who logged the call
NOT_NULL
open_date LOCAL_TIME when entered
parent STRING 30 Call_Req::p
ersid
persid STRING 30 internal ID: “cr:.id”
predicted_SLA_violation INTEGER
priority INTEGER secondary Priority::en request priority
NOT_NULL um

Data Element Dictionary A–19


Call_Req Table

Field Data Type Index Reference Remarks


ref_num STRING 30 secondary sort user visible reference
UNIQUE dsc number
NOT_NULL
S_KEY
severity INTEGER Severity::en effect of the request
um
sla_violation INTEGER
solution STRING 30 Call_Req::p solution attached to
ersid request
status STRING 12 secondary Cr_Status::c status of the problem
ode
string1 STRING 40 user-definable
string2 STRING 40 user-definable
string3 STRING 40 user-definable
string4 STRING 40 user-definable
string5 STRING 40 user-definable
string6 STRING 40 user-definable
summary STRING 240 summary of request
support_lev STRING 30 Service_De service type definable by
sc::code user
template_name STRING 30
time_spent_sum DURATION sum of activity time spent
type STRING 10 Call_Req_T
ype::code
urgency INTEGER Urgency::e request urgency
num

A–20 Advanced Customization Guide


Call_Req_Type Table

Call_Req_Type Table
Request type. This table is not currently used but is intended for future use.
■ SQL Name—crt
■ Object—crt

Field Data Type Index Reference Remarks


code STRING 10 secondary sort
UNIQUE dsc
NOT_NULL
S_KEY
del INTEGER Active_Boo
NOT_NULL lean_Table:
:enum
desc STRING 30
display_name STRING 30
id INTEGER
UNIQUE
NOT_NULL
KEY
persid STRING 30
sym STRING 30
NOT NULL

Data Element Dictionary A–21


Call_Solution Table

Call_Solution Table
This table exists in the schema for backward compatibility only. Althoug there is
an interface to it, you should not use this table at all; however, it is important that
you not delete it from the schema.
■ SQL Name—crsol
■ Object—crsol

Field Data Type Index Reference Remarks


cr_count INTEGER requests attached to this
solution
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40
description STRING 500 solution description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME d/t last modified
persid STRING 30 internal ID: “crsol:.id”
sapproved INTEGER Boolean_Ta 0=approved, 1=not
ble::enum approved
sname STRING 40 descriptive name of
solution
solution STRING 1000 full solution text
sym STRING 60 name of solution
NOT_NULL
S_KEY
tcode INTEGER Trouble_Co associated trouble code
de::id

A–22 Advanced Customization Guide


Cause Table

Cause Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Change_Act_Log
Change order activity log.
■ SQL Name—chgalg
■ Object—chgalg

Field Data Type Index Reference Remarks


action_desc STRING 700 system description
analyst INTEGER Contact::id
change_id INTEGER Change_ associated change request,
Request::id descending key1 primary
description STRING 1000 description
id INTEGER
UNIQUE
NOT_NULL
KEY
internal INTEGER 0=all can access; 1=internal
last_mod_dt LOCAL_TIME date last modified
persid STRING 30 internal ID: “chgalg:.id”
system_time LOCAL_TIME
time_spent DURATION total duration
time_stamp LOCAL_TIME creation date
type STRING 12 Act_Type::c type of activity, alternate
ode key

Data Element Dictionary A–23


Change_Category Table

Change_Category Table
Change order categories.
■ SQL Name—chgcat
■ Object—chgcat

Field Data Type Index Reference Remarks


assignee INTEGER Contact::id default change order
assignee assignment
children_ok INTEGER children allowed for this
NOT_NULL category
code STRING 12 internal uneditable key,
UNIQUE alternate key
NOT_NULL
S_KEY
del INTEGER Active_Boo 0=no, 1=yes
NOT_NULL lean_Table::
enum
description STRING 500
group_id INTEGER Contact::id default change order
group assignment
id INTEGER
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
organization INTEGER Internal_Or default change order
ganization:: organization assignment
id
persid STRING 30 internal ID: “chgcat:.id”
service_type STRING 30 Service_De
sc::code
survey INTEGER Survey_Te
mplate::id
sym STRING 30 display name, unique key
NOT_NULL
S_KEY

A–24 Advanced Customization Guide


Change_Request Table

Change_Request Table
Recording of a user service or change order.
■ SQL Name—chg
■ Object—chg

Field Data Type Index Reference Remarks


active_flag INTEGER Boolean_Ta
NOT_NULL ble::enum
actual_comp_date LOCAL_TIME actual completion date
actual_cost INTEGER actual cost
actual_total_time DURATION
affected_contact INTEGER Contact::id
NOT_NULL
assignee INTEGER Contact::id oversees change order,
alternate key
backout_plan STRING 240 user string
call_back_date LOCAL_TIME
call_back_flag INTEGER
category STRING 12 Change_Ca
tegory::cod
e
chg_ref_num STRING 30 change order number
UNIQUE unique key1
NOT_NULL
S_KEY
close_date LOCAL_TIME date the change order was
set to inactive
created_via INTEGER Interface::id
description STRING 240 change order detail
description
effort STRING 240 user-definable
est_comp_date LOCAL_TIME estimated completion
date
est_cost INTEGER estimated cost
est_total_time DURATION

Data Element Dictionary A–25


Change_Request Table

Field Data Type Index Reference Remarks


group_id INTEGER Contact::id
id INTEGER key ID
UNIQUE
NOT_NULL
KEY
impact INTEGER Impact::enu
m
justification STRING 240 user string
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
log_agent INTEGER Contact::id change order creator,
NOT_NULL alternate key
need_by LOCAL_TIME date for user use
open_date LOCAL_TIME change order creation
date, unique key0
organization INTEGER Internal_Or
ganization::
id
parent INTEGER Change_Re
quest::id
persid STRING 30 internal ID: “chg:.id”
predicted_SLA_violation INTEGER
priority INTEGER Priority::en
NOT_NULL um
requestor INTEGER Contact::id
NOT_NULL
sla_violation INTEGER
start_date LOCAL_TIME date first task goes to
pending status
status STRING 12 Change_Sta change order status
tus::code
string1 STRING 40 user-definable
string2 STRING 40 user-definable
string3 STRING 40 user-definable
string4 STRING 40 user-definable

A–26 Advanced Customization Guide


Change_Status Table

Field Data Type Index Reference Remarks


string5 STRING 40 user-definable
string6 STRING 40 user-definable
support_lev STRING 30 Service_De
sc::code
template_name STRING 30 name of template if
defined

Change_Status Table
Change order status. Valid values are created, approved, implemented, verified,
closed.
■ SQL Name—chgstat
■ Object—chgstat

Field Data Type Index Reference Remarks


active INTEGER modify change order
active flag
code STRING 12 internal uneditable key
UNIQUE
NOT_NULL
S_KEY
del INTEGER Active_Boo 0=no, 1=yes
NOT_NULL lean_Table:
:enum
description STRING 500
id INTEGER
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
persid STRING 30 internal ID: “chgstat:.id”
sym STRING 30 display name, unique key0
NOT_NULL

Data Element Dictionary A–27


CL_Comment Table

CL_Comment Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Close_Entry Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Column_Name Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Computer_Extension Table
Asset extensions for assets.
■ SQL Name—cpex
■ Object—cpex

Field Data Type Index Reference Remarks


cpex_capacity STRING 40 user-definable
cpex_cd_rom STRING 40 user-definable
cpex_float_pt_err STRING 40 user-definable
cpex_graphics_card STRING 40 user-definable
cpex_hard_disk_space STRING 240 user-definable
cpex_media_type STRING 40 user-definable
cpex_modem STRING 40 user-definable
cpex_modem_card STRING 40 user-definable
cpex_monitor STRING 40 user-definable
cpex_network_card STRING 40 user-definable
cpex_operating_system STRING 40 user-definable

A–28 Advanced Customization Guide


Contact Table

Field Data Type Index Reference Remarks


cpex_physical_memory STRING 40 user-definable
cpex_printer STRING 40 user-definable
cpex_processor_speed STRING 40 user-definable
cpex_processor_type STRING 40 user-definable
cpex_scsi_card STRING 40 user-definable
ext_asset INTEGER Network_
NOT_NULL Resource::i
S_KEY d
id INTEGER
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “cpex:.id”

Contact Table
Lists pertinent information about individuals or organizations who are
responsible for some network resource. A contact can be part of the organization
managing the network or external to the managing organization.
■ SQL Name—ctct
■ Object—cnt

Field Data Type Index Reference Remarks


alias INTEGER Contact::id -1 = not an alias
id = alias
c_admin_org_id INTEGER Internal_Or administrative
ganization:: organization
id
c_aka STRING 30 alternate name for contact
c_beeper_phone STRING 32 beeper phone number
c_cm_id1 INTEGER Contact_M low priority method 1
ethod::id
c_cm_id2 INTEGER Contact_M std method 2
ethod::id

Data Element Dictionary A–29


Contact Table

Field Data Type Index Reference Remarks


c_cm_id3 INTEGER Contact_M high priority method 3
ethod::id
c_cm_id4 INTEGER Contact_M emergency method 4
ethod::id
c_contact_num STRING 30 contact number—
identifier for contact
c_ctp_id INTEGER Contact_Ty pointer to contact type
pe::id
c_dept STRING 12 department
c_domain INTEGER Domain::id
c_email_addr STRING 120 email address
c_email_service STRING 30 email service
(PROFS, and so on)
c_expense STRING 12 expense code
c_fax_phone STRING 32 fax phone number
c_first_name STRING 30 primary sort dsc contact first name
S_KEY
c_l_id INTEGER Location::id pointer to contact location
c_last_name STRING 30 primary sort dsc contact last name
S_KEY
c_middle_name STRING 30 primary sort dsc contact middle name or
S_KEY initial
c_notes STRING 240 extensive notes
c_nx_ref_1 INTEGER Contact::id smag field
c_nx_ref_2 INTEGER Contact::id smag field
c_nx_ref_3 INTEGER Contact::id smag field
c_nx_string1 STRING 40 user-definable
c_nx_string2 STRING 40 user-definable
c_nx_string3 STRING 40 user-definable
c_nx_string4 STRING 40 user-definable
c_nx_string5 STRING 40 user-definable
c_nx_string6 STRING 40 user-definable

A–30 Advanced Customization Guide


Contact Table

Field Data Type Index Reference Remarks


c_org_id INTEGER Internal_Or function organization
ganization::
id
c_parent INTEGER Contact::id reserved for future use
c_pemail_addr STRING 120
c_pref_order STRING 12 order of preference for
contact stored as string
PVBFE where P=public,
V=voicemail, B=beeper,
F=fax, E=email
c_public_phone STRING 32 public phone
c_restricted INTEGER 0=normal
1=restricted to IR only
c_service_type STRING 30 Service_De
sc::code
c_timezone STRING 30 Timezone::c
ode
c_userid STRING 20 sort dsc system user ID
c_val_req INTEGER
c_vendor INTEGER Vendor_Pr
ovider::id
c_voice_phone STRING 32 voice mail phone
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table::
enum
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod LOCAL_TIME last modification time
persid STRING 30 internal ID: “cnt:.id”

Data Element Dictionary A–31


Contact_Method Table

Contact_Method Table
Defines contact method types. The cm_template field is a command string that
gets executed as a script (with environment variables set) by the notify
subsystem.
■ SQL Name—ct_mth
■ Object—cmth

Field Data Type Index Reference Remarks


cm_template STRING 240 method template
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40 type description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “cmth:.id”
sym STRING 60 primary sort dsc method symbol
UNIQUE unique
NOT_NULL
S_KEY
write_file INTEGER

Contact_Type Table
This is an OSI Forum-defined table. OSI Forum set specific contents for this table.
■ SQL Name—ct_ty
■ Object—ctp

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40 non-OSI specified column

A–32 Advanced Customization Guide


Controlled_Table Table

Field Data Type Index Reference Remarks


id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “ctp:.id”
sym STRING 60 primary sort dsc type symbol
UNIQUE unique
NOT_NULL
S_KEY
view_internal INTEGER 0=cannot view internal
activity logs; 1=can view
internal activity logs

Controlled_Table Table
Lists the tables for which you can use data partitions to control access to.
■ SQL Name—ctab
■ Object—ctab

Field Data Type Index Reference Remarks


del INTEGER Active_Boo
NOT_NULL lean_Table:
:enum
desc STRING 40 description
id INTEGER
UNIQUE
NOT_NULL
KEY
obj_name STRING 30
persid STRING 30 internal ID: “ctab:.id”
sym STRING 30 table symbol
UNIQUE
NOT_NULL
S_KEY

Data Element Dictionary A–33


Cr_Call_Timers Table

Cr_Call_Timers Table
Controls behavior of automatic request timer. A request timer acts like a stop
watch with various thresholds that give the help desk analyst a visual or auditory
indication of elapsed time.
■ SQL Name—crctmr
■ Object—ctimer

Field Data Type Index Reference Remarks


beep INTEGER 0=no beep, 1=beep
color STRING 12 color of timer at start of
threshold
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME last modify time
persid STRING 30 internal ID: “ctimer:.id”
text STRING 240 text to display when the
timer has reached
threshold
threshold DURATION primary threshold elapsed time
NOT_NULL

A–34 Advanced Customization Guide


Cr_Status Table

Cr_Status Table
Request status. Lists the status of the request. You can add to this as desired. Lets
the user control whether the request is active or inactive when it is changed to
this status.
■ SQL Name—cr_stat
■ Object—crs

Field Data Type Index Reference Remarks


active INTEGER 0=inactive, 1=active
code STRING 12 primary non-editable identifier for
UNIQUE status
NOT_NULL
S_KEY
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 500 description of status
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME last modify time
persid STRING 30 internal ID: “crs:.id”
sym STRING 30 name of request status
NOT_NULL

Data Element Dictionary A–35


CR_Stored_Queries Table

CR_Stored_Queries Table
Request stored queries. System administrators can add to this table as desired.
Determines which queries can be used by help desk analysts to customize their
scoreboards.
■ SQL Name—crsq
■ Object—crsq

Field Data Type Index Reference Remarks


code STRING 12 primary non-editable identifier for
UNIQUE query
NOT_NULL
S_KEY
criteria STRING 240 not used
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 240 description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
label STRING 80 label to display on
scoreboard
last_mod_dt LOCAL_TIME last modify time
obj_type STRING 30
persid STRING 30 internal ID: “crsq:.id”

A–36 Advanced Customization Guide


CT_Comment Table

CT_Comment Table
Contact comment table.This table is not currently used but is intended for future
use.
■ SQL Name—ctct_com
■ Object—ct

Field Data Type Index Reference Remarks


com_comment STRING 1000 comment text
com_dt LOCAL_TIME primary sort dsc d/t comment written
NOT_NULL
com_par_id INTEGER primary sort dsc Contact::id id of associated contact
NOT_NULL
S_KEY
com_userid STRING 40 user ID of author
NOT_NULL
S_KEY
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY

D_PAINTER Table
Forms table.
■ SQL Name—D_PAINTER

Field Data Type Index Reference Remarks


CNTLID INTEGER id of the control
CNTLTYPE INTEGER type of control
DDID INTEGER data dictionary id
ENTITYID INTEGER entity type
EXTRA_L1 INTEGER user-definable
EXTRA_L2 INTEGER user-definable
EXTRA_L3 INTEGER user-definable

Data Element Dictionary A–37


Delegation_Server Table

Field Data Type Index Reference Remarks


EXTRA_S1 STRING 50 user-definable
EXTRA_S2 STRING 50 user-definable
EXTRA_S3 STRING 50 user-definable
FORMGROUP STRING 50 secondary group in which the form is
contained
FORMID INTEGER id number of the form
FORMNAME STRING 50 name of the form
FORMTYPE INTEGER type of form
ID INTEGER storage hash key ID
UNIQUE
NOT_NULL KEY
MAPBACK STRING 30 data dictionary owner
PARENTID INTEGER control id of parent control
PREDEFINED INTEGER 0=normal screen, 2=default
screen
PROPLIST STRING 1000 properties for the control
SECLEVEL INTEGER security level
TSTAMP REAL time stamp

Delegation_Server Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Delegation_Status Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

A–38 Advanced Customization Guide


Delegation_Transport Table

Delegation_Transport Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Document_Repository Table
Contains Information on document repositories, which are used to store
attachments.
■ SQL Name—doc_rep
■ Object—doc_rep

Field Data Type Index Reference Remarks


cgi_path STRING 100 path to scripts directory
default_rep INTEGER Boolean_Ta if set signifies this is the
ble::enum default document repository
del INTEGER Active_Boo
NOT_NULL lean_Table::
enum
description STRING 500 description of document
repository
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “doc_rep:id”
protocol STRING 12 protocol used to upload
attachments
retrieve_path STRING 100 virtual path to repository
server STRING 30 name of the server
sym STRING 30 secondary sort dsc name of document
NOT_NULL repository
S_KEY
upload_path STRING 100 physical path to repository

Data Element Dictionary A–39


Domain Table

Domain Table
Lists the names and descriptions of the data partitions themselves.
■ SQL Name—dmn
■ Object—dmn

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40 domain description
id INTEGER key ID
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “dmn:.id”
sym STRING 30 sort asc unique domain name
UNIQUE
NOT_NULL
S_KEY

A–40 Advanced Customization Guide


Domain_Constraint Table

Domain_Constraint Table
Lists the constraints associated with a particular data partition and controlled
table.
■ SQL Name—dcon
■ Object—dcon

Field Data Type Index Reference Remarks


alias INTEGER Domain_C -1 = not an alias
onstraint::i id = alias
d
constraint_majic STRING 500
constraint_SQL STRING 950
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
dom_id INTEGER sort asc unique Domain::id Ptr to parent domain
NOT_NULL
S_KEY
error_msg STRING 150
id INTEGER key ID
UNIQUE
NOT_NULL
KEY
last_mod LOCAL_TIME last modification time
persid STRING 30 internal ID: “dcon:.id”
tbl_id INTEGER sort asc unique Controlled_
NOT_NULL Table::id
S_KEY
type INTEGER Domain_ table description
NOT_NULL Constraint_
Type::enu
m

Data Element Dictionary A–41


Domain_Constraint_Type Table

Domain_Constraint_Type Table
Lists the types of constaints that can be associated with a particular data partition
and controlled table.
■ SQL Name—dcon_typ
■ Object—dcon_typ

Field Data Type Index Reference Remarks


del INTEGER Active_Boo
NOT_NULL lean_Table::
enum
desc STRING 40
enum INTEGER
NOT_NULL
id INTEGER
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “dcon_typ:.id”
sym STRING 12
UNIQUE
NOT_NULL
S_KEY

Escalation_Control Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Escalation_Entry_Log Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

A–42 Advanced Customization Guide


Escalation_Level Table

Escalation_Level Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Event_Delay Table
Contains service type event delays.
■ SQL Name—evt_dly
■ Object—evtdly

Field Data Type Index Reference Remarks


act_delay DURATION
cancel_time LOCAL_TIME
create_time LOCAL_TIME
delay_type INTEGER Event_Dela
y_Type::en
um
description STRING 80
eff_delay DURATION
group_name STRING 30
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME
obj_id STRING 30
NOT_NULL
S_KEY
persid STRING 30 internal ID: “evt_dly:.ID”
start_time LOCAL_TIME
start_userid INTEGER Contact::id
status_flag INTEGER

Data Element Dictionary A–43


Event_Delay_Type Table

Field Data Type Index Reference Remarks


stop_time LOCAL_TIME
stop_userid INTEGER Contact::id
support_lev STRING 30 Service_
Desc::code

Event_Delay_Type Table
Contains service type event delay types.
■ SQL Name—evtdlytp
■ Object—evtdlytp

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table::
enum
description STRING 40
enum INTEGER internal user only
NOT_NULL
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
sym STRING 12 primary name of event delay type
UNIQUE
NOT_NULL
S_KEY

A–44 Advanced Customization Guide


Events Table

Events Table
Events available for attachment to requests, change orders, and service types.
■ SQL Name—evt
■ Object—evt

Field Data Type Index Reference Remarks


condition STRING 30 Spell_Macr condition required to
o::persid execute event
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
delay_time DURATION event delay time
NOT_NULL
description STRING 80 event description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME d/t last modified
modulo_time DURATION event clock time
NOT_NULL
obj_type STRING 30 affected object
on_done_flag INTEGER event done
NOT_NULL
persid STRING 30 internal ID: “evt:.id”
sym STRING 30 event name
NOT_NULL
urgency INTEGER Notificatio event urgency
n_Urgency:
:enum
user_settime INTEGER user override time
NOT_NULL
user_smag STRING 200 user macro
work_shift STRING 30 Bop_Works event workshift
hift::persid

Data Element Dictionary A–45


Expense_Code_Opt Table

Expense_Code_Opt Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Failure Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

General_Resource_Class Table
Look up table. Controls classification of network assets. Provides default priority
for assets. Chronic thresholds are incorporated here. Chronic thresholds designate
a threshold of problem frequency, which is used to help default problem priority.

Default chronic priorities are set based on the general asset class of the problem
asset:
■ If an asset is not chronic, the default priority of a problem on the asset comes
from the record of the asset itself, that is, network elements or services
■ If the asset is chronic, the default priority comes from the ct_priority column
of this table. The operator can typically override the default based on other
circumstances.
■ SQL Name—gen_res
■ Object—grc

Field Data Type Index Reference Remarks


alias INTEGER General_Re -1 = not an alias
source_Clas id = alias
s::id
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table::
enum
grc_ct_duration DURATION interval from present
back for problem count—
nn

A–46 Advanced Customization Guide


General_Resource_Class Table

Field Data Type Index Reference Remarks


grc_ct_num_probs INTEGER number of problems
opened within interval to
qualify elements of this
type as chronic—nn
grc_ct_priority INTEGER Priority::en enum for default priority
um for chronic entities of this
grc_type—nn
grc_desc STRING 40 description
grc_fam INTEGER unique asc Resource_ asset family enum value
Family::enu
m
grc_org_id INTEGER Internal_ default responsible
Organizatio organization
n::id
grc_pr_id INTEGER Priority::en enum for default ticket
um priority
grc_sla_id INTEGER Service_ default SLA for this asset
Level_ class
Agreement:
:id
grc_type STRING 80 primary unique asset type
NOT_NULL asc
S_KEY
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod LOCAL_TIME last modification time
persid STRING 30 internal ID: “grc:.id”

Data Element Dictionary A–47


Geo_Coord_Type Table

Geo_Coord_Type Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

GRC_Comment Table
Asset class comment table. This table is not currently used but is intended for
future use.
■ SQL Name—gr_com

Field Data Type Index Reference Remarks


com_comment STRING 1000 comment text
com_dt LOCAL TIME primary dsc d/t comment written
NOT_NULL
com_par_id INTEGER primary dsc General_Res pointer to parent row (grc_did)
NOT_NULL ource_Class::
S_KEY id
com_userid STRING 40 user ID of comment author
NOT_NULL
S_KEY
id INTEGER storage hash key ID
UNIQUE
NOT_NULL KEY

A–48 Advanced Customization Guide


Group_Member Table

Group_Member Table
Identifies contacts in a group.
■ SQL Name—grpmem
■ Object—grpmem

Field Data Type Index Reference Remarks


group_id INTEGER Contact::id
NOT_NULL
id INTEGER
UNIQUE
NOT_NULL KEY
manager_flag INTEGER
member INTEGER Contact::id
NOT_NULL
notify_flag INTEGER flag—group members to be notified

Data Element Dictionary A–49


Impact Table

Impact Table
Contains the measure of the significance of an event by the user. Incident reports
use this measure.
■ SQL Name—impact
■ Object—imp

Field Data Type Index Reference Remarks


del INTEGER Active_Boolean_Table::enum 0=present, 1=gone
NOT_NULL
desc STRING 40 description of impact
enum INTEGER primary sort dsc internal use only
NOT_NULL
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
sym STRING 12 sort dsc name of impact
UNIQUE
NOT_NULL
S_KEY

Initial_Report Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

A–50 Advanced Customization Guide


Interface

Interface
Interface used for creating requests and change orders.
■ SQL Name—interface
■ Object—intfc

Field Data Type Index Reference Remarks


code STRING 10
UNIQUE
NOT_NULL
del INTEGER Active_Boolean_Table::e
NOT_NULL num
desc STRING 240
id INTEGER
UNIQUE
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
persid STRING 30
sym STRING 30
UNIQUE
NOT_NULL

Data Element Dictionary A–51


Internal_Organization Table

Internal_Organization Table
An organization within the network management organization. Typically, this is
an organization prepared to take responsibility for a ticket.
■ SQL Name—int_org
■ Object—orf

Field Data Type Index Reference Remarks


alias INTEGER Internal_Or -1 = not an alias
ganization:: id = alias
id
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table::
enum
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
iorg_assigned_svr INTEGER Delegation_
Server::id
iorg_billing_code STRING 12 organization billing code
iorg_c_id INTEGER Contact::id contact pointer
iorg_comment STRING 240 comment
iorg_desc STRING 40 organization description
iorg_email_addr STRING 120 organization email
address
iorg_fax_phone STRING 32 organization fax number
iorg_loc_id INTEGER Location::id organization location
iorg_name STRING 30 primary sort dsc organization name
NOT_NULL unique
S_KEY
iorg_num STRING 30 organization number
iorg_parent INTEGER Internal_Or reserved for future use
ganization::
id
iorg_pemail_addr STRING 120

A–52 Advanced Customization Guide


IR_Order_By Table

Field Data Type Index Reference Remarks


iorg_public_phone STRING 32 organization public
phone number
iorg_service_type STRING 30 Service_De organization service type
sc::code
iorg_voice_phone STRING 32 organization voicemail
phone number
last_mod LOCAL_TIME last modification time
persid STRING 30 internal ID: “org:.id”

IR_Order_By Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

IR_Stored_wc Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Key_Control Table
Table of sequence numbers for requests, change orders, tickets, and foreign keys.
■ SQL Name—kc

Field Data Type Index Reference Remarks


id INTEGER storage hash key ID
UNIQUE
NOT_NULL KEY
key_name STRING 20
key_value INTEGER

Data Element Dictionary A–53


Knowledge_Keywords Table

Knowledge_Keywords Table
This table exists in the schema for backward compatibility only. Althoug there is
an interface to it, you should not use this table at all; however, it is important that
you not delete it from the schema.
■ SQL Name—km_word
■ Object—kwrd

Field Data Type Index Reference Remarks


id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME d/t last modified
persid STRING 30 internal ID: “kwrd:.id”
sym STRING 30 primary sort dsc name of the template
NOT_NULL unique
S_KEY

Knowledge_Lrel_Table Table
This table exists in the schema for backward compatibility only. Althoug there is
an interface to it, you should not use this table at all; however, it is important that
you not delete it from the schema.
■ SQL Name—km_lrel
■ Object—kmlrel

Field Data Type Index Reference Remarks


id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
l_attr STRING 30 internal use only
l_persid STRING 30 internal use only
l_sql INTEGER internal use only

A–54 Advanced Customization Guide


Location Table

Field Data Type Index Reference Remarks


r_attr STRING 30 internal use only
r_persid STRING 30 internal use only
r_sql INTEGER internal use only

Location Table
Records location information.
■ SQL Name—loc
■ Object—loc

Field Data Type Index Reference Remarks


alias INTEGER Location::id -1 = not an alias
id = alias
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
l_addr1 STRING 30 free-form address
l_addr2 STRING 30 free-form address
l_addr3 STRING 30 free-form address
l_addr4 STRING 30 free-form address
l_addr5 STRING 30 free-form address
l_addr6 STRING 30 free-form address
l_city STRING 20 city
l_country STRING 16 country
l_details STRING 240 free-form details
l_geo_coord_type INTEGER Geo_ type of coordinates in
Coord_ l_geo_coords
Type::id
l_geo_cords STRING 40 coordinate string

Data Element Dictionary A–55


Location_Type Table

Field Data Type Index Reference Remarks


l_lt_id INTEGER Location_ OSI location type
Type::id
l_name STRING 30 primary sort dsc unique name for location
S_KEY
l_prim_c_id INTEGER pointer to contact for
location
l_si_id INTEGER Site::id pointer to containing site
l_state STRING 2 state
l_zip STRING 14 zip code
last_mod LOCAL_TIME last modification time
persid STRING 30 internal ID: “loc:.id”

Location_Type Table
This is an OSI Forum-defined table. OSI Forum set specific contents for this table.
■ SQL Name—loc_ty

Field Data Type Index Reference Remarks


del INTEGER 0=present, 1=gone
NOT_NULL
desc STRING 40 non-OSI specified column
id INTEGER storage hash key ID
UNIQUE
NOT_NULL KEY
sym STRING 60 primary sort dsc name of location type
UNIQUE unique
NOT_NULL
S_KEY

A–56 Advanced Customization Guide


Lrel_Table Table

Lrel_Table Table
Contains relationships among notifications and macros.
■ SQL Name—lrel
■ Object—lrel1

Field Data Type Index Reference Remarks


id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
l_attr STRING 30 internal use only
l_persid STRING 30 internal use only
l_sql INTEGER internal use only
r_attr STRING 30 internal use only
r_persid STRING 30 internal use only
r_sql INTEGER internal use only

Data Element Dictionary A–57


Manufacturer Table

Manufacturer Table
Look up table. Controls manufacturer references.
■ SQL Name—man
■ Object—mfr

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40 description of
manufacturer
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “mfr:.id”
sym STRING 60 primary sort dsc manufacturer name
UNIQUE unique
NOT_NULL
S_KEY

A–58 Advanced Customization Guide


Manufacturer_Model Table

Manufacturer_Model Table
Look up table. Manufacturer and model are combined key and unique in
combination. Controls manufacturer-model combinations.
■ SQL Name—man_mod
■ Object—mfrmod

Field Data Type Index Reference Remarks


alias INTEGER Manufactur -1 = not an alias
er_Model::i id = alias
d
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table::
enum
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod LOCAL_TIME last modification time
mdl_grc INTEGER General_ asset class this model
Resource_ belongs to
Class::id
mdl_mfr_id INTEGER primary sort dsc Manufactur pointer to manufacturer
S_KEY unique er::id
mdl_name STRING 80 model description
mdl_sla INTEGER Service_ default SLA for this
Level_ model asset
Agreement:
:id
mdl_sym STRING 80 primary sort dsc model name
NOT_NULL unique
S_KEY
persid STRING 30 internal ID: “mfrmod:.id”

Data Element Dictionary A–59


Mdl_Comment Table

Mdl_Comment Table
Manufacturer Model comment table. This table is not currently used but is
intended for future use.
■ SQL Name—mdl_com

Field Data Type Index Reference Remarks


com_comment STRING 1000 comment text
com_dt LOCAL_TIME primary sort dsc d/t comment written
NOT_NULL
com_par_id INTEGER primary sort dsc Manufacturer pointer to parent row
NOT_NULL _Model::id (mdl_id)
S_KEY
com_userid STRING 40 user ID of comment author
NOT_NULL
S_KEY
id INTEGER storage hash key ID
UNIQUE
NOT_NULL KEY

Network_Resource Table
Network assets consist of three types: devices (elements), services, and software.
Any one of these types can be the subject of a request and each is a recognizable
entity in the managed system.
■ SQL Name—net_res
■ Object—nr

Field Data Type Index Reference Remarks


alias INTEGER_REF Network_R
esource::id
del INTEGER Active_Boo
NOT_NULL lean_Table::
enum
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY

A–60 Advanced Customization Guide


Network_Resource Table

Field Data Type Index Reference Remarks


last_mod LOCAL_TIME last modification time
nr_aq_dt LOCAL_TIME d/t software, NetEl was
acquired, service
established
nr_asset_count INTEGER
nr_asset_num STRING 40
nr_cabinet STRING 20 location detail
nr_desc STRING 240 asset description
nr_exp_dt LOCAL_TIME d/t license, lease expires
nr_expense_code STRING 12 expense code
nr_family INTEGER Resource_F pointer to resource family
amily::enu
m
nr_financial_id STRING 40
nr_floor STRING 20 location detail
nr_grc_id INTEGER General_Re pointer
source_Clas
s::id
nr_inst_dt LOCAL_TIME installation date
nr_license_num STRING 32 license number
nr_loc_id INTEGER Location::id location pointer
nr_mac_addr STRING 64 sort dsc mac address for ethernet
devices
nr_maint_org_id INTEGER Internal_Or organization for device
ganization:: repair
id
nr_maint_v_id INTEGER Vendor_Pr vendor for device repair
ovider::id
nr_mdl_id INTEGER sort dsc Manufactur pointer
er_Model::i (OSI product label)
d
nr_mfr_id INTEGER Manufactur pointer
er::id
nr_nx_ref_1 INTEGER Contact::id smag field
nr_nx_ref_2 INTEGER Contact::id smag field

Data Element Dictionary A–61


Network_Resource Table

Field Data Type Index Reference Remarks


nr_nx_ref_3 INTEGER Contact::id smag field
nr_nx_string1 STRING 40 user-definable
nr_nx_string2 STRING 40 user-definable
nr_nx_string3 STRING 40 user-definable
nr_nx_string4 STRING 40 user-definable
nr_nx_string5 STRING 40 user-definable
nr_nx_string6 STRING 40 user-definable
nr_org_id INTEGER Internal_Or organization for service
ganization:: restoration
id
nr_pr_id INTEGER Priority::en priority enum
um
nr_prim_c_id INTEGER sort dsc Contact::id contact resource ID
nr_prim_search_key STRING 64 primary sort dsc primary alias, service
NOT_NULL name, software name
S_KEY
nr_prim_skt_id INTEGER pointer to primary search
key type
nr_prim_v_id INTEGER Vendor_Pr supplier of the resource
ovider::id
nr_raw_id STRING 30 sort dsc alarm ID
nr_release STRING 16 product revision (OSI
width) software release
nr_resp_v_id INTEGER Vendor_Pr vendor for service
ovider::id restoration
nr_room STRING 20 location detail
nr_rss_id INTEGER Resource_S pointer
ervice_Stat
us::id
nr_serial_num STRING 32 serial number, license
number (OSI width)
nr_service_type STRING 30 Service_De
sc::code
nr_shelf STRING 20 location detail

A–62 Advanced Customization Guide


Network_Resource Table

Field Data Type Index Reference Remarks


nr_sla_id INTEGER Service_Le SLA for resource
vel_Agree
ment::id
nr_slot STRING 20 location detail
nr_system_name STRING 64 sort dsc host name on SNMP nets
nr_wrty_end_dt LOCAL_TIME warranty end date
nr_wrty_st_dt LOCAL_TIME warranty start date
persid STRING 30 internal ID: “nr:.id”

Some of the attributes of the asset attributes are more appropriate to one type
than another. Locations probably do not generally apply to services. Providers,
following the OSI-Forum definition, are only for services. Vendors are only for
devices and software. Although attributing a provider to an element or assigning
a location to a service probably is nonstandard, it is not an error.
■ Network Element Family—Combination of INMS network element and OSI
equipment.
■ Service Family—Telecommunications or data network capabilities that you
buy or leases from a service provider or provide yourself. Identical services
can be implemented by different network elements or the same network
element can implement several distinct services.
■ Software Family—Software used or identified in some way by the system.

Data Element Dictionary A–63


Note_Board Table

Note_Board Table
Message board (announcements) on the main menu.
■ SQL Name—cnote
■ Object—cnote

Field Data Type Index Reference Remarks


control_group INTEGER Contact::id
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “cnote:.id”
posted_by INTEGER Contact::id posted by
posted_date LOCAL_TIME post date/time
text STRING 1000 note text

Notification_Urgency Table
Maps internal enums to strings that represent levels of notification urgency for
contacts.
■ SQL Name—noturg
■ Object—noturg

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40 description of notification
urgency
enum INTEGER enumeration value
NOT_NULL

A–64 Advanced Customization Guide


Notify_Log_Header Table

Field Data Type Index Reference Remarks


id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
sym STRING 60 sort dsc notify urgency symbol
UNIQUE
NOT_NULL
S_KEY

Notify_Log_Header Table
Tracks each notification.
■ SQL Name—not_log
■ Object—lr

Field Data Type Index Reference Remarks


cmth_used INTEGER Contact_M
etho::id
cntxt_obj STRING 30
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod LOCAL_TIME last modification time, for
purging
nlh_ack_by LOCAL_TIME deadline for ack
nlh_ack_time DURATION how long for ack
nlh_c_addressee INTEGER primary sort dsc Contact::id resolved addressee
NOT_NULL
nlh_c_alias INTEGER Contact::id alias contact
nlh_cm_method INTEGER Contact_ notify method used
Method::id

Data Element Dictionary A–65


Notify_Msg Table

Field Data Type Index Reference Remarks


nlh_end LOCAL_TIME time of ack or FYI—final
termination of sequence
nlh_hdr STRING 40 message header text
nlh_msg STRING 1000 message text
nlh_pri INTEGER enum priority of transition
event
nlh_start LOCAL_TIME primary sort dsc notification start date and
NOT_NULL time
nlh_status INTEGER sort dsc pending send, sent FYI,
sent ack, acked, nacked,
cleared
nlh_transition INTEGER transition point generating
notification
nlh_type INTEGER FYI or ack
nlh_user_ack STRING 40 who acknowledged or
cleared it

Notify_Msg Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

A–66 Advanced Customization Guide


Notify_Object_Attr Table

Notify_Object_Attr Table
Lists object attributes that can receive notifications.
■ SQL Name—ntfl
■ Object—ntfl

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=no, 1=yes
NOT_NULL lean_Table:
:enum
description STRING 240
id INTEGER
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
object_attr STRING 30 object attribute name
object_type STRING 30 object type (e.g., Request,
Change Order)
persid STRING 30 internal ID: “ntfl:.id”
sym STRING 30 display name, unique key
NOT_NULL
S_KEY

Data Element Dictionary A–67


Notify_Rule Table

Notify_Rule Table
Indicates which Notification_Attempt_Seq to use for a particular ticket
notification. The table is effectively keyed on priority and reason.
■ SQL Name—not_rle

Field Data Type Index Reference Remarks


del INTEGER 0=present, 1=gone
NOT_NULL
id INTEGER storage hash key ID
UNIQUE
NOT_NULL KEY
ntc_ack_time DURATION How long to wait for ack
ntc_ctc_mth INTEGER the contact method to use.
Hard coded enums (1-4)
ntc_msg INTEGER Notify_Msg:: what message to send
NOT_NULL id
ntc_priority INTEGER primary sort dsc enum priority of the event
NOT_NULL invoking a notification
S_KEY
ntc_rsn INTEGER primary sort dsc enum indicating transition type
NOT_NULL triggering a notification
S_KEY
ntc_script INTEGER Contact_ hard codes script to execute for
Method::id this trans point
ntc_who INTEGER Contact::id hard coded who for some
who_type
ntc_who_type INTEGER enum indicating which person
NOT_NULL to send to

A–68 Advanced Customization Guide


NR_Comment Table

NR_Comment Table
Notify rule comment table. This table is not currently used but is intended for
future use.
■ SQL Name—nr_com
■ Object—nr_com

Field Data Type Index Reference Remarks


com_comment STRING 1000 comment text
com_dt LOCAL TIME primary dsc d/t comment written
NOT_NULL
com_par_id INTEGER primary dsc Network_ pointer to parent row
NOT_NULL Resource::i (nr_did)
S_KEY d
com_userid STRING 40 user ID of comment author
NOT_NULL
S_KEY
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY

Data Element Dictionary A–69


Options Table

Options Table
One row for every option added to Request Management, Change Order
Management, any other BOP-related information, Problem Management, and
Unicenter Service Desk delegation.
■ SQL Name—options
■ Object—options

Field Data Type Index Reference Remarks


action INTEGER action performed
(install/deinstall) on save
action_status STRING 20 in progress, installed, not
installed, install failed,
deinstall failed
app_name STRING 30 primary sort asc
default_value STRING 100
deinstall_script STRING 200 full path of deinstall script
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 200 description
error_msg STRING 100 error message
id INTEGER key ID
UNIQUE
NOT_NULL
KEY
install_script STRING 200 full path of install script
last_mod_dt LOCAL_TIME date last modified
persid STRING 30 internal ID: “options:.id”
readme STRING 200 full path of readme file
sym STRING 30 option symbol
NOT_NULL
validation STRING 100
value STRING 100 user-entered value
value_active INTEGER 1=Yes, 0=No

A–70 Advanced Customization Guide


Priority Table

Priority Table
Look up table. The priority reflects the timeframe in which a ticket must be
resolved. For the ticket, it represents the highest priority of any problem attached
to the ticket. Problem priorities are derived from the scope (impact) and severity
of the problem.
■ SQL Name—pri
■ Object—pri

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40 description
enum INTEGER primary sort dsc internal use only
NOT_NULL
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
service_type STRING 30 Service_
Desc::code
sym STRING 60 sort dsc name of the priority
UNIQUE
NOT_NULL
S_KEY

Data Element Dictionary A–71


Prob_Category Table

Prob_Category Table
Request areas. Category of the user’s issue.
■ SQL Name—prob_ctg
■ Object—pcat

Field Data Type Index Reference Remarks


assignee INTEGER Contact::id default assignee contact
handling the request area
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table::
enum
description STRING 500 description of request
area
group_id INTEGER Contact::id default group contact
handling request area
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME last modify time
organization INTEGER Internal_ default internal
Organizatio organization handling the
n::id request area
persid STRING 30 internal ID: “pcat:.id”
service_type STRING 30 Service_De
sc::code
survey INTEGER Survey_Te
mplate::id
sym STRING 30 primary name of request area
NOT_NULL
S_KEY
tcode INTEGER Trouble_ not used
Code::id

A–72 Advanced Customization Guide


Property Table

Property Table
Contains change order properties.
■ SQL Name—prp
■ Object—prp

Field Data Type Index Reference Remarks


description STRING 240
id INTEGER key ID
UNIQUE
NOT_NULL
KEY
label STRING 80
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME date last modified
object_id INTEGER Change_Re ID of object attached to
NOT_NULL quest::id
object_type STRING 30 factory name of object
NOT_NULL attached to
persid STRING 30 internal ID: “prp:.id”
property INTEGER Property_
Template::i
d
required INTEGER Boolean_Ta
ble::enum
sample STRING 240
sequence INTEGER numeric sequence number
NOT_NULL
value STRING 240 user-entered value

Data Element Dictionary A–73


Property_Template Table

Property_Template Table
Contains change order property templates.
■ SQL Name—prptpl
■ Object—prptpl

Field Data Type Index Reference Remarks


code STRING 12 code
UNIQUE
NOT_NULL
S_KEY
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 240 description
id INTEGER key ID
UNIQUE
NOT_NULL
KEY
label STRING 80 user-definable
NOT_NULL
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
object_attrname STRING 30 user-readable name
NOT_NULL
object_attrval INTEGER value
object_type STRING 30 factory name of object
NOT_NULL attached to
persid STRING 30 internal ID: “prptpl:.id”
required INTEGER property required flag
NOT_NULL
sample STRING 240 user-definable
sequence INTEGER integer sequence
NOT_NULL

A–74 Advanced Customization Guide


Recipient_Type Table

Recipient_Type Table
Maps internal enums to strings that locate recipient name for messages handled
by the notification system.
■ SQL Name—notrty

Field Data Type Index Reference Remarks


del INTEGER 0=present, 1=gone
NOT_NULL
desc STRING 40 description of symbol
enum INTEGER internal use only
NOT_NULL
id INTEGER storage hash key ID
UNIQUE
NOT_NULL KEY
sym STRING 60 sort dsc recipient type symbol
UNIQUE
NOT_NULL
S_KEY

Data Element Dictionary A–75


Remote_Ref

Remote_Ref
Remote references. Used for smart hooks. Determines what command to execute.
There are different commands for UNIX or Windows servers and PC clients
using the same smart hook. Can apply security to smart hook.
■ SQL Name—rem_ref
■ Object—rrf

Field Data Type Index Reference Remarks


arch_type STRING 12 architecture to execute on
server or client. If empty,
then all
code STRING 12 primary non-editable identifier for
UNIQUE command
NOT_NULL
S_KEY
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 500 description of command
exec_str STRING 500 string to execute on UNIX
or Windows server
function_group STRING 30 function group for security
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME last modify time
pcexec_str STRING 500 string to execute on PC
client
sym STRING 30 name of command
NOT_NULL

A–76 Advanced Customization Guide


Req_Property Table

Req_Property Table
Contains request properties.
■ SQL Name—cr_prp
■ Object—cr_prp

Field Data Type Index Reference Remarks


description STRING 240 description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
label STRING 80 user-definable label for
NOT_NULL property
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL TIME datle last modified
owning_cr STRING 30 Call_Req::p Request that contains this
NOT_NULL ersid property
persid STRING 30 internal ID “cr_prp id”
required INTEGER property required flag
NOT_NULL
sample STRING 240 user-definable
sequence INTEGER numeric sequence number
NOT_NULL
value STRING 240 user entered value

Data Element Dictionary A–77


Req_Property_Template Table

Req_Property_Template Table
Request property template.
■ SQL Name—cr_prptpl
■ Object—cr_prptpl

Field Data Type Index Reference Remarks


code STRING 12 secondary sort dsc code
UNIQUE
NOT_NULL
S_KEY
del INTEGER Active_Boo 0 = present, 1 = gone
NOT_NULL lean_Table::
enum
description STRING 240 description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
label STRING 80 user-definable
NOT_NULL
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL TIME date last modified
owning_area STRING 30 Prob_
NOT_NULL Category::p
ersid
persid STRING 30 internal ID: “cr_prptpl_id”
required INTEGER property required flag
NOT_NULL
sample STRING 240 user-definable
sequence INTEGER numeric swequence number
NOT_NULL

A–78 Advanced Customization Guide


Resolution_Code Table

Resolution_Code Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Resource_Family Table
Look up table. Assigns a network asset to an asset family. Valid families are
device, service, software, personnel.
■ SQL Name—resfam
■ Object—nrf

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table::
enum
desc STRING 40 description of family
enum INTEGER internal use only
NOT_NULL
extension_name STRING 30 extension object reference
for assets in this family
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “nrf:.id”
sym STRING 60 primary asc asset family
UNIQUE
NOT_NULL
S_KEY

Data Element Dictionary A–79


Resource_Service_Status Table

Resource_Service_Status Table
Look up table. Controls service status. Appropriate values are Spare, In repair.
■ SQL Name—ressst
■ Object—rss

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40 description of status
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “rss:.id”
sym STRING 60 primary unique service status
UNIQUE
NOT_NULL
S_KEY

Reverse_Boolean_Table Table
Table to show 0 as TRUE and 1 as FALSE. This table is not currently used but is
intended for future use.
■ SQL Name—rbooltab

Field Data Type Index Reference Remarks


del INTEGER 0=present, 1=gone
NOT_NULL
desc STRING 40 description
enum INTEGER internal use only
NOT_NULL

A–80 Advanced Customization Guide


Rpt_Meth Table

Field Data Type Index Reference Remarks


id INTEGER storage hash key ID
UNIQUE
NOT_NULL KEY
sym STRING 12 primary sort dsc 0=true, 1=false
UNIQUE
NOT_NULL
S_KEY

Rpt_Meth Table
Output method for reports.
■ SQL Name—rptmth
■ Object—rptm

Field Data Type Index Reference Remarks


default_out STRING 80 output type
default_page_length STRING 80 page length
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 80 description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
is_default INTEGER default output method
last_mod_dt LOCAL_TIME d/t last modified
script STRING 1000 script name
sym STRING 30 name of method
NOT_NULL

Data Element Dictionary A–81


Sequence_Control Table

Sequence_Control Table
Used to determine what to use for a prefix and suffix when generating request
and change order numbers. Users cannot create new records or delete records in
this table.
■ SQL Name—seqctl
■ Object—seq

Field Data Type Index Reference Remarks


code STRING 12 primary non-editable identifier for
UNIQUE record
NOT_NULL
S_KEY
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 240 description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME last modify time
prefix STRING 5 prefix to sequence number
suffix STRING 5 prefix to sequence number
sym STRING 30 name of command
NOT_NULL

A–82 Advanced Customization Guide


Service_Desc Table

Service_Desc Table
Request and change order service types. Used as service level agreements in
requests and change orders. Can be used to associate the type of service a request
and change order receive.
■ SQL Name—srv_desc
■ Object—sdsc

Field Data Type Index Reference Remarks


code STRING 12 Primary non-editable identifier for
UNIQUE service type
NOT_NULL
S_KEY
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 500 description of service
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME last modify time
persid STRING 30 internal ID: “sdsc:.id”
rank INTEGER ranking value
schedule STRING 30 Bop_Works
hift::persid
sym STRING 30 name of service type
NOT_NULL
S_KEY

Data Element Dictionary A–83


Service_Level_Agreement Table

Service_Level_Agreement Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Severity Table
Represents the measure of the effect of a problem on the network.
■ SQL Name—sevrty
■ Object—sev

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40 description or priority
enum INTEGER internal use only
NOT_NULL
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
sym STRING 12 primary sort dsc display name of severity
UNIQUE
NOT_NULL
S_KEY

A–84 Advanced Customization Guide


Site Table

Site Table
Sites are groupings of locations. Sites do not have locations as such, since they
contain many locations. If a site must have a location, it is the location of the site
contact.
■ SQL Name—site
■ Object—site

Field Data Type Index Reference Remarks


alias INTEGER Site::id -1 = not an alias, id = alias
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod LOCAL_TIME last modification time
persid STRING 30 internal ID: “site:.id”
si_c_id INTEGER Contact::id pointer to site contact
si_comment STRING 240 comment
si_name STRING 30 clear site name
si_site STRING 12 primary sort dsc short site name
UNIQUE unique
NOT_NULL
S_KEY

SLA_Progress_Level Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Data Element Dictionary A–85


SLA_Progress_Notification_Log Table

SLA_Progress_Notification_Log Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

SLA_Template Table
Service level agreement templates.
■ SQL Name—slatpl
■ Object—slatpl

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
elapsed DURATION
NOT_NULL
event STRING 30 Events::per
sid
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
object_type STRING 30 Prod_List::
persid
persid STRING 30
service_type STRING 30 Service_
NOT_NULL Desc::code
sym STRING 30
NOT_NULL
S_KEY

A–86 Advanced Customization Guide


Software_Extension Table

Software_Extension Table
Asset extensions for software.
■ SQL Name—swex
■ Object—swex

Field Data Type Index Reference Remarks


ext_asset INTEGER Network_ asset ID
NOT_NULL Resource::i
S_KEY d
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “swex:.id”
swex_application_size STRING 40 user-definable
swex_disk_req STRING 40 user-definable
swex_file_name STRING 240 user-definable
swex_media_type STRING 40 user-definable
swex_memory_req STRING 40 user-definable
swex_os_req STRING 40 user-definable
swex_platform STRING 40 user-definable
swex_upgrade_info STRING 240 user-definable

Data Element Dictionary A–87


Spell_Macro Table

Spell_Macro Table
Macro code table.
■ SQL Name—splmac
■ Object—macro

Field Data Type Index Reference Remarks


del INTEGER Active_Boolean_Table::enum 0=present, 1=gone
NOT_NULL
description STRING 80 description
fragment STRING 1000 code
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME d/t last modified
lock_object INTEGER lock during execution
NOT_NULL
ob_type STRING 30 affected object
NOT_NULL
persid STRING 30 internal ID:
“macro:.id”
sym STRING 30 primary sort name of macro
UNIQUE dsc
NOT_NULL
type STRING 30 Spell_Macro_Type::code condition vs. Action
NOT_NULL
usr_integer1 INTEGER hold values for spell
code, variables, etc.
usr_integer2 INTEGER
usr_integer3 INTEGER
usr_string2 STRING 250
usr_string3 STRING 125
usr_string4 STRING 25

A–88 Advanced Customization Guide


Spell_Macro_Type Table

Spell_Macro_Type Table
Macro code types.
■ SQL Name—splmactp
■ Object—macro_type

Field Data Type Index Reference Remarks


arg_list STRING 80 arglist for macro
code STRING 30 internal use only
UNIQUE
NOT_NULL
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table::
enum
description STRING 200
display_name STRING 30
execute_script STRING 800 macro spell code
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_dt LOCAL_TIME d/t last modified
lock_object_flag INTEGER
persid STRING 30 internal ID:
“macro_type:.id”
sym STRING 30 name of macro type
NOT_NULL
tech_desc STRING 300
validate_script STRING 400 macro spell code for
validation

Data Element Dictionary A–89


SQL_Script Table

SQL_Script Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Survey
Stores survey information.
■ SQL Name—survey
■ Object—survey

Field Data Type Index Reference Remarks


comment STRING 200
comment_label STRING 80
conclude_text STRING 400
del INTEGER Active_Boo
NOT_NULL lean_Table::
enum
description STRING 400
id INTEGER
UNIQUE
NOT_NULL
KEY
include_comment INTEGER
NOT_NULL
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
object_id INTEGER
object_type STRING 10
persid STRING 30
sym STRING 12
S_KEY

A–90 Advanced Customization Guide


Survey_Answer

Survey_Answer
Stores survey responses.
■ SQL Name—survey_answer
■ Object—svy_ans

Field Data Type Index Reference Remarks


del INTEGER Active_Boo
NOT_NULL lean_Table::
enum
id INTEGER
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
owning_survey_questio INTEGER Survey_Qu
n estion::id
persid STRING 30
sequence INTEGER
NOT_NULL
txt STRING 400

Data Element Dictionary A–91


Survey_Answer_Template

Survey_Answer_Template
Template for survey responses.
■ SQL Name—survey_atpl
■ Object—svy_atpl

Field Data Type Index Reference Remarks


del INTEGER Active_Boo
NOT_NULL lean_Table::
enum
id INTEGER
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
owning_survey_questio INTEGER Survey_Qu
n estion_Tem
plate::id
persid STRING 30
sequence INTEGER
NOT_NULL
txt STRING 400

A–92 Advanced Customization Guide


Survey_Question

Survey_Question
Stores survey questions.
■ SQL Name—survey_question
■ Object—svy_ques

Field Data Type Index Reference Remarks


del INTEGER Active_Boole
NOT_NULL an_Table::en
um
id INTEGER
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
owning_survey INTEGER Survey::id
persid STRING 30
response INTEGER
NOT_NULL
sequence INTEGER
NOT_NULL
txt STRING 400

Data Element Dictionary A–93


Survey_Question_Template

Survey_Question_Template
Template for survey questions.
■ SQL Name—survey_qtpl
■ Object—svy_qtpl

Field Data Type Index Reference Remarks


del INTEGER Active_Boo
NOT_NULL lean_Table::
enum
id INTEGER
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
owning_survey INTEGER Survey_Te
mplate::id
persid STRING 30
sequence INTEGER
NOT_NULL
txt STRING 400

A–94 Advanced Customization Guide


Survey_Template

Survey_Template
Template for surveys.
■ SQL Name—survey_tpl
■ Object—svy_tpl

Field Data Type Index Reference Remarks


comment_label STRING 80
conclude_text STRING 400
del INTEGER Active_Boo
NOT_NULL lean_Table::
enum
description STRING 400
id INTEGER
UNIQUE
NOT_NULL
KEY
include_comment INTEGER
NOT_NULL
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
persid STRING 30
sym STRING 12
UNIQUE
NOT_NULL
S_KEY

System_Defaults Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Table_Name Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Data Element Dictionary A–95


Task_Status Table

Task_Status Table
Contains change order workflow task status.
■ SQL Name—tskstat
■ Object—tskstat

Field Data Type Index Reference Remarks


allow_accumulate INTEGER flag—use task in
NOT_NULL accumulate
allow_task_update INTEGER flag—task can be modified
NOT_NULL
code STRING 12 status code
UNIQUE
NOT_NULL
S_KEY
del INTEGER Active_Boo
NOT_NULL lean_Table:
:enum
description STRING 500 status description
do_next_task INTEGER flag—activate next task
NOT_NULL
id INTEGER
UNIQUE
NOT_NULL
KEY
is_internal INTEGER flag—internal system
NOT_NULL statistics
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
no_update_msg STRING 500 user message
persid STRING 30 internal ID: “tskstat:.id”
sym STRING 30 status symbol
NOT_NULL
task_complete INTEGER flag—task is complete
NOT_NULL

A–96 Advanced Customization Guide


Task_Type Table

Task_Type Table
Contains change order workflow task types.
■ SQL Name—tskty
■ Object—tskty

Field Data Type Index Reference Remarks


code STRING 12 type code
UNIQUE
NOT_NULL
S_KEY
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 500 description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME date last modified
persid STRING 30 internal ID: “tskty:.id”
sym STRING 30 type symbol
NOT_NULL
S_KEY

Ticket_Status Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Data Element Dictionary A–97


Timespan

Timespan
Lists timespans.
■ SQL Name—tspan
■ Object—tspan

Field Data Type Index Reference Remarks


code STRING 10 code
UNIQUE
NOT_NULL
desc STRING 240 description for timespan
end_day STRING 5 The day or relative day when the
timespan ends
end_hour STRING 5 The hour or relative hour when the
timespan ends
end_minute STRING 5 The minute or relative minute
when the timespan ends
end_month STRING 5 The month or relative month when
the timespan ends
end_year STRING 5 The year or relative year when the
timespan ends
id INTEGER key ID
UNIQUE
KEY
start_day STRING 5 The day or relative day when the
timespan begins
start_hour STRING 5 The hour or relative hour when the
timespan begins
start_minute STRING 5 The minute or relative minute
when the timespan begins
start_month STRING 5 The month or relative month when
the timespan begins
start_year STRING 5 The year or relative year when the
timespan begins
sym STRING 30 timespan symbol
UNIQUE
NOT_NULL

A–98 Advanced Customization Guide


Timezone Table

Field Data Type Index Reference Remarks


trigger_day STRING 5 The relative day when timespan is
re-evaluated
trigger_hour STRING 5 The relative hour when timespan is
re-evaluated
trigger_minute STRING 5 The relative minute when timespan
is re-evaluated
trigger_month STRING 5 The relative month when timespan
is re-evaluated
trigger_year STRING 5 The relative year when timespan is
re-evaluated

Timezone Table
Lists time zones.
■ SQL Name—tz
■ Object—tz

Field Data Type Index Reference Remarks


code STRING 12 time zone code
UNIQUE
NOT_NULL
S_KEY
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 500
dst_delta INTEGER
end_abs_date LOCAL_TIME
end_day INTEGER
end_month INTEGER
end_pos INTEGER
gmt_delta INTEGER delta from Greenwich
Mean Standard

Data Element Dictionary A–99


Transition_Points Table

Field Data Type Index Reference Remarks


id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
persid STRING 30 internal ID: “tz:.id”
start_abs_date LOCAL_TIME
start_day INTEGER
start_month INTEGER
start_pos INTEGER
sym STRING 30 time zone symbol
NOT_NULL
S_KEY

Transition_Points Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Trouble_Code Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Trouble_Ticket Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

A–100 Advanced Customization Guide


TT_Comment Table

TT_Comment Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

TT_Order_By Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

TT_Stored_wc Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

TT_Template Table
This table is obsolete, and there is no interface to it. You should not use this table
at all; however, it is important that you not delete it from the schema.

Urgency Table
Urgency measures the importance of the user task supported by the ticket.
■ SQL Name—urgncy
■ Object—urg

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40 description of urgency
level
enum INTEGER internal use only
NOT_NULL

Data Element Dictionary A–101


User_Query

Field Data Type Index Reference Remarks


id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
sym STRING 12 primary sort dsc name of urgency
UNIQUE
NOT_NULL
S_KEY

User_Query
Stores user queries.
■ SQL Name—usq
■ Object—usq

Field Data Type Index Reference Remarks


analyst INTEGER Contact::id
expanded INTEGER
factory STRING 30
id INTEGER
UNIQUE
NOT_NULL
KEY
label STRING 80
NOT_NULL
parent INTEGER User_Query::id
persid STRING 30
query STRING 10 Cr_Stored_Queries::cod
e
query_set INTEGER
sequence INTEGER
NOT_NULL

A–102 Advanced Customization Guide


V_Comment Table

V_Comment Table
Standard comment table. This table is not currently used but is intended for
future use.
■ SQL Name—v_com

Field Data Type Index Reference Remarks


com_comment STRING 1000 comment text
com_dt LOCAL_TIME primary sort dsc d/t comment written
NOT_NULL
com_par_id INTEGER primary sort dsc Vendor_Provider::id pointer to parent row
NOT_NULL (v_id)
S_KEY
com_userid STRING 40 user ID of comment author
NOT_NULL
S_KEY
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY

Vendor_Provider Table
A vendor is the seller of a piece of hardware, software, or maintenance for
software or hardware. A provider supplies network service which is used
internally or passed along to a customer.
■ SQL Name—vnd_prov
■ Object—vp

Field Data Type Index Reference Remarks


alias INTEGER Vendor_Provider::id -1 = not an alias, id =
alias
del INTEGER Active_Boolean_Table::e 0=present, 1=gone
NOT_NULL num
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY

Data Element Dictionary A–103


Vendor_Provider_Type Table

Field Data Type Index Reference Remarks


last_mod LOCAL_TIME last modification time
persid STRING 30 internal ID: “vp:.id”
v_aka STRING 30 alternate name for vendor
v_name STRING 30 primary sort dsc vendor name
NOT_NULL
S_KEY
v_prim_c_id INTEGER Contact::id pointer to primary contact
v_vpt_id INTEGER Vendor_Provider_Type::i pointer to
d vendor-provider type

Vendor_Provider_Type Table
OSI/NM Forum defines types for providers. These are reflected here. Additional
types for vendors will also appear here. The OSI string can be stored to maintain
the correspondence when necessary.
■ SQL Name—vndpty
■ Object—vpt

Field Data Type Index Reference Remarks


del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
desc STRING 40 description
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
persid STRING 30 internal ID: “vpt:.id”
sym STRING 60 primary sort dsc name of the vendor
UNIQUE provider type
NOT_NULL
S_KEY
vpt_type STRING 60 OSI type string, probably
not shown to the user

A–104 Advanced Customization Guide


Workflow_Task Table

Workflow_Task Table
Contains change order workflow tasks.
■ SQL Name—wf
■ Object—wf

Field Data Type Index Reference Remarks


actual_duration DURATION user-definable
asset INTEGER Network_
Resource::i
d
assignee INTEGER Contact::id
completion_date LOCAL_TIME user-definable
cost INTEGER user-definable
creator INTEGER Contact::id
date_created LOCAL_TIME date created
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table:
:enum
description STRING 1000 user-definable
done_by INTEGER Contact::id
est_completion_date LOCAL_TIME user-definable
est_cost INTEGER user-definable
est_duration DURATION user-definable
group_task INTEGER flag—is a group task
NOT_NULL
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id
last_mod_dt LOCAL_TIME
object_id INTEGER Change_Re ID of object attached to
NOT_NULL quest::id
object_type STRING 30 factory name of object
NOT_NULL attached to

Data Element Dictionary A–105


Workflow_Task_Template Table

Field Data Type Index Reference Remarks


persid STRING 30 internal ID: “wf:.id”
sequence INTEGER integer sequence number
NOT_NULL
start_date LOCAL_TIME date started
status STRING 12 Task_Statu
s::code
task STRING 12 Task_Type:
NOT_NULL :code
wf_template INTEGER Workflow_
Task_
Template::i
d

Workflow_Task_Template Table
Contains change order workflow task templates.
■ SQL Name—wftpl
■ Object—wftpl

Field Data Type Index Reference Remarks


assignee INTEGER Contact::id
del INTEGER Active_Boo 0=present, 1=gone
NOT_NULL lean_Table::
enum
deleteable INTEGER flag—can be deleted
NOT_NULL
description STRING 240 description
est_cost INTEGER cost
est_duration DURATION duration
id INTEGER storage hash key ID
UNIQUE
NOT_NULL
KEY
last_mod_by INTEGER Contact::id

A–106 Advanced Customization Guide


Workflow_Task_Template Table

Field Data Type Index Reference Remarks


last_mod_dt LOCAL_TIME
object_attrname STRING 30 user-readable name
NOT_NULL
object_attrval INTEGER integer value
NOT_NULL
object_type STRING 30 factory name of object
NOT_NULL attached to
persid STRING 30 internal ID: “wftpl:.id”
sequence INTEGER sequence number
NOT_NULL
task STRING 12 Task_Type:
NOT_NULL :code

Data Element Dictionary A–107


Appendix

Objects and Attributes


B
This appendix lists the objects and attributes that define Unicenter Service Desk.
These are needed to build notification text, scoreboard queries, and data partition
constraints. The appendix gives a detailed list of the attributes of each object.

ANI Object
This object is associated with the Animator table in the database schema.

Attribute DB Field Data Type


active a_act INTEGER
delta a_delta DURATION
lock a_lock STRING 200
method t_method STRING 30 REQUIRED
name a_name STRING 30 WRITE_NEW REQUIRED
org_timer a_org DATE WRITE_NEW REQUIRED
target t_persid STRING 30 WRITE_NEW REQUIRED
timer a_time DATE REQUIRED
type t_type INTEGER WRITE_NEW REQUIRED
user_string a_string STRING 30

Objects and Attributes B–1


act_com Object

act_com Object
This object is associated with the A_Comment table in the database schema.

Attribute DB Field Data Type


act com_par_id SREL tt_act
comment com_comment STRING
timestamp com_dt DATE
userid com_userid STRING

act_stat Object
This object is associated with the Action_Status table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
enum enum INTEGER REQUIRED
sym sym STRING REQUIRED

act_type_assoc Object
This object is associated with the Act_Type_Assoc table in the database schema.

Attribute DB Field Data Type


act_type act_type SREL aty
code code STRING WRITE_NEW REQUIRED
description description STRING
internal int1_rsrved INTEGER
log_me_f log_me_f INTEGER
ob_type ob_type SREL actlog_prod_list

B–2 Advanced Customization Guide


actbool Object

Attribute DB Field Data Type


ob_type_attr ob_type_attr STRING
persistent_id persid STRING
sym sym STRING REQUIRED

actbool Object
This object is associated with the Active_Boolean_Table table in the database
schema.

Attribute DB Field Data Type


delete_flag del INTEGER REQUIRED
description description STRING
enum enum INTEGER
last_mod_dt last_mod_dt DATE
sym sym STRING

actrbool Object
This object is associated with the Active_Reverse_Boolean_Table table in the
database schema.

Attribute DB Field Data Type


delete_flag del INTEGER REQUIRED
description description STRING
enum enum INTEGER
last_mod_dt last_mod_dt DATE
sym sym STRING

Objects and Attributes B–3


alg Object

alg Object
This object is associated with the Act_Log table in the database schema.

Attribute DB Field Data Type


action_desc action_desc STRING WRITE_NEW
analyst analyst SREL cnt WRITE_NEW
call_req_id call_req_id SREL cr WRITE_NEW
cmth_override LOCAL SREL cmth
description description STRING
internal internal INTEGER
k_tool knowledge_tool STRING
last_mod_dt last_mod_dt DATE
msg_ack LOCAL STRING
msg_body LOCAL STRING
msg_title LOCAL STRING
notify_list LOCAL STRING
noturg_override LOCAL SREL noturg
persistent_id persid STRING
session knowledge_session STRING
system_time system_time DATE WRITE_NEW
time_spent time_spent DURATION
time_stamp time_stamp DATE
type type SREL aty

B–4 Advanced Customization Guide


atev Object

atev Object
This object is associated with the Attached_Events table in the database schema.

Attribute DB Field Data Type


cancel_time cancel_time DATE
event_tmpl event_tmpl SREL evt WRITE_NEW REQUIRED
fire_time fire_time DATE
group_name group_name STRING
is_old_flag LOCAL INTEGER
last_mod_dt last_mod_dt DATE
num_fire num_fire INTEGER
obj_id obj_id STRING WRITE_NEW REQUIRED
persistent_id persid STRING
start_time start_time DATE PRIVATE
status_flag status_flag INTEGER
suppress_triggers LOCAL INTEGER
user_smag user_smag STRING
wait_time wait_time DURATION

atomic_cond Object
This object is associated with the Atomic_Condition table in the database schema.

Attribute DB Field Data Type


cond_code cond_code STRING
connecter connecter INTEGER REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
l_paran l_paran INTEGER REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE

Objects and Attributes B–5


attmnt Object

Attribute DB Field Data Type


lval lval SREL act_type_assoc
operator operator INTEGER REQUIRED
owning_macro owning_macro SREL macro
persistent_id persid STRING
r_paran r_paran INTEGER REQUIRED
rval rval STRING
rval_assoc rval_assoc SREL act_type_assoc
sequence sequence INTEGER REQUIRED

attmnt Object
This object is associated with the Attachment table in the database schema.

Attribute DB Field Data Type


attmnt_name attmnt_name STRING REQUIRED
created_by created_by SREL cnt
created_dt created_dt DATE
delete_flag del SREL actbool REQUIRED
description description STRING
exec_cmd exec_cmd SREL rrf
file_date file_date DATE
file_name file_name STRING
file_size file_size INTEGER
file_type file_type STRING
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
link_only link_only SREL bool REQUIRED
orig_file_name orig_file_name STRING REQUIRED

B–6 Advanced Customization Guide


attmnt_lrel Object

Attribute DB Field Data Type


persistent_id persid STRING
repository repository SREL doc_rep
status status STRING

attmnt_lrel Object
This object is associated with the Attachment_Lrel table in the database schema.

Attribute DB Field Data Type


lattr l_attr STRING
login_id LOCAL INTEGER
lpid l_persid STRING
lseq l_sql INTEGER
rattr r_attr STRING
rpid r_persid STRING
rseq r_sql INTEGER

aty Object
This object is associated with the Act_Type table in the database schema.

Attribute DB Field Data Type


chg_default_survey chg_default_survey SREL svy_tpl
chg_flag flag2 SREL bool WRITE_NEW
chg_notify_info chg_notify_info SREL macro REQUIRED
chg_send_survey chg_send_survey INTEGER
chg_survey_method chg_survey_method SREL cmth
chg_survey_msgbod chg_survey_msgbody STRING
y
chg_survey_msgtitle chg_survey_msgtitle STRING

Objects and Attributes B–7


audlog Object

Attribute DB Field Data Type


code code STRING WRITE_NEW
REQUIRED
cr_default_survey cr_default_survey SREL svy_tpl
cr_flag flag1 SREL bool WRITE_NEW
cr_notify_info cr_notify_info SREL macro REQUIRED
cr_send_survey cr_send_survey INTEGER
cr_survey_method cr_survey_method SREL cmth
cr_survey_msgbody cr_survey_msgbody STRING
cr_survey_msgtitle cr_survey_msgtitle STRING
delete_flag del SREL actbool REQUIRED
description description STRING
internal internal INTEGER
last_mod_dt last_mod_dt DATE
notify_flag notify INTEGER
notify_level notify_level SREL noturg
notify_msg_ack notify_ack STRING
notify_msg_body notify_body STRING
notify_msg_title notify_title STRING
persistent_id persid STRING
sym sym STRING REQUIRED

audlog Object
This object is associated with the Audit_Log table in the database schema.

Attribute DB Field Data Type


analyst analyst SREL cnt WRITE_NEW
attr_after_val attr_after_val STRING WRITE_NEW
attr_before_val attr_before_val STRING WRITE_NEW
attr_name attr_name STRING WRITE_NEW

B–8 Advanced Customization Guide


bhvtpl Object

Attribute DB Field Data Type


aud_opr aud_opr INTEGER WRITE_NEW
audobj_name audobj_name STRING WRITE_NEW
audobj_persid audobj_persid STRING WRITE_NEW
audobj_trkid audobj_trkid STRING WRITE_NEW
audobj_uniqueid audobj_uniqueid STRING WRITE_NEW
change_date change_date DATE WRITE_NEW
operation LOCAL STRING PRIVATE
persistent_id persid STRING

bhvtpl Object
This object is associated with the Behavior_Template table in the database
schema.

attribute DB Field Data Type


context_attrname context_attrname STRING
context_attrval context_attrval INTEGER
context_common LOCAL STRING
_name
context_type context_type SREL workflow_prod_list
delete_flag del SREL actbool REQUIRED
description description STRING
last_mod_by last_mod_by SREL cnt
macro_condition macro_condition SREL macro
modified_date last_mod_dt DATE
object_id object_id INTEGER WRITE_NEW REQUIRED
object_type object_type SREL workflow_prod_list
WRITE_NEW REQUIRED
persistent_id persid STRING
transition_errmsg transition_errmsg STRING
transition_test transition_test SREL macro

Objects and Attributes B–9


bool Object

bool Object
This object is associated with the Boolean_Table table in the database schema.

Attribute DB Field Data Type


delete_flag del INTEGER REQUIRED
enum enum INTEGER
sym sym STRING

chg Object
This object is associated with the Change_Request table in the database schema.

Attribute DB Field Data Type


act_log act_log BREL chgalg change_id DYNAMIC
act_log_all act_log_all BREL chgalg change_id DYNAMIC
active active_flag SREL bool REQUIRED
active_f LOCAL INTEGER
actual_comp_date actual_comp_date DATE
actual_comp_date_f LOCAL INTEGER
actual_total_time actual_total_time DURATION
actual_total_time_f LOCAL INTEGER
add_property_persids LOCAL STRING
add_sla_persids LOCAL STRING
add_workflow_persids LOCAL STRING
affected_contact affected_contact SREL cnt REQUIRED
affected_contact_f LOCAL INTEGER
assignee assignee SREL agt
assignee_f LOCAL INTEGER
audit_userid LOCAL INTEGER
audit_userid_f LOCAL INTEGER
backout_plan backout_plan STRING

B–10 Advanced Customization Guide


chg Object

Attribute DB Field Data Type


backout_plan_f LOCAL INTEGER
call_back_date call_back_date DATE
call_back_flag call_back_flag INTEGER
category category SREL chgcat
category_f LOCAL INTEGER
chg_ref_num chg_ref_num STRING WRITE_NEW REQUIRED
children children QREL chg DYNAMIC
close_date close_date DATE
close_date_f LOCAL INTEGER
cost actual_cost INTEGER
cost_f LOCAL INTEGER
cr_list cr_list BREL cr change DYNAMIC
created_via created_via SREL intfc
description description STRING
description_f LOCAL INTEGER
effort effort STRING
effort_f LOCAL INTEGER
est_comp_date est_comp_date DATE
est_comp_date_f LOCAL INTEGER
est_cost est_cost INTEGER
est_cost_f LOCAL INTEGER
est_total_time est_total_time DURATION
est_total_time_f LOCAL INTEGER
fldchange_log LOCAL STRING
fldchange_log_f LOCAL INTEGER
group group_id SREL grp
group_f LOCAL INTEGER
group_flag LOCAL INTEGER
impact impact SREL imp
impact_f LOCAL INTEGER

Objects and Attributes B–11


chg Object

Attribute DB Field Data Type


init_log_id_f LOCAL INTEGER
justification justification STRING
justification_f LOCAL INTEGER
last_mod_by last_mod_by SREL cnt
log_agent log_agent SREL cnt WRITE_NEW
REQUIRED
log_agent_f LOCAL INTEGER
modified_date last_mod_dt DATE
need_by need_by DATE
need_by_f LOCAL INTEGER
new_delay_log LOCAL STRING
open_children open_children QREL chg DYNAMIC
open_date open_date DATE WRITE_NEW
open_date_f LOCAL INTEGER
organization organization SREL org
organization_f LOCAL INTEGER
parent parent SREL chg
parent_f LOCAL INTEGER
persistent_id persid STRING
priority priority SREL pri REQUIRED
priority_f LOCAL INTEGER
property_list property_list QREL prp DYNAMIC
recursive_f LOCAL INTEGER
requestor requestor SREL cnt REQUIRED
requestor_f LOCAL INTEGER
saved_f LOCAL INTEGER
sla_events sla_events QREL atev DYNAMIC
sla_violation sla_violation INTEGER
start_date start_date DATE
start_date_f LOCAL INTEGER

B–12 Advanced Customization Guide


chgalg Object

Attribute DB Field Data Type


status status SREL chgstat
status_f LOCAL INTEGER
string1 string1 STRING
string2 string2 STRING
string3 string3 STRING
string4 string4 STRING
string5 string5 STRING
string6 string6 STRING
support_lev support_lev SREL sdsc
template_name template_name STRING
web_url LOCAL DERIVED
wf_attr_changed LOCAL INTEGER
workflow workflow QREL wf DYNAMIC

chgalg Object
This object is associated with the Change_Act_Log table in the database schema.

Attribute DB Field Data Type


action_desc action_desc STRING WRITE_NEW
analyst analyst SREL cnt WRITE_NEW
change_id change_id SREL chg WRITE_NEW
cmth_override LOCAL SREL cmth
description description STRING
internal internal INTEGER
last_mod_dt last_mod_dt DATE
msg_ack LOCAL STRING
msg_body LOCAL STRING
msg_title LOCAL STRING

Objects and Attributes B–13


chgcat Object

Attribute DB Field Data Type


notify_list LOCAL STRING
noturg_override LOCAL SREL noturg
persistent_id persid STRING
system_time system_time DATE WRITE_NEW
time_spent time_spent DURATION
time_stamp time_stamp DATE
type type SREL aty WRITE_NEW

chgcat Object
This object is associated with the Change_Category table in the database schema.

Attribute DB Field Data Type


assignee assignee SREL agt
children_ok children_ok INTEGER REQUIRED
code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
group group_id SREL grp
last_mod_by last_mod_by SREL cnt
modified_date last_mod_dt DATE
organization organization SREL org
persistent_id persid STRING
property_templates property_templates QREL prptpl DYNAMIC
service_type service_type SREL sdsc
survey survey SREL svy_tpl
sym sym STRING REQUIRED
workflow_templates workflow_templates QREL wftpl DYNAMIC

B–14 Advanced Customization Guide


chgstat Object

chgstat Object
This object is associated with the Change_Status table in the database schema.

Attribute DB Field Data Type


active active INTEGER
code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
last_mod_by last_mod_by SREL cnt
modified_date last_mod_dt DATE
persistent_id persid STRING
sym sym STRING REQUIRED

close_entry Object
This object is associated with the Close_Entry table in the database schema.

Attribute DB Field Data Type


cause cl_cause STRING
cl_dt cl_dt DATE
contact cl_c_id SREL cnt
delete_flag del SREL actbool REQUIRED
new_status cl_new_status SREL tt_stat
old_status cl_old_status SREL tt_stat
res_code cl_arc_id INTEGER
seq_num cl_num INTEGER REQUIRED
tt_id cl_tt_id SREL tt

Objects and Attributes B–15


cmth Object

cmth Object
This object is associated with the Contact_Method table in the database schema.

Attribute DB Field Data Type


cm_template cm_template STRING
delete_flag del SREL actbool REQUIRED
description desc STRING
persistent_id persid STRING
sym sym STRING REQUIRED
write_file write_file INTEGER

cnote Object
This object is associated with the Note_Board table in the database schema.

Attribute DB Field Data Type


contact_type contact_type SREL ctp
persistent_id persid STRING
posted_by posted_by SREL cnt
posted_date posted_date DATE
text text STRING

cnt Object
This object is associated with the Contact table in the database schema.

Attribute DB Field Data Type


admin_org c_admin_org_id SREL org
alias alias INTEGER
all_chg all_chg BREL chg affected_contact
DYNAMIC

B–16 Advanced Customization Guide


cnt Object

Attribute DB Field Data Type


all_creq all_creq BREL cr customer DYNAMIC
all_open_creq all_open_creq QREL cr DYNAMIC
alt_phone c_voice_phone STRING
audit_userid LOCAL INTEGER
beeper_phone c_beeper_phone STRING
billing_code c_expense STRING
change_tasks change_tasks QREL wf DYNAMIC
combo_name LOCAL DERIVED
contact_num c_contact_num STRING
delete_flag del SREL actbool REQUIRED
dept c_dept STRING
domain c_domain SREL dmn
email_address c_email_addr STRING
fax_phone c_fax_phone STRING
first_name c_first_name STRING
group_list group_list BREL grpmem member
DYNAMIC
last_mod last_mod DATE
last_name c_last_name STRING REQUIRED
location c_l_id SREL loc
log_reader log_reader BREL lr contact DYNAMIC
member_list member_list BREL grpmem group DYNAMIC
middle_name c_middle_name STRING
notes c_notes STRING
notify_method1 c_cm_id1 SREL cmth
notify_method2 c_cm_id2 SREL cmth
notify_method3 c_cm_id3 SREL cmth
notify_method4 c_cm_id4 SREL cmth
notify_urgency1 LOCAL SREL noturg
notify_urgency2 LOCAL SREL noturg

Objects and Attributes B–17


cpex Object

Attribute DB Field Data Type


notify_urgency3 LOCAL SREL noturg
notify_urgency4 LOCAL SREL noturg
organization c_org_id SREL org
pemail_address c_pemail_addr STRING
persistent_id persid STRING
phone_number c_public_phone STRING
service_type c_service_type SREL sdsc
timezone c_timezone SREL tz
type c_ctp_id SREL ctp
userid c_userid STRING
vendor c_vendor SREL vp

cpex Object
This object is associated with the Computer_Extension table in the database
schema.

Attribute DB Field Data Type


capacity cpex_capacity STRING
cd_rom cpex_cd_rom STRING
ext_asset ext_asset SREL nr
float_pt_err cpex_float_pt_err STRING
graphics_card cpex_graphics_card STRING
hard_disk_space cpex_hard_disk_space STRING
media_type cpex_media_type STRING
modem cpex_modem STRING
modem_card cpex_modem_card STRING
monitor cpex_monitor STRING
network_card cpex_network_card STRING
operating_system cpex_operating_syste STRING
m

B–18 Advanced Customization Guide


cr Object

Attribute DB Field Data Type


persistent_id persid STRING
physical_memory cpex_physical_memor STRING
y
printer cpex_printer STRING
processor_speed cpex_processor_speed STRING
processor_type cpex_processor_type STRING
scsi_card cpex_scsi_card STRING

cr Object
This object is associated with the Call_Req table in the database schema.

Attribute DB Field Data Type


act_log act_log BREL alg call_req_id DYNAMIC
act_log_all act_log_all BREL alg call_req_id DYNAMIC
active active_flag SREL bool REQUIRED
active_f LOCAL INTEGER
add_property_persi STRING
ds LOCAL
add_sla_persids LOCAL STRING
affected_resource affected_rc SREL nr
assignee assignee SREL agt
assignee_f LOCAL INTEGER
audit_userid LOCAL INTEGER
audit_userid_f LOCAL INTEGER
base_template solution SREL cr
call_back_date call_back_date DATE
call_back_flag call_back_flag INTEGER
category category SREL pcat
category_f LOCAL INTEGER
change change SREL chg

Objects and Attributes B–19


cr Object

Attribute DB Field Data Type


change_f LOCAL INTEGER
charge_back_id charge_back_id STRING
children children QREL cr DYNAMIC
close_date close_date DATE
close_date_f LOCAL INTEGER
created_via created_via SREL intfc
customer customer SREL cst REQUIRED
ddeobj ddeobj STRING
dderun_f dderun_f INTEGER
description description STRING
event_token event_token STRING
extern_ref extern_ref STRING
extern_ref_f LOCAL INTEGER
fldchange_log LOCAL STRING
fldchange_log_f LOCAL INTEGER
group group_id SREL grp
group_f LOCAL INTEGER
impact impact SREL imp
impact_f LOCAL INTEGER
init_log_id_f LOCAL INTEGER
last_act_id last_act_id STRING
last_mod_dt last_mod_dt DATE
log_agent log_agent SREL cnt WRITE_NEW
REQUIRED
log_agent_f LOCAL INTEGER
new_delay_log LOCAL STRING
open_date open_date DATE WRITE_NEW
parent parent SREL cr
parent_f LOCAL INTEGER
persistent_id persid STRING

B–20 Advanced Customization Guide


cr Object

Attribute DB Field Data Type


priority priority SREL pri REQUIRED
priority_f LOCAL INTEGER
properties properties BREL cr_prp owning_cr
DYNAMIC
ref_num ref_num STRING WRITE_NEW
REQUIRED
saved_f LOCAL INTEGER
severity severity SREL sev
severity_f LOCAL INTEGER
sla_events sla_events QREL atev DYNAMIC
sla_violation sla_violation INTEGER
soln_log soln_log QREL alg DYNAMIC
solution LOCAL SREL crsol
status status SREL crs
status_f LOCAL INTEGER
string1 string1 STRING
string2 string2 STRING
string3 string3 STRING
string4 string4 STRING
string5 string5 STRING
string6 string6 STRING
summary summary STRING
support_lev support_lev SREL sdsc
template_name template_name STRING
time_spent_sum time_spent_sum DURATION
type type SREL crt
urgency urgency SREL urg
urgency_f LOCAL INTEGER
web_url LOCAL DERIVED

Objects and Attributes B–21


cr_prp Object

cr_prp Object
This object is associated with the Req_Property table in the database schema.

Attribute DB Field Data Type


description description STRING
label label STRING REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
owning_cr owning_cr SREL cr WRITE_NEW
REQUIRED
persistent_id persid STRING
required required INTEGER REQUIRED
sample sample STRING
sequence sequence INTEGER REQUIRED
value value STRING

cr_prptpl Object
This object is associated with the Req_Property_Template table in the database
schema.

Attribute DB Field Data Type


code code STRING REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
label label STRING REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
owning_area owning_area SREL pcat WRITE_NEW
REQUIRED
persistent_id persid STRING

B–22 Advanced Customization Guide


crs Object

Attribute DB Field Data Type


required required INTEGER REQUIRED
sample sample STRING
sequence sequence INTEGER REQUIRED

crs Object
This object is associated with the Cr_Status table in the database schema.

Attribute DB Field Data Type


active active INTEGER
code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
last_mod_dt last_mod_dt DATE
persistent_id persid STRING
sym sym STRING REQUIRED

crsol Object
This object is associated with the Call_Solution table in the database schema.

Attribute DB Field Data Type


ROW_HITS LOCAL INTEGER
cr_count cr_count INTEGER
delete_flag del SREL actbool REQUIRED
desc desc STRING
description description STRING
last_mod_dt last_mod_dt DATE
persistent_id persid STRING

Objects and Attributes B–23


crsq Object

Attribute DB Field Data Type


solution solution STRING
solution_approved sapproved SREL bool
solution_name sname STRING
sym sym STRING REQUIRED

crsq Object
This object is associated with the Cr_Stored_Queries table in the database
schema.

Attribute DB Field Data Type


code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
label label STRING
last_mod_dt last_mod_dt DATE
obj_type obj_type SREL stored_query_prod_list
REQUIRED
persistent_id persid STRING
where_clause criteria STRING

crt Object
This object is associated with the Call_Req_Type table in the database schema.

Attribute DB Field Data Type


code code STRING REQUIRED
delete_flag del SREL actbool REQUIRED
description desc STRING

B–24 Advanced Customization Guide


ctab Object

Attribute DB Field Data Type


display_name display_name STRING
persistent_id persid STRING
sym sym STRING REQUIRED

ctab Object
This object is associated with the Controlled_Table table in the database schema.

Tables contro lled by data partitions.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
desc desc STRING
obj_name obj_name STRING
persistent_id persid STRING
sym sym STRING REQUIRED

ctimer Object
This object is associated with the Cr_Call_Timers table in the database schema.

Attribute DB Field Data Type


beep beep INTEGER
color color STRING
delete_flag del SREL actbool REQUIRED
last_mod_dt last_mod_dt DATE
persistent_id persid STRING
text text STRING
threshold threshold DURATION REQUIRED

Objects and Attributes B–25


ctp Object

ctp Object
This object is associated with the Contact_Type table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
persistent_id persid STRING
sym sym STRING REQUIRED
view_internal view_internal INTEGER

dcon Object
This object is associated with the Domain_Constraint table in the database
schema.

Attribute DB Field Data Type


alias alias INTEGER
audit_userid LOCAL INTEGER
constraint_SQL constraint_SQL STRING REQUIRED
constraint_majic constraint_majic STRING REQUIRED
constraint_mod_flag LOCAL INTEGER
delete_flag del SREL actbool REQUIRED
dom_id dom_id SREL dmn WRITE_NEW
REQUIRED
error_msg error_msg STRING
last_mod last_mod DATE
persistent_id persid STRING
saved_f LOCAL INTEGER
tbl_id tbl_id SREL ctab WRITE_NEW
REQUIRED
type type SREL dcon_typ WRITE_NEW
REQUIRED

B–26 Advanced Customization Guide


dcon_typ Object

dcon_typ Object
This object is associated with the Domain_Constraint_Type table in the database
schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
enum enum INTEGER REQUIRED
persistent_id persid STRING
sym sym STRING REQUIRED

dlgsrvr Object
This object is associated with the Delegation_Server table in the database schema.

Attribute DB Field Data Type


anon_userid anon_userid STRING
appl_addr appl_addr STRING
default_assignee default_assignee SREL cnt
default_userid default_userid STRING
delete_flag del SREL actbool REQUIRED
description desc STRING
metafile metafile STRING 256
password password STRING
server server STRING 128
sym sym STRING REQUIRED
transport transport INT

Objects and Attributes B–27


dmn Object

dmn Object
This object is associated with the Domain table in the database schema.

Attribute DB Field Data Type


audit_userid LOCAL INTEGER
delete_flag del SREL actbool REQUIRED
desc desc STRING
persistent_id persid STRING
sym sym STRING REQUIRED
tables Objects BREL dcon dom_id DYNAMIC

doc_rep Object
This object is associated with the Document_Repository table in the database
schema.

Attribute DB Field Data Type


cgi_path cgi_path STRING REQUIRED
default_rep default_rep INTEGER
delete_flag del SREL actbool REQUIRED
description description STRING
persistent_id persid STRING
protocol protocol STRING REQUIRED
retrieve_path retrieve_path STRING REQUIRED
server server STRING REQUIRED
sym sym STRING REQUIRED
upload_path upload_path STRING REQUIRED

B–28 Advanced Customization Guide


evt Object

evt Object
This object is associated with the Events table in the database schema.

Attribute DB Field Data Type


attached attached BREL atev event_tmpl
condition condition SREL macro
delay_time delay_time DURATION REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
last_mod_dt last_mod_dt DATE
modulo_time modulo_time DURATION REQUIRED
obj_type obj_type SREL event_prod_list
on_done_flag on_done_flag INTEGER REQUIRED
persistent_id persid STRING
sym sym STRING REQUIRED
the_bhvtpls the_bhvtpls QREL bhvtpl DYNAMIC
user_settime user_settime INTEGER REQUIRED
user_smag user_smag STRING
work_shift work_shift SREL wrkshft

evtdly Object
This object is associated with the Event_Delay table in the database schema.

Attribute DB Field Data Type


act_delay act_delay DURATION PRIVATE
cancel_time cancel_time DATE PRIVATE
create_time create_time DATE WRITE_NEW
delay_type delay_type SREL evtdlytp
description description STRING
eff_delay eff_delay DURATION PRIVATE

Objects and Attributes B–29


evtdlytp Object

Attribute DB Field Data Type


group_name group_name STRING
last_mod_dt last_mod_dt DATE
obj_id obj_id STRING WRITE_NEW
REQUIRED
persistent_id persid STRING
start_time start_time DATE PRIVATE
start_userid start_userid SREL cnt
status_flag status_flag INTEGER
stop_time stop_time DATE PRIVATE
stop_userid stop_userid SREL cnt
support_lev support_lev SREL sdsc

evtdlytp Object
This object is associated with the Event_Delay_Type table in the database
schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
enum enum INTEGER REQUIRED
sym sym STRING REQUIRED

fail_t Object
This object is associated with the Failure table in the database schema.

Attribute DB Field Data Type


chronic fail_chronic INTEGER
delete_flag del SREL actbool REQUIRED
description fail_desc STRING

B–30 Advanced Customization Guide


grc Object

Attribute DB Field Data Type


fail_fail fail_fail INTEGER
fail_nr_did fail_nr_did SREL nr
fail_num fail_num INTEGER
fail_tt_id fail_tt_id SREL tt

grc Object
This object is associated with the General_Resource_Class table in the database
schema.

Attribute DB Field Data Type


alias alias INTEGER
chronic_priority grc_ct_priority SREL pri
delete_flag del SREL actbool REQUIRED
description grc_desc STRING
family grc_fam SREL nrf
gduration grc_ct_duration DURATION
last_mod last_mod DATE
organization grc_org_id SREL org
persistent_id persid STRING
problem_interval_n grc_ct_num_probs INTEGER
um
service_lev grc_sla_id SREL sla
tt_priority grc_pr_id SREL pri
type grc_type STRING REQUIRED

Objects and Attributes B–31


grpmem Object

grpmem Object
This object is associated with the Group_Member table in the database schema.

Attribute DB Field Data Type


group group_id SREL grp
manager_flag manager_flag INTEGER REQUIRED
member member SREL cnt
notify_flag notify_flag INTEGER REQUIRED
persistent_id persid STRING

hier Object
This object is associated with the Asset_Assignment table in the database schema.

Attribute DB Field Data Type


audit_username LOCAL STRING
child hier_child SREL nr WRITE_NEW
REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
license_num hier_license_num STRING
log_date hier_log_date DATE WRITE_NEW
parent hier_parent SREL nr WRITE_NEW
REQUIRED
persistent_id persid STRING

B–32 Advanced Customization Guide


imp Object

imp Object
This object is associated with the Impact table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
enum enum INTEGER REQUIRED
sym sym STRING REQUIRED

intfc Object
This object is associated with the Interface table in the database schema.

Attribute DB Field Data Type


code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
desc desc STRING 400
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
persistent_id persid STRING
sym sym STRING WRITE_NEW
REQUIRED

ir Object
This object is associated with the Initial_Report table in the database schema.

Attribute DB Field Data Type


client ir_client_id SREL cnt
contact ir_usr_c_id SREL cnt
contact_ph ir_client_phone STRING

Objects and Attributes B–33


ir Object

Attribute DB Field Data Type


count ir_event_cnt INTEGER
del_id ir_del_id INTEGER
del_ids ir_del_ids STRING
del_time ir_del_time DATE
delete_flag del SREL actbool REQUIRED
details ir_notes STRING
end_date ir_end_dt DATE
impact ir_impact SREL imp
impact_desc ir_impact_desc STRING
incident_num ir_num INTEGER
last_mod_date last_mod DATE
location ir_l_id SREL loc
nfy_contact ir_nfy_c_id SREL cnt
open_date ir_entry_dt DATE
ref1 ir_nx_ref_1 SREL cnt
ref2 ir_nx_ref_2 SREL cnt
ref3 ir_nx_ref_3 SREL cnt
reference ir_ref_num STRING
resource ir_alarm_nr_did SREL nr
site ir_si_id SREL site
start_date ir_start_dt DATE
str1 ir_nx_string1 STRING
str2 ir_nx_string2 STRING
str3 ir_nx_string3 STRING
str4 ir_nx_string4 STRING
summary ir_desc STRING
tt_id ir_tt_id SREL tt
tt_num ir_tt_num INTEGER

B–34 Advanced Customization Guide


kmlrel Object

kmlrel Object
This object is associated with the Knowledge_Lrel_Table table in the database
schema.

Attribute DB Field Data Type


lattr l_attr STRING
lpid l_persid STRING
lseq l_sql INTEGER
rattr r_attr STRING
rpid r_persid STRING
rseq r_sql INTEGER

kwrd Object
This object is associated with the Knowledge_Keywords table in the database
schema.

Attribute DB Field Data Type


last_mod_dt last_mod_dt DATE
persistent_id persid STRING
sym sym STRING REQUIRED
use_solutions LOCAL STRING

loc Object
This object is associated with the Location table in the database schema.

Attribute DB Field Data Type


address1 l_addr1 STRING
address2 l_addr2 STRING
address3 l_addr3 STRING
address4 l_addr4 STRING

Objects and Attributes B–35


lr Object

Attribute DB Field Data Type


address5 l_addr5 STRING
address6 l_addr6 STRING
alias alias INTEGER
delete_flag del SREL actbool REQUIRED
description l_details STRING
last_mod last_mod DATE
name l_name STRING REQUIRED
persistent_id persid STRING
site l_si_id SREL site

lr Object
This object is associated with the Notify_Log_Header table in the database
schema.

Attribute DB Field Data Type


ack_time nlh_ack_time DURATION
activity_notify nlh_transition INTEGER WRITE_NEW
cmth_used cmth_used SREL cmth WRITE_NEW
cntxt_obj cntxt_obj STRING
contact nlh_c_addressee SREL cnt WRITE_NEW
delete_flag del SREL actbool REQUIRED
end_date nlh_end DATE
last_mod last_mod DATE
msg_ack nlh_user_ack STRING
msg_hdr nlh_hdr STRING WRITE_NEW
msg_text nlh_msg STRING WRITE_NEW
notify_method nlh_cm_method SREL noturg
notify_type nlh_type INTEGER WRITE_NEW
persistent_id persid STRING

B–36 Advanced Customization Guide


lrel1 Object

Attribute DB Field Data Type


pri_event nlh_pri INTEGER WRITE_NEW
start_date nlh_start DATE WRITE_NEW
status nlh_status INTEGER REQUIRED
status_shadow LOCAL STRING

lrel1 Object
This object is associated with the Lrel_Table table in the database schema.

Attribute DB Field Data Type


lattr l_attr STRING 30
lpid l_persid STRING 30
lseq l_sql INTEGER
rattr r_attr STRING 30
rpid r_persid STRING 30
rseq r_sql INTEGER

macro Object
This object is associated with the Spell_Macro table in the database schema.

Attribute DB Field Data Type


atomic_conds atomic_conds BREL atomic_cond
owning_macro DYNAMIC
delete_flag del SREL actbool REQUIRED
description description STRING 80
last_mod_dt last_mod_dt DATE
lock_object lock_object INTEGER REQUIRED
ob_type ob_type SREL macro_prod_list
REQUIRED
persistent_id persid STRING

Objects and Attributes B–37


macro_type Object

Attribute DB Field Data Type


sym sym STRING 30 REQUIRED
type type SREL macro_type REQUIRED
usr_integer1 usr_integer1 INTEGER
usr_integer2 usr_integer2 INTEGER
usr_integer3 usr_integer3 INTEGER
usr_string1 fragment STRING
usr_string2 usr_string2 STRING
usr_string3 usr_string3 STRING
usr_string4 usr_string4 STRING

macro_type Object
This object is associated with the Spell_Macro_Type table in the database schema.

Attribute DB Field Data Type


arg_list arg_list STRING
code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
display_name display_name STRING
execute_script execute_script STRING
last_mod_dt last_mod_dt DATE
lock_object_flag lock_object_flag INTEGER
persistent_id persid STRING
sym sym STRING REQUIRED
tech_desc tech_desc STRING
validate_script validate_script STRING

B–38 Advanced Customization Guide


mfr Object

mfr Object
This object is associated with the Manufacturer table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
persistent_id persid STRING
sym sym STRING REQUIRED

mfrmod Object
This object is associated with the Manufacturer_Model table in the database
schema.

Attribute DB Field Data Type


alias alias INTEGER
delete_flag del SREL actbool REQUIRED
last_mod last_mod DATE
manufacturer mdl_mfr_id SREL mfr
model_name mdl_name STRING
persistent_id persid STRING
resource_class mdl_grc SREL grc
sym mdl_sym STRING REQUIRED

Objects and Attributes B–39


noturg Object

noturg Object
This object is associated with the Notification_Urgency table in the database
schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
enum enum INTEGER REQUIRED
sym sym STRING REQUIRED

nr Object
This object is associated with the Network_Resource table in the database
schema.

Attribute DB Field Data Type


acquire_date nr_aq_dt DATE
alarm_id nr_raw_id STRING
alias alias INTEGER
all_creq all_creq BREL cr affected_resource
DYNAMIC
all_open_creq all_open_creq QREL cr DYNAMIC
asset_count nr_asset_count INTEGER
asset_log asset_log BREL nr_com asset_id DYNAMIC
asset_num nr_asset_num STRING
assoc_cpex assoc_cpex BREL cpex ext_asset DYNAMIC
assoc_cr assoc_cr QREL cr DYNAMIC
assoc_swex assoc_swex BREL swex ext_asset DYNAMIC
assoc_tt assoc_tt QREL fail_t DYNAMIC
audit_userid LOCAL INTEGER
child_hier child_hier BREL hier parent DYNAMIC

B–40 Advanced Customization Guide


nr Object

Attribute DB Field Data Type


class nr_grc_id SREL grc WRITE_NEW
REQUIRED
contact_1 nr_nx_ref_1 SREL cnt
contact_2 nr_nx_ref_2 SREL cnt
contact_3 nr_nx_ref_3 SREL cnt
delete_flag del SREL actbool REQUIRED
description nr_desc STRING
expense_code nr_expense_code STRING
expiration_date nr_exp_dt DATE
family nr_family SREL nrf
financial_num nr_financial_id STRING
install_date nr_inst_dt DATE
is_selected LOCAL INTEGER
last_mod last_mod DATE
license_number nr_license_num STRING
loc_cabinet nr_cabinet STRING
loc_floor nr_floor STRING
loc_room nr_room STRING
loc_shelf nr_shelf STRING
loc_slot nr_slot STRING
location nr_loc_id SREL loc
mac_address nr_mac_addr STRING
manufacturer nr_mfr_id SREL mfr
model nr_mdl_id SREL mfrmod
name nr_prim_search_key STRING REQUIRED
name_type nr_prim_skt_id INTEGER
parent_hier parent_hier BREL hier child DYNAMIC
persistent_id persid STRING
priority nr_pr_id SREL pri
product_version nr_release STRING

Objects and Attributes B–41


nr_com Object

Attribute DB Field Data Type


repair_org nr_maint_org_id SREL org
resource_contact nr_prim_c_id SREL cnt
serial_number nr_serial_num STRING
service_org nr_org_id SREL org
service_type nr_service_type SREL sdsc
sla nr_sla_id SREL sla
smag_1 nr_nx_string1 STRING
smag_2 nr_nx_string2 STRING
smag_3 nr_nx_string3 STRING
smag_4 nr_nx_string4 STRING
smag_5 nr_nx_string5 STRING
smag_6 nr_nx_string6 STRING
status nr_rss_id SREL rss
supplier nr_prim_v_id SREL vp
system_name nr_system_name STRING
vendor_repair nr_maint_v_id SREL vp
vendor_restore nr_resp_v_id SREL vp
warranty_end nr_wrty_end_dt DATE
warranty_start nr_wrty_st_dt DATE

nr_com Object
This object is associated with the NR_Comment table in the database schema.

Attribute DB Field Data Type


asset_id com_par_id SREL nr WRITE_NEW
log com_comment STRING WRITE_NEW
log_date com_dt DATE WRITE_NEW
writer_name com_userid STRING WRITE_NEW

B–42 Advanced Customization Guide


nrf Object

nrf Object
This object is associated with the Resource_Family table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
enum enum INTEGER REQUIRED
extension_name extension_name SREL assetx_prod_list
persistent_id persid STRING
sym sym STRING REQUIRED

ntfl Object
This object is associated with the Notify_Object_Attr table in the database
schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description description STRING
last_mod_by last_mod_by SREL cnt
modified_date last_mod_dt DATE
object_attr object_attr STRING
object_type object_type SREL object_notify_prod_list
WRITE_NEW REQUIRED
persistent_id persid STRING
sym sym STRING REQUIRED
sym mdl_sym STRING REQUIRED

Objects and Attributes B–43


options Object

options Object
This object is associated with the Options table in the database schema.

Attribute DB Field Data Type


action action INTEGER
action_status action_status STRING
default_value default_value STRING
deinstall_script deinstall_script STRING
delete_flag del SREL actbool REQUIRED
description description STRING
error_msg error_msg STRING
install_script install_script STRING
last_mod_dt last_mod_dt DATE
persistent_id persid STRING
readme readme STRING
sym sym STRING REQUIRED
validation validation STRING
value value STRING
value_active value_active INTEGER

org Object
This object is associated with the Internal_Organization table in the database
schema.

Attribute DB Field Data Type


alias alias INTEGER
all_chg all_chg QREL chg DYNAMIC
all_creq all_creq QREL cr DYNAMIC
all_open_creq all_open_creq QREL cr DYNAMIC
alt_phone iorg_voice_phone STRING

B–44 Advanced Customization Guide


pcat Object

Attribute DB Field Data Type


billing_code iorg_billing_code STRING
contact iorg_c_id SREL cnt
delete_flag del SREL actbool REQUIRED
description iorg_desc STRING
email_addr iorg_email_addr STRING
fax_phone iorg_fax_phone STRING
last_mod last_mod DATE
location iorg_loc_id SREL loc
name iorg_name STRING REQUIRED
org_num iorg_num STRING
pemail_addr iorg_pemail_addr STRING
persistent_id persid STRING
phone_number iorg_public_phone STRING
service_type iorg_service_type SREL sdsc

pcat Object
This object is associated with the Prob_Category table in the database schema.

Attribute DB Field Data Type


assignee assignee SREL agt
delete_flag del SREL actbool REQUIRED
description description STRING
group group_id SREL grp
last_mod_dt last_mod_dt DATE
organization organization SREL org
persistent_id persid STRING
properties properties BREL cr_prptpl owning_area
DYNAMIC

Objects and Attributes B–45


pri Object

Attribute DB Field Data Type


service_type service_type SREL sdsc
survey survey SREL svy_tpl
sym sym STRING REQUIRED

pri Object
This object is associated with the Priority table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
enum enum INTEGER REQUIRED
service_type service_type SREL sdsc
sym sym STRING REQUIRED

prod_list Object
This object is associated with the Prod_List table in the database schema.

Attribute DB Field Data Type


group group STRING CONST
name name STRING CONST
sym sym STRING CONST

B–46 Advanced Customization Guide


prp Object

prp Object
This object is associated with the Property table in the database schema.

Attribute DB Field Data Type


description description STRING
label label STRING REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
object_id object_id SREL chg WRITE_NEW
REQUIRED
object_type object_type SREL workflow_prod_list
WRITE_NEW REQUIRED
persistent_id persid STRING
property property SREL prptpl REQUIRED
required required SREL bool REQUIRED
sample sample STRING
sequence sequence INTEGER REQUIRED
value value STRING

prptpl Object
This object is associated with the Property_Template table in the database
schema.

Attribute DB Field Data Type


code code STRING
delete_flag del SREL actbool REQUIRED
description description STRING
label label STRING REQUIRED
last_mod_by last_mod_by SREL cnt
modified_date last_mod_dt DATE

Objects and Attributes B–47


rescde Object

Attribute DB Field Data Type


object_attrname object_attrname STRING WRITE_NEW
REQUIRED
object_attrval object_attrval INTEGER WRITE_NEW
REQUIRED
object_type object_type SREL workflow_prod_list
WRITE_NEW REQUIRED
persistent_id persid STRING
required required INTEGER REQUIRED
required_sym LOCAL SREL bool
sample sample STRING
sequence sequence INTEGER REQUIRED

rescde Object
This object is associated with the Resolution_Code table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
sym sym STRING REQUIRED

rptm Object
This object is associated with the Rpt_Meth table in the database schema.

Attribute DB Field Data Type


default_out default_out STRING
default_page_length default_page_length STRING
delete_flag del SREL actbool REQUIRED
description description STRING
is_default is_default INTEGER

B–48 Advanced Customization Guide


rrf Object

Attribute DB Field Data Type


last_mod_dt last_mod_dt DATE
script script STRING
sym sym STRING REQUIRED

rrf Object
This object is associated with the Remote_Ref table in the database schema.

Attribute DB Field Data Type


arch_type arch_type STRING
code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
exec_str exec_str STRING
function_group function_group STRING
last_mod_dt last_mod_dt DATE
pcexec_str pcexec_str STRING
sym sym STRING REQUIRED

rss Object
This object is associated with the Resource_Service_Status table in the database
schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
persistent_id persid STRING
sym sym STRING REQUIRED

Objects and Attributes B–49


sdsc Object

sdsc Object
This object is associated with the Service_Desc table in the database schema.

Attribute DB Field Data Type


chg_sla_templates chg_sla_templates QREL slatpl DYNAMIC
code code STRING WRITE_NEW
REQUIRED
cr_sla_templates cr_sla_templates QREL slatpl DYNAMIC
delete_flag del SREL actbool REQUIRED
description description STRING
last_mod_dt last_mod_dt DATE
persistent_id persid STRING
rank rank INTEGER
schedule schedule SREL wrkshft
sym sym STRING WRITE_NEW
REQUIRED

seq Object
This object is associated with the Sequence_Control table in the database schema.

Attribute DB Field Data Type


code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
prefix prefix STRING
suffix suffix STRING
sym sym STRING REQUIRED

B–50 Advanced Customization Guide


sev Object

sev Object
This object is associated with the Severity table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
enum enum INTEGER REQUIRED
sym sym STRING REQUIRED

site Object
This object is associated with the Site table in the database schema.

Attribute DB Field Data Type


alias alias INTEGER
contact si_c_id SREL cnt
delete_flag del SREL actbool REQUIRED
description si_comment STRING
last_mod last_mod DATE
name si_name STRING
persistent_id persid STRING
sym si_site STRING REQUIRED

Objects and Attributes B–51


sla Object

sla Object
This object is associated with the Service_Level_Agreement table in the database
schema.

Attribute DB Field Data Type


alias alias INTEGER
bin sla_bin STRING
code sla_code STRING
delete_flag del SREL actbool REQUIRED
last_mod last_mod DATE
name sla_name STRING REQUIRED
notes sla_notes STRING
organization sla_org_id SREL org
response_time sla_resp_time DURATION
schedule sla_sched STRING
sla_lev0 sla_lev0 DURATION
sla_lev1 sla_lev1 DURATION
sla_lev2 sla_lev2 DURATION
sla_lev3 sla_lev3 DURATION
sla_lev4 sla_lev4 DURATION
sla_lev5 sla_lev5 DURATION
sla_lev6 sla_lev6 DURATION
sla_lev7 sla_lev7 DURATION
sla_lev8 sla_lev8 DURATION
sla_lev9 sla_lev9 DURATION
vendor sla_v_id SREL vp

B–52 Advanced Customization Guide


slatpl Object

slatpl Object
This object is associated with the SLA_Template table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
elapsed elapsed DURATION REQUIRED
event event SREL evt REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
object_type object_type SREL prod_list WRITE_NEW
REQUIRED
persistent_id persid STRING
service_type service_type SREL sdsc WRITE_NEW
REQUIRED
sym sym STRING REQUIRED

survey Object
This object is associated with the Survey table in the database schema.

Attribute DB Field Data Type


comment comment STRING
comment_label comment_label STRING
conclude_text conclude_text STRING
delete_flag del SREL actbool REQUIRED
description description STRING
include_comment include_comment INTEGER REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
object_id object_id INTEGER
object_type object_type STRING

Objects and Attributes B–53


svy_ans Object

Attribute DB Field Data Type


persistent_id persid STRING
questions questions QREL svy_ques DYNAMIC
sym sym STRING WRITE_NEW
REQUIRED

svy_ans Object
This object is associated with the Survey_Answer table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
owning_survey_que owning_survey_questi SREL svy_ques REQUIRED
stion on
persistent_id persid STRING
sequence sequence INTEGER REQUIRED
text txt STRING

svy_atpl Object
This object is associated with the Survey_Answer_Template table in the database
schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
owning_survey_que owning_survey_questi SREL svy_qtpl REQUIRED
stion on
persistent_id persid STRING

B–54 Advanced Customization Guide


svy_qtpl Object

Attribute DB Field Data Type


sequence sequence INTEGER REQUIRED
text txt STRING
delete_flag del SREL actbool REQUIRED

svy_qtpl Object
This object is associated with the Survey_Question_Template table in the
database schema.

Attribute DB Field Data Type


answer_templates answer_templates QREL svy_atpl DYNAMIC
delete_flag del SREL actbool REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
owning_survey owning_survey SREL svy_tpl REQUIRED
persistent_id persid STRING
sequence sequence INTEGER REQUIRED
text txt STRING

svy_ques Object
This object is associated with the Survey_Question table in the database schema.

Attribute DB Field Data Type


answers answers QREL svy_ans DYNAMIC
delete_flag del SREL actbool REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
owning_survey owning_survey SREL survey REQUIRED
persistent_id persid STRING

Objects and Attributes B–55


svy_tpl Object

Attribute DB Field Data Type


response response INTEGER
sequence sequence INTEGER REQUIRED
text txt STRING

svy_tpl Object
This object is associated with the Survey_Template table in the database schema.

Attribute DB Field Data Type


comment_label comment_label STRING
delete_flag del SREL actbool REQUIRED
include_comment include_comment INTEGER REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
persistent_id persid STRING
question_templates question_templates QREL svy_qtpl DYNAMIC

swex Object
This object is associated with the Software_Extension table in the database
schema.

Attribute DB Field Data Type


application_size swex_application_size STRING
disk_req swex_disk_req STRING
ext_asset ext_asset SREL nr
file_name swex_file_name STRING
media_type swex_media_type STRING
memory_req swex_memory_req STRING
os_req swex_os_req STRING

B–56 Advanced Customization Guide


tcat Object

Attribute DB Field Data Type


persistent_id persid STRING
platform swex_platform STRING
upgrade_info swex_upgrade_info STRING

tcat Object
This object is associated with the Trouble_Code table in the database schema.

Attribute DB Field Data Type


ROW_HITS LOCAL INTEGER
delete_flag del SREL actbool REQUIRED
description text STRING
name desc STRING
problem_desc prob_desc STRING
solution_approved sapproved SREL bool
sym sym STRING REQUIRED
ticket_template tc_tt_tpl SREL tttpl
tt_count tt_count INTEGER

tskstat Object
This object is associated with the Task_Status table in the database schema.

Attribute DB Field Data Type


allow_accumulate allow_accumulate INTEGER REQUIRED
allow_task_update allow_task_update INTEGER REQUIRED
code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING

Objects and Attributes B–57


tskty Object

Attribute DB Field Data Type


do_next_task do_next_task INTEGER REQUIRED
is_internal is_internal INTEGER REQUIRED
last_mod_by last_mod_by SREL cnt
modified_date last_mod_dt DATE
no_update_msg no_update_msg STRING
persistent_id persid STRING
sym sym STRING REQUIRED
task_complete task_complete INTEGER REQUIRED

tskty Object
This object is associated with the Task_Type table in the database schema.

Attribute DB Field Data Type


code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
last_mod_by last_mod_by SREL cnt
modified_date last_mod_dt DATE
persistent_id persid STRING
sym sym STRING REQUIRED

B–58 Advanced Customization Guide


tspan Object

tspan Object
This object is associated with the Timespan table in the database schema.

Attribute DB Field Data Type


code code STRING WRITE_NEW
REQUIRED
desc desc STRING 400
end_day end_day STRING
end_hour end_hour STRING
end_minute end_minute STRING
end_month end_month STRING
end_year end_year STRING
start_day start_day STRING
start_hour start_hour STRING
start_minute start_minute STRING
start_month start_month STRING
start_year start_year STRING
sym sym STRING WRITE_NEW
REQUIRED
trigger_day trigger_day STRING
trigger_hour trigger_hour STRING
trigger_minute trigger_minute STRING
trigger_month trigger_month STRING
trigger_year trigger_year STRING

Objects and Attributes B–59


tt Object

tt Object
This object is associated with the Trouble_Ticket table in the database schema.

Attribute DB Field Data Type


action_list action_list BREL tt_act tt_id DYNAMIC
assignee tt_assignee_cid SREL cnt
call_solution tt_csol SREL crsol
config tt_config STRING
delete_flag del SREL actbool REQUIRED
details tt_detail STRING
esc_level tt_esc_level SREL tt_esclvl
fail_nr fail_nr BREL fail_t fail_tt_id DYNAMIC
last_mod_date last_mod DATE
log log BREL tt_com tt DYNAMIC
modifier tt_updater SREL cnt
org tt_iorg_id SREL org
originator tt_originator SREL cnt
priority tt_priority SREL pri
protocol tt_protocol STRING
ref1 tt_nx_ref_1 SREL cnt
ref2 tt_nx_ref_2 SREL cnt
ref3 tt_nx_ref_3 SREL cnt
ref4 tt_restore_dt DATE
reference tt_reference_number STRING
scope tt_scope STRING
severity tt_severity SREL sev
start_date tt_start_dt DATE
status tt_status SREL tt_stat
str1 tt_nx_string1 STRING
str2 tt_nx_string2 STRING
str3 tt_nx_string3 STRING

B–60 Advanced Customization Guide


tt_act Object

Attribute DB Field Data Type


str4 tt_nx_string4 STRING
summary tt_desc STRING
ticket_num tt_num INTEGER
trouble_code tt_trcode SREL tcat
urgency tt_urgency SREL urg

tt_act Object
This object is associated with the Action table in the database schema.

Attribute DB Field Data Type


ack_date a_ack_dt DATE
act_end_date a_finish_dt DATE
act_start_date a_start_dt DATE
action_num a_num INTEGER
aff_contact a_client_c_id SREL cnt
aff_contact_ph a_client_phn STRING
aff_resource a_fail_id SREL nr
asg_date a_assign_dt DATE
asg_vendor a_v_id SREL vp
assignee a_by_c_id SREL cnt
charge_back a_charge_back INTEGER
delete_flag del SREL actbool REQUIRED
detail_desc a_how_to STRING
entry_date a_dt DATE
expense_code a_expense_code STRING
last_mod_date last_mod DATE
location a_loc_id SREL loc
log log BREL act_com act DYNAMIC
org a_org_id SREL org

Objects and Attributes B–61


tt_com Object

Attribute DB Field Data Type


ref1 a_nx_ref_1 SREL cnt
ref2 a_nx_ref_2 SREL cnt
ref3 a_nx_ref_3 SREL cnt
results a_results STRING
sch_end_date a_sched_finish_dt DATE
sch_start_date a_sched_start_dt DATE
status a_status_id SREL act_stat
str1 a_nx_string1 STRING
str2 a_nx_string2 STRING
str3 a_nx_string3 STRING
str4 a_nx_string4 STRING
summary a_action STRING
tt_id a_tt_id SREL tt
writer a_wrtr_c_id SREL cnt

tt_com Object
This object is associated with the TT_Comment table in the database schema.

Attribute DB Field Data Type


comment com_comment STRING
timestamp com_dt DATE
tt com_par_id SREL tt
userid com_userid STRING

B–62 Advanced Customization Guide


tt_esclvl Object

tt_esclvl Object
This object is associated with the Escalation_Level table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
enum enum INTEGER REQUIRED
name desc STRING
sym sym STRING REQUIRED

tt_stat Object
This object is associated with the Ticket_Status table in the database schema.

Attribute DB Field Data Type


closed_flag ts_closed INTEGER
delete_flag del SREL actbool REQUIRED
description desc STRING REQUIRED
escalate_flag ts_escalatable INTEGER
final_flag ts_final INTEGER
fixed_flag ts_fixed INTEGER
init_flag ts_init INTEGER
inwork_flag ts_inwork INTEGER
open_flag ts_open INTEGER
restrict_flag ts_restrict INTEGER
scoreboard ts_scoreboard INTEGER
sym sym STRING REQUIRED

Objects and Attributes B–63


tttpl Object

tttpl Object
This object is associated with the TT_Template table in the database schema.

Attribute DB Field Data Type


alias alias INTEGER
delete_flag del INTEGER
description ttt_desc STRING
name ttt_name STRING REQUIRED

tz Object
This object is associated with the Timezone table in the database schema.

Attribute DB Field Data Type


code code STRING WRITE_NEW
REQUIRED
delete_flag del SREL actbool REQUIRED
description description STRING
gmt_delta gmt_delta INTEGER
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
persistent_id persid STRING
start_day start_day INTEGER
sym sym STRING REQUIRED

B–64 Advanced Customization Guide


urg Object

urg Object
This object is associated with the Urgency table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
enum enum INTEGER REQUIRED
sym sym STRING REQUIRED

usq Object
This object is associated with the User_Query table in the database schema.

Attribute DB Field Data Type


analyst analyst SREL cnt REQUIRED
expanded int
factory factory STRING
label label STRING REQUIRED
parent parent SREL usq
persistent_id persid STRING
query query SREL crsq
query_set query_set INTEGER
sequence sequence INTEGER REQUIRED

Objects and Attributes B–65


vp Object

vp Object
This object is associated with the Vendor_Provider table in the database schema.

Attribute DB Field Data Type


alias alias INTEGER
contact v_prim_c_id SREL cnt
delete_flag del SREL actbool REQUIRED
last_mod last_mod DATE
name v_name STRING REQUIRED
other_name v_aka STRING
persistent_id persid STRING
type v_vpt_id SREL vpt

vpt Object
This object is associated with the Vendor_Provider_Type table in the database
schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description desc STRING
persistent_id persid STRING
sym sym STRING REQUIRED

B–66 Advanced Customization Guide


wf Object

wf Object
This object is associated with the Workflow_Task table in the database schema.

Attribute DB Field Data Type


actual_duration actual_duration DURATION
actual_duration_f LOCAL INTEGER
asset asset SREL nr
asset_f LOCAL INTEGER
assignee assignee SREL cnt
assignee_f LOCAL INTEGER
attached_events attached_events QREL atev DYNAMIC
audit_userid LOCAL INTEGER
audit_userid_f LOCAL INTEGER
behavior_templates behavior_templates QREL bhvtpl DYNAMIC
chg object_id SREL chg WRITE_NEW
REQUIRED
completion_date completion_date DATE
completion_date_f LOCAL INTEGER
cost cost INTEGER
cost_f LOCAL INTEGER
creator creator SREL cnt WRITE_NEW
creator_f LOCAL INTEGER
date_created date_created DATE WRITE_NEW
date_created_f LOCAL INTEGER
delete_flag del SREL actbool REQUIRED
description description STRING
description_f LOCAL INTEGER
done_by done_by SREL cnt
done_by_f LOCAL INTEGER
est_completion_date est_completion_date DATE
est_completion_date_ LOCAL INTEGER
f

Objects and Attributes B–67


wf Object

Attribute DB Field Data Type


est_cost est_cost INTEGER
est_cost_f LOCAL INTEGER
est_duration est_duration DURATION
est_duration_f LOCAL INTEGER
fldchange_log LOCAL STRING
fldchange_log_f LOCAL INTEGER
group_task group_task INTEGER REQUIRED
last_mod_by last_mod_by SREL cnt
last_mod_dt last_mod_dt DATE
object_type object_type SREL workflow_prod_list
WRITE_NEW REQUIRED
persistent_id persid STRING
sequence sequence INTEGER REQUIRED
sequence_f LOCAL INTEGER
smag smag STRING
start_date start_date DATE
start_date_f LOCAL INTEGER
status status SREL tskstat REQUIRED
status_f LOCAL INTEGER
task task SREL tskty WRITE_NEW
REQUIRED
web_url LOCAL DERIVED
wf_template wf_template SREL wftpl WRITE_NEW

B–68 Advanced Customization Guide


wftpl Object

wftpl Object
This object is associated with the Workflow_Task_Template table in the database
schema.

Attribute DB Field Data Type


add_behavior_persids LOCAL STRING
assignee assignee SREL agt
behavior behavior QREL bhvtpl DYNAMIC
delete_flag del SREL actbool REQUIRED
deleteable deleteable INTEGER REQUIRED
description description STRING
est_cost est_cost INTEGER
est_duration est_duration DURATION
last_mod_by last_mod_by SREL cnt
modified_date last_mod_dt DATE
object_attrname object_attrname STRING WRITE_NEW
REQUIRED
object_attrval object_attrval INTEGER WRITE_NEW
REQUIRED
object_type object_type SREL workflow_prod_list
WRITE_NEW REQUIRED
persistent_id persid STRING
sequence sequence INTEGER REQUIRED
task task SREL tskty REQUIRED

Objects and Attributes B–69


wrkshft Object

wrkshft Object
This object is associated with the Bop_Workshift table in the database schema.

Attribute DB Field Data Type


delete_flag del SREL actbool REQUIRED
description description STRING 80
last_mod_dt last_mod_dt DATE
persistent_id persid STRING
sched sched STRING 1000
sym sym STRING 30 REQUIRED

B–70 Advanced Customization Guide


Table and Object Cross-
Appendix

C References

This appendix provides several tables that allow you to easily cross-reference
table names, SQL names, and object names. See the appendix “Data Element
Dictionary” for a complete definition of the tables in the schema. See the
appendix “Objects and Attributes” for the object definitions.

Table to SQL Name and Object


This table provides a cross-reference of each table in the database schema to its
corresponding SQL and object names:

Table SQL Name (AKA) Object


AD_Comment ad_com
A_Comment actn_com act_com
Act_Log act_log alg
Act_Tpl act_tpl
Act_Tpl_Ent act_te
Act_Type act_type aty
Act_Type_Assoc atyp_asc act_type_assoc
Action actn tt_act
Action_Delay actn_dl
Action_Delay_Code dlycde
Action_Status actnst act_stat
Active_Boolean_Table actbool actbool
Active_Reverse_Boolean_Table actrbool actrbool
Animator anima ANI
Asset_Assignment hier hier

Table and Object Cross-References C–1


Table to SQL Name and Object

Table SQL Name (AKA) Object


Atomic_Condition atomic_cond atomic_cond
Attached_Events att_evt atev
Attachment attmnt attmnt
Attachment_Lrel attmnt_lrel attmnt_lrel
Attribute_Name atn
Audit_Log audit_log audlog
Behavior_Template bhvtpl bhvtpl
Boolean_Table bool_tab bool
Bop_Workshift bpwshft wrkshft
CL_Comment cl_com
CT_Comment ctct_com
Call_Req call_req cr
Call_Req_Type crt crt
Call_Solution crsol crsol
Cause cause
Change_Act_Log chgalg chgalg
Change_Category chgcat chgcat
Change_Request chg chg
Change_Status chgstat chgstat
Close_Entry cl_entry close_entry
Column_Name cn
Computer_Extension cpex cpex
Contact ctct cnt
Contact_Method ct_mth cmth
Contact_Type ct_ty ctp
Controlled_Table ctab ctab
Cr_Call_Timers crctmr ctimer
Cr_Status cr_stat crs
Cr_Stored_Queries crsq crsq
D_PAINTER D_PAINTER

C–2 Advanced Customization Guide


Table to SQL Name and Object

Table SQL Name (AKA) Object


Delegation_Server dlgtsrv dlgsrvr
Delegation_Status dlgtsta
Delegation_Transport dlgtxpt
Document_Repository doc_rep doc_rep
Domain dmn dmn
Domain_Constraint dcon dcon
Domain_Constraint_Type dcon_typ dcon_typ
Escalation_Control esc_con
Escalation_Entry_Log esc_elog
Escalation_Level esclev tt_esclvl
Event_Delay evt_dly evtdly
Event_Delay_Type evtdlytp evtdlytp
Events evt evt
Expense_Code_Opt exp_opt
Failure failure fail_t
GRC_Comment gr_com
General_Resource_Class gen_res grc
Geo_Coord_Type geocot
Group_Member grpmem grpmem
IR_Order_By irod
IR_Stored_wc irsd
Impact impact imp
Initial_Report in_rpt ir
Interface interface intfc
Internal_Organization int_org org
Key_Control kc
Knowledge_Keywords km_kword kwrd
Knowledge_Lrel_Table km_lrel kmlrel
Location loc loc
Location_Type loc_ty

Table and Object Cross-References C–3


Table to SQL Name and Object

Table SQL Name (AKA) Object


Lrel_Table lrel lrel1
Manufacturer man mfr
Manufacturer_Model man_mod mfrmod
Mdl_Comment mdl_com
NR_Comment nr_com nr_com
Network_Resource net_res nr
Note_Board cnote cnote
Notification_Urgency noturg noturg
Notify_Log_Header not_log lr
Notify_Msg not_msg
Notify_Object_Attr ntfl ntfl
Notify_Rule not_rle
Options options options
Priority pri pri
Prob_Category prob_ctg pcat
Property prp prp
Property_Template prptpl prptpl
Recipient_Type notrty
Remote_Ref rem_ref rrf
Req_Property cr_prp cr_prp
Req_Property_Template cr_prptpl cr_prptpl
Resolution_Code rescde rescde
Resource_Family resfam nrf
Resource_Service_Status ressst rss
Reverse_Boolean_Table rbooltab
Rpt_Meth rptmth rptm
SLA_Progress_Level splev
SLA_Progress_Notification_Log sla_pnl
SLA_Template slatpl slatpl
SQL_Script sql_tab

C–4 Advanced Customization Guide


Table to SQL Name and Object

Table SQL Name (AKA) Object


Sequence_Control seqctl seq
Service_Desc srv_desc sdsc
Service_Level_Agreement sla sla
Severity sevrty sev
Site site site
Software_Extension swex swex
Spell_Macro splmac macro
Spell_Macro_Type splmactp macro_type
Survey survey survey
Survey_Answer survey_answer svy_ans
Survey_Answer_Template survey_atpl svy_atpl
Survey_Question survey_question svy_ques
Survey_Question_Template survey_qtpl svy_qtpl
Survey_Template survey_tpl svy_tpl
System_Defaults sys_def
TT_Comment tt_com tt_com
TT_Order_By ttod
TT_Stored_wc ttsd
TT_Template tttpl tttpl
Table_Name tn
Task_Status tskstat tskstat
Task_Type tskty tskty
Ticket_Status ttstat tt_stat
Timespan tspan tspan
Timezone tz tz
Transition_Points nottrn
Trouble_Code tr_cde tcat
Trouble_Ticket tt tt
Urgency urgncy urg
User_Query usq usq

Table and Object Cross-References C–5


SQL Name to Table and Object

Table SQL Name (AKA) Object


V_Comment v_com
Vendor_Provider vnd_prov vp
Vendor_Provider_Type vndpty vpt
Workflow_Task wf wf
Workflow_Task_Template wftpl wftpl

SQL Name to Table and Object


This table provides a cross-reference of the SQL name of each table in the
database schema to its corresponding table and object names:

SQL Name (AKA) Table Object


act_log Act_Log alg
act_te Act_Tpl_Ent
act_tpl Act_Tpl
act_type Act_Type aty
actbool Active_Boolean_Table actbool
actn Action tt_act
actn_com A_Comment act_com
actn_dl Action_Delay
actnst Action_Status act_stat
actrbool Active_Reverse_Boolean_Table actrbool
ad_com AD_Comment
anima Animator ANI
atn Attribute_Name
atomic_cond Atomic_Condition atomic_cond
att_evt Attached_Events atev
attmnt Attachment attmnt
attmnt_lrel Attachment_Lrel attmnt_lrel
atyp_asc Act_Type_Assoc act_type_assoc

C–6 Advanced Customization Guide


SQL Name to Table and Object

SQL Name (AKA) Table Object


audit_log Audit_Log audlog
bhvtpl Behavior_Template bhvtpl
bool_tab Boolean_Table bool
bpwshft Bop_Workshift wrkshft
call_req Call_Req cr
cause Cause
chg Change_Request chg
chgalg Change_Act_Log chgalg
chgcat Change_Category chgcat
chgstat Change_Status chgstat
cl_com CL_Comment
cl_entry Close_Entry close_entry
cn Column_Name
cnote Note_Board cnote
cpex Computer_Extension cpex
cr_prp Req_Property cr_prp
cr_prptpl Req_Property_Template cr_prptpl
cr_stat Cr_Status crs
crctmr Cr_Call_Timers ctimer
crsol Call_Solution crsol
crsq Cr_Stored_Queries crsq
crt Call_Req_Type crt
ct_mth Contact_Method cmth
ct_ty Contact_Type ctp
ctab Controlled_Table ctab
ctct Contact cnt
ctct_com CT_Comment
D_PAINTER D_PAINTER
dcon Domain_Constraint dcon
dcon_typ Domain_Constraint_Type dcon_typ

Table and Object Cross-References C–7


SQL Name to Table and Object

SQL Name (AKA) Table Object


dlgtsrv Delegation_Server dlgsrvr
dlgtsta Delegation_Status
dlgtxpt Delegation_Transport
dlycde Action_Delay_Code
dmn Domain dmn
doc_rep Document_Repository doc_rep
esc_con Escalation_Control
esc_elog Escalation_Entry_Log
esclev Escalation_Level tt_esclvl
evt Events evt
evt_dly Event_Delay evtdly
evtdlytp Event_Delay_Type evtdlytp
exp_opt Expense_Code_Opt
failure Failure fail_t
gen_res General_Resource_Class grc
geocot Geo_Coord_Type
gr_com GRC_Comment
grpmem Group_Member grpmem
hier Asset_Assignment hier
impact Impact imp
in_rpt Initial_Report ir
int_org Internal_Organization org
interface Interface intfc
irod IR_Order_By
irsd IR_Stored_wc
kc Key_Control
km_kword Knowledge_Keywords kwrd
km_lrel Knowledge_Lrel_Table kmlrel
loc Location loc
loc_ty Location_Type

C–8 Advanced Customization Guide


SQL Name to Table and Object

SQL Name (AKA) Table Object


lrel Lrel_Table lrel1
man Manufacturer mfr
man_mod Manufacturer_Model mfrmod
mdl_com Mdl_Comment
net_res Network_Resource nr
not_log Notify_Log_Header lr
not_msg Notify_Msg
not_rle Notify_Rule
notrty Recipient_Type
nottrn Transition_Points
noturg Notification_Urgency noturg
nr_com NR_Comment nr_com
ntfl Notify_Object_Attr ntfl
options Options options
pri Priority pri
prob_ctg Prob_Category pcat
prp Property prp
prptpl Property_Template prptpl
rbooltab Reverse_Boolean_Table
rem_ref Remote_Ref rrf
rescde Resolution_Code rescde
resfam Resource_Family nrf
ressst Resource_Service_Status rss
rptmth Rpt_Meth rptm
seqctl Sequence_Control seq
sevrty Severity sev
site Site site
sla Service_Level_Agreement sla
sla_pnl SLA_Progress_Notification_Log
slatpl SLA_Template slatpl

Table and Object Cross-References C–9


SQL Name to Table and Object

SQL Name (AKA) Table Object


splev SLA_Progress_Level
splmac Spell_Macro macro
splmactp Spell_Macro_Type macro_type
sql_tab SQL_Script
srv_desc Service_Desc sdsc
survey Survey survey
survey_answer Survey_Answer svy_ans
survey_atpl Survey_Answer_Template svy_atpl
survey_qtpl Survey_Question_Template svy_qtpl
survey_question Survey_Question svy_ques
survey_tpl Survey_Template svy_tpl
swex Software_Extension swex
sys_def System_Defaults
tn Table_Name
tr_cde Trouble_Code tcat
tskstat Task_Status tskstat
tskty Task_Type tskty
tspan Timespan tspan
tt Trouble_Ticket tt
tt_com TT_Comment tt_com
ttod TT_Order_By
ttsd TT_Stored_wc
ttstat Ticket_Status tt_stat
tttpl TT_Template tttpl
tz Timezone tz
urgncy Urgency urg
usq User_Query usq
v_com V_Comment
vnd_prov Vendor_Provider vp

C–10 Advanced Customization Guide


Object to Table and SQL Name

SQL Name (AKA) Table Object


vndpty Vendor_Provider_Type vpt
wf Workflow_Task wf
wftpl Workflow_Task_Template wftpl

Object to Table and SQL Name


This table provides a cross-reference of each object to its corresponding table and
SQL name in the database schema:

Object Table SQL Name (AKA)


AD_Comment ad_com
Act_Tpl act_tpl
Act_Tpl_Ent act_te
Action_Delay actn_dl
Action_Delay_Code dlycde
Attribute_Name atn
CL_Comment cl_com
CT_Comment ctct_com
Cause cause
Column_Name cn
D_PAINTER D_PAINTER
Delegation_Status dlgtsta
Delegation_Transport dlgtxpt
Escalation_Control esc_con
Escalation_Entry_Log esc_elog
Expense_Code_Opt exp_opt
GRC_Comment gr_com
Geo_Coord_Type geocot
IR_Order_By irod
IR_Stored_wc irsd

Table and Object Cross-References C–11


Object to Table and SQL Name

Object Table SQL Name (AKA)


Key_Control kc
Location_Type loc_ty
Mdl_Comment mdl_com
Notify_Msg not_msg
Notify_Rule not_rle
Recipient_Type notrty
Reverse_Boolean_Table rbooltab
SLA_Progress_Level splev
SLA_Progress_Notification_Log sla_pnl
SQL_Script sql_tab
System_Defaults sys_def
TT_Order_By ttod
TT_Stored_wc ttsd
Table_Name tn
Transition_Points nottrn
V_Comment v_com
act_com A_Comment actn_com
act_stat Action_Status actnst
act_type_assoc Act_Type_Assoc atyp_asc
actbool Active_Boolean_Table actbool
actrbool Active_Reverse_Boolean_Table actrbool
alg Act_Log act_log
ANI Animator anima
atev Attached_Events att_evt
atomic_cond Atomic_Condition atomic_cond
attmnt Attachment attmnt
attmnt_lrel Attachment_Lrel attmnt_lrel
aty Act_Type act_type
audlog Audit_Log audit_log
bhvtpl Behavior_Template bhvtpl

C–12 Advanced Customization Guide


Object to Table and SQL Name

Object Table SQL Name (AKA)


bool Boolean_Table bool_tab
chg Change_Request chg
chgalg Change_Act_Log chgalg
chgcat Change_Category chgcat
chgstat Change_Status chgstat
close_entry Close_Entry cl_entry
cmth Contact_Method ct_mth
cnote Note_Board cnote
cnt Contact ctct
cpex Computer_Extension cpex
cr Call_Req call_req
cr_prp Req_Property cr_prp
cr_prptpl Req_Property_Template cr_prptpl
crs Cr_Status cr_stat
crsol Call_Solution crsol
crsq Cr_Stored_Queries crsq
crt Call_Req_Type crt
ctab Controlled_Table ctab
ctimer Cr_Call_Timers crctmr
ctp Contact_Type ct_ty
dcon Domain_Constraint dcon
dcon_typ Domain_Constraint_Type dcon_typ
dlgsrvr Delegation_Server dlgtsrv
dmn Domain dmn
doc_rep Document_Repository doc_rep
evt Events evt
evtdly Event_Delay evt_dly
evtdlytp Event_Delay_Type evtdlytp
fail_t Failure failure
grc General_Resource_Class gen_res

Table and Object Cross-References C–13


Object to Table and SQL Name

Object Table SQL Name (AKA)


grpmem Group_Member grpmem
hier Asset_Assignment hier
imp Impact impact
intfc Interface interface
ir Initial_Report in_rpt
kmlrel Knowledge_Lrel_Table km_lrel
kwrd Knowledge_Keywords km_kword
loc Location loc
lr Notify_Log_Header not_log
lrel1 Lrel_Table lrel
macro Spell_Macro splmac
macro_type Spell_Macro_Type splmactp
mfr Manufacturer man
mfrmod Manufacturer_Model man_mod
noturg Notification_Urgency noturg
nr Network_Resource net_res
nr_com NR_Comment nr_com
nrf Resource_Family resfam
ntfl Notify_Object_Attr ntfl
options Options options
org Internal_Organization int_org
pcat Prob_Category prob_ctg
pri Priority pri
prp Property prp
prptpl Property_Template prptpl
rescde Resolution_Code rescde
rptm Rpt_Meth rptmth
rrf Remote_Ref rem_ref
rss Resource_Service_Status ressst
sdsc Service_Desc srv_desc

C–14 Advanced Customization Guide


Object to Table and SQL Name

Object Table SQL Name (AKA)


seq Sequence_Control seqctl
sev Severity sevrty
site Site site
sla Service_Level_Agreement sla
slatpl SLA_Template slatpl
survey Survey survey
svy_ans Survey_Answer survey_answer
svy_atpl Survey_Answer_Template survey_atpl
svy_qtpl Survey_Question_Template survey_qtpl
svy_ques Survey_Question survey_question
svy_tpl Survey_Template survey_tpl
swex Software_Extension swex
tcat Trouble_Code tr_cde
tskstat Task_Status tskstat
tskty Task_Type tskty
tspan Timespan tspan
tt Trouble_Ticket tt
tt_act Action actn
tt_com TT_Comment tt_com
tt_esclvl Escalation_Level esclev
tt_stat Ticket_Status ttstat
tttpl TT_Template tttpl
tz Timezone tz
urg Urgency urgncy
usq User_Query usq
vp Vendor_Provider vnd_prov
vpt Vendor_Provider_Type vndpty
wf Workflow_Task wf
wftpl Workflow_Task_Template wftpl
wrkshft Bop_Workshift bpwshft

Table and Object Cross-References C–15


Appendix

Schema Files Syntax


D
The Unicenter Service Desk database schema is defined in two .sch files in the
$NX_ROOT/site (UNIX) or installation-directory/site (Windows) directory:
■ Tables and columns (fields) are defined in TABLE statements in schema.sch
■ Table indexes are defined in TABLE_INFO statements in index.sch

Each of these types of statements is described in this appendix. If necessary, these


statements can be modified or defined to customize the schema to meet your
needs.

Note: Do not modify any .sch files in the $NX_ROOT/site (UNIX) or


installation-directory/site (Windows) directory. If you want to modify them, you
must copy them to the $NX_ROOT/site/mods (UNIX) or
installation-directory/site/mods (Windows) directory. This is the only way to
preserve your modifications when you upgrade to a new release.

TABLE Statement
Defines the logical tables in the Unicenter Service Desk database schema and the
logical columns (fields) in those tables. These logical tables and columns are then
mapped to the physical tables and columns used by your database management
system in a mapping statement that follows the TABLE statement.

Note: If you define a new table, you must define a mapping statement for that
table. This is illustrated at the end of this appendix (see Mapping Statement),
followed by an example that combines the TABLE, TABLE_INFO, and mapping
statements.

Syntax
TABLE table_name {field value_type field_attributes; [...]}

Schema Files Syntax D–1


TABLE Statement

Arguments

TABLE Introduces the TABLE statement. Must be uppercase. You must have one TABLE
statement for each logical table in the schema.

table_name The name of the database table, for example, Call_Req. If adding a database
table, you can specify any name beginning with a lowercase letter z. (This avoids
possible conflict with existing and future Unicenter Service Desk table names.) If
changing an existing table, find the table in schema.sch and use the same name.

field The name of a logical column in the table, for example, id or desc. You must
identify each column by name. If adding a table or adding a column to an
existing table, you can specify any name beginning with a lowercase letter z;
however, field names must not end with the characters “_f.” (This avoids
possible conflict with existing and future Unicenter Service Desk column names.)
If changing an existing column, find the column in schema.sch and use the same
name.

value_type The field’s data type. Valid values are:

Value Description
DURATION A period of time, measured in seconds.
INTEGER A 32-bit number.
LOCAL_TIME The number of seconds since January 1, 1970. Unicenter
Service Desk automatically reformats this data type to the
designated date format, for example mm/dd/yy hh:mm:ss.
STRING nn A string that is nn characters long.

You can also use one of these alternate data types. These are macros that have
been defined to Unicenter Service Desk for general use:

Data Type Equivalent


nn NOT_NULL
uniq UNIQUE NOT_NULL
ADDR_LINE STRING 30
EMAILADDR STRING 120
ENT_DESC STRING 40
ENT_NAME STRING 30
OSI_NAME STRING 80
OSI_TYPE_STRING STRING 60

D–2 Advanced Customization Guide


TABLE Statement

Data Type Equivalent


USERID STRING 20
PHONENUM STRING 32
SYMBOL STRING 12
HIER_SYM STRING 60
LONG_SYM STRING 30
COMMENT STRING 1000
LONG_STR STRING 500
LONG_DESC STRING 240
DATE_TIME DATIME
BOOL INTEGER

field_attributes A description of the field. Valid values are:

Value Description
KEY Identifies this field as the primary key to be used for
identifying records to be updated with pdm_load. This is
used if the default primary key, id, is not specified. Must
be specified if the field is the primary key in the table.
NOT_NULL Indicates that the field must contain a value. Must be
specified if the field is the primary key in the table.
Optional if the field is not the primary key.
REF other_table_name Indicates that the field references another table. Optional
whether the field is the primary key or not.
S_KEY Optionally identifies this field as the secondary key to be
used for identifying records to be updated with pdm_load.
UNIQUE Indicates that the values in the field must be unique. Must
be specified if the field is the primary key in the table.
Optional if the field is not the primary key.

Schema Files Syntax D–3


TABLE_INFO Statement

Examples

This TABLE statement in the database schema defines contact types. The macro
nn indicates that a value is required in the del field. The macro uniq indicates
that values are required and must be unique:
TABLE Contact_Type {
id INTEGER uniq KEY; // key id
del INTEGER nn; // 0=present,1=gone
sym HIER_SYM uniq S_KEY; // type symbol
desc ENT_DESC; // non-OSI specified column
}

This modified TABLE statement increases the number of characters in the


c_expense field in the Contact table from 12 (which was defined with the
SYMBOL macro) to 30:
TABLE Contact {c_expense STRING 30;}

This modified TABLE statement makes the Priority field on the Request Detail
window required:
TABLE Call_Req {priority INTEGER NOT_NULL;}

This new TABLE statement adds a resolution code field to the Call_Req table.
The contents of the field is numeric and references the Resolution_Code table.
This reference allows users to double-click the Resolution Code field on the
Request Detail window to display the values in the Resolution_Code table:
TABLE Call_Req {call_req_zrc INTEGER REF Resolution_Code;}

TABLE_INFO Statement
Tells your database management system how to store and index data in the
logical tables. The extent to which these instructions are followed depends on the
database management system. If no instructions are provided, the database
management system follows its own storage and indexing instructions.

Syntax
TABLE_INFO table_name {
[STORAGE storage_mtd Field ;]
[INDEX ndx_props field1 [field2 ...];] ...}

Arguments

TABLE_INFO Introduces the TABLE_INFO statement. Must be uppercase. The TABLE_INFO


statement is optional, but if specified, you can have only one TABLE_INFO for
each TABLE statement, and it must follow the TABLE statement.

D–4 Advanced Customization Guide


TABLE_INFO Statement

table_name The name of the database table in the TABLE statement.

STORAGE storage_mtd Identifies the storage method. Valid values are listed below, but note that some
database management systems ignore these values:

Value Description
BTREE Indicates to use the balanced tree storage method.
HASH Indicates to use the hash table storage method. This is
valid only if the field is the primary key.
HEAP Indicates to use the heap storage method.

field Identifies the column that is to be stored according to the specified storage
method (STORAGE storage_mtd). Must be specified the same way as the name of
the column in the TABLE statement.

INDEX ndx_props Identifies one or more properties for an index that consists of the fields specified.
Valid values are:

Value Description
SORT ASCENDING Indicates whether to sort the data in the fields in ascending
| DESCENDING or descending order. Data is sorted in ascending order by
default; therefore, only SORT DESCENDING need be
specified.
PRIMARY Indicates to use this index as the default sort order for the
table.
CLUSTER Identifies this as a clustering index.
UNIQUE Indicates that values in the index must be unique.

field1 [field2 . . .] Identifies the column or columns that are to be indexed according to the specified
index properties (INDEX ndx_props). Must be specified the same way as the name
of the columns in the TABLE statement.

Examples

This TABLE_INFO statement instructs the database management system to use a


hash table to store values in the id field in the Contact_Type table, and to sort the
table in descending order according to the values in the sym field. It also
indicates that values must be unique:
TABLE_INFO Contact_Type {
STORAGE HASH id;
INDEX SORT DESCENDING PRIMARY UNIQUE sym;
}

Schema Files Syntax D–5


Mapping Statement

Mapping Statement
Defines the correspondence between the logical tables and columns in the
Unicenter Service Desk database schema and the physical tables and columns
used by your database management system. This statement follows each TABLE
statement in schema.sch. You must define it when you define a new table.

Syntax
p1 logical_table_name -> CURR_PROV physical_table_name
[{logical_field -> physical_field ...] ;
[}]

Arguments

p1 Introduces the mapping statement. Must be specified as p1.

logical_table_name The name of the database table in the TABLE statement, for example,
Manufacturer.

CURR_PROV A required keyword.

physical_table_name The name of the table used by your database management system, for example,
man. Short names improve performance and are required by some database
management systems.

logical_field The name of the column in the Unicenter Service Desk database schema, for
example, desc. Must be the same as field in the TABLE statement. Omit this when
the logical columns and physical columns have identical names. When omitted,
the semicolon follows physical_table_name.

physical_field The name of the column used by your database management system, for
example, nx_desc. Omit this when the logical columns and physical columns
have identical names. When omitted, the semicolon follows physical_table_name.

D–6 Advanced Customization Guide


Mapping Statement

Examples

This example illustrates how TABLE, mapping (p1), and TABLE_INFO


statements define a Manufacturer table:
TABLE Manufacturer {
id INTEGER uniq KEY; // key id
del INTEGER nn; // 0=present,1=gone
sym HIER_SYM uniq S_KEY; // manufacturer name
desc ENT_DESC; // manufacturer description
}

p1 Manufacturer -> CURR_PROV man // maps logical table "Manufacturer"


{ // to physical table "man"
desc -> nx_desc; // maps logical column "desc"
} // to physical column "nx_desc"

TABLE_INFO Manufacturer {
STORAGE HASH id;
INDEX SORT ASCENDING PRIMARY UNIQUE sym;
}

Schema Files Syntax D–7


Appendix

Object Definition Syntax


E
Many of the components of Unicenter Service Desk consist of visual resource
business objects. These objects are defined in a metalanguage named Majic. You
can use Majic statements to create new objects and modify existing objects, thus
customizing these visual resource objects to meet your needs.

Directories
The Majic files are organized in two directories:

Directory Description
bopcfg/majic (UNIX) or Contains the .maj files that have been used to create
bopcfg\majic windows defined in the database. These files should
(Windows) not be changed because changes will be overwritten
by new releases of Unicenter Service Desk.
site/mods/majic (UNIX) Contains the .mod files you use to customize
or site\mods\majic windows.
(Windows)

Types of Statements
The following Majic statements have been used in the procedures in the “Using
Screen Painter” and “Customizing the Database Schema” chapters:

Statement Description
OBJECT Defines a business object
MODIFY Changes existing object attributes
MODIFY FACTORY Changes existing factories

These Majic statements are described in detail in this appendix.

Object Definition Syntax E–1


OBJECT Statement

OBJECT Statement
Defines a business object.

Syntax
OBJECT obj_name {
[ATTRIBUTES [table_name]{
att_name [field_name] value_type [access_type[status_type]][{
[ON_NEW DEFAULT|SET value|NOW ;]
[ON_CI DEFAULT|SET value|NOW ;]
[ON_DB_INIT DEFAULT|SET value|NOW ;]} ;]};]
[FACTORY [fac_name]{
[REL_ATTR name ;]
[COMMON_NAME name ;]
[FUNCTION_GROUP name ;]
[STANDARD_LISTS {
[SORT_BY index_att ;]
[FETCH fetch_att ;]
[WHERE string ;]
[MLIST ON|OFF;]
[RLIST ON|OFF;] } ;]};]
};

Arguments

obj_name The object’s name (for example, cnt for contact or cr for request).

Optional Statements

Either ATTRIBUTES or FACTORY must be specified. Both can be specified.

ATTRIBUTES [table_name] { }
Defines the properties of the object. Most attributes map to a field (column) in a
database table. See ATTRIBUTES Optional Statement for a description of its
syntax.

FACTORY [fac_name] { }
Defines access to the object, like its relation attribute, a common name, the
security group that can access it, the type of lists produced, and how those lists
can be sorted. See FACTORY Optional Statement for a description of its syntax.

E–2 Advanced Customization Guide


OBJECT Statement

Example

This example defines an object named ctp. The ATTRIBUTES statement defines
attributes named sym, delete_flag, and description whose values are stored in the
Contact_Type table in the database. The FACTORY statement creates a master
list of objects, sorted by values in the field that corresponds to the sym attribute,
and specifies that the id attribute will represent ctp when it is referenced by an
SREL:
OBJECT ctp {
ATTRIBUTES Contact_Type {
sym STRING REQUIRED ;
delete_flag del INTEGER {
ON_NEW DEFAULT 0 ;
} ;
description desc STRING ;
} ;
FACTORY {
STANDARD_LISTS {SORT_BY "sym"} ;
REL_ATTR id ;
};
};

ATTRIBUTES Optional Statement

The optional statement on the OBJECT statement that defines the properties of
the object.

Syntax
ATTRIBUTES [table_name]{
att_name [field_name] value_type [access_type[status_type]]{
[ON_NEW DEFAULT|SET value|NOW ;]
[ON_CI DEFAULT|SET value|NOW ;]
[ON_DB_INIT DEFAULT|SET value|NOW ;]} ;

Arguments

table_name The name of the table in the database that stores the values associated with the
attributes in the object. If the table name is not specified, the obj_name in the
OBJECT statement is used.

att_name The name of the attribute. Each attribute usually maps to a field (column) in the
database table.

field_name The name of the field in the database table or LOCAL if the attribute does not
map to a field. If neither LOCAL nor a field name is specified, the name of the
field is assumed to be the same as the name of the attribute.

Object Definition Syntax E–3


OBJECT Statement

value_type Identifies the data type of the attribute’s value as:


■ INTEGER
■ DOUBLE
■ STRING [length]
■ DURATION
■ DATE
■ SREL obj2_name

If STRING is specified, the size can be specified in an integer following STRING.


If no size is specified, the value in the database is used.

SREL refers the attribute to another object. If SREL is specified, obj2_name must
be specified to identify the object that the attribute refers to.

access_type Defines access to the attribute. Valid values are:

Value Description
CONST Cannot be changed
PRIVATE Read-only
PUBLIC Read/write access (the default)
WRITE_NEW Can be written only when the object is created, before the
object is saved

status_type Indicates the status of the attribute as:


■ REQUIRED
■ NOT_REQUIRED (the default)

ON Statements

Use one of these only when value_type is INTEGER, STRING, DATE, or SREL.

ON_NEW DEFAULT|SET value|NOW


Indicates to set the value of an attribute when the object is being created for the
first time:

Value Description
DEFAULT Changes a null current value to value or NOW.
SET Changes any current value to value or NOW.

E–4 Advanced Customization Guide


OBJECT Statement

Value Description
value Specifies a numeric value or a string value, depending on
the data type of the attribute.
NOW Specify this if the attribute is of type DATE; it sets the
attribute to the current date and time.

In the following example, 90 is the value set as a default when the object is
created:
ON_NEW DEFAULT 90 ;

ON_CI DEFAULT|SET value|NOW


Indicates to set the value of an attribute when the attribute is being checked into
the database. See the description of each parameter for ON_NEW.

ON_DB_INIT DEFAULT|SET value|NOW


Indicates to set the value of an attribute when the attribute is being instantiated
from the database. See the description of each parameter for ON_NEW.

Example

This example defines attributes with names like start_date whose values are
stored in fields like nlh_start in the Notify_Log_Header table in the database. The
field names are followed by each attribute’s data type. Optional parameters
define access to some of the attributes, indicate that the attribute is required, and
tell when to set the value of some of the attributes to the current date and time.

For example, an attribute named last_mod is defined; its value is set to the
current date and time when the attribute is checked into the database. An
attribute named contact is also defined; its value is a single relation stored in
database field nlh_c_addressee. The object referred to is cnt:
ATTRIBUTES Notify_Log_Header {
start_date nlh_start DATE WRITE_NEW {ON_NEW DEFAULT NOW;} ;
last_mod DATE {ON_CI SET NOW ;} ;
msg_hdr nlh_hdr STRING 20 WRITE_NEW ;
msg_text nlh_msg STRING WRITE_NEW ;
msg_ack nlh_user_ack STRING ;
contact nlh_c_addressee SREL cnt WRITE_NEW ;
notify_method nlh_cm_method INTEGER WRITE_NEW ;
activity_notify nlh_transition INTEGER WRITE_NEW ;
pri_event nlh_pri INTEGER WRITE_NEW ;
notify_type nlh_type INTEGER WRITE_NEW ;
ack_time nlh_ack_time DURATION ;
status nlh_status INTEGER REQUIRED ;
end_date nlh_end DATE {ON_NEW DEFAULT NOW ;} ;
};

Object Definition Syntax E–5


OBJECT Statement

FACTORY Optional Statement

Defines access to the object, like its relation attribute, a common name, the
security group that can access it, the type of lists produced, and how those lists
can be sorted. If omitted, the object is treated according to default specifications.

Syntax
FACTORY [fac_name]{
[REL_ATTR name ;]
[COMMON_NAME name ;]
[FUNCTION_GROUP name ;]
[STANDARD_LISTS {
[SORT_BY index_att ;]
[FETCH fetch_att ;]
[WHERE string ;]
[MLIST ON|OFF;]
[RLIST ON|OFF;] } ;]
};

Arguments

fac_name The name of the factory that initiates the object. Specify this only if it is different
from the name of the object. For example, the cnt object has four factories: cnt, cst,
agt, grp.

Optional Statements

At least one of these optional statements must be specified:

REL_ATTR name Identifies the attribute that will represent this object when it is referenced (used
as an SREL) by another object. Here is an example:
REL_ATTR id ;

COMMON_NAME name
Defines the attribute to be displayed in drop-down lists or when the user
double-clicks a field, as well as when the tag does not specify a complete
attribute. In the first example, the value for sym appears on the window instead
of the value for the REL_ATTR. The second example allows you to specify a tag
as cr.customer instead of cr.customer.combo_name.
COMMON_NAME sym ;
COMMON_NAME combo_name ;

FUNCTION_GROUP name
Indicates which security access group is permitted to access the object. For
example:
FUNCTION_GROUP "admin" ;

E–6 Advanced Customization Guide


OBJECT Statement

STANDARD_LISTS { } Creates lists of objects that are kept in a cache and can be displayed on list or
select windows. The parameters determine whether the lists are master lists or
restricted lists, whether the objects included in the list must meet specified
conditions, how the lists can be sorted, and what additional attributes are stored.
See STANDARD_LISTS Optional Statement for a description of the syntax.

Example

This example defines access to the object. A master list is produced. It can be
sorted according to the values in the object’s sym and code attributes. When first
displayed, it is sorted according to the values in the sym attribute by default.
When referenced by another object, this object is represented by the code
attribute. When displayed in a window, the value for sym appears instead of the
value for code. Only users in the admin security group can accessed it:
FACTORY {
STANDARD_LISTS {SORT_BY "sym,code"} ;
REL_ATTR code ;
COMMON_NAME sym ;
FUNCTION_GROUP "admin" ;
};

STANDARD_LISTS Optional Statement

The optional statement on the FACTORY statement that defines the object’s
standard lists.

Syntax
STANDARD_LISTS {
[SORT_BY index_att ;]
[FETCH fetch_att ;]
[WHERE string ;]
[MLIST ON|OFF;]
[RLIST ON|OFF;] } ;

Optional Statements

At least one of these optional statements must be specified:

SORT_BY index_att Defines the attributes that can be used to sort the standard lists. If specified, a
master list is produced. Attributes must be enclosed in quotes and separated by
commas. When displayed in a list or select window, the list is sorted by the first
attribute, by default. For example:
SORT_BY "sym, code" ;

Object Definition Syntax E–7


OBJECT Statement

FETCH fetch_att Specifies additional attributes to keep in the cache, besides those used to sort the
list. They must be enclosed in quotes and separated by commas. For example:
FETCH "description" ;

WHERE string Specifies a condition, in SQL format and surrounded by quotes, that must be met
for an object to be included in a restricted list. If specified, a restricted list is
produced. This example specifies that the restricted list contain only records that
were not deleted:
WHERE "delete_flag = 0" ;

MLIST ON|OFF Indicates whether to produce a master list, which includes all objects, using one
of the following values:

Value Description
ON Produces a master list (default if SORT_BY is specified)
OFF Does not produce a master list (default if SORT_BY is not specified
or has no value defined)

RLIST ON|OFF Indicates whether to also produce a restricted list, which includes only the objects
that meet the criteria in the WHERE clause, using one of the following values:

Value Description
ON Produces a restricted list (default if WHERE is specified)
OFF Does not produce a restricted list (default if WHERE is not
specified or has no value defined.)

Note: RLISTs can speed up access and display but they use memory. They are
usually used in select windows.

Important! MLIST OFF must be specified if you specify RLIST OFF.

Example

This example provides both a master list and a restricted list. Both lists contain
the values defined for the sym, code, and description attributes. The records in
the list can be sorted according to the values in the sym and code attributes. The
restricted list contains only records that were not deleted:
STANDARD_LISTS {
SORT_BY "sym,code" ;
FETCH "description" ;
WHERE "delete_flag = 0" ;
};

E–8 Advanced Customization Guide


MODIFY Statement

MODIFY Statement
Changes the way attributes are defined on OBJECT statements. MODIFY
statements are read after OBJECT statements.

Syntax
MODIFY obj_name att_name [status_type;]
[ON_NEW DEFAULT|SET value|NOW ;]|
[ON_CI DEFAULT|SET value|NOW ;]|
[ON_DB_INIT DEFAULT|SET value|NOW ;]

Arguments

obj_name Identifies the object whose attribute is being modified.

att_name Identifies the attribute being modified.

status_type Indicates whether the attribute is required. Attributes that were not originally
required can be changed to REQUIRED, but not the other way around. Therefore,
the only valid value is REQUIRED. Specify REQUIRED or one of the ON
statements.

ON Statements See ON Statements for a description of these statements.

Example

This example changes the salary attribute in the emp object so that it is now a
required attribute:
MODIFY emp salary REQUIRED ;

Object Definition Syntax E–9


MODIFY FACTORY Statement

MODIFY FACTORY Statement


Changes the way factories are defined on OBJECT statements. MODIFY
statements are read after OBJECT statements.

Syntax
MODIFY FACTORY fac_name {
[FUNCTION_GROUP name ;]
[STANDARD_LISTS {
[SORT_BY index_att ;]
[FETCH fetch_att ;]
[WHERE string ;]
[MLIST ON|OFF;]
[RLIST ON|OFF;] } ;] };

Arguments

fac_name Identifies the factory, if included on the original OBJECT statement.

Optional Statements

At least one of these optional statements must be specified.

FUNCTION_GROUP name
Indicates which security access groups are permitted to access the object. For
example:
FUNCTION_GROUP "admin" ;

STANDARD_LISTS Creates lists of objects that are kept in a cache. The parameters determine
whether the lists are master lists or restricted lists, whether the objects included
in the list must meet specified conditions, and how the lists can be sorted. See
STANDARD_LISTS Optional Statement for a description of the syntax.

E–10 Advanced Customization Guide


Index

Action table, A-6

. Action_Delay table, A-6


Action_Delay_Code table, A-6
.maj files, E-1 Action_Status table, A-6
.mod files, E-1 Active_Boolean_Table table, A-7
.sch files, 4-3, 5-2 Active_Reverse_Boolean_Table table, A-8
Activity
log attributes, 6-7
A notification messages, 6-7
Activity associations, 5-19
A_Comment table, A-1, A-14, A-37, A-39, A-77, A-78 table, A-5

Access AD_Comment table, A-9


privileges, 9-13 add parsing functions, 9-7
act_com object, B-2, B-3, B-4, B-5, B-6, B-7, B-8, B-9, B- add_to_message function, 9-4
10, B-13, B-14, B-15, B-16, B-18, B-19, B-22, B-23, B-24,
B-25, B-26, B-27, B-28, B-29, B-30, B-31, B-32, B-33, B- Adding
35, B-36, B-37, B-38, B-39, B-40, B-42, B-43, B-44, B-45, fields, 5-9, 5-12
B-46, B-47, B-48, B-49, B-50, B-51, B-52, B-53, B-54, B- fields to reports, 3-1
55, B-56, B-57, B-58, B-59, B-60, B-61, B-62, B-63, B-64, notification methods, 2-3
B-65, B-66, B-67, B-69, B-70 objects, 9-1
reference
Act_Log table, A-2 fields to tables, 5-12
act_stat object, B-2 tables, 5-1
remote references, 4-18
Act_Tpl table, A-2 reports, 3-1
Act_Tpl_Ent table, A-3 AimIT integration, 7-1
Act_Type table, A-3 Alias keyword, 3-16
act_type_assoc object, B-2 ALTER TABLE command, 5-12
Act_Type_Assoc table, A-5 ANI object, B-1
Action comment table, A-1, A-14, A-37, A-39, A-77, A- Animator table, A-9
78
Announcements
Action delay comment table, A-9 table for defining, A-64
Action plans API
template table, A-2 access privileges, 9-13

Index–1
attribute lists, 9-14 Audit Log
compiling programs, 9-28 table, A-15
components, 9-2
Audit_Log table, A-15
error handling, 9-12
high-level functions, 9-4
labels, 9-14
library, 9-3 B
low-level functions, 9-4
multiple connections, 9-2
node definition, 9-6 Beeper notification, 2-2
object codes, 9-8 Behavior_Template table, A-16
objects, 9-1
operations, 9-8 Block statements
overview, 9-1 BLOCK, 3-15
parsing tools, 9-3, 9-5 detailed description, 3-15
queries, 9-10 overview, 3-3
query reference tags, 9-14
Boolean_Table table, A-17
requests, 9-3, 9-4, 9-7
requirements, 9-1 Bop_Workshift table, A-18
responses, 9-3, 9-4, 9-9
bopcfg directory, 4-3, E-1
sample test programs, 9-24
SAPIO component, 9-3 BTREE storage, D-5
Server component, 9-2
Buffer size exceeded, 9-13
slaves, 9-2
special characters, 9-8 build command, 5-3
startup, 9-1
syntax, 9-5 build_template function, 9-4
usage, 9-7 button
api_svr_nxd, 9-2 command, 4-10
option, 4-11
Arranging items on a window, 4-9 radio, 4-11
ASCENDING sort order, D-5
Asset Management integration, 7-1
C
Assets
asset family table, A-79
class comment table, A-48 C language API, 9-1
class table, A-46 Call_Req table, A-18
failure table, A-46
status table, A-80 Call_Req_Type table, A-21
table for defining, A-60 Call_Solution table, A-22
Assets, attribute list, 9-15 Cause table, A-23
Attached_Events table, A-12 Change Order Management
Attribute lists for API change order activity log table, A-23
asset, 9-15 change order category table, A-24
contacts, 9-20 change order status table, A-27
overview, 9-14 Property table, A-73
Property_Template table, A-74
Attribute_Name table, A-14 task behavior templates table, A-16
Attributes workflow task status table, A-96
statement, E-3 workflow task type table, A-97
Workflow_Task table, A-105

Index–2 Advanced Customization Guide


Workflow_Task_Template table, A-106 frame, 4-10
grid, 4-10
Change_Act_Log table, A-23
index card, 4-11
Change_Category table, A-24 label, 4-11
option button, 4-11
Change_Status table, A-27 radio button, 4-11
check box, 4-10 text box, 4-11

Chronic thresholds for asset class table, A-46 Copying


window definitions, 4-8
CL_Comment table, A-28
Counter fields, 6-1
Client
version control requirements, 8-3 CR_Call_Timers table, A-34

Close_Entry table, A-28 CR_Status table, A-35

CLUSTER index, D-5 Cr_Stored_Queries table, 6-1

Column_Name table, A-28 CR_Stored_Queries table, A-36

combo box, 4-10 create_nxpv parsing function, 9-6

command button, 4-10 Creating


a new reference table, 5-14
Commands menus, 4-14, 4-15
alter table, 5-12
build, 5-3 CT_Comment table, A-37
syntax, 1-2 Customization steps
COMMON_NAME parameter, E-6 for notification methods, 2-2
for reports, 3-1
Compiling API programs, 9-28
Customizing
Components database schema, 4-3
API server, 9-2 labels, 6-3
Computer_Extension table, A-28 menus, 4-13
notification
CONST parameter, E-4 messages, 6-7
Contact methods, 2-1
table, A-29 object schema, 4-4
queries, 6-1
Contact_Method table, A-32 reports, 3-1
the main menu, 6-1
Contact_Type table, A-32
the scoreboard, 6-1
Contacts via an API, 9-1
attribute list, 9-20 WHERE clauses, 6-3
object, 6-3 windows, 4-6
table, 9-1, 9-8
ControlIT integration, 7-4
D
Controlled_Table table, A-33
Controlling escalation progress table, A-42
Data
controls fields, 3-4
check box, 4-10 locked, 9-13
combo box, 4-10 types, A-1, E-4
command button, 4-10
edting, 4-12 Data partitions

Index–3
controlled tables table, A-33 Environment variables in notification script, 2-2
table for defining, A-40
Error
table for defining constaints, A-41
format, 9-13
table for defining constraint types, A-42
handling in API, 9-12
Database return in API, 9-4
relating to schema, D-6
Escalation
schema customization, 4-3
controlling table, A-42
tables, E-3
recording table, A-42, A-43
Database element dictionary, A-1
Escalation_Control table, A-42
Dates
Escalation_Entry_Log table, A-42
in WHERE clause, 9-11
Escalation_Level table, A-43
ddict.sch file, 4-3, 5-2
Event_Delay table, A-43
Default
form group, 4-6 Event_Delay_Type table, A-44
parameter, E-4
window group, 4-5 Events table, A-45

Defining Examples
activity associations for user-defined attributes, adding
5-19 fields to tables and windows, 5-11
changing attributes, E-9
Delay creating a new table, 5-16
code control table, A-6 customizing
record table, A-6 notification messages, 6-8
notification methods, 2-5
Delegation_Server table, A-38
customizing reports, 3-6
Delegation_Status table, A-38 defining
activity associations for user-defined
Delegation_Transport table, A-39
attributes, 5-20
delete_nxpv parsing function, 9-6 attributes, E-5
objects, E-3, E-7
Deref flag, 9-11 scoreboard queries, 6-2
DESCENDING sort order, D-5 generating lists of objects, E-8
lengthening fields, 5-6
Dialog, displaying, 3-10 making fields
Dictionary of database elements, A-1 required, 5-8
of mapping statements, D-7
Domain table, A-40 of queries
Domain_Constraint table, A-41, A-42 in labels, 6-3
in WHERE clauses, 6-3
DURATION fields, D-2 of TABLE statements, D-4
of TABLE_INFO statements, D-5
Expense_Code_Opt table, A-46
E
External access, 9-1
extname.dat file, 9-14
editing
controls, 4-12
Email notification, 2-2
Enumerated data types, 9-11

Index–4 Advanced Customization Guide


F receive_response, 9-4
send_request, 9-4
set_err_handler, 9-5
FACTORY statement, E-6 validate_enum, 9-5
parsing, 9-6
Failure table, A-46 report, 3-12
Fax notification, 2-2, 7-2 send_request, 9-3

FAXserve integration, 7-2


FETCH parameter, E-8 G
fetch_by_id function, 9-4
Fields General_Resource_Class table, A-46
++, 5-12
Generating custom reports, 3-1
in OBJECT statement, E-3
lengthening, 5-5 Geo_Coord_Type table, A-48
making required, 5-7
get_log_msg function, 9-4
making required without making schema
changes, 5-9 get_name_nxpv parsing function, 9-6
non-reference, 5-9
reference, 5-12 get_value_nxpv parsing function, 9-6

Files GRC_Comment table, A-48


.maj, 4-3, E-1 grid, 4-10
.mod, E-1
.sch, 4-3, 5-2 Group_Member table, A-49
ddict.sch, 4-3
index.sch, D-1
schema.sch, D-1 H
find child parsing functions, 9-6, 9-7
Flexible schema, 5-1 handle_err function, 9-5

Footer layout statement, 3-17 Handling errors in API, 9-12

form HASH storage, D-5


groups, 4-6, 4-8
Header layout statement, 3-18
Forms, 4-7, 4-8
Header2 layout statement, 3-19
frame, 4-10
HEAP storage, D-5
full_desc flag, 9-11
High-level functions, 9-4
FUNCTION_GROUP parameter, E-6, E-10
Functions
high-level I
defined, 9-4
fetch_by_id, 9-4
Impact table, A-50
query_object, 9-4
low-level Incident reports
add_to_message, 9-4 table for recording users’ problems, A-50
build_template, 9-4
defined, 9-4 Incident Reports
get_log_msg, 9-4 stored queries class table, A-53
handle_err, 9-5 stored queries table, A-53

Index–5
Include file for API, 9-3 L
index card, 4-11
INDEX methods, D-5 label, 4-11
Index.sch file, D-1 Labels, customizing, 6-3
Initial_Report table, A-50 launchit utility, 4-19
Integer fields, D-2 Layout
statement
Integration
creating data fields, 3-4
AimIT, 7-1
including literal text, 3-5
Asset Management, 7-1
statements
ControlIT, 7-4
detailed description, 3-3
FAXserve, 7-2
FOOTER, 3-17
Remote Control Option, 7-4
HEADER, 3-18
Interface table, A-51 HEADER2, 3-19
overview, 3-4
Internal database ID PAGE FOOTER, 3-20
assets, 9-19 PAGE HEADER, 3-21
contacts, 9-23 PRINT, 3-22
Internal_Organization table, A-52 Lengthening fields, 5-5
Invalid user ID, 9-13 Library file for API, 9-3
IR_Order_By table, A-53 Lists
IR_Stored_WC table, A-53 creating, E-7
master, E-8
Issue Management restricted, E-8
architecture, 4-2
viewer, 4-2 Literal text in reports, 3-5
window definitions, 4-4 LOCAL parameter, E-3
LOCAL_TIME fields, D-2
K Location table, A-55
Location_Type table, A-56
KEY fields, D-3 Locked records, 9-13
Key_Control table, A-53 Logged-in users, 6-2
Knowledge Management Logical tables, D-1
architecture, 4-2
keywords table, A-54 Low-level functions, 9-4
table for relating keywords to solutions, A-54 Lrel_Table table, A-57
table for request solutions, A-22
viewere, 4-2
window definitions, 4-4
M
Knowledge_Keywords table, A-54
Knowledge_Lrel_Table table, A-54
Macros for TABLE statements, D-2
Main menu, 6-1
Majic
files, 4-3, E-1

Index–6 Advanced Customization Guide


statements Network_Resource table, A-60
ATTRIBUTES, E-3
next_sib_nxpv parsing function, 9-7
FACTORY, E-6
MODIFY, E-9 nn macro, D-2
MODIFY FACTORY, E-10
OBJECT, E-2 NOT_NULL fields, D-3
STANDARD_LISTS, E-7 Note_Board table, A-64
types of, E-1
syntax, E-1 Notification
messages, customizing, 6-7
Making fields methods
required, 5-7 customizing, 2-1, 2-2
required without making schema changes, 5-9 script, 2-2
Manufacturer table, A-58 variables, 2-2

Manufacturer_Model table, A-59 Notification_Urgency table, A-64

Mapping statements, D-6 Notify_Log_Header table, A-65

max_return parameter, 9-11 Notify_Msg table, A-66

Maximum Notify_Object_Attr table, A-67


buffer size, 9-13 Notify_Rule table, A-68
number of returns, 9-11
NOW parameter, E-4
Mdl_Comment table, A-60
NR_Comment table, A-69
Menu
editor, 4-13 nx_capi.a, 9-3

Message nx_capi.h, 9-3


customization, 6-7 NX_NTF variables, 2-2
notification, 2-2
request, 9-7 nxpv_to_str parsing function, 9-6
samples
asset, 9-19
contact, 9-24 O
query, 9-12
MLIST parameter, E-8
Object
MODIFY attributes, 9-14
FACTORY statement, E-10 schema, 4-2
statement, 5-8, 5-9, E-9 statement, 5-10, 5-13, 5-15, E-2
Modifying Objects
reports, 3-1 act_com, B-2, B-3, B-4, B-5, B-6, B-7, B-8, B-9, B-
the schema, D-1 10, B-13, B-14, B-15, B-16, B-18, B-19, B-22, B-23,
via an API, 9-1 B-24, B-25, B-26, B-27, B-28, B-29, B-30, B-31, B-32,
B-33, B-35, B-36, B-37, B-38, B-39, B-40, B-42, B-43,
Moving an item on a window, 4-9
B-44, B-45, B-46, B-47, B-48, B-49, B-50, B-51, B-52,
Multiline reports, 3-10 B-53, B-54, B-55, B-56, B-57, B-58, B-59, B-60, B-61,
B-62, B-63, B-64, B-65, B-66, B-67, B-69, B-70
act_stat, B-2
act_type_assoc, B-2
N activity log, 6-7
ANI, B-1
Names of tables, E-3 changing, E-1, E-9

Index–7
contact, 6-3 prev_sib_nxpv parsing function, 9-7
customizing the schema, 4-4
PRIMARY sort order, D-5
defining, E-1, E-2
listing, E-7 Print layout statement, 3-22
request, 6-2
print_children parsing function, 9-6
ON parameters, E-4
Priority table, A-71
Opening an existing form, 4-7
PRIVATE parameter, E-4
option button, 4-11
Prob_Category table, A-72
Options Manager
architecture, 4-2 Problem Management
viewer, 4-2 reports, 3-1
System_Defaults table, A-95
Options table, A-70
Property table, A-73
Organizations
table, A-52 Property_Template table, A-74

OSI PUBLIC parameter, E-4


Forum table, A-32 pv_NXPV node definition, 9-6
type table, A-48
Output program, 3-16
Q

P Query
assets, 9-19
P1 statements, D-6 contacts, 9-23
on scoreboard, 6-1
Page reference tags, 9-14
footer layout statement, 3-20 sample
header layout statement, 3-21 messages, 9-12
program, 9-27
painter32 command, 4-7
with API, 9-10
Parameters
query_object
for version control files, 8-6
function, 9-4
parent_nxpv parsing function, 9-7 sample program, 9-27
Parsing Screen Painter, 4-23
functions, 9-6
Quitting Screen Painter, 4-23
tools, 9-3, 9-5
Passing arguments into reports, 3-1
pdm_extract utility, 5-2, 5-4, 5-7 R
pdm_replace utility, 5-2, 5-4
pdm_task utility, 3-9 radio button, 4-11

pdm_userload utility, 5-7 receive_response function, 9-4

Performing API queries, 9-10 Recipient_Type table, A-75

Phone notification, 2-2 Recording


close of tickets table, A-28
Physical tables, D-1 delays, A-6

Index–8 Advanced Customization Guide


escalation levels table, A-42, A-43 Resource_Service_Status table, A-80
REF fields, D-3 Responses through API, 9-3, 9-4, 9-9
Reference tables Reverse_Boolean_Table table, A-80
accessing, D-3
RLIST parameter, E-8
adding, 5-1, 5-14
populating, 5-4 Rpt_Meth table, A-81
REL_ATTR parameter, E-6
Remote
references, 4-18
S
Remote Control Option integration, 7-4
S_KEY fields, D-3
Remote_Ref table, A-76
Sample
remove_nxpv parsing function, 9-7 messages for API
Report asset, 9-19
customization, 3-1 contact, 9-24
formatting flags, 3-10 query, 9-12
functions, 3-12 programs
generation, 3-9 for API, 9-24
multiline, 3-10 processing requests, 9-24
output redirector, 3-10 query_object, 9-27
passing arguments into, 3-1 sample files, 9-26
program, 3-9 SAPIO, 9-3
template, 3-2
Schema customization
Request Management syntax, D-1
recording user issues table, A-18
Schema.mac macro, 5-5, 5-6, 5-7, 5-8, 5-9, 5-11, 5-12
Request type table, A-21
Schema.sch file, D-1
Requests
activity types table, A-3 Scoreboard customization, 6-1
by logged-in user, 6-2 Screen Painter, 4-1
by number in messages, 6-8
log table, A-2 Script for notification method, 2-2
object, 6-2 Select clause, 3-15
prefixes table, A-82
request areas table, A-72 send_request function, 9-3, 9-4
sample program, 9-24
Sequence_Control table, A-82
sequence table, A-82
service types table, A-83 Server
smart hooks table, A-76 version control requirements, 8-2, 8-3
status table, A-35
Server modes
stored queries table, A-36
for version control, 8-5
suffixes table, A-82
table for recording users’ issues, A-18 Service_Desc table, A-83
through API, 9-3, 9-4, 9-7
Service_Level_Agreement table, A-84
timers table, A-34
SET parameter, E-4
Required attributes, E-4, E-9
set_err_handler function, 9-5
Resolution_Code table, A-79
set_name_nxpv parsing function, 9-6
Resource_Family table, A-79

Index–9
set_value_nxpv parsing function, 9-6 Survey_Answer table, A-91
Setting Survey_Answer_Template table, A-92
values of attributes, E-4
Survey_Question table, A-93
Severity table, A-84
Survey_Question_Template table, A-94
Single action entry, action template, A-3
Survey_Template table, A-95
Site
Syntax
directory, 4-3, 5-2
conventions, 1-2
mods
for API, 9-5
directory, 4-3, E-1
majic directory, 4-3 System_Defaults table, A-95
Site table, A-85
SLA_Progress_Level table, A-85
T
SLA_Progress_Notification_Log table, A-86
SLA_Template table, A-86 Tab
Slave processes, 9-2 order on a window, 4-10

Smart hook, 4-21, 4-22 TABLE statements, D-1

Sort TABLE_INFO statements, D-4


clause, 3-16, D-5 Table_Name table, A-95
SORT_BY parameter, E-7 Tables
Special characters, 9-8 A_Comment, A-1, A-14, A-37, A-39, A-77, A-78
Act_Log, A-2
Spell_Macro table, A-88 Act_Tpl, A-2
Act_Type, A-3
Spell_Macro_Type table, A-89
Act_Type_Assoc, A-5
SQL clauses Action table, A-6
ALIAS keyword, 3-16 Action_Delay, A-6
SELECT, 3-15 Action_Delay_Code table, A-6
SORT, 3-16 Action_Status, A-6
WHERE, 3-15, 9-10 Active_Boolean_Table, A-7
Active_Reverse_Boolean_Table, A-8
SQL_Script table, A-90
AD_Comment, A-9
SREL parameter, E-4 Animator, A-9
Attached_Events, A-12
STANDARD_LISTS statement, E-7 Attribute_Name, A-14
Starting Audit_Log, A-15
API, 9-1 Behavior_Table, A-16
Screen Painter, 4-7 Boolean_Table, A-17
Bop_Workshift, A-18
STORAGE methods, D-5 Call_Req, A-18
IN keyword, 6-4 Call_Req_Type, A-21
Call_Solution, A-22
Stored queries, 6-1 Cause, A-23
trouble ticket table, A-101 Change_Act_Log, A-23
str_to_nxpv parsing function, 9-6 Change_Category, A-24
Change_Status, A-27
String fields, D-2 CL_Comment, A-28
Close_Entry table, A-28
Survey table, A-90

Index–10 Advanced Customization Guide


Column_Name table, A-28 Prob_Category, A-72
Computer_Extension, A-28 Property, A-73
Contact, A-29 Property_Template, A-74
Contact_Method, A-32 Recipient_Type, A-75
Contact_Type, A-32 Remote_Ref, A-76
Controlled_Table, A-33 Resolution_Code, A-79
CR_Call_Timers, A-34 Resource_Family, A-79
CR_Status, A-35 Resource_Service_Status, A-80
CR_Stored_Queries, A-36 Reverse_Boolean_Table, A-80
CT_Comment, A-37 Rpt_Meth, A-81
Delegation_Server, A-38 Sequence_Control, A-82
Delegation_Status, A-38 Service_Desc, A-83
Delegation_Transport, A-39 Service_Level_Agreement, A-84
Domain, A-40 Severity, A-84
Domain_Constraint, A-41, A-42 Site, A-85
Escalation_Control, A-42 SLA_Progress_Level, A-85
Escalation_Entry_Log, A-42 SLA_Progress_Notification_Log, A-86
Escalation_Level, A-43 SLA_Template, A-86
Event_Delay, A-43 Spell_Macro, A-88
Event_Delay_Type, A-44 Spell_Macro_Type, A-89
Events, A-45 SQL_Script table, A-90
Expense_Code_Opt, A-46 Survey, A-90
Failure, A-46 Survey_Answer, A-91
General_Resource_Class, A-46 Survey_Answer_Template, A-92
Geo_Coord_Type, A-48 Survey_Question, A-93
GRC_Comment, A-48 Survey_Question_Template, A-94
Group_Member, A-49 Survey_Template, A-95
Impact, A-50 System_Defaults, A-95
Initial_Report, A-50 Table_Name, A-95
Interface, A-51 Task_Status, A-96
Internal_Organization, A-52 Task_Type, A-97
IR_Order_By, A-53 Ticket_Status, A-97
IR_Stored_WC, A-53 Timezone, A-99
Key_Control, A-53 Transition_Points, A-100
Knowledge_Keywords, A-54 Trouble_Code, A-100
Knowledge_Lrel_Table, A-54 Trouble_Ticket, A-100
Location, A-55 TT_Comment, A-101
Location_Type, A-56 TT_Order_By, A-101
Lrel_Table, A-57 TT_Stored_wc, A-101
Manufacturer, A-58 TT_Template, A-101
Manufacturer_Model, A-59 Urgency, A-101
Mdl_Comment, A-60 User_Query, A-102
Network_Resource, A-60 V_Comment, A-103
Note_Board, A-64 Vendor_Provider, A-103
Notification_Urgency, A-64 Vendor_Provider_Type, A-104
Notify_Log_Header, A-65 Workflow_Task, A-105
Notify_Msg, A-66 Workflow_Task_Template, A-106
Notify_Object_Attr, A-67
Tables, names of, E-3
Notify_Rule, A-68
NR_Comment, A-69 Tag Helper
Options, A-70 function of, 4-4
OSI Forum, A-32 using, 4-13
OSI type, A-48
Priority, A-71 Tags

Index–11
determining, 4-12 pdm_userload, 5-7
overview, 4-4
smart_hook, 4-21, 4-22
Task_Status table, A-96 V
Task_Type table, A-97
Telephone notification, 2-2 V_Comment table, A-103

Text validate_enum function, 9-5


in reports, 3-5 Variable
text box, 4-11 expressions, 3-5, 3-10
in notification script, 2-2
Ticket_Status table, A-97 passing into reports, 3-1
Timezone table, A-99 Vendor_Provider Table, A-103
Tracking performance, A-6 Vendor_Provider_Type Table, A-104
Transition_Points table, A-100 Version control
client
Trouble_Code table, A-100
files, 8-1
Trouble_Ticket table, A-100 requirements, 8-3
creating files for customization, 8-4
TT_Comment table, A-101
file syntax, 8-6
TT_Order_By table, A-101 file syntax parameters, 8-6
overview, 8-1
TT_Stored_wc table, A-101 server
TT_Template table, A-101 files, 8-1
modes, 8-5
requirements, 8-2, 8-3

U Voice mail notification, 2-2

uniq macro, D-2


W
UNIQUE values, D-3, D-5
Urgency table, A-101 WHERE clause, 3-15, 6-3, 9-10, E-8
User ID, 9-13 Window
User_Query table, A-102 customization
of definitions, 4-4
User-defined definition
code table, A-6, A-7, A-8 customizing, 4-4
Using editor, 4-1
Screen Painter, 4-1 naming conventions, 4-5

Stored queries, 6-4 Workflow_Task table, A-105

Utilities Workflow_Task_Template table, A-106


for report generation, 3-9 Workshifts for events table, A-18
launchit, 4-19
pdm_extract, 5-2, 5-4, 5-7 WRITE_NEW parameter, E-4
pdm_replace, 5-2, 5-4
pdm_task, 3-9

Index–12 Advanced Customization Guide


Index–13

Potrebbero piacerti anche