MKS Integrity Server 2009 Administration Guide
MKS Integrity Server 2009 Administration Guide
MKS Integrity Server 2009 Administration Guide
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
®<br />
<strong>Integrity</strong><br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
<strong>2009</strong><br />
<strong>Administration</strong> <strong>Guide</strong>
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
<strong>Administration</strong> <strong>Guide</strong><br />
Copyright © 2001–<strong>2009</strong> <strong>MKS</strong> Software Inc.; in Canada copyright owned by <strong>MKS</strong> Inc. All rights reserved.<br />
<strong>MKS</strong> makes no warranty of any kind with regard to this material, including, but not limited to the implied warranties of merchant ability,<br />
performance, or fitness for a particular purpose. <strong>MKS</strong> shall not be liable for errors contained herein, or for any direct, indirect, incidental,<br />
or consequential damages resulting from the use of this material.<br />
No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into any language in<br />
any form by any means, without written permission from <strong>MKS</strong>.<br />
<strong>MKS</strong>, Implementer, <strong>MKS</strong> Toolkit, Sandbox, NuTCRACKER, and <strong>MKS</strong> Federated <strong>Server</strong> are trademarks of <strong>MKS</strong> Inc. All other trademarks<br />
are the property of their respective holders.<br />
Corporate Headquarters Worldwide Offices:<br />
410 Albert Street<br />
Waterloo, ON N2L 3V3<br />
Canada<br />
tel: 519 884 2251<br />
fax: 519 884 8861<br />
sales (toll free): 800 265 2797<br />
www.mks.com<br />
This document is uncontrolled when printed or copied.<br />
1815 South Meyers Rd.<br />
Suite 220<br />
Oakbrook Terrace, IL USA<br />
60181<br />
tel: 630 827 4900<br />
fax: 630 629 9167<br />
sales (toll free): 800 633 1235<br />
12701 Fair Lakes Circle<br />
Suite 350<br />
Fairfax, VA USA<br />
22033<br />
tel: 1 703 803 3343<br />
fax: 1 703 803 3344<br />
sales (toll free): 1 800 637 8034<br />
Martinstraße 42-44<br />
73728 Esslingen<br />
Germany<br />
tel: +49 711 351775 0<br />
fax: +49 711 351775 7555<br />
Third Floor, Duke’s Court<br />
Duke Street, Woking<br />
Surrey<br />
GU21 5BH<br />
United Kingdom<br />
tel: +44 (0)1483 733900<br />
fax: +44 (0)1483 733901<br />
sales: +44 (0)1483 733919<br />
3 Killiney Road<br />
#07-05 Winsland House 1<br />
Singapore 239519<br />
tel: +65-6732-8768<br />
fax: +65-6732-0768<br />
5th Floor, Unosawa Tokyu Building<br />
1-19-15, Ebisu, Shibuya-ku,<br />
Tokyo 150-0013, Japan<br />
tel: +81-3-5422-9503<br />
fax: +81-3-5422-9509
Table of Contents<br />
Chapters 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />
About This <strong>Guide</strong>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
Assumptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
Setting Up and Using <strong>MKS</strong> <strong>Integrity</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
Workflows and Documents Setup. . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
Configuration Management Setup . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
Where to Go Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
2 <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client . . . . . . . . . . . . . . . . . . 9<br />
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
Opening Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
Logging Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
Closing Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
Shutting Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
Application Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
Quick Access Keys (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
Common Dual List Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
Filtering Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
Working With Favorites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
Display Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
<strong>Server</strong> Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
Print Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Alert Messages. . . . . . . . . . . . . . . . . . . . . . 32<br />
Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />
<strong>MKS</strong> <strong>Integrity</strong> Client Preferences . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />
<strong>Server</strong> Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client Preferences . . . . . . . . . . . 38<br />
Setting <strong>MKS</strong> <strong>Integrity</strong> View Preferences . . . . . . . . . . . . . . . . . . . 41<br />
Authorization <strong>Administration</strong> Preferences . . . . . . . . . . . . . . . . . 41<br />
Deploy Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />
<strong>Administration</strong> Command Line Interface . . . . . . . . . . . . . . . . . . . . . . 42<br />
Defining Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
Rule Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
Working With Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
Selecting Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
Viewing <strong>Administration</strong> History. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
i
Table of Contents<br />
ii<br />
3 ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />
Where to Go Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />
Understanding ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />
Viewing ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />
Basic ViewSet Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
Creating ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
Editing ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
Copying ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />
Deleting ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
Making ViewSets Available to Users . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
Process Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
Converting Personal ViewSet to Unpublished ViewSet . . . . . . 58<br />
Publishing ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />
Testing ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
Mandatory ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
Administering Published ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />
Published ViewSet Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
Fetching Published ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
Updating Published ViewSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
ViewSet Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
Permission to Publish ViewSets. . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
Published ViewSet Permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
ViewSets FAQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
4 Workflow Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
Where to Go Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
Assessing Your Current Product Development Process . . . . . . . . . . 70<br />
Assigning Administrators for <strong>MKS</strong> <strong>Integrity</strong> . . . . . . . . . . . . . . . . . . . 74<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Permissions. . . . . . . . . . . . . . . . . 76<br />
Assigning Administrators Using Command Line Interface . . . 77<br />
States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />
Working in States View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />
Creating States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
Editing States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
Viewing States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
Deleting States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />
Moving States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />
State Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />
Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />
Working in Types View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />
Creating Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
Configuring Type Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />
Editing Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />
Copying Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />
Viewing Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Table of Contents<br />
Deleting Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
Moving Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
Assigning Type Administrator . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
Setting Up Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />
Setting the Test Management Role for Types . . . . . . . . . . . . . . 112<br />
Setting Item Editability for Types . . . . . . . . . . . . . . . . . . . . . . . . 114<br />
Setting Type Visibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />
Setting Type Overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115<br />
Setting Field Visibility for Types . . . . . . . . . . . . . . . . . . . . . . . . . 120<br />
Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />
Working in Fields View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />
Using Display Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126<br />
Creating Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />
Editing Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br />
Viewing Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141<br />
Deactivating Picklist Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141<br />
Deleting Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142<br />
Moving Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143<br />
Managing Field Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . 143<br />
Workflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152<br />
Workflow View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153<br />
Creating Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155<br />
Configuring Self Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156<br />
Viewing Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />
Managing Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158<br />
Printing Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161<br />
Saving Workflow as Image. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161<br />
Testing Workflow With Admin Migration Wizard . . . . . . . . . 161<br />
Considerations When Modifying Visibility, Editability, and Types 178<br />
Deleting Admin Provided Objects and Items . . . . . . . . . . . . . . . . . . 179<br />
Deleting Admin Provided Objects . . . . . . . . . . . . . . . . . . . . . . . 179<br />
Deleting Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179<br />
Setting Up E-mail Notification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180<br />
Permissions for E-mail Notification . . . . . . . . . . . . . . . . . . . . . . 181<br />
Troubleshooting E-mail Notification . . . . . . . . . . . . . . . . . . . . . 185<br />
5 Customizing Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . 187<br />
Where to Go Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188<br />
Customizing Item Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188<br />
Understanding Template Designer. . . . . . . . . . . . . . . . . . . . . . . 189<br />
Creating New Presentation Template. . . . . . . . . . . . . . . . . . . . . 198<br />
Editing Presentation Template . . . . . . . . . . . . . . . . . . . . . . . . . . 203<br />
Copying Presentation Template . . . . . . . . . . . . . . . . . . . . . . . . . 214<br />
Viewing Presentation Templates. . . . . . . . . . . . . . . . . . . . . . . . . 214<br />
Deleting Presentation Template . . . . . . . . . . . . . . . . . . . . . . . . . 215<br />
iii
Table of Contents<br />
iv<br />
Customizing Rich Content Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216<br />
Customizing Report Presentation Templates . . . . . . . . . . . . . . . . . . 219<br />
Report Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221<br />
Report Tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222<br />
Customizing Test Verdicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234<br />
Working in the Test Verdicts View . . . . . . . . . . . . . . . . . . . . . . . 234<br />
Creating a Test Verdict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235<br />
Editing a Test Verdict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236<br />
Deactivating Test Verdicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237<br />
Configuring Attachment Size Limits . . . . . . . . . . . . . . . . . . . . . . . . . 237<br />
Configuring Limits for Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238<br />
System Query Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238<br />
Query Timeouts for Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239<br />
Maximum Query Item Count . . . . . . . . . . . . . . . . . . . . . . . . . . . 239<br />
Configuring Context Based Text Searching . . . . . . . . . . . . . . . . . . . . 240<br />
Setting Up Electronic Signatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241<br />
Customizing Electronic Signature Trigger. . . . . . . . . . . . . . . . . . . . . 241<br />
Admin Provided Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242<br />
Using Type Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245<br />
6 Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247<br />
Where to Go Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248<br />
Workflow and Document Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . 248<br />
Projects View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249<br />
Managing Metadata for Workflow and Document Projects . . 257<br />
Deactivating Workflow and Document Projects. . . . . . . . . . . . 259<br />
Assigning <strong>MKS</strong> <strong>Integrity</strong> Project Administrator. . . . . . . . . . . . 260<br />
Configuration Management Projects . . . . . . . . . . . . . . . . . . . . . . . . . 262<br />
Configuration Management Interfaces. . . . . . . . . . . . . . . . . . . . 263<br />
Organizing Your Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263<br />
Working With Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265<br />
Using Configuration Management Project Metrics . . . . . . . . . 280<br />
Working With Subprojects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282<br />
Sharing Archives With Other Projects . . . . . . . . . . . . . . . . . . . . 287<br />
7 Computed Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . 291<br />
Where to Go Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292<br />
Computed Expression Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292<br />
Computed Expression Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293<br />
General Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293<br />
Arithmetic Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293<br />
Boolean Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294<br />
Empty Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294<br />
Dates, Times, and Time Zones. . . . . . . . . . . . . . . . . . . . . . . . . . . 295<br />
Timestamp Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Table of Contents<br />
Date Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296<br />
User and Group Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296<br />
Data Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296<br />
Function Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296<br />
Creating Computed Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313<br />
Calculating Static Computed Fields . . . . . . . . . . . . . . . . . . . . . . . . . . 315<br />
Using Computed Fields to Chart Historical Trends. . . . . . . . . . . . . 316<br />
Scheduling Computation Times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318<br />
Using Computed Fields to Calculate State Metrics . . . . . . . . . . . . . 319<br />
Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321<br />
Performance and Scalability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321<br />
8 Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323<br />
Where to Go From Here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324<br />
<strong>MKS</strong> <strong>Integrity</strong> Change Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324<br />
Viewing Change Package Types . . . . . . . . . . . . . . . . . . . . . . . . . 325<br />
Changing Change Package Type Order . . . . . . . . . . . . . . . . . . . 326<br />
Editing Change Package Types . . . . . . . . . . . . . . . . . . . . . . . . . . 327<br />
Viewing Change Package Types . . . . . . . . . . . . . . . . . . . . . . . . . 330<br />
Creating Change Package Types . . . . . . . . . . . . . . . . . . . . . . . . . 331<br />
Deleting Change Package Types . . . . . . . . . . . . . . . . . . . . . . . . . 332<br />
Modifying Change Package Attributes . . . . . . . . . . . . . . . . . . . 333<br />
Modifying Change Package Entry Attributes . . . . . . . . . . . . . . 336<br />
User Operations for Created Change Package Types . . . . . . . 340<br />
Modifying CP Entries for Created CP Types. . . . . . . . . . . . . . . 342<br />
Configuration Management Change Packages . . . . . . . . . . . . . . . . . 343<br />
Using Change Package Reviews . . . . . . . . . . . . . . . . . . . . . . . . . 344<br />
How Change Package Review Works . . . . . . . . . . . . . . . . . . . . 345<br />
Review Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346<br />
Change Package Review E-mail Notification . . . . . . . . . . . . . . 346<br />
9 Event Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349<br />
Event Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350<br />
About Trigger Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350<br />
JavaScript Language Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . 351<br />
JavaBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354<br />
Overview of Workflow and Document Triggers . . . . . . . . . . . . . . . 355<br />
Workflow and Document Event Categories . . . . . . . . . . . . . . . 356<br />
Transactionality of Workflow and Document Event Triggers 357<br />
Planning Workflow and Document Triggers . . . . . . . . . . . . . . 358<br />
Script Library for Workflow and Document Triggers . . . . . . . 358<br />
Coding Workflow and Document Triggers . . . . . . . . . . . . . . . . 359<br />
Using Workflow and Document Event Triggers . . . . . . . . . . . 361<br />
Overview of Configuration Management Triggers . . . . . . . . . . . . . 374<br />
v
Table of Contents<br />
vi<br />
Overview of Configuration Management <strong>Server</strong>-Side Triggers. . .<br />
374<br />
Overview of Configuration Management Client-Side Triggers 383<br />
Planning Configuration Management Triggers . . . . . . . . . . . . 389<br />
Script Library for Configuration Management Triggers . . . . . 390<br />
Referencing Configuration Management Beans in Trigger Scripts<br />
390<br />
Coding Configuration Management Triggers. . . . . . . . . . . . . . 391<br />
Debugging Configuration Management Client-Side Environment<br />
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392<br />
Error Handling Beans and Methods . . . . . . . . . . . . . . . . . . . . . . 392<br />
abortScript() Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393<br />
DEBUG Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393<br />
Logging Trigger Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394<br />
Logging Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395<br />
Using the <strong>MKS</strong> API in Event Triggers . . . . . . . . . . . . . . . . . . . . . . . . 396<br />
API Beans and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396<br />
API Trigger Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396<br />
Running Custom Java Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397<br />
Using Java Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398<br />
Tips and Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399<br />
Appendixes A Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401<br />
Gathering Important Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402<br />
Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> as Application . . . . . . . . . . . . . . . . . 405<br />
Differencing <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Properties Files . . . . . . . . . . . . . 406<br />
Error Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406<br />
<strong>MKS</strong> <strong>Integrity</strong> Client Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Logging Levels. . . . . . . . . . . . . . . . . . . . . . . . . 407<br />
Miscellaneous Logging Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 409<br />
FLEXnet Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413<br />
Dr. Watson Logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413<br />
Creating Integrations Log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413<br />
Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Diagnostics. . . . . . . . . . . . . . . . . . . . 414<br />
Collecting Properties and Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . 421<br />
runstacktrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422<br />
mksis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423<br />
isutil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424<br />
Starting <strong>Server</strong> in Safe Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426<br />
Troubleshooting Database Repository . . . . . . . . . . . . . . . . . . . . . . . . 427<br />
Troubleshooting Kerberos and Kerberos Single Sign-On . . . . . . . . 428<br />
Troubleshooting Configuration Management Reporting . . . . . . . . 430
Table of Contents<br />
B Glossary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431<br />
C Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437<br />
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455<br />
vii
Table of Contents<br />
vii
C HAPTER ONE<br />
Introduction<br />
Understanding This <strong>Guide</strong><br />
1<br />
The <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> <strong>Administration</strong> <strong>Guide</strong> gives you the information you need<br />
to build a basic understanding of <strong>MKS</strong> <strong>Integrity</strong>, and to configure it for your<br />
organization. It also provides information on post-installation configuration and setup<br />
for workflows and documents; software management; and the associated access control<br />
lists and event triggers.<br />
Information on <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> installation, configuration, and security is not<br />
covered in this guide. For information on those tasks, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
In this guide, the person responsible for setting up <strong>MKS</strong> <strong>Integrity</strong> is referred to as the<br />
administrator. The administrator installs the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> on a network, defines<br />
and customizes the software clients, and then creates the user accounts. Anyone who<br />
uses the <strong>MKS</strong> <strong>Integrity</strong> software to perform specific tasks is referred to as the user.<br />
For <strong>MKS</strong> <strong>Integrity</strong>, the person who sets up and configures <strong>MKS</strong> <strong>Integrity</strong> is referred to as<br />
the super administrator. The super administrator can also delegate certain tasks related to<br />
projects for workflows and documents, and types to a project administrator and type<br />
administrator.<br />
1
Chapter 1: Introduction<br />
About This <strong>Guide</strong><br />
2<br />
For content that is essential and applicable to all guides, <strong>MKS</strong> provides a single location for<br />
you to access the information. See the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Getting Started <strong>Guide</strong> for<br />
information on the following topics:<br />
a complete list of related documentation<br />
descriptions of the typographical conventions used in this guide<br />
getting help from <strong>MKS</strong> Customer Care<br />
consulting <strong>MKS</strong> Professional Services<br />
how to provide feedback on this documentation<br />
detailed descriptions for base concepts used in <strong>MKS</strong> <strong>Integrity</strong><br />
installing and configuring the <strong>MKS</strong> <strong>Integrity</strong> Client<br />
an overview of the interfaces available for the <strong>MKS</strong> <strong>Integrity</strong> Client<br />
Most procedures in this guide are documented using menu-based commands; however,<br />
toolbar buttons, shortcut menus, and shortcut keys exist for most procedures. For more<br />
information, refer to descriptive tooltips and menu items in the interface.<br />
For detailed information on wizards, views, and dialog box options, see the online help.<br />
This guide is designed to provide administrators with all the information needed to<br />
configure and maintain <strong>MKS</strong> <strong>Integrity</strong> at their site. The guide is divided into the following<br />
chapters and appendixes:<br />
Chapter 2: “<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client” on page 9<br />
Describes the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>Administration</strong> interface and provides a general<br />
orientation to using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client for setting up permissions;<br />
workflows and documents; and configuration management policies.<br />
Chapter 3: “ViewSets” on page 49<br />
Provides information on administering ViewSets for users to import from the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Chapter 4: “Workflow Management” on page 69<br />
Describes how to construct an item workflow and its components.<br />
Chapter 5: “Customizing Workflow” on page 187<br />
Advanced information on customizing workflows used in your organization.<br />
Chapter 6: “Projects” on page 247<br />
Describes the types of projects available and how to use them effectively.
Assumptions<br />
Chapter 7: “Computed Expressions” on page 291<br />
Provides information on performing calculations between fields and their uses.<br />
Chapter 8: “Change Packages” on page 323<br />
Assumptions<br />
Describes the types of change packages available, how to customize them, and how to<br />
use them effectively.<br />
Chapter 9: “Event Triggers” on page 349<br />
Describes how to use event triggers with workflows and documents, and configuration<br />
management.<br />
Appendix A: “Troubleshooting” on page 401<br />
Describes available monitoring and diagnostic tools that can be used with assistance<br />
from <strong>MKS</strong> Customer Care.<br />
Appendix B: “Glossary” on page 431<br />
Defines many of the common terms used when talking about workflows and<br />
documents; configuration management; and the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Before using <strong>MKS</strong> <strong>Integrity</strong>, understand that the content in this guide is based on the<br />
following assumptions of your knowledge and experience:<br />
Installing and Configuring the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
You fully understand the hardware platforms and operating systems you are installing<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> on, that is, Windows, Solaris, Linux, IBM AIX, or HP-UX.<br />
Depending on the database you are using, that you have already set up and tested:<br />
MS SQL <strong>Server</strong> database, and you are familiar with MS SQL <strong>Server</strong> <strong>Administration</strong><br />
and MS SQL Enterprise Manager<br />
Oracle database, and you are familiar with Oracle administration and configuration<br />
procedures<br />
DB2 database, and you are familiar with DB2 Universal Database client<br />
administration and configuration procedures<br />
DB2 database for System i, and you are familiar with DB2 Universal Database client<br />
administration and configuration procedures<br />
You understand the native security realm of your system. For a complete list of security<br />
realms and their configuration, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
3
Chapter 1: Introduction<br />
4<br />
If you want to use LDAP, at a minimum you are familiar with Distinguished Names<br />
(DN), LDAP search filters, and LDAP schemas.<br />
You understand the character set encoding requirements of your e-mail system.<br />
Managing Workflows and Documents<br />
You understand HTML and XML, if you are creating custom report presentation<br />
templates for workflows and documents or making changes to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
home page.<br />
TIP For useful information on HTML, browse to www.w3.org/MarkUp.<br />
If you are implementing event triggers, you have experience with JavaScript and<br />
understand logical rules.<br />
You understand Cascading Style Sheets (CSS), if you are creating and editing screen and<br />
print styles for rich content fields and reports.<br />
Setting Up and Using <strong>MKS</strong> <strong>Integrity</strong><br />
The administrator installs and/or configures, workflows and documents; configuration<br />
management; and the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. For <strong>MKS</strong> <strong>Integrity</strong>, the administrator also<br />
installs the database on a network, defines and customizes item types and workflow, and<br />
creates additional user accounts, allowing users to access the program.<br />
For <strong>MKS</strong> <strong>Integrity</strong>, the person who sets up and configures <strong>MKS</strong> <strong>Integrity</strong> is referred to as the<br />
super administrator. The super administrator can also delegate certain tasks related to projects<br />
for workflows and documents, and types to a project administrator and type administrator.<br />
A user is anyone who needs to work with one or both of <strong>MKS</strong> <strong>Integrity</strong> components. Users<br />
are assigned user permissions by the administrator. Users are also assigned to groups that<br />
have specific <strong>MKS</strong> <strong>Integrity</strong> group permissions assigned by the administrator.<br />
Other roles or responsibilities may also apply, depending on how you want to implement<br />
<strong>MKS</strong> <strong>Integrity</strong> and depending on your organization’s development process. The advantage<br />
of <strong>MKS</strong> <strong>Integrity</strong> is its flexibility to fit your organization.
Workflows and Documents Setup<br />
Setting Up and Using <strong>MKS</strong> <strong>Integrity</strong><br />
Additional tasks required of a super administrator for the workflows and documents<br />
component include:<br />
defining and creating item types<br />
customizing fields<br />
assigning users and user groups<br />
determining privileges<br />
defining workflow<br />
setting up any event triggers<br />
The super administrator can also restrict the visibility and editability of workflow and<br />
document objects. Before users start using the system, the administrator must inform them<br />
about the scope of their user privileges.<br />
<strong>MKS</strong> <strong>Integrity</strong> ships with some standard fields and values. Therefore, the super<br />
administrator needs to define other workflow and document objects (building blocks) before<br />
the rest of the application can be configured.<br />
<strong>MKS</strong> <strong>Integrity</strong> uses items to track changes. An unlimited number of items and relationships<br />
may be tracked. For example, <strong>MKS</strong> <strong>Integrity</strong> can be configured so that a problem item is<br />
associated with the item that resolves it for easy tracking and monitoring of both items.<br />
In workflow and document management, a project contains labels that help you sort and<br />
organize items in a hierarchical structure.<br />
Some items types may be configured to allow file attachments and a change package. File<br />
attachments may be sent by a customer to provide additional information. When attached to<br />
an item, file attachments and change packages allow tracking of items in a structured and<br />
organized manner.<br />
For each item type defined, a workflow must be established to effectively track and monitor<br />
the progress of work on an item. For example, if the process consists of design,<br />
implementation, and release stages, an enforced workflow allows you to know the number of<br />
items in each stage.<br />
Starting with an appropriate design for the workflow of items, the administrator configures<br />
<strong>MKS</strong> <strong>Integrity</strong> to reflect that workflow. For information on setting up workflow, “Workflow<br />
Management” on page 69.<br />
Workflow for an item must also take into account the resources responsible for that item at<br />
each stage of the development cycle. <strong>MKS</strong> <strong>Integrity</strong> allows users and user groups to assign<br />
responsibility for an item.<br />
<strong>MKS</strong> <strong>Integrity</strong> can also be configured to notify individuals by e-mail about a variety of<br />
conditions, including having items assigned to them or about an item state change.<br />
5
Chapter 1: Introduction<br />
6<br />
The super administrator can also set up schedule- and rule-based event triggers to automate<br />
certain tasks. For example, when an item is closed, a rule-based event trigger can close all of<br />
the underlying tasks. If an item was in a development state after the required completion<br />
date had passed, a schedule-based event trigger could send an e-mail to the project manager.<br />
For more information on event triggers for workflows and documents, see “Event Triggers”<br />
on page 349.<br />
<strong>MKS</strong> <strong>Integrity</strong> allows you to define projects that help users sort all items in the database.<br />
Projects are folders that help you organize items in a hierarchical structure. To see the items<br />
specific to a project, a user must have privileges to view this project. As an administrator, you<br />
must assign permissions to user groups before they can see the project.<br />
The super administrator adds users, creates user groups and sets their access permissions,<br />
depending on the responsibilities given to the user.<br />
After defining the users and user groups responsible for processing items during the<br />
development cycle, additional fields can be created to support the workflow and to<br />
complement the standard fields. Some standard fields include Summary, State, Assigned<br />
User, Assigned Group, and Project. The customizable fields may be based on data types,<br />
values, visibility, relevance, editability, and description. Both standard and customized fields<br />
can be used to determine the mandatory fields users must fill in before changing the state of<br />
an item.<br />
The super administrator customizes the additional fields and defines mandatory fields while<br />
designing a workflow for an item.<br />
Besides being able to work with items, users can also use query, report, and chart features.<br />
A query is a request to select and list the items that meet specific selection criteria.<br />
Reports are summaries of the data in your project, based on the standard and custom<br />
fields of item types.<br />
Charts present trends over time or distributions of the data. The are also based on the<br />
standard and custom fields of item types. These include line graphs, pie graphs, bar<br />
graphs, XY (scatter) graphs, bubble graphs, and tables.<br />
Table charts show a summary of data with aggregate values. Graphical charts show<br />
users a summary of the data.<br />
You can run queries, reports, and charts on item data to monitor progress and evaluate the<br />
effectiveness of the problem resolution process. You can also create a dashboard that<br />
provides a high-level overview of the progress of a project.<br />
A dashboard is a static, user-definable view comprised of any combination of charts, reports,<br />
images, labels, and links to reports, queries and Web sites.
Configuration Management Setup<br />
Setting Up and Using <strong>MKS</strong> <strong>Integrity</strong><br />
Before using <strong>MKS</strong> <strong>Integrity</strong> to manage the configuration management projects in a<br />
development environment, the administrator is responsible for taking a careful look at how<br />
projects and directories are currently organized on the file system. This allows the<br />
administrator to make decisions about how best to organize projects, use subprojects, or<br />
share members between projects.<br />
One of the most important aspects of administering an <strong>MKS</strong> <strong>Integrity</strong> site is ensuring that<br />
only appropriate users can access certain features. <strong>MKS</strong> <strong>Integrity</strong> provides a number of<br />
different security features to help you keep your system safe and secure, and to complement<br />
security within <strong>MKS</strong> <strong>Integrity</strong>, including:<br />
available security realms<br />
user authentication based on an integration with existing authentication mechanisms<br />
such as UNIX and NT<br />
disabled guest authentication<br />
secure sockets layer (SSL) protocol<br />
access control lists (ACLs)<br />
file level security<br />
For information on setting up a secure system for the preceding listed items, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
The overall security environment for configuration management is divided into three major<br />
components:<br />
a server-based authentication scheme for authenticating users and authorizing access<br />
based on permissions<br />
a data management subsystem realm for maintaining the underlying security database<br />
a distributed management application for providing a variety of administrative user<br />
interfaces to the security database<br />
If you are responsible for installing and setting up the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> in your<br />
organization or if you are responsible for managing and maintaining the implementation of<br />
configuration management, you should set yourself up as an administrator. As<br />
administrator, you are responsible for assigning appropriate permissions to users and<br />
groups.<br />
Once the appropriate access permissions are assigned, the administrator organizes the<br />
configuration management environment by creating projects and subprojects. For more<br />
information on setting up projects, see “Configuration Management Projects” on page 262.<br />
<strong>MKS</strong> <strong>Integrity</strong> can also be configured to use server-side event triggers. Event triggers allow<br />
you to customize your configuration management environment further and to control the<br />
7
Chapter 1: Introduction<br />
8<br />
way users may operate in that environment. For more information on event triggers, see<br />
“Event Triggers” on page 349.<br />
Where to Go Next<br />
The following table summarizes the steps you should follow to administer <strong>MKS</strong> <strong>Integrity</strong>:<br />
To Do This … See …<br />
Learn how to use the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client.<br />
Create ViewSets for users to download into their<br />
<strong>MKS</strong> <strong>Integrity</strong> Clients.<br />
Create the building blocks of your workflow such<br />
as fields, states, and a type. Then construct the<br />
workflow with state transitions.<br />
Customize the workflow by creating item<br />
presentation templates, as well as perform<br />
customization on other system provided objects.<br />
Create projects to manage workflow and<br />
document tasks and configuration management<br />
members.<br />
Create change packages for workflows and<br />
documents, and configuration management to<br />
control, record, and apply member operations.<br />
“<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client” on page 9<br />
“ViewSets” on page 49<br />
“Workflow Management” on page 69<br />
“Customizing Workflow” on page 187<br />
“Projects” on page 247<br />
“Change Packages” on page 323
C HAPTER TWO<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong><br />
Client<br />
Using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>Administration</strong> Interface<br />
2<br />
The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client allows you to manage Access Control Lists<br />
(ACLs), manage and distribute ViewSets, set up workflows and documents, configure<br />
configuration management policies, set up Deploy, and send alert messages through a<br />
GUI. The client interface provides a single, centralized access point for the most common<br />
administration tasks.<br />
In this guide, all procedures are documented using menu-based commands; however,<br />
toolbar buttons, shortcut menus, and shortcut keys exist for most procedures. For more<br />
information, refer to descriptive tooltips and menu items in the interface.<br />
This chapter describes the functionality available through the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client and explains how to navigate the interface.<br />
This chapter contains the following topics:<br />
“Introduction” on page 10<br />
“Preferences” on page 34<br />
“<strong>Administration</strong> Command Line Interface” on page 42<br />
“Defining Rules” on page 43<br />
“Viewing <strong>Administration</strong> History” on page 47<br />
9
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
Introduction<br />
10<br />
A graphical user interface, or GUI, is a program interface that uses a number of visual<br />
components (such as icons, pointers, and pull-down menus) to execute commands. Working<br />
in a GUI allows the user to give instructions to the computer without having to learn a<br />
specific command language. The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client interface is a GUI<br />
designed for carrying out most administrative commands from a central location.<br />
In addition, you can connect to multiple <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>s in a single session and<br />
perform maintenance on each server.<br />
Opening Interface<br />
IMPORTANT If multiple administrators are working in the Permissions views,<br />
changes are updated dynamically as the server refreshes the changed view each<br />
time it is newly accessed by another user.<br />
If two administrators are concurrently editing the same entry, the view cannot be<br />
updated and the system processes the changes that are received first.<br />
After installation, the first step to using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client is to open<br />
the interface. You can open the client from the program menu, desktop icon, or from a<br />
command line prompt. Once the interface is open, you are prompted to log on.<br />
NOTE When opening the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, you may be<br />
prompted to download a client service pack if one is required. For more information<br />
on client service pack distribution, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
To open the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
CLI EQUIVALENT integrity admingui<br />
1 From the Windows Program menu, select <strong>MKS</strong> <strong>Integrity</strong> > <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong>.<br />
From UNIX, open a shell and type integrity admingui.<br />
The <strong>MKS</strong> <strong>Integrity</strong> Client interface displays. You are prompted to log in.
Logging Out<br />
Closing Client<br />
Introduction<br />
2 Log in by entering your user ID and password. The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
displays the <strong>Administration</strong> window.<br />
NOTE You can open another instance of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client by<br />
selecting Tools > <strong>Administration</strong>.<br />
Upon restarting the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, view settings are<br />
automatically restored and you are prompted to connect to the server or servers<br />
used during the previous session.<br />
You can log out of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client and log in as another user, or<br />
allow another user to log in.<br />
To log out of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
CLI EQUIVALENT integrity disconnect<br />
1 Select File > <strong>Server</strong> Connection > Disconnect.<br />
Depending on your system preferences, a dialog box asks you to confirm that you want<br />
to close all current views and disconnect your server connection. To disable this dialog<br />
box, see “<strong>Server</strong> Connections” on page 29.<br />
2 To disconnect from the server, click Yes. The Confirm Disconnect dialog box displays.<br />
NOTE Disconnecting from the server closes all current views.<br />
3 To disconnect all clients that are connected to that server, click Yes.<br />
If multiple servers are available in your <strong>Server</strong> Connection list, all clients running<br />
automatically connect using the next available server for that product. For example,<br />
<strong>MKS</strong> <strong>Integrity</strong> connects to the next available <strong>MKS</strong> <strong>Integrity</strong> enabled server in the <strong>Server</strong><br />
Connection list.<br />
You can close the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client so it is no longer displayed on the<br />
desktop, but leave it running in the background, logged in, and with client windows intact.<br />
To quit an <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client session<br />
Do one of the following:<br />
Select File > Close Window.<br />
11
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
Shutting Down<br />
12<br />
Click the X at the top right-hand corner of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
window.<br />
NOTE By default, these commands close the <strong>MKS</strong> <strong>Integrity</strong> Client; however, you can<br />
also configure them to shut down the <strong>MKS</strong> <strong>Integrity</strong> Client. For more information,<br />
see “To set <strong>MKS</strong> <strong>Integrity</strong> Client preferences from the GUI” on page 35.<br />
Even though the client is not displayed on the desktop, it is still running in the background.<br />
On Windows, a running client is indicated by an <strong>MKS</strong> <strong>Integrity</strong> Client icon in the system tray.<br />
Display the client by doing one of the following:<br />
Clicking the application shortcut (see “Opening Interface” on page 10).<br />
On Windows, right clicking the <strong>MKS</strong> <strong>Integrity</strong> Client icon in the system tray and<br />
selecting Open.<br />
On Windows, double clicking the <strong>MKS</strong> <strong>Integrity</strong> Client icon in the system tray.<br />
When you are finished using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, you can shut down<br />
the client completely in one action.<br />
To shut down the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
CLI EQUIVALENT integrity exit<br />
1 Do one of the following:<br />
From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, select File > Exit.<br />
On Windows, right click the <strong>MKS</strong> <strong>Integrity</strong> Client icon in the system tray, and select<br />
Exit.<br />
The Confirm <strong>MKS</strong> <strong>Integrity</strong> Client Exit dialog box displays.<br />
IMPORTANT Clicking Yes shuts down all clients, such as the <strong>MKS</strong> <strong>Integrity</strong> Client, in<br />
addition to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
2 To shut down all clients, click Yes. All <strong>MKS</strong> <strong>Integrity</strong> Clients close, all server connections<br />
disconnect, and the client process shuts down.
Application Window<br />
Title Bar<br />
Menu Bar<br />
Toolbars<br />
Application<br />
Window<br />
Tree Pane<br />
Status Bar<br />
Introduction<br />
The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client interface contains a number of common features<br />
explained in this section.<br />
Title Bar<br />
TIP You can access program functions through the menu items listed on the menu<br />
bar, as well as through the shortcut menu when you right click the mouse.<br />
The title bar is the uppermost component of the application window. On the left side, the title<br />
bar displays the name of the <strong>MKS</strong> <strong>Integrity</strong> Client. On the right side, the title bar displays the<br />
standard Windows buttons for minimizing, resizing, and closing the application window.<br />
Menu Bar<br />
Workspace Display Pane Shortcut Menu<br />
The menu bar is located directly below the title bar. Each menu contains available<br />
commands. When you first open the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, there are four<br />
menus in the menu bar: File, Tools, Window, and Help. The list of available menus and<br />
13
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
14<br />
commands varies depending on the view or window that is active at any given time (for<br />
example, working with permissions or configuration management policies).<br />
Toolbars<br />
Immediately below the menu bar are the toolbars that provide easy access to the most<br />
commonly used administration commands. Toolbar functions are carried out by clicking the<br />
appropriate toolbar button with the left mouse button.<br />
Most toolbar buttons only become available when an item is selected in a certain window.<br />
For example, selecting Policies in the node tree displays the toolbar buttons for policy<br />
commands.<br />
Tooltips explain the function of each toolbar button and appear when you pause the mouse<br />
pointer over the button.<br />
Shortcut Menu<br />
The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client supports standard shortcut menus. To display the<br />
menu of actions you can perform on a selected item, select and right click the item. The menu<br />
that displays depends upon the item you have selected.<br />
Tree Pane<br />
The tree pane displays the configurable components in a node tree view. The visibility of<br />
nodes in the tree pane depends on the applications that are installed on the server. For<br />
example, if the workflows and documents component is not installed on the server, the<br />
Workflows and Documents node does not display in the tree pane.<br />
As administrator, your ability to work with subnodes in the tree pane depends on the<br />
permissions allowed to you. For example, if you are not allowed the EditPolicy and<br />
ViewPolicy permissions under mks:si, you cannot modify configuration management<br />
policies under the Configuration Management node. For more information, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
To work with the available sections in a node, you can double click the node name or click the<br />
expansion button (+) to expand the node.<br />
NOTE When working in the tree pane, you can also open a new window from any<br />
node by right clicking and selecting Open New Window from the shortcut menu.
The following table specifies where to find information on nodes in the tree pane.<br />
View Node Location<br />
<strong>MKS</strong> Domain See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
ViewSet Distribution See “ViewSets” on page 49.<br />
Configuration See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
Permissions See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
Workflows and<br />
Documents<br />
Users See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
Groups See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
Dynamic Groups See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
Projects See “Projects View” on page 249.<br />
States See “Working in States View” on page 77.<br />
Types See “Working in Types View” on page 83.<br />
Fields See “Working in Fields View” on page 125.<br />
Document Model See “Setting Up Documents” on page 97.<br />
Triggers See “Managing Event Triggers” on page 362.<br />
Change Package Types See “Viewing Change Package Types” on page 325.<br />
Test Verdicts See “Setting the Test Management Role for Types” on<br />
page 112.<br />
Charts See “Using Type Properties” on page 245.<br />
Dashboards See “Admin Provided Objects” on page 242.<br />
Queries See “Admin Provided Objects” on page 242.<br />
Reports See “Admin Provided Objects” on page 242.<br />
Configuration See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
Permissions See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
<strong>Server</strong> Diagnostics See “Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Diagnostics” on<br />
page 414.<br />
Introduction<br />
15
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
View Node Location<br />
Configuration<br />
Management<br />
16<br />
Display Pane<br />
The display pane presents the configurable information for a selected node tree view. For<br />
example, if you select Global in the Permissions view, the display pane presents information<br />
on the global permissions granted to principals (that is individual users or groups) on the<br />
system.<br />
For options with check boxes:<br />
Status Bar<br />
Policies See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
Configuration See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
Permissions See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
<strong>Server</strong> Diagnostics See “Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Diagnostics” on<br />
page 414.<br />
Deploy Staging Systems See the <strong>MKS</strong> Deploy <strong>2009</strong> <strong>Administration</strong> <strong>Guide</strong>.<br />
Configuration See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
Permissions See the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
Alert See “<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Alert Messages” on page 32.<br />
Check Box Description<br />
Option is not enabled.<br />
Option is enabled.<br />
Prompted to confirm or specify the option.<br />
When you select a command, a brief explanation of its purpose and status displays in the<br />
status bar. In addition, when you point to a toolbar button, you can see an explanation of its<br />
function.<br />
The status bar also displays the progress and status for commands launched from the<br />
interface.
Workspace<br />
Introduction<br />
Everything between the toolbar and the status bar is considered the workspace. This is where<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client displays administration windows.<br />
ToolTips<br />
A tooltip displays as a popup and in the status bar to provide additional details when you<br />
pause the mouse pointer over an item. Tooltips are available by placing the pointer over a<br />
button or field. Point to a button to display a description of the task associated with that<br />
button. The information you enter in the Description field for various workflow and<br />
document objects is also displayed as a Tooltip to users.<br />
Quick Access Keys (GUI)<br />
By default, this guide describes how to perform steps using the mouse. For your convenience,<br />
there is an alternate way to perform many of those same steps using the keyboard.<br />
Access Keys (GUI)<br />
Keyboard access keys appear as underlined letters on a menu command, or as a dialog box<br />
option, allowing you to access most items on the interface. You use the access keys by<br />
pressing and holding the ALT key, then the key indicated by the underlined letter.<br />
Access keys can also be used in a sequence, for example, ALT, F, V, R. This sequence means<br />
press down and hold ALT, and then press F, V, and R.<br />
Shortcut Keys (GUI)<br />
For some commands, shortcut keys are provided, as well as access keys. Shortcuts appear on<br />
menus opposite their command names, for example:<br />
Pressing the INSERT key is the same as selecting the Create command.<br />
Pressing the F1 function key is the same as selecting the Help command.<br />
Common Dual List Actions<br />
The following actions are common to all dual lists in the GUI and Web interfaces:<br />
To move entries between lists, highlight the entry and click the add ()<br />
buttons.<br />
To move all entries between lists, click the add all () buttons.<br />
To reorder the entries in a list, select an entry and click the move up (^) or move down<br />
(v) buttons.<br />
17
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
Filtering Data<br />
18<br />
As the amount of data in <strong>MKS</strong> <strong>Integrity</strong> increases, such as users, queries, projects, and fields,<br />
it can be difficult and time consuming to find the data you want. To quickly find data<br />
whenever a selection is required, such as assigning a user to a user field or selecting a chart to<br />
view, <strong>MKS</strong> <strong>Integrity</strong> provides a data filter for fields, lists, and views in the GUI interface.<br />
<strong>MKS</strong> <strong>Integrity</strong> provides a data filter for fields in the Web interface.<br />
Results List<br />
Selection<br />
List<br />
A typical data filter<br />
Text Filter Attribute Filters<br />
All instances of the data filter include a text filter that allows you to type a text string,<br />
becoming more specific as you type, for example, Show users containing james.<br />
In some instances, the data filter includes attribute filters that allow you to narrow your<br />
search results by searching for specific attributes, for example, users that belong to a specific<br />
group.<br />
Using the data filter is analogous to constructing a sentence that tells <strong>MKS</strong> <strong>Integrity</strong> what you<br />
are looking for, for example, Show projects containing patch that are active.
Introduction<br />
Filters and corresponding results persist each time you open and close the GUI or Web<br />
interface. For fields and lists, previously selected data (active and inactive) is bolded in the<br />
results list and displays in the selection list. For views, selected data (active and inactive)<br />
displays in the results list.<br />
Filtering Data in Field<br />
When setting the default value for a field, the data filter displays as a pop-up panel when you<br />
click the field.<br />
Data filter when setting a default field value<br />
19
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
20<br />
Filtering Data in List<br />
For lists, such as the Default Selected Projects list in the Create Admin Dashboard dialog box,<br />
the data filter displays as a pop-up panel when you click the plus sign (+) to add data to the<br />
list.<br />
Data filter for the Default Selected Projects list<br />
Filtering Data in View<br />
For views or selection dialog boxes, such as the Fields view, the data filter is embedded in the<br />
view or dialog box.
Data filter for the Fields view<br />
Filtering Text<br />
Introduction<br />
Typically, results are sorted alphabetically regardless of case, for example, all results<br />
starting with e and E are grouped together. Exceptions to the rule include data that has a<br />
sort order specified by your administrator, for example, states or pick list items.<br />
When using the text filter in a view, such as the Manage Queries view, the text filter<br />
searches visible columns only. For example, if you search for queries created by jriley<br />
in the Manage Queries view and the Created By column is hidden, no results are<br />
returned.<br />
The order that strings are typed in is irrelevant. For example, typing james riley or<br />
riley james both return James Riley.<br />
As soon as the data filter appears, typing immediately shifts the focus to the text filter<br />
and returns results.<br />
Favorites<br />
Workflow and document objects (queries, charts, reports, and dashboards) can be marked as<br />
favorites, allowing you to find them more easily in the data filter. You can search for favorites<br />
or non-favorites using the my favorites or not my favorites filters. For more<br />
information, see “Working With Favorites” on page 27.<br />
Active and Inactive Values<br />
By default, the data filter displays active and previously selected inactive values. Active<br />
values are users, groups, projects for workflows and documents, and pick list items that<br />
21
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
22<br />
are currently active in <strong>MKS</strong> <strong>Integrity</strong>. Inactive values represent obsolete values in<br />
<strong>MKS</strong> <strong>Integrity</strong>.<br />
If a multi-valued field contains one or more inactive values and you attempt to change<br />
any values in the field, you are prompted to leave the field unchanged or clear the field<br />
of all inactive values.<br />
Blank Values<br />
In rules and multi-value fields, you can choose an unspecified or blank value by<br />
selecting Unspecified from the results list.<br />
In single-value fields where a value is already selected, choose an unspecified or blank<br />
value by selecting the current value and clicking X.<br />
Users and Groups<br />
To choose your name for a user value, select your name or Me (the currently logged in<br />
user) from the results list.<br />
TIP Specifying Me can be useful in queries, charts, reports, and dashboards you<br />
intend to share with other users. For example, if you specify Me in a query that<br />
shows all Defects assigned to you, other users can use the same query to show their<br />
assigned Defects without modifying or copying the query.<br />
To choose <strong>MKS</strong> <strong>Integrity</strong> as a user value, select System from the results list. Specifying<br />
System is useful when you want to view or be notified about items that <strong>MKS</strong> <strong>Integrity</strong><br />
has created or modified, such as computed fields. For example, if you create an e-mail<br />
notification rule to send an e-mail when an item containing a computed field is updated,<br />
<strong>MKS</strong> <strong>Integrity</strong> sends an e-mail each time the computed field is calculated. Depending on<br />
how often the field is calculated, this can result in several e-mails. If you do not want to<br />
receive e-mails about items that have changed only because <strong>MKS</strong> <strong>Integrity</strong> re-calculated<br />
a computed field, you set the rule to not send e-mails when the item is modified by<br />
System.<br />
Users or groups with a or icon are no longer active or no longer in the security<br />
realm.<br />
If your system is using LDAP authentication, all <strong>MKS</strong> <strong>Integrity</strong> user lists display full<br />
user names. If the attribute for full user names is missing on the LDAP server or if a<br />
user’s full name entry is blank, the <strong>MKS</strong> <strong>Integrity</strong> Client interface displays only the user<br />
ID.<br />
Typing a user’s full name or user name returns the same results, for example, James<br />
Riley and jriley.<br />
Workflow and Document Projects<br />
Child projects appear in the following format: parent project > child project.
Configuration Management Projects<br />
You can only filter top-level projects; however, you can select top-level projects and<br />
subprojects.<br />
E-mail Notification Rules<br />
Introduction<br />
In an e-mail notification rule, Me refers to the user that the notification rule is created for. This<br />
is useful if you want to create a common notification rule and share it with other users.<br />
Common Filters<br />
Some of the common filters are:<br />
Filter Description<br />
active Displays active users, groups, workflow and document projects, or<br />
pick list values.<br />
inactive Displays inactive users, groups, workflow and document projects, or<br />
pick list values.<br />
in group Displays users belonging to a specific group.<br />
my favorites Displays charts, dashboards, queries, or reports configured by you<br />
as favorites.<br />
not my favorites Displays charts, dashboards, queries, or reports configured by you<br />
as non-favorites.<br />
system provided Displays charts, dashboards, queries, or reports configured as<br />
shared administrative objects.<br />
created by me Displays charts, dashboards, queries, or reports created by you.<br />
created by... Displays charts, dashboards, queries, or reports created by a<br />
specific user.<br />
modified in the last week Displays charts, dashboards, queries, or reports modified in the last<br />
week.<br />
modified on Displays charts, dashboards, queries, or reports modified during a<br />
specific time period.<br />
visible in item type Displays fields visible in the specified item type.<br />
visible in all types Displays fields visible in all types.<br />
of field type Displays a specific field.<br />
23
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
24<br />
Shortcut Keys<br />
The following shortcut keys perform data filter operations:<br />
Shortcut Key(s) Operation<br />
ESC Close the data filter.<br />
ENTER Apply the selected data and close the data filter.<br />
Up arrow Move up in the results list.<br />
Down arrow Move down in the results list.<br />
CTRL+ Add the selected data to the results list.<br />
CTRL- Remove the selected data from the results list.<br />
F12 Replace the selected data in the selection list with the selected data<br />
in the results list.<br />
CTRL+A Select all data in the results list.<br />
To filter data<br />
1 To filter data using a text search, type a string in the Show containing text<br />
filter. Data containing the string displays in the results list, becoming more specific as<br />
you type.<br />
To filter data using attribute filters (if available) or to further restrict your text filter with<br />
attribute filters, click the that are filter and select an attribute filter from the list.<br />
To clear the that are filter, select that are > Reset.<br />
To remove a filter, select > Remove. For example, if the active users filter is<br />
enabled, select active > Remove.
Introduction<br />
To select multiple groups or to search for one or more groups using the text filter in the<br />
GUI, select that are > in group > Other. The Specify 'in group' filter values dialog box<br />
displays.<br />
Type a name in the text filter. A list of groups displays in the results list, becoming<br />
more specific as you type.<br />
From the results list, select the group(s) you want to add to the selection list and<br />
click +.<br />
To remove groups from the selection list, select the groups, and click X.<br />
To replace all groups in the selection list with groups that are selected in the results<br />
list, click .<br />
To add the group(s) in the selection list to the list of groups, click OK or Enter.<br />
To cancel the group selection and close the data filter, click Cancel.<br />
The group(s) display as an active attribute filter, for example, in group<br />
'Development'.<br />
To select multiple groups in the Web interface, select that are > in group >... . The<br />
Select Groups dialog box displays.<br />
Select multiple groups and click OK. The groups display as an active attribute filter,<br />
for example, in group Development,... .<br />
2 If you are filtering view or selection dialog box data, select the data in the results list, and<br />
perform an operation specific to the view or dialog box, such as Query > Edit or OK.<br />
If you are filtering list data, select the desired data in the results list, and click Add.<br />
If you are filtering field data, select the desired data in the results list, and click +.<br />
25
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
26<br />
NOTE<br />
If you are selecting data for a single-value field, selecting the data from the<br />
results list automatically adds the data to the selection list, closes the data filter,<br />
and adds the data as the field value.<br />
If the search returns one result in the results list, the data is automatically added<br />
to the selection list, requiring you to confirm the selection by clicking OK or Add.<br />
To remove selected data in the selection list, click X.<br />
3 To apply the data in the selection list as the field value(s), click OK or Add. If the field is<br />
multi-valued, click Add. The data displays as the field value(s).<br />
To cancel the selection and close the data filter, click Cancel.<br />
To select a configuration management project in the GUI<br />
1 Do one of the following:<br />
Open the Projects view.<br />
Perform an operation that requires a project selection, and click Select. The Select a<br />
Project dialog box displays.<br />
The view or selection dialog box is similar to the following.<br />
To hide the My projects list, click , and to display a hidden My projects list, click .<br />
2 If you are selecting subprojects, click + to display the subprojects for a project and select<br />
the subproject(s) required. Proceed to step 5.<br />
3 If you are searching for top-level projects, type a project name in the Show projects<br />
containing text filter. A list of projects displays in the search results list, becoming more<br />
specific as you type.
TIP Because project names include the project path, you can type in directory names<br />
to browse through the project directory structure. If you enter multiple names,<br />
separate each name with a space, for example, qa scripts.<br />
Introduction<br />
4 From the results list, select the project(s) that you want to add to the My projects list.<br />
5 To add the selected projects(s) or subproject(s) to the My projects list, click +.<br />
To remove the selected projects(s) or subproject(s) from the My projects list, click X. To<br />
replace all projects or subprojects in the My projects list with projects or subprojects that<br />
are selected in the results list, click .<br />
NOTE If you are selecting a project for a single-value field, the project automatically<br />
displays in the My projects list and the +, X, and buttons are disabled.<br />
6 If you are selecting a project for a field, to add the project or subproject in the My projects<br />
list to the field, click OK. The project or subproject displays in the field.<br />
Working With Favorites<br />
To find workflow and document objects (queries, charts, reports, and dashboards) that you<br />
created and use, you configure these objects as favorites. In the relevant view, favorites<br />
display with the my favorites filter (for more information, see “Filtering Data” on page 18).<br />
In the GUI and Web interface, favorites are indicated by and non-favorite objects by . By<br />
default, all objects created by you are configured as favorites.<br />
Key Considerations<br />
Objects can be shared; however, favorite settings are specific to each user or group.<br />
To configure an object as a favorite, it does not have to be shared or a system provided<br />
object.<br />
A Quick Query is a non-configurable favorite.<br />
For queries, the concepts of favorites and non-favorites replace the concepts of hidden<br />
and shown that existed in previous releases. In the GUI, you can run favorite and nonfavorite<br />
queries because the data filter allows you to select both types. In the Web<br />
interface, you can only run favorite queries because the data filter is not available for<br />
selecting queries. If you attempt to run a non-favorite query, you are prompted to<br />
configure the selected query as a favorite. Clicking Yes configures the query as a favorite<br />
and runs it.<br />
In the CLI, creating an object is the only way to configure it as a favorite. In addition,<br />
favorites and non-favorites are not indicated.<br />
27
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
Display Patterns<br />
28<br />
To configure an object as a favorite or non-favorite<br />
1 From the Charts, Dashboards, Queries, or Reports view, select the object.<br />
2 Select Add To Favorites or Remove From Favorites from the Query, Report, Chart, or<br />
Dashboard menu.<br />
Display patterns allow you to assign a format to numeric values, for example, to a computed<br />
expression used in a chart. Display patterns quantify numeric values, for example, as<br />
currency or percentages. The <strong>MKS</strong> <strong>Integrity</strong> Client automatically detects your locale,<br />
displaying the relevant currency symbol in the Display Pattern list, in addition to other<br />
sample display patterns.<br />
A display pattern used in a computed expression that assigns a dollar amount to the field<br />
value.<br />
Key Considerations<br />
Display patterns appear only when viewing items, charts, or reports. For items,<br />
<strong>MKS</strong> <strong>Integrity</strong> stores the integer field as an unformatted numeric value in the database.<br />
Query filters, rules, and trigger assignments display the unformatted, localized version<br />
of the numeric field value.<br />
If the display pattern is invalid, an error message displays. If no display pattern is<br />
specified, the field displays the value in a localized form.
To specify a display pattern<br />
Introduction<br />
Select a display pattern from the Display Pattern list and modify it, or create one by<br />
combining a currency symbol, text that represents a measurement, and/or one or more of the<br />
following characters:<br />
Symbol Description<br />
0 Displays as a zero in the output. For example, a display pattern of 000.00 displays an<br />
input value of 12.14 as 012.14 in the numeric field.<br />
# Displays as a digit in the output. If the digit is a zero and it is leading or trailing the<br />
input value, it is left out of the value displayed in the numeric field. For example, a<br />
display pattern of #0.00 displays an input value of 0.126 as 0.13 in the numeric<br />
field.<br />
. Locale specific decimal separator. For example, a display pattern of #,###.00<br />
displays an input value of 12345.123 as 12,345.12 in the numeric field.<br />
- Minus sign. For example, a display pattern of -#### displays an input value of 1234<br />
as -1234 in the numeric field.<br />
, Locale specific grouping separator. For example, a display pattern of $#,###<br />
displays an input value of 12345.123 as $12,345 in the numeric field of a U.S.<br />
locale and $12.345 in the numeric field of a German locale.<br />
E Scientific notation. For example, a display pattern of 0.###E0 displays an input value<br />
of 123456 as 1.235E5 in the numeric field.<br />
; Separates positive and negative patterns. For example, a display pattern of<br />
#, ###;(#,###) displays an input value of -12345 as (12,345) in the numeric<br />
field.<br />
% Multiplies by 100 and displays as a percentage. For example, a display pattern of<br />
"#.# '%'" displays an input value of 0.06 as 6% in the numeric field. To display 60%,<br />
select a display pattern of #% and type an input value of .6.<br />
‘ Escapes special characters. Use '' to create a single quote.<br />
<strong>Server</strong> Connections<br />
The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client permits connections to multiple <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong>s, allowing you to manage and configure multiple servers in the same session.<br />
29
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
30<br />
To connect to an <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
CLI EQUIVALENT integrity admingui<br />
1 Select File > <strong>Server</strong> Connection > Connect. The Specify <strong>Server</strong> Connection dialog box<br />
displays.<br />
NOTE If your preferences are not set to prompt a server connection, the Specify<br />
<strong>Server</strong> Connection dialog box does not appear.<br />
2 In the Host Name field, type the name of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> you want to connect<br />
to.<br />
3 In the Port Number field, type the port number.<br />
4 To accept the server information, click OK. The Enter Credentials dialog box displays.<br />
5 In the User Name field, type your user name. Your user name displays by default in the<br />
User Name field.<br />
6 In the Password field, type your password.<br />
7 To accept the user information, click OK. A connection with the server is established.<br />
NOTE Once you connect to another server, you can open a new window for<br />
configuring permissions, Workflows and Documents, and Configuration<br />
Management on that server. To open a new window, select Tools > <strong>Administration</strong>.<br />
Upon restarting the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, view settings are<br />
automatically restored and you are prompted to connect to the server or servers<br />
used during the previous session.<br />
To verify your connection, select File > <strong>Server</strong> Connection. If you are connected, your<br />
user name, server name, and port number appear in the <strong>Server</strong> Connection menu.<br />
IMPORTANT In the <strong>Server</strong> Connection menu, the active connection displays with a<br />
bullet next to the connection information. If the bullet does not appear, you are not<br />
connected to the server.<br />
In the lower right corner of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, the following three<br />
icons indicate the status of the server:<br />
Icon Type of <strong>Server</strong> Connection<br />
Connected to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
You are logged in and have an active client session.
Print Functions<br />
Icon Type of <strong>Server</strong> Connection<br />
To disconnect from an <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
CLI EQUIVALENT integrity disconnect<br />
1 Select File > <strong>Server</strong> Connection, and select the target server from the list.<br />
Introduction<br />
2 Select File > <strong>Server</strong> Connection > Disconnect. A dialog box notifies you that other client<br />
applications may be using this connection and asks you to confirm that you want close<br />
all connected views and disconnect your server connection.<br />
NOTE When you disconnect, all views for that connection close. New views either<br />
use the current connection or ask for credentials as defined in the preferences.<br />
3 To disconnect from the server, click Yes. The target server disconnects.<br />
The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client provides print functionality for details in some<br />
views. When working in views, if the view can be printed the print function is available by<br />
selecting File > Print from the menu or by clicking the print button ( ) on the toolbar.<br />
To print view information from the GUI<br />
1 Display the view you want to print.<br />
Disconnected from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
You have logged out and closed your client session.<br />
Offline from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
The connection to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> has been dropped or the<br />
network connection is down.<br />
TIP When printing view information, resize the window width to fit columns, and<br />
resize the column widths to fit cell contents.<br />
2 With the desired information displayed in the window, select File > Print. The Print<br />
dialog box displays.<br />
3 If necessary, select the required options under the General, Page Setup, and Appearance<br />
tabs.<br />
31
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
32<br />
TIP To fit more information on a page, change the paper orientation to landscape to<br />
accommodate larger window widths, decrease page margins to fit more information<br />
on a page, and, if your printer supports multiple page sizes, select a larger paper<br />
size.<br />
4 Click OK to print. The displayed information prints.<br />
NOTE Information from rows is not split across multiple printed pages.<br />
Each printed page contains a header that displays the user ID of the person printing the<br />
document, the window title, and the printing date. Each printed page is numbered in the<br />
footer.<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Alert Messages<br />
From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, you can send alert messages to all users<br />
currently logged in to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. Sending alert messages is useful for<br />
notifying users about important information, such as an impending server upgrade in which<br />
the server will be shut down.<br />
Key Considerations<br />
You need the mks:Admin<strong>Server</strong> permission to create and clear alert messages. For a<br />
proxy server, you need the mks:im:AdminProxy or mks:si:AdminProxy permission.<br />
You can create one message for a given server at a single time. Creating a new message<br />
deletes the previous message.<br />
Alert messages are stored in the server’s memory. If the server shuts down, the message<br />
is deleted.<br />
If a user connects to the server after a message is sent, the user still receives the message.<br />
Alert messages are plain text only and allow a maximum 4000 KB.<br />
In the Web interface, the date displayed for an alert message is the server’s date, time,<br />
and time zone. In the GUI and CLI, the date displayed for an alert message is the client’s<br />
date, time, and time zone.<br />
To create an alert message in the GUI<br />
CLI EQUIVALENT integrity setserveralert<br />
1 From the tree pane, select the Alert node. The <strong>Server</strong> Alert pane displays.
Introduction<br />
2 To set the alert message, select Alert > Set. The Set Alert to Broadcast dialog box appears,<br />
displaying who the alert is from (the currently logged in user) and which server the alert<br />
is sent to (the currently connected server).<br />
3 In the text field, type the message you want to send.<br />
4 To send the alert, click OK. The alert is sent.<br />
To view an alert message in the GUI<br />
CLI EQUIVALENT im/si/aa viewserveralert, im/si/aa<br />
serveralerts<br />
If you are working in the <strong>MKS</strong> <strong>Integrity</strong> Client with the <strong>MKS</strong> system tray or Web interface for<br />
workflows and documents, alert messages appear in a window at the bottom of the interface.<br />
NOTE In the <strong>MKS</strong> <strong>Integrity</strong> Client with system tray, you can view alert messages for<br />
all of the servers you are currently connected to by right-clicking the system tray<br />
icon and selecting <strong>Server</strong> Alerts.<br />
The alert message displays who sent the message, the server it came from, when it was sent,<br />
and the message. Alert messages are plain text only and do not support rich content. If there<br />
is more than one message, the top of the alert message window indicates message # of #, with<br />
"previous" and "next" arrow buttons that cycle through the messages. To close the alert<br />
message window, click X or the Esc key.<br />
Users working in the CLI, Web interface for configuration management, and <strong>MKS</strong> <strong>Integrity</strong><br />
Client without the <strong>MKS</strong> system tray must manually check for alert messages from the CLI.<br />
For more information, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI Reference <strong>Guide</strong> for Workflows and<br />
Documents, <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI Reference <strong>Guide</strong> for Configuration Management, or<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> <strong>Administration</strong> CLI Reference <strong>Guide</strong>.<br />
TIP To avoid manually checking alert messages from the command line, launch the<br />
alert messages dialog box from the command line by specifying -g or --gui and<br />
keep the dialog box open. The dialog box automatically refreshes to display new<br />
alert messages.<br />
33
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
Preferences<br />
34<br />
To clear an alert message in the GUI<br />
CLI EQUIVALENT integrity setserveralert<br />
1 From the tree pane, select the Alert node. The <strong>Server</strong> Alert pane appears, displaying the<br />
current alert message.<br />
2 Select Alert > Clear. The alert message is removed from the <strong>Server</strong> Alert pane.<br />
NOTE If no alert message exists, the Clear command is unavailable.<br />
The <strong>MKS</strong> <strong>Integrity</strong> Client contains a common Preferences Configuration window that<br />
displays in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client and <strong>MKS</strong> <strong>Integrity</strong> Client. The<br />
Preferences Configuration window allows you to configure preferences for each component<br />
installed on your local machine.<br />
Options that appear in bold are those set by you. You can reset the default settings by clicking<br />
the Clear Local Settings button (available only on the applicable panels).<br />
Select a component to configure:<br />
NOTE Regardless of which component(s) you installed, preferences for all<br />
components appear in the Preferences Configuration window.<br />
To configure <strong>MKS</strong> <strong>Integrity</strong> Client preferences, see “<strong>MKS</strong> <strong>Integrity</strong> Client Preferences”<br />
on page 35.<br />
To configure server preferences, see “<strong>Server</strong> Preferences” on page 37.<br />
To configure <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client preferences, see “<strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client Preferences” on page 38.
Preferences<br />
To configure workflow and document preferences, refer to the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User<br />
<strong>Guide</strong>.<br />
To configure Deploy preferences, refer to the <strong>MKS</strong> Deploy <strong>2009</strong> <strong>Administration</strong> <strong>Guide</strong>.<br />
To configure workflow and document preferences, refer to the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User<br />
<strong>Guide</strong>.<br />
To configure Authorization <strong>Administration</strong> preferences, see “Authorization<br />
<strong>Administration</strong> Preferences” on page 41.<br />
Option Prompts<br />
If a command is configured to prompt you to confirm or specify an option, the confirmation<br />
dialog box that displays when you run the command allows you to save your response so<br />
that you are not prompted again. If necessary, the option can be modified again from the<br />
command’s main dialog box, wizard, or command options in the Preferences dialog box.<br />
<strong>MKS</strong> <strong>Integrity</strong> Client Preferences<br />
You can set the following preferences for the <strong>MKS</strong> <strong>Integrity</strong> Client, which are applied to each<br />
component you installed:<br />
look and feel of the GUI<br />
time delay for pop-up windows<br />
memory heap size<br />
commands<br />
To set <strong>MKS</strong> <strong>Integrity</strong> Client preferences from the GUI<br />
CLI EQUIVALENT integrity setprefs<br />
1 Select Tools > Preferences. The Preferences Configuration window displays.<br />
2 In the tree pane, under <strong>Integrity</strong> Client, select the General node. The General pane<br />
displays.<br />
To set the appearance of the GUI, select an option from the Look and Feel list. The<br />
available choices are System, Windows (available for windows clients only), Motif,<br />
and Metal.<br />
To set the time in milliseconds before a command’s status displays in the GUI, type<br />
a numeric value in the GUI field under Popup Status Delay, or use the up and down<br />
arrows to select a value. The default value is 2500.<br />
35
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
36<br />
To set the time in milliseconds that a command’s status displays in the CLI, type a<br />
numeric value in the CLI field under Popup Status Delay, or use the up and down<br />
arrows to select a value. The default value is 0.<br />
To close and shut down the <strong>MKS</strong> <strong>Integrity</strong> Client when using the Close Window<br />
command or clicking the X at the top right-hand corner of the <strong>MKS</strong> <strong>Integrity</strong> Client<br />
window, enable the option for Exit on Close. This option is disabled by default.<br />
To set the maximum amount of memory reserved for the <strong>MKS</strong> <strong>Integrity</strong> Client at<br />
run time, under Miscellaneous in the Maximum heap size field, enter a value in<br />
megabytes, or use the up and down arrows to select a value. The minimum value is<br />
5 MB, and the maximum value depends on your available system memory. The<br />
default value is 96 MB.<br />
CAUTION Changing the heap size setting may unfavorably affect the performance of<br />
the <strong>MKS</strong> <strong>Integrity</strong> Client and your system. Consult your administrator before<br />
making changes.<br />
On Windows, you can enable or disable an <strong>MKS</strong> <strong>Integrity</strong> Client system tray icon<br />
that indicates the <strong>MKS</strong> <strong>Integrity</strong> Client is running by toggling the Enable System<br />
Tray Icon option. When enabled, you can also perform some basic <strong>MKS</strong> <strong>Integrity</strong><br />
Client commands by right clicking the <strong>MKS</strong> <strong>Integrity</strong> Client icon. The <strong>MKS</strong> <strong>Integrity</strong><br />
Client system tray icon is enabled by default.<br />
3 To save your preferences, click OK.<br />
NOTE You must restart the <strong>MKS</strong> <strong>Integrity</strong> Client for the new preferences to take<br />
effect.<br />
To set <strong>MKS</strong> <strong>Integrity</strong> Client command preferences from the GUI<br />
CLI EQUIVALENT integrity setprefs<br />
1 Select Tools > Preferences. The Preferences Configuration window displays.<br />
2 In the tree pane, under <strong>Integrity</strong> Client, open the Commands folder and select a node:<br />
Disconnect From <strong>Server</strong> causes the <strong>MKS</strong> <strong>Integrity</strong> Client to confirm when you<br />
disconnect from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. To enable this option, select Confirm<br />
Disconnect.<br />
Exit causes the <strong>MKS</strong> <strong>Integrity</strong> Client to confirm that all open <strong>MKS</strong> <strong>Integrity</strong> Client<br />
components (configuration management, workflow and document management,<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, and Authorization <strong>Administration</strong>) close and<br />
shut down.<br />
3 To save your preferences, click OK.
<strong>Server</strong> Preferences<br />
Preferences<br />
To address the needs of geographically dispersed organizations, the <strong>MKS</strong> <strong>Integrity</strong> Federated<br />
<strong>Server</strong> architecture (FSA) serves configuration management client requests through a<br />
proxy. The proxy provides access to project members residing on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
by retrieving information from its local cache or, if changes are detected, directly from the<br />
server.<br />
The Proxies node in the <strong>Server</strong>s folder allows you to configure proxy preferences.<br />
For a detailed discussion about using a proxy, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation<br />
and Configuration <strong>Guide</strong>.<br />
To set proxy preferences from the GUI<br />
CLI EQUIVALENT integrity setprefs<br />
1 Select Tools > Preferences. The Preferences Configuration window displays.<br />
2 In the tree pane under <strong>Integrity</strong> Client, open the <strong>Server</strong>s folder, and select the Proxies<br />
node. The Proxies pane displays.<br />
3 Configure the available options:<br />
NOTE The names direct and default in any case, or combination of cases, cannot<br />
be used as proxy host names.<br />
Spaces and commas are invalid characters in the Host Name field.<br />
Host names and port numbers must match to connect to a proxy successfully. If you<br />
provide an incorrect port number, <strong>MKS</strong> <strong>Integrity</strong> does not search for the correct one.<br />
a) Select Use same username and password for proxy and server if you want the same<br />
user name and password to be used when connecting to both the proxy and server.<br />
Selecting this option does not necessarily ensure that <strong>MKS</strong> <strong>Integrity</strong> prompts you<br />
only once for your user name and password. If the authentication schemes used do<br />
not match, <strong>MKS</strong> <strong>Integrity</strong> prompts you for your user name and password again.<br />
b) Select Always confirm proxy username and password if you want <strong>MKS</strong> <strong>Integrity</strong> to<br />
prompt you for the user name and password each time you connect to the proxy.<br />
c) Select Reuse current proxy username and password for all connections if you want<br />
to use the same proxy user name and password when connecting to multiple remote<br />
servers.<br />
d) Select Use default proxy for all unlisted connections if you want to specify the proxy<br />
server as the default server for unlisted connections. This option is only enabled<br />
when you complete the details for a default proxy described next.<br />
e) To specify a default proxy, under Default proxy complete the following:<br />
37
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
38<br />
In the Host Name field, type the name of the server, or the numerical IP address.<br />
In the Port field, type the port number. If you do not specify a port number, or<br />
use 0 as the port number, <strong>MKS</strong> <strong>Integrity</strong> assumes a direct connection.<br />
f) To configure multiple servers to connect to, under <strong>Server</strong> do the following:<br />
Click Add to display the Add new server connection dialog box.<br />
In the Host Name field type the name of the server or the numerical IP address.<br />
In the Port field, type the port number.<br />
g) Select the type of connection you want.<br />
Direct connection specifies connecting without a proxy.<br />
Use default proxy specifies connecting using the proxy specified as the default<br />
on the Proxy panel.<br />
To specify a different proxy, select Proxy and complete the Host Name and Port<br />
fields.<br />
h) Click OK to save the server details and return to the Proxy panel. The server displays<br />
in the <strong>Server</strong> list with the connection details that you selected displayed below it.<br />
You can review the server details for each server you configure by selecting it from<br />
the list.<br />
TIP To edit a previously configured server, select it from the <strong>Server</strong> list, and click Edit.<br />
Edit the server details as required, and click OK to save your changes.<br />
To delete a previously configured server, select it from the <strong>Server</strong> list, and click<br />
Delete. The server name is removed from the <strong>Server</strong> list.<br />
4 To save your preferences, click OK.<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client Preferences<br />
You can set the following preferences for the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client:<br />
restore desktop<br />
main toolbar<br />
server connection<br />
To set <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client desktop preferences from the GUI<br />
CLI EQUIVALENT integrity setprefs<br />
1 Select Tools > Preferences. The Preferences Configuration window displays.
2 In the tree pane, select the Desktop node. The Desktop pane displays.<br />
Preferences<br />
3 To restore all active windows when you restart the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client,<br />
select the Restore Desktop option.<br />
IMPORTANT To activate the Restore Desktop option, you must restart the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
The Restore Desktop option remembers which windows were open when you last exited<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client. When you restart the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client, the active windows appear automatically in the main view.<br />
Restore Desktop remembers up to ten windows.<br />
4 To save your preferences, click OK.<br />
To set <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client toolbar preferences from the GUI<br />
1 Select Tools > Preferences. The Preferences Configuration window displays.<br />
2 In the tree pane, select the Desktop node. The Desktop pane displays.<br />
3 Click Toolbar. The Configure toolbar for: Desktop View dialog box displays.<br />
4 Do the following if you want to customize the main toolbar:<br />
a) To add a button to the main toolbar:<br />
Under Available Buttons, select the desired button.<br />
Under Toolbar Contents, select the button you want the new button to appear<br />
beside.<br />
Click Add. The target button moves to the list of Toolbar Contents and displays<br />
on the main toolbar.<br />
b) To remove a button from the main toolbar:<br />
Under Toolbar Contents, select the target button.<br />
Click Remove. The target button moves to the list of Available Buttons and no<br />
longer displays on the main toolbar.<br />
c) To add a separator:<br />
Under Toolbar Contents, select the button you want the separator to appear<br />
beside.<br />
Under Available Buttons, select a separator.<br />
Click Add. A separator is added at the specified location under Toolbar<br />
Contents.<br />
On the main toolbar, the separator is positioned to the right of the existing button or<br />
separator. You can remove the separator the same way as removing a button.<br />
39
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
40<br />
d) To change the sequence of a button or separator:<br />
Remove it from the Available Buttons list.<br />
Add it to the desired location.<br />
5 To accept the changes, click OK. The Configure toolbar for: Desktop View dialog box<br />
closes.<br />
6 To save your preferences, click OK. Your changes display immediately on the main<br />
toolbar.<br />
To set <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client connection preferences from the GUI<br />
CLI EQUIVALENT integrity setprefs<br />
1 Select Tools > Preferences. The Preferences Configuration window displays.<br />
2 In the tree pane, select the Connection node. The Connection pane displays.<br />
3 Configure the following options:<br />
a) Under Default <strong>Server</strong> Connection, specify the following options:<br />
To specify a default <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> to connect to, in the Host Name field<br />
type the name of the server or the numerical IP address.<br />
In the Port field, type the port number.<br />
To be prompted for the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> name and port number each time<br />
you log in to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, select the Prompt for<br />
Host Name and Port option.<br />
b) Under User, specify the following options:<br />
In the User Name field, type the user name you want to set as the default user.<br />
In the Password field, type a password for the user.<br />
To be prompted for the default user name each time you log in to the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, select the Prompt for: User Name option.<br />
To be prompted for the password each time you log in to the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client, select the Prompt for: Password option.<br />
NOTE If the security realm at your site is Windows Single Sign-On (NTSS), the<br />
Prompt for: User Name and Prompt for: Password options are ignored, unless you<br />
specify a user name that is different than the logged in user name. For information<br />
on security realms, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration<br />
<strong>Guide</strong>.<br />
4 To save your preferences, click OK.
Setting <strong>MKS</strong> <strong>Integrity</strong> View Preferences<br />
Preferences<br />
You can also modify <strong>MKS</strong> <strong>Integrity</strong> views by setting preferences through the <strong>MKS</strong> <strong>Integrity</strong><br />
Client.<br />
To set view preferences in the <strong>MKS</strong> <strong>Integrity</strong> Client<br />
CLI EQUIVALENT integrity setprefs<br />
1 Open the <strong>MKS</strong> <strong>Integrity</strong> Client, and select Tools > Preferences. The Preferences<br />
Configuration panel displays.<br />
2 Expand the Views directory for a component, and choose the view you want to<br />
configure.<br />
3 Configure the options as required. For detailed information on Authorization<br />
<strong>Administration</strong> options, see “Authorization <strong>Administration</strong> Preferences” on page 41. For<br />
detailed information on other options, see the <strong>MKS</strong> <strong>Integrity</strong> Client <strong>2009</strong> Getting Started<br />
<strong>Guide</strong>.<br />
4 To save your preferences, click OK.<br />
Authorization <strong>Administration</strong> Preferences<br />
For Authorization <strong>Administration</strong>, you can configure the default settings for connecting to<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
To configure Authorization <strong>Administration</strong> preferences from the GUI<br />
CLI EQUIVALENT integrity setprefs<br />
1 Select Tools > Preferences. The Preferences Configuration window displays.<br />
2 In the tree pane under Authorization <strong>Administration</strong>, select the Connection node. The<br />
Connection pane displays.<br />
3 Configure the following options:<br />
a) Under Default <strong>Server</strong> Connection, specify the following options:<br />
To specify a default <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> to connect to, in the Host Name field<br />
type the name of the server or the numerical IP address.<br />
In the Port field, type the port number.<br />
To be prompted for the default <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> name and port number<br />
each time you log in to Authorization <strong>Administration</strong>, select the Prompt for<br />
Host Name and Port option.<br />
41
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
Deploy Preferences<br />
42<br />
b) Under User, specify the following options:<br />
In the User Name field, type the user name you want to set as the default user.<br />
In the Password field, type a password for the user.<br />
To be prompted for the default user name each time you log in to Authorization<br />
<strong>Administration</strong>, select the Prompt for: User Name option.<br />
To be prompted for the default password each time you log in to Authorization<br />
<strong>Administration</strong>, select the Prompt for: Password option.<br />
NOTE If the security scheme at your site is Windows Single Sign-On (NTSS), the<br />
Prompt for: User Name and Prompt for: Password options are ignored unless you<br />
specify a user name that is different than the logged in user name. For information<br />
on security schemes, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration<br />
<strong>Guide</strong>.<br />
4 To save your preferences, click OK.<br />
To use features set in the Deploy preferences, you must be licensed for Deploy. For more<br />
information, see the <strong>MKS</strong> Deploy <strong>2009</strong> <strong>Administration</strong> <strong>Guide</strong>.<br />
<strong>Administration</strong> Command Line Interface<br />
The CLI is a program that allows a user to enter keywords as instructions to a computer or<br />
device to perform specific tasks. (The MS-DOS® command prompt is an example of a CLI.)<br />
Results are typically output as simple text to the user’s terminal. More specifically, the CLI<br />
provides the means for you to enter <strong>MKS</strong> commands through a text-based interface. The<br />
primary use of the CLI is for scripting. The CLI is also useful for environments where no GUI<br />
is available.<br />
In addition to the functionality provided through the GUI for the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client, you can also perform certain tasks through the CLI.<br />
For a complete description of the commands and their options, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
<strong>2009</strong> <strong>Administration</strong> CLI Reference <strong>Guide</strong>.
Defining Rules<br />
Rule Format<br />
Defining Rules<br />
As administrator, you construct and manage rules that govern how items move through your<br />
development cycle. The logic that governs these rules is defined in a number of places within<br />
<strong>MKS</strong> <strong>Integrity</strong>:<br />
user notification rules<br />
group notification rules<br />
field editability and relevance<br />
rule-based event triggers<br />
rule-based field relationships.<br />
NOTE For information on defining rules for rule-based field relationships, see “To<br />
create a rule-based field relationship in the GUI” on page 148.<br />
A rule is a statement that sets a specified outcome when certain conditions are met. In the<br />
GUI, rules are composed of nodes and conditions. Nodes are the logical connectors that<br />
describe the relationship between two statements (or conditions). Conditions are a statement<br />
of the requirements that must be satisfied, and can involve either user or field values.<br />
The logical and node indicates that all of the specified conditions must be true to meet the<br />
requirements of the rule.<br />
The logical or node indicates that one or more of the specified conditions must be true to<br />
meet the requirements of the rule.<br />
The specific placement of the logical node is important to determining how it affects the<br />
meaning of the rule.<br />
Example<br />
The following example shows an e-mail notification rule that asks <strong>MKS</strong> <strong>Integrity</strong> to notify the<br />
user (administrator) each time a new change request is created or whenever a defect is<br />
assigned to the user. With the or node, the notification occurs whenever either of the events<br />
occurs.<br />
43
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
44<br />
The use of [New Value] in a rule condition indicates a change in a field value. One part of<br />
the condition indicates the field value before the change, and the other part indicates the<br />
value after the change. For example, in the rule above, Assigned User Assigned<br />
User[New Value] indicates that the new value of the Assigned User field is not equal to<br />
what it was before the item was saved. In other words, the value of the Assigned User field<br />
was changed during the item edit.<br />
Working With Conditions<br />
When working with conditions, the meaning of the operator depends on whether the field<br />
you are using in the rule is single or multi valued.<br />
Operator Description<br />
= Equals (single-valued fields)<br />
Contains (multi-valued fields)<br />
Valid Operators<br />
Does not equal (single-valued fields)<br />
Does not contain (multi-valued fields)<br />
> Greater than (single-valued fields)<br />
Contains at least one element greater than (multi-valued fields)<br />
>= Greater than or equal (single-valued fields)<br />
Contains at least one element greater than or equal to (multi-valued fields)<br />
< Less than (single-valued fields)<br />
Contains at least one element less than (multi-valued fields)<br />
To create a condition involving field values<br />
NOTE For information on creating conditions for rule-based field relationships, see<br />
“To create a rule-based field relationship in the GUI” on page 148.<br />
1 Open the dialog box or panel where you are defining the rule.<br />
Defining Rules<br />
2 Select And or Or, depending on the type of logical connector you want to use between<br />
conditions.<br />
NOTE If you are creating a rule with only one condition, you do not need to select<br />
And or Or.<br />
Swap replaces the selected node with the opposite node. For example, swapping an Or<br />
node replaces it with an And node.<br />
Remove deletes the selected node.<br />
3 Under Condition, select one of the following:<br />
Compare the value of a field with a constant<br />
Compare the value of a field with the value of another field<br />
4 Select the operator from the list.<br />
5 Specify fields and field values for the condition.<br />
NOTE You cannot specify <strong>MKS</strong> <strong>Integrity</strong> project and attachment fields in conditions.<br />
a) To choose a value for a date field, click Change. The Specify Date or Time dialog box<br />
displays.<br />
b) Do one of the following:<br />
Select a date from the calendar. If the date field is configured to display the time<br />
and you want to include it, select the Show time option (if not already enabled)<br />
and include a time from the calendar. The Show time option is enabled by<br />
default.<br />
Select now to specify the current date and time. This option displays only if the<br />
date field is configured to display the date and time.<br />
Select today to specify the current date and a time of 00:00:00 (midnight). This<br />
option can be specified for a date field or a date field configured to display the<br />
date and time.<br />
Select none to specify an empty value for the date field.<br />
6 For each field, specify an Existing Value or a New Value.<br />
45
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
46<br />
7 When you are finished constructing the condition, click Add. The condition displays<br />
under the selected node.<br />
NOTE You cannot specify configuration management project and attachment fields<br />
in conditions.<br />
For more information on operators, see “Valid Operators” on page 44.<br />
For more information on using the data filter to select fields, see “Filtering Data” on page 18.<br />
To create a condition involving user groups<br />
8 Under Condition, select Check the group membership of the user performing<br />
the action.<br />
9 Select is or is not from the list.<br />
10 Select a group name from the a member of list. For detailed information on using the<br />
data filter, see “Filtering Data” on page 18.<br />
11 When you are finished constructing the condition, click Add. The condition displays<br />
under the selected node.<br />
To create a condition involving type properties<br />
NOTE This condition is commonly defined to view solution-specific item types. It<br />
can also be used in rules (except query rules) and expanded in report templates. To<br />
learn more about solution options and licensing, refer to the applicable solution<br />
guide.<br />
1 Under Condition, select Check a property associated with the item's type.<br />
2 Select a type property name from the filtered list. For information on using the data<br />
filter, see “Filtering Data” on page 18.<br />
3 Select the operator from the list (see “Valid Operators” on page 44).<br />
4 Enter a value for the property in the subsequent field.<br />
5 When you are finished constructing the condition, click Add. The condition displays<br />
under the selected node.<br />
To create a pre-condition associated with a document<br />
1 Under Condition, select Check a pre-condition associated with a document.<br />
2 Select an item type from the filtered list of document item types.<br />
For information on using the data filter, see “Filtering Data” on page 17.
Selecting Rules<br />
Viewing <strong>Administration</strong> History<br />
3 When you are finished constructing the condition, click Add. The document model<br />
condition displays in the text box.<br />
To learn about the various document item types and artifact classification, for example,<br />
defining types as meaningful and non-meaningful, see “Setting Up Documents” on<br />
page 97.<br />
There is a full set of use cases associated with the creation of pre-conditions, rules, and<br />
triggers available in the ALM section of the <strong>MKS</strong> Customer Community Knowledge<br />
Base found at http://www.mks.com/community.<br />
To replace an existing condition with a new one<br />
1 Select the existing condition.<br />
2 Construct the condition as described earlier.<br />
3 Click Replace. A confirmation dialog box displays.<br />
4 To confirm the replacement, click Yes.<br />
When working with rules, you can copy them from other existing items, such as users,<br />
groups, fields, or triggers.<br />
The Rule Selection dialog box allows you to select an item to copy an existing rule from.<br />
To select a rule in the GUI<br />
NOTE The Rule Selection dialog box for Users and Groups includes options that<br />
change the item type that rules are copied for. This allows you to copy group rules<br />
to a user or copy user rules to a group.<br />
1 In the Objects with Rules list of the Rule Selection dialog box, select the item you want to<br />
copy conditions from. If the user has conditions, that user displays in the Preview area.<br />
2 Click OK. The rule displays in the panel.<br />
3 Repeat as necessary to add more rules.<br />
Viewing <strong>Administration</strong> History<br />
Setting up workflows and documents involves modifying a number of administrative objects<br />
to customize the configuration to suit your work environment. Workflow and document<br />
administrative objects are users, groups, dynamic groups, projects, states, types, fields,<br />
triggers, change package types, and change package attributes. Whenever changes are made<br />
47
Chapter 2: <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
48<br />
to these objects, <strong>MKS</strong> <strong>Integrity</strong> tracks the changes and then provides reports on the change<br />
history through the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
Using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, you can view the record of changes through<br />
the History tab in the associated view for each administrative object. The administrative<br />
history displays when you are editing or viewing an administrative objects.<br />
You can also access information in the history through the CLI. To view the history, use the<br />
--showHistory option when viewing or editing administrative objects. By default, the view<br />
and edit commands do not display any history information. For more information on the<br />
CLI, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> <strong>Administration</strong> CLI Reference <strong>Guide</strong>.<br />
In the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, the History tab displays the changes in<br />
chronological order from the first to the most recent and lists the complete record of changes<br />
for that object. The record of changes is also stored in the <strong>MKS</strong> <strong>Integrity</strong> database.<br />
NOTE If you are upgrading from an earlier release, the history of changes is not<br />
shown from the previous installation.<br />
Information displayed under the History tab includes:<br />
user who made the change and the associated date/time information<br />
property of the object that was modified (for example, State object properties include<br />
name, description, image, capabilities, and the history of position or sequence changes)<br />
type of change that was made (one of Changed To, Added, or Removed)<br />
value associated with the modification<br />
NOTE Whenever a user is automatically created during logon, system is shown as<br />
the creator of that user.
C HAPTER THREE<br />
ViewSets<br />
Administering ViewSets for Users<br />
3<br />
This chapter provides information on administering ViewSets for the purpose of making<br />
them available to users from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
For information on how users make use of ViewSets in the <strong>MKS</strong> <strong>Integrity</strong> Client, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> Client <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
This chapter contains the following topics:<br />
“Understanding ViewSets” on page 50<br />
“Viewing ViewSets” on page 51<br />
“Basic ViewSet Operations” on page 54<br />
“Making ViewSets Available to Users” on page 56<br />
“Administering Published ViewSets” on page 62<br />
“ViewSet Permissions” on page 66<br />
“ViewSets FAQ” on page 67<br />
49
Chapter 3: ViewSets<br />
Where to Go Next<br />
50<br />
The following table summarizes the steps you should follow to set up <strong>MKS</strong> <strong>Integrity</strong><br />
ViewSets:.<br />
To Do This … See …<br />
Learn about what ViewSets are, and why they<br />
are used by users.<br />
Learn how to use the ViewSets view, types of<br />
ViewSets, and default samples.<br />
Perform basic ViewSet operations, such as<br />
creating, editing, copying, and deleting.<br />
Publish ViewSets to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> so<br />
that they are available to users.<br />
Manage and configure properties for ViewSets<br />
residing on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Specify permissions for modifying, publishing,<br />
and importing ViewSets.<br />
Troubleshoot problems you are encountering<br />
with administering ViewSets.<br />
Understanding ViewSets<br />
“Understanding ViewSets” on page 50<br />
“Viewing ViewSets” on page 51<br />
“Basic ViewSet Operations” on page 54<br />
“Making ViewSets Available to Users” on<br />
page 56<br />
“Administering Published ViewSets” on page 62<br />
“ViewSet Permissions” on page 66<br />
“ViewSets FAQ” on page 67<br />
A ViewSet is a collection of views in a specific configuration that persists each time the user<br />
opens and closes the <strong>MKS</strong> <strong>Integrity</strong> Client. As an administrator, you have the ability to<br />
control the configuration of ViewSets. Each ViewSet can be designed around one or more<br />
tasks, often corresponding to a specific role, such as a developer or project manager. For<br />
example, a developer ViewSet might contain views and actions for items and queries, while a<br />
project manager ViewSet might contain views and actions for charts, reports, and<br />
dashboards.<br />
It is the ability to specify not just open views, but available menu items (and toolbar buttons)<br />
that launch views, that gives the ViewSet its effectiveness with users. As an administrator for<br />
the ViewSet, you can even limit the level of customization that users are able to perform and<br />
what they see as available to customize.<br />
Depending on your work environment, one of your responsibilities as an administrator may<br />
be creating ViewSets for specific roles in your organization. Once you create a ViewSet, you<br />
can make it available to other users by publishing it on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> (see<br />
“Publishing ViewSets” on page 59). Users can then import the ViewSet using the<br />
<strong>MKS</strong> <strong>Integrity</strong> Client. Users cannot import ViewSets that reside on other <strong>MKS</strong> <strong>Integrity</strong>
Viewing ViewSets<br />
Clients. In addition, you can create mandatory ViewSets that are automatically imported into<br />
each user’s <strong>MKS</strong> <strong>Integrity</strong> Client when it connects to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> (see<br />
“Mandatory ViewSets” on page 61).<br />
<strong>MKS</strong> <strong>Integrity</strong> saves published ViewSet files in XML format in the database.<br />
<strong>MKS</strong> recommends creating and editing ViewSets in the GUI; however, you can retrieve<br />
published ViewSets from the database for manual editing. Once you are finished editing<br />
these files, you can store them in the database.<br />
As an alternative to using the Admin Migration Wizard, you could also retrieve a published<br />
ViewSet from a server, modify it, and place it in another server’s database for use.<br />
To retrieve published ViewSets from the database, use the integrity/im getdbfile<br />
command.<br />
To put published ViewSets in the database, use the integrity/im putdbfile command.<br />
NOTE The integrity putdbfile and getdbfile commands require the<br />
mks:Admin<strong>Server</strong> permission. The im putdbfile and getdbfile commands<br />
require the mks:im:Admin<strong>Server</strong> permission.<br />
For more information on using these commands, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
<strong>Administration</strong> CLI Reference <strong>Guide</strong>.<br />
You can also specify which users and groups are permitted to import, edit, and publish<br />
specific ViewSets (see “ViewSet Permissions” on page 66).<br />
For troubleshooting problems associated with ViewSets, see “ViewSets FAQ” on page 67.<br />
Viewing ViewSets<br />
The ViewSets view is the primary location for administering ViewSets. While you can<br />
perform modifications to some ViewSets from the <strong>MKS</strong> <strong>Integrity</strong> Client, the ViewSets view<br />
provides complete administrative functionality.<br />
NOTE To see the ViewSets view, you need the PublishNewViewSet permission or<br />
permission to modify any server (published) ViewSet. See “ViewSet Permissions”<br />
on page 66.<br />
To open the ViewSets view from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, select the ViewSet<br />
Distribution > ViewSets node. The ViewSets view displays.<br />
51
Chapter 3: ViewSets<br />
52<br />
The ViewSets view displays the following information by default:<br />
Name Description<br />
Published State Displays what type of ViewSet it is, and consequently where the<br />
ViewSet is located (see “ViewSet Types and Locations” on<br />
page 52). The type of the ViewSet determines what operations<br />
you can perform on it.<br />
Name Displays the name of the ViewSet. The system is able to work<br />
with different ViewSets using the same name.<br />
Creator Displays the name of the user who published the ViewSet.<br />
Modified Date The meaning of modified date varies based the type of ViewSet:<br />
ViewSet Types and Locations<br />
Personal ViewSets, is the modified date of the ViewSet on<br />
the server at the time it was installed on the <strong>MKS</strong> <strong>Integrity</strong><br />
Client.<br />
Unpublished ViewSets, is the date the ViewSet was last<br />
edited.<br />
Published ViewSets, is the date the ViewSet was either<br />
published, or its properties edited on the server.<br />
Description Displays a description of the ViewSet, if one was provided for it.<br />
To provide a description for a ViewSet, see “Editing ViewSets”<br />
on page 54 or “Editing ViewSet Attributes” on page 63.<br />
Mandatory Specifies if the ViewSet is mandatory for users who have<br />
permission to import it (see “Mandatory ViewSets” on page 61).<br />
This field only applies to published ViewSets (see<br />
“Administering Published ViewSets” on page 62).<br />
Customizable Specifies if the ViewSet can be customized by users. Note: If a<br />
ViewSet is mandatory, it cannot be set to customizable.<br />
To administer ViewSets, it is important to understand the types of ViewSets and where they<br />
are located.<br />
There are three types of ViewSet: personal, unpublished, and published. A ViewSet changes<br />
type based on the operation performed in the ViewSets view (see “Viewing ViewSets” on<br />
page 51). The following table describes each type of ViewSet:<br />
Type Location Description<br />
Personal <strong>MKS</strong> <strong>Integrity</strong> Client ViewSets stored on (and available to) the<br />
<strong>MKS</strong> <strong>Integrity</strong> Client installed on the same<br />
machine a <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong><br />
Client you are viewing the ViewSets view<br />
from.<br />
Personal ViewSets are only displayed in the<br />
ViewSets view for the purpose of converting<br />
to unpublished ViewSets.
Type Location Description<br />
Unpublished <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client<br />
Default ViewSets<br />
Viewing ViewSets<br />
By default, the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> includes the following role-based ViewSets that may be<br />
useful in your organization:<br />
Configuration Manager<br />
ViewSet for performing advanced software configuration functions. This ViewSet<br />
includes views and actions for projects, Sandboxes, members, change packages, items,<br />
queries, and time entries.<br />
Release Manager<br />
ViewSet for managing deployment. This ViewSet includes views and actions for change<br />
packages, items, queries, and staging and deploy.<br />
Deploy Administrator<br />
ViewSet for staging and deploy administrators. This ViewSet includes views and actions<br />
for projects, and for staging and deploy.<br />
Developer<br />
ViewSet for software developers. This ViewSet includes views and actions for projects,<br />
Sandboxes, members, change packages, items, queries, and time entries.<br />
<strong>Integrity</strong> User<br />
ViewSets modified through the <strong>MKS</strong> <strong>Integrity</strong><br />
Client for the purpose of publishing to the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. These ViewSets have<br />
not yet been published (or have not been<br />
published since they were last fetched or<br />
edited).<br />
Created when a personal ViewSet is edited or<br />
copied from the ViewSets view. Also created<br />
when a published ViewSet is edited, copied,<br />
or fetched.<br />
Important: Unpublished ViewSets are stored<br />
locally on your <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong><br />
Client machine. Until the ViewSets are<br />
published to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, like<br />
any other locally stored data they are subject<br />
to local system failure.<br />
Published <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> ViewSets that have already been published to<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, and are available to<br />
specified users (see “Administering Published<br />
ViewSets” on page 62).<br />
ViewSet for creating, updating, and monitoring items. This ViewSet includes views and<br />
actions for change packages, items, queries, charts, reports, and dashboards.<br />
53
Chapter 3: ViewSets<br />
54<br />
IBM i Developer<br />
ViewSet for reviewing System i source changes. This ViewSet includes views and limited<br />
actions for projects, members, change packages, items, and queries. For more<br />
information on working with Implementer and source management, see the<br />
<strong>MKS</strong> Implementer <strong>2009</strong> User <strong>Guide</strong>.<br />
Basic ViewSet Operations<br />
This section covers basic operations that you can perform on ViewSets:<br />
“Creating ViewSets” on page 54<br />
“Editing ViewSets” on page 54<br />
“Copying ViewSets” on page 55<br />
“Deleting ViewSets” on page 56<br />
Creating ViewSets<br />
Creating a ViewSet from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client saves you the step of<br />
converting a personal ViewSet (created from the <strong>MKS</strong> <strong>Integrity</strong> Client) to an unpublished<br />
ViewSet.<br />
Editing ViewSets<br />
To create a ViewSet using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client interface<br />
1 From the ViewSets view (see “Viewing ViewSets” on page 51), select ViewSet > Create.<br />
The Create ViewSet dialog box displays.<br />
2 In the Name field, type a name for the ViewSet. A name is mandatory, but ViewSet<br />
names do not need to be unique. <strong>MKS</strong> <strong>Integrity</strong> tracks the ViewSet independently of the<br />
name you assign it.<br />
3 To create the ViewSet, click OK. The ViewSet displays in the ViewSets view.<br />
The created ViewSet is empty. To configure it with menus, views, and toolbars, edit the<br />
ViewSet (see “Editing ViewSets” on page 54). The Edit ViewSet GUI is automatically<br />
launched so you can customize the ViewSet (see “Editing ViewSets” on page 54).<br />
Editing a personal or published (server) ViewSet from the ViewSets view creates a local<br />
duplicate and converts it to an unpublished ViewSet. That means that if you edit a published
Basic ViewSet Operations<br />
ViewSet, a local duplicate is created to be edited as an unpublished ViewSet. That<br />
unpublished ViewSet must then be published to replace the original one you edited.<br />
IMPORTANT Unpublished ViewSets are stored locally on your <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client machine. Until the ViewSets are published to the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, like any other locally stored data they are subject to local<br />
system failure.<br />
To edit a ViewSet using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
Copying ViewSets<br />
1 From the ViewSets view (see “Viewing ViewSets” on page 51) select the ViewSet you<br />
want to edit. Then select ViewSet > Edit. The Edit ViewSet GUI displays.<br />
The Edit ViewSet GUI provides you with a way to see and interact with ViewSet<br />
elements to ensure that they appear and behave the way you intended. The Edit ViewSet<br />
GUI saves changes you make to the layout of the tabbed views. For more information on<br />
using the Edit ViewSet GUI, see the documentation for Test ViewSet GUI (see “Testing<br />
ViewSets” on page 61).<br />
NOTE If you fetch or delete a ViewSet while it is open in the Edit ViewSet GUI, the<br />
EditViewSet GUI closes and your changes are lost.<br />
2 To specify what elements are included in the ViewSet, select ViewSet > Customize. The<br />
Customize ViewSet dialog box displays. For information on customizing a ViewSet, see<br />
the <strong>MKS</strong> <strong>Integrity</strong> Client <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
IMPORTANT The customizing ViewSet documentation in the <strong>MKS</strong> <strong>Integrity</strong> Client<br />
<strong>2009</strong> Getting Started <strong>Guide</strong> specifies which functionality is only available through the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
You can copy existing ViewSets to reuse them for new ViewSets you want to create. You can<br />
also create copies of ViewSets as backups, to restore later if you choose to discard changes<br />
you make to a ViewSet.<br />
To copy a ViewSet using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
1 From the ViewSets view (see “Viewing ViewSets” on page 51), select the ViewSet you<br />
want to copy.<br />
2 Select ViewSet > Copy ViewSet. The Copy dialog box displays, where<br />
is the name of the ViewSet you are copying.<br />
55
Chapter 3: ViewSets<br />
Deleting ViewSets<br />
56<br />
3 In the Name field, enter a name for the ViewSet copy. The default name is Copy of<br />
.<br />
To copy the views currently open in the selected ViewSet, enable Copy Open Views.<br />
4 To create the copy, click OK. The new ViewSet copy is created and displays in the<br />
ViewSets view as an unpublished ViewSet. The Edit ViewSet GUI is automatically<br />
launched so you can customize the ViewSet (see “Editing ViewSets” on page 54).<br />
You can delete ViewSets that are no longer needed. Published and unpublished ViewSets can<br />
each be deleted using the ViewSets view.<br />
NOTE Personal ViewSets cannot be deleted using the ViewSets view.<br />
To delete a ViewSet using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
1 From the ViewSets view (see “Viewing ViewSets” on page 51), select the ViewSets you<br />
want to delete.<br />
2 Select ViewSet > Delete. The Delete ViewSet confirmation dialog box displays.<br />
CAUTION You cannot recover a ViewSet once it is deleted.<br />
3 To confirm deletion, click Yes. The ViewSet is deleted and no longer appears in the<br />
ViewSets view.<br />
NOTE Clicking Yes to All only deletes all ViewSets of that particular type.<br />
Making ViewSets Available to Users<br />
There are default ViewSets included on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> for users to download<br />
(“Default ViewSets” on page 53). However, you can customize those ViewSets (or create your<br />
own) and then make them available to users to download.<br />
Some examples of why you might want to distribute ViewSets to users are as follows.<br />
Scenario 1: New <strong>MKS</strong> <strong>Integrity</strong> Client Installation<br />
James Riley has just joined the development team, and he is required to set up his own<br />
development machine. This includes installing the <strong>MKS</strong> <strong>Integrity</strong> Client and using something<br />
called a Developer ViewSet to create a sandbox so he can work on getting the code base to
Making ViewSets Available to Users<br />
compile. James has no idea what a ViewSet is or where to get one. James hopes the ViewSet<br />
comes with the client he is about to install.<br />
Solution: A pre-configured Developer ViewSet is available on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> for<br />
specified users, and it is automatically installed for them on their <strong>MKS</strong> <strong>Integrity</strong> Clients (see<br />
“Default ViewSets” on page 53) when the ViewSet is configured to be mandatory (see<br />
“Mandatory ViewSets” on page 61).<br />
Scenario 2: New Specialized Role<br />
A new performance team has been created with a specialized role that did not previously<br />
exist in your organization. You decide the team can benefit from its own Performance<br />
ViewSet, so that the needed information and functionality is available to the performance<br />
team members.<br />
Solution: Create a Performance ViewSet (see “Creating ViewSets” on page 54) and then<br />
publish it to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, specifying the group that contains the team members<br />
so they have access to import the ViewSet.<br />
Scenario 3: Process Changes to Existing Role<br />
Your organization has been using the <strong>Integrity</strong> User ViewSet for some time, but now a<br />
new process must be implemented. Much of the original ViewSet can still be used though.<br />
Solution: Fetch the <strong>Integrity</strong> User ViewSet from the server, edit it to represent your new<br />
process, and then publish it back to the server so that users can import it (thereby updating<br />
their existing ViewSet) to get the new process changes.<br />
Process Overview<br />
The following overviews describe publishing a new ViewSet and a personal ViewSet.<br />
Publish New ViewSet<br />
The proceeding diagram shows the general process for publishing a new ViewSet. All<br />
functionality is accessed through the ViewSets view (see “Viewing ViewSets” on page 51).<br />
ViewSets View<br />
Create Unpublished Publish<br />
Published<br />
ViewSet<br />
ViewSet<br />
The following is the general process for publishing a new ViewSet.<br />
1 From ViewSets view, create an unpublished ViewSet (see “Creating ViewSets” on<br />
page 54).<br />
57
Chapter 3: ViewSets<br />
58<br />
2 Publish the ViewSet to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> (“Publishing ViewSets” on page 59).<br />
Once the ViewSet is published, users then have access the ViewSet to download and<br />
import into their <strong>MKS</strong> <strong>Integrity</strong> Client.<br />
To update an existing ViewSet already located on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, see “Updating<br />
Published ViewSets” on page 64.<br />
Publish Personal ViewSet<br />
The proceeding diagram shows the general process for taking a client-side ViewSet and<br />
uploading it to the server for users to access. All functionality is accessed through the<br />
ViewSets view (see “Viewing ViewSets” on page 51).<br />
Personal<br />
ViewSet<br />
Convert<br />
Unpublished<br />
ViewSet<br />
Publish<br />
Published<br />
ViewSet<br />
The following is the general process for taking a <strong>MKS</strong> <strong>Integrity</strong> Client ViewSet and<br />
publishing it to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> (so users can access the ViewSet to import):<br />
1 Convert the personal ViewSet to an unpublished ViewSet (see “Converting Personal<br />
ViewSet to Unpublished ViewSet” on page 58).<br />
2 Publish the ViewSet to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> (see “Publishing ViewSets” on page 59).<br />
Once the ViewSet is published, users then have access to the ViewSet to download and<br />
import into their <strong>MKS</strong> <strong>Integrity</strong> Client.<br />
To update an existing ViewSet already located on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, see “Updating<br />
Published ViewSets” on page 64.<br />
Converting Personal ViewSet to Unpublished ViewSet<br />
If you want to publish a ViewSet you created as (or modified from) a personal ViewSet in<br />
your <strong>MKS</strong> <strong>Integrity</strong> Client, it must first be converted to an unpublished ViewSet. For<br />
information on the kinds of ViewSets, see “ViewSet Types and Locations” on page 52.
Making ViewSets Available to Users<br />
To convert a client ViewSet to an unpublished ViewSet, create a copy of the ViewSet from the<br />
ViewSets view (see “Copying ViewSets” on page 55). Any ViewSet created (including<br />
created through copying) is an unpublished ViewSet.<br />
NOTE Personal ViewSets must to be located in the <strong>MKS</strong> <strong>Integrity</strong> Client on the same<br />
machine as the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client to be available for converting to<br />
unpublished ViewSets.<br />
Alternatively, any ViewSet you edit from the ViewSets view in the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client is copied and converted to an unpublished ViewSet for editing (and so<br />
can be published to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>).<br />
Publishing ViewSets<br />
Only unpublished ViewSets can be published to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. For information<br />
on the kinds of ViewSets, see “ViewSet Types and Locations” on page 52. To convert a<br />
personal ViewSet to an unpublished ViewSet, see “Converting Personal ViewSet to<br />
Unpublished ViewSet” on page 58.<br />
To publish a ViewSet using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
CLI EQUIVALENT integrity publishviewset<br />
1 From the ViewSets view (see “Viewing ViewSets” on page 51), select the ViewSet you<br />
want to publish.<br />
2 Select ViewSet > Publish ViewSet. The Publish ViewSet wizard displays Step 1.<br />
Edit the ViewSet attributes as needed. For information on the fields and options, see<br />
“Editing ViewSet Attributes” on page 63.<br />
IMPORTANT <strong>MKS</strong> <strong>Integrity</strong> tracks the ViewSet independently of the name you assign<br />
it. Even if you rename a ViewSet, that same ViewSet is updated (overwritten) when<br />
you publish it again. If you want to retain the original, create and edit a copy of the<br />
ViewSet instead (see “Copying ViewSets” on page 55).<br />
To advance to the next step, click Next.<br />
59
Chapter 3: ViewSets<br />
60<br />
3 Specify how users are able to use the ViewSet.<br />
IMPORTANT<br />
If the ViewSet has been previously published, the permissions default to those of<br />
the ViewSet version on the server.<br />
If the ViewSet has not been previously published, the permissions default to<br />
include your user ID (as the user publishing the ViewSet).<br />
For more information on setting and using ViewSet permissions, see “ViewSet<br />
Permissions” on page 66.<br />
To advance to the next step, click Next.<br />
4 Views that are open in the ViewSet have default settings you may want to impose on the<br />
user. Specify the settings to include (or clear to exclude) in the ViewSet for the view<br />
named in the View Name field by enabling (or clearing) the selection in the Include<br />
column. This process may take several steps because there is a separate panel in the<br />
wizard for each view open in the ViewSet.<br />
NOTE Only settings that correspond to a command are available.<br />
The following information is depicted in the panel:<br />
View Name displays the name of the view, for example Items.<br />
View Title displays the title that appears in the view tab, such as<br />
Query: Quick Query.<br />
Include specifies if to include the setting value in the field.<br />
Setting Name displays the name of the setting.<br />
Setting Value displays the value the setting is currently set to.<br />
TIP To include all settings, click Select All. To clear all settings, click Clear All. To<br />
advance to the panel for each view step, click Next.<br />
5 When you have advanced through all of the settings panels for views, a panel displays<br />
that provides you with the means to test your ViewSet. To test the ViewSet, click Test<br />
ViewSet (see “Testing ViewSets” on page 61). The ViewSet is launched in the<br />
Test ViewSet GUI using the settings changes made in the previous wizard steps.
Testing ViewSets<br />
6 When you are finished with the Publish ViewSet wizard, click Finish.<br />
Making ViewSets Available to Users<br />
If the ViewSet is replacing an existing published ViewSet, The Confirm Overwrite<br />
Existing <strong>Server</strong> ViewSet dialog box displays. To update the existing ViewSet with your<br />
changes, click Yes.<br />
The ViewSet is published to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, and the unpublished ViewSet<br />
duplicate is deleted (no longer appears in the ViewSets view).<br />
After you have advanced through the Publish ViewSet Wizard (see “Publishing ViewSets”<br />
on page 59), you can test your ViewSet before finally publishing it to the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong> for users to download and import.<br />
To test a ViewSet, from the Publish ViewSet Wizard click the Test ViewSet button. The<br />
Test ViewSet GUI displays.<br />
The Test ViewSet GUI provides you with a way to test the ViewSet to see how it appears and<br />
functions, just as it would in the <strong>MKS</strong> <strong>Integrity</strong> Client; however, the Test ViewSet GUI has the<br />
following restrictions:<br />
You can only test one ViewSet at a time.<br />
You can only customize the ViewSet, not perform other ViewSet modifications.<br />
You cannot perform any client customization. For example, there is no preference<br />
editing or integration editing.<br />
You cannot save changes you make to the open ViewSets<br />
Part of testing how a ViewSet appears to users is viewing the Customize ViewSet dialog box.<br />
It is the same dialog box that users see and use from the <strong>MKS</strong> <strong>Integrity</strong> Client. This can be<br />
useful to ensure that the correct editability settings have been specified for ViewSet actions<br />
and action groups. For information on customizing the ViewSet, see <strong>MKS</strong> <strong>Integrity</strong> Client <strong>2009</strong><br />
Getting Started <strong>Guide</strong>.<br />
Mandatory ViewSets<br />
In combination with permissions for which users are able to download and edit specific<br />
ViewSets (see “ViewSet Permissions” on page 66), you can ensure that the specified users get<br />
the ViewSets by configuring them to be mandatory.<br />
Mandatory ViewSets bypass the user acceptance process for downloading new (or updated)<br />
ViewSets from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> (see the <strong>MKS</strong> <strong>Integrity</strong> Client <strong>2009</strong> Getting Started<br />
<strong>Guide</strong> for information on the user acceptance process). Instead, mandatory ViewSets are<br />
automatically downloaded and imported into each user’s client at the time the <strong>MKS</strong> <strong>Integrity</strong><br />
Client connects to the server. Users are not notified that the mandatory ViewSet has been<br />
61
Chapter 3: ViewSets<br />
62<br />
imported or updated and are not able to refuse the new or updated ViewSet. Once installed,<br />
mandatory ViewSets are automatically opened in the <strong>MKS</strong> <strong>Integrity</strong> Client and their actions<br />
and actions groups cannot be customized.<br />
Mandatory ViewSets, in combination with ViewSet permissions, provide your organization<br />
with another key component to producing a consistent process across or within groups.<br />
IMPORTANT Only published ViewSets can be specified as mandatory.<br />
You can specify if a ViewSet is mandatory in the following operations:<br />
“Editing ViewSet Attributes” on page 63<br />
“Publishing ViewSets” on page 59<br />
Key Considerations<br />
Users are not notified that a mandatory ViewSet has been updated and cannot refuse (or<br />
observe) its import.<br />
Mandatory ViewSets display Mandatory in parenthesis in the <strong>MKS</strong> <strong>Integrity</strong> Client title<br />
bar.<br />
Users cannot close mandatory ViewSets.<br />
Users can delete mandatory ViewSets, but the ViewSets are imported and opened the<br />
next time the <strong>MKS</strong> <strong>Integrity</strong> Client is run.<br />
Updated mandatory ViewSets are only opened the next time the <strong>MKS</strong> <strong>Integrity</strong> Client is<br />
run.<br />
Users may extensively customize optional ViewSets stored in their clients. If you<br />
configure the corresponding published (server) Viewset to be mandatory, all of the users<br />
customizations are silently lost.<br />
Mandatory ViewSets are intended to be an enforcement mechanism to provide uniform<br />
use of a ViewSet by users. They are not intended to be a ViewSet distribution mechanism<br />
only.<br />
Administering Published ViewSets<br />
Published ViewSets have properties and capabilities that personal and unpublished<br />
ViewSets do not. The subsequent sections provide information on administering published<br />
ViewSets
Published ViewSet Properties<br />
Administering Published ViewSets<br />
You can configure properties for published ViewSets, such as attributes and permissions.<br />
<strong>MKS</strong> <strong>Integrity</strong> provides a way to view and edit the properties of published ViewSets without<br />
having to create a local unpublished ViewSet duplicate.<br />
Viewing ViewSet Properties<br />
You can view the attributes and permissions of ViewSets residing on the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong>. To edit ViewSet attributes and permissions, see “Editing ViewSet Attributes” on<br />
page 63.<br />
TIP You can also view (but not edit) attributes of personal and unpublished<br />
ViewSets.<br />
To view ViewSet properties using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
1 From the ViewSets view (see “Viewing ViewSets” on page 51), select the ViewSet you<br />
want to view properties for.<br />
2 Select ViewSet > View ViewSet Properties. The ViewSet dialog box<br />
displays, where is the name of the ViewSet you are viewing properties<br />
for. For information on the fields displayed on the Attributes panel, see the table in<br />
“Viewing ViewSets” on page 51.<br />
To view user and group permissions for the ViewSet, click the Permissions tab. For<br />
information on using the Permissions tab, see “ViewSet Permissions” on page 66.<br />
Editing ViewSet Attributes<br />
You can edit the attributes for ViewSets located on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. Editing<br />
published ViewSet attributes (through editing properties) does not require a local<br />
unpublished ViewSet duplicate.<br />
TIP You can also edit ViewSet attributes when publishing a ViewSet (see<br />
“Publishing ViewSets” on page 59).<br />
From the ViewSets view (see “Viewing ViewSets” on page 51), select the ViewSet you want<br />
to edit attributes for. Select ViewSet > Edit ViewSet Properties. The Edit ViewSet Properties<br />
dialog box displays. Click the Attributes tab.<br />
For information on using the Permissions tab, see “ViewSet Permissions” on page 66.<br />
63
Chapter 3: ViewSets<br />
64<br />
The following attributes are editable:<br />
Attribute Description<br />
Name Contains the name for the ViewSet. ViewSet names are not required to be<br />
unique. <strong>MKS</strong> <strong>Integrity</strong> tracks the ViewSet independently of the name you assign<br />
it. However, no two published ViewSets on the same server may have the same<br />
name.<br />
Description Contains an optional description for a ViewSet. For example, tell users why and<br />
how they should use the ViewSet.<br />
Optional Specifies that the ViewSet is optional to users. Users who have permission to<br />
import the ViewSet may do so at their discretion, but they are not required to do<br />
so. When importing ViewSets, users can see if a change to this ViewSet is<br />
made and then can choose to import the updated ViewSet.<br />
Mandatory Specifies that the ViewSet is mandatory to users who have permission to import<br />
it. Users do not have a choice if the ViewSet is imported. Instead, the ViewSet is<br />
automatically downloaded and installed for the user when the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong> connects to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client. For more<br />
information, see “Mandatory ViewSets” on page 61.<br />
Customizable Specifies if users can customize the ViewSet. Users cannot customize<br />
mandatory ViewSets.<br />
Fetching Published ViewSets<br />
To customize (edit) a published ViewSet, you must download it from the server to the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, and save it as an unpublished ViewSet (see “ViewSet<br />
Types and Locations” on page 52). Editing a ViewSet (see “Editing ViewSets” on page 54)<br />
automates that process for you. However, you can manually fetch the published ViewSet<br />
without editing by creating a local duplicate (as an unpublished ViewSet) to be modified at a<br />
later date.<br />
To fetch a published ViewSet using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
1 From the ViewSets view (see “Viewing ViewSets” on page 51), select the published<br />
ViewSet you want to fetch.<br />
2 Select ViewSet > Fetch ViewSet. The selected published ViewSet is fetched to the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, and it appears in the ViewSets view as an<br />
unpublished ViewSet.<br />
Updating Published ViewSets<br />
ViewSets stored on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> (available for users to download and import<br />
into their <strong>MKS</strong> <strong>Integrity</strong> Clients) can be modified and updated as needed. The following<br />
diagram illustrates the process of updating a <strong>Server</strong> ViewSet.
Edit <strong>Server</strong><br />
ViewSet<br />
Need to modify a<br />
<strong>Server</strong> ViewSet<br />
Creates<br />
Unpublished ViewSet<br />
Copy<br />
Publish ViewSet<br />
<strong>Server</strong> ViewSet<br />
Updated<br />
Fetch <strong>Server</strong><br />
ViewSet<br />
1 Identify a need to modify a published ViewSet.<br />
Administering Published ViewSets<br />
2 To update a published ViewSet, get an unpublished ViewSet duplicate of the published<br />
ViewSet (see “ViewSet Types and Locations” on page 52).<br />
You can get the unpublished ViewSet duplicate by editing the published ViewSet (see<br />
“Editing ViewSets” on page 54) or by fetching the ViewSet (see “Fetching Published<br />
ViewSets” on page 64).<br />
ViewSets can then be modified by editing or by making changes through the<br />
Publish ViewSet wizard.<br />
3 Publish your modified ViewSet back to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> (see “Publishing<br />
ViewSets” on page 59). The published ViewSet is updated by the publish operation, and<br />
users are then able to download and import it.<br />
IMPORTANT <strong>MKS</strong> <strong>Integrity</strong> tracks the ViewSet independently of the name you assign<br />
it. Even if you rename a ViewSet, that same ViewSet is updated (overwritten) when<br />
you publish it again. If you want to retain the original, create and edit a copy of the<br />
ViewSet instead (see “Copying ViewSets” on page 55).<br />
65
Chapter 3: ViewSets<br />
ViewSet Permissions<br />
66<br />
There are two kinds of permissions that govern ViewSets. ACL permissions regulate the<br />
publishing of ViewSets for the first time. Non-ACL permissions regulate if users can edit or<br />
publish a published ViewSet.<br />
IMPORTANT Users with Admin, Admin<strong>Server</strong>, and Debug<strong>Server</strong> permissions can<br />
modify, edit, and publish ViewSets without the required permissions documented<br />
in the later sections.<br />
Permission to Publish ViewSets<br />
To publish an unpublished ViewSet to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, you need to have the<br />
PublishNewViewSet ACL permission assigned to you or your group. To set the permission,<br />
from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client select the ViewSet Distribution > Permissions<br />
node, then highlight Global. The display pane then shows the global permission information<br />
for the mks:system:viewsets ACL. The default ACL entry is a group named everyone.<br />
ACL entries consist of principals and permissions.<br />
For more information on ACL principals and permissions, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
Published ViewSet Permissions<br />
ViewSet permissions control how users interact with the ViewSet. The permissions can be<br />
modified from the Permissions tab on the Edit ViewSet Properties dialog box (see “Editing<br />
ViewSet Attributes” on page 63) or from the Publish ViewSet Wizard (see “Publishing<br />
ViewSets” on page 59). To view permissions without editing them, see “Viewing ViewSet<br />
Properties” on page 63.<br />
NOTE The published ViewSet permissions are unrelated to ACL permissions.<br />
The following are available permission settings:<br />
Users specifies the users (and groups) permitted to import the ViewSet from the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. Only users specified in this field see the ViewSet as available for<br />
import. However, there is no requirement for users to import the ViewSet if it is not<br />
mandatory. To make a ViewSet mandatory for users, see “Mandatory ViewSets” on<br />
page 61.<br />
Administrators specifies the users permitted to edit the ViewSet, as well as to publish the<br />
changed ViewSet back to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.
ViewSets FAQ<br />
For information on filtering data (in this case users and groups) see “Filtering Data” on<br />
page 18.<br />
ViewSets FAQ<br />
The following are frequently asked questions (FAQ) for ViewSets:<br />
Q. Why do I not see the ViewSets view?<br />
A: To see the ViewSets view, you need the PublishNewViewSet permission or a<br />
permission to modify any server (published) ViewSet. See “ViewSet Permissions” on<br />
page 66.<br />
Q. How can I move a ViewSet from one server to another server?<br />
A: Connect to the first server, and display the ViewSets view. Fetch the ViewSet from that<br />
server (see “Fetching Published ViewSets” on page 64). Then connect to the second<br />
server (displaying the ViewSets view for that server) and publish the ViewSet to that<br />
server (see “Publishing ViewSets” on page 59).<br />
Q. I have a client ViewSet, but I do not see it in my ViewSets view. Why?<br />
A: Ensure that the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client you are using to display the<br />
ViewSets view is located on the same machine as the <strong>MKS</strong> <strong>Integrity</strong> Client you used to<br />
create the client ViewSet.<br />
Q. Because I am always working with an unpublished ViewSet duplicate of the published ViewSet,<br />
how then can I rename the published ViewSet?<br />
A: <strong>MKS</strong> <strong>Integrity</strong> tracks the ViewSet independently of the name you assign it. Even if you<br />
rename a ViewSet, that same ViewSet is updated (overwritten) when you publish it<br />
again. You can rename a published ViewSet by editing its properties (see “Editing<br />
ViewSet Attributes” on page 63).<br />
Q. I renamed my unpublished ViewSet and then published it back to the server, hoping it would be<br />
treated as a new ViewSet with a different name. Why did it overwrite my old ViewSet that had<br />
the original name?<br />
A: <strong>MKS</strong> <strong>Integrity</strong> tracks the ViewSet independently of the name you assign it. Even if you<br />
rename a ViewSet, that same ViewSet is updated (overwritten) when you publish it<br />
again. Instead of renaming a ViewSet, create a copy of ViewSet instead (see “Copying<br />
ViewSets” on page 55).<br />
67
Chapter 3: ViewSets<br />
68<br />
Q. I edited a published ViewSet, and now I have an unpublished ViewSet by the same name. Why is<br />
it there?<br />
A: Editing a ViewSet requires a local duplicate of the ViewSet in the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client. The unpublished ViewSet is that local duplicate, and it must be<br />
published back to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> for your changes to be available to users.<br />
Q. I published my unpublished ViewSet and the unpublished ViewSet disappeared. Where did it go?<br />
A: The unpublished ViewSet is considered unnecessary once a ViewSet is published to the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. You can get an unpublished ViewSet duplicate again by editing or<br />
fetching the ViewSet (see “Editing ViewSets” on page 54 or “Fetching Published<br />
ViewSets” on page 64).<br />
Q. Why are users reporting that ViewSets I published are automatically imported into their<br />
<strong>MKS</strong> <strong>Integrity</strong> Clients?<br />
A: You have set the ViewSets to be mandatory (see “Mandatory ViewSets” on page 61).<br />
Q. Why can I edit but not publish a particular ViewSet?<br />
A: You do not have permission to publish that ViewSet. An administrator who does have<br />
permission to publish that ViewSet must assign you permission (see “ViewSet<br />
Permissions” on page 66).<br />
Q. Users lost their custom changes to their ViewSets. Why?<br />
A: Check to see if you configured the ViewSet to be mandatory. See “Mandatory ViewSets”<br />
on page 61.<br />
Q. I logged into the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client on a different machine, and my<br />
unpublished ViewSets were gone. Where did they go?<br />
A: Unpublished ViewSets are only stored locally on the same machine they were created<br />
on. You must publish the ViewSet to edit (customize) it on a different machine.
C HAPTER FOUR<br />
Workflow Management<br />
Creating Workflow to Manage Change<br />
Every item type follows a workflow, which is followed by every item of that type.<br />
Workflow is the process established by an administrator to capture and track<br />
information and steps during your software development cycle.<br />
4<br />
Each item type has its own set of states to advance through the development cycles. For<br />
example, a change request might go through the states: submitted, work started, tested,<br />
reviewed, and closed.<br />
States can also be shared across several workflows. Items and their current states<br />
provide change management information necessary to support business decisions.<br />
This chapter contains the following topics:<br />
“Assessing Your Current Product Development Process” on page 70<br />
“Assigning Administrators for <strong>MKS</strong> <strong>Integrity</strong>” on page 74<br />
“States” on page 77<br />
“Types” on page 82<br />
“Fields” on page 121<br />
“Workflows” on page 152<br />
“Considerations When Modifying Visibility, Editability, and Types” on page 178<br />
“Deleting Admin Provided Objects and Items” on page 179<br />
“Setting Up E-mail Notification” on page 180<br />
Where to Go Next<br />
The following table summarizes the steps you should follow to set up a workflow<br />
69
Chapter 4: Workflow Management<br />
Assessing Your Current Product Development<br />
Process<br />
70<br />
To Do This … See …<br />
Manage states, including creating and editing<br />
states.<br />
Manage types, including creating and editing<br />
types.<br />
Set up a document model with types and<br />
attributes<br />
Manage fields, including creating and editing<br />
fields.<br />
Manage field relationships, including creating,<br />
editing, and deleting field relationships.<br />
Design a workflow, including creating, managing,<br />
and printing a workflow.<br />
Understand the considerations for modifying<br />
visibility rules, editability rules, and types.<br />
Creating and testing your workflow using the<br />
Admin Migration Wizard.<br />
This assessment involves no direct interaction with the software. Instead, you need to spend<br />
some time evaluating the product development process currently followed in your<br />
organization and map it out so you can customize your project for workflows and documents<br />
to suit your needs.<br />
This may take longer for some than for others. But the purpose of the assessment is to avoid<br />
the time-consuming task of redesigning a project that was not well-planned in the first place.<br />
When undertaking this assessment, you should focus on these areas:<br />
your workflow and project state transitions<br />
your current tracking mechanism<br />
the scope of implementation within your organization<br />
the relevant teams and user groups<br />
“States” on page 77<br />
“Types” on page 82<br />
“Setting Up Documents” on page 97<br />
“Fields” on page 121<br />
“Managing Field Relationships” on page 143<br />
“Workflows” on page 152<br />
“Considerations When Modifying Visibility,<br />
Editability, and Types” on page 178<br />
“Testing Workflow With Admin Migration Wizard”<br />
on page 161
Assessing Your Current Product Development Process<br />
To assess your workflow and project state transitions, consider the following<br />
questions<br />
1 What project states (or stages) are followed from the inception of a project to its<br />
completion?<br />
conceptualization<br />
design<br />
development<br />
review<br />
testing<br />
production<br />
2 Are approvals considered as separate stages or are they a prerequisite for moving to the<br />
next stage?<br />
Define a sequential state model for your projects.<br />
3 Does the workflow follow in sequence from one state to the next, or are there provisions<br />
for repeating certain steps?<br />
Consider the state transitions in your workflow.<br />
4 Is the workflow the same for each type of project?<br />
one workflow is used<br />
one workflow is used for each item type<br />
workflow depends on the urgency of the work<br />
In <strong>MKS</strong> <strong>Integrity</strong>, you may define a workflow for each item type.<br />
To assess your current tracking mechanism, consider the following questions<br />
1 How do you currently log defects and enhancements?<br />
manually, using forms<br />
in-house database<br />
no current method<br />
other tracking product<br />
Think about what items you want to track.<br />
71
Chapter 4: Workflow Management<br />
72<br />
2 Who assigns work?<br />
team leader<br />
self<br />
Do you want only team leaders to assign the work, or can anyone assign the work?<br />
3 How are developers notified of work assigned to them?<br />
meetings, verbally<br />
e-mail from team leader, other team members<br />
through an in-house defect tracking system<br />
4 How do developers indicate their work is complete?<br />
through their configuration management / revision control system<br />
by e-mail<br />
combination of the preceding options<br />
through an in-house defect tracking system<br />
Users can promote items to states defined in the workflow.<br />
5 Who do developers notify when their work is complete?<br />
team leader only<br />
team leader and the submitter of the item<br />
the developers who are responsible for the function or module<br />
Users can also use the e-mail notification option.<br />
To assess the scope of implementation, consider the following questions<br />
1 Is <strong>MKS</strong> <strong>Integrity</strong> to be used in different areas of your organization?<br />
in development<br />
development and client services (including technical support)<br />
marketing<br />
Define the tracking objectives for each group.<br />
2 Is the workflow the same for each group?<br />
one workflow is used<br />
one workflow is used for each item type<br />
workflow depends on the urgency of the work<br />
In <strong>MKS</strong> <strong>Integrity</strong>, you may define a workflow for each item type.
Assessing Your Current Product Development Process<br />
To assess your teams and user groups, consider the following questions<br />
1 Which groups are currently involved in your tracking process?<br />
Are those groups to use workflows and documents?<br />
2 Can you predict requiring different privileges for users in these groups?<br />
everyone is required to administer the project for workflows and documents<br />
one administrator, with the rest of the team having a subset of the administrator’s<br />
privileges<br />
What workflow and document privileges do you grant to your users?<br />
3 What are the user groups you can identify?<br />
workflow and document users<br />
developers<br />
contractors<br />
testers/QA<br />
other<br />
You may use these groups to start defining user groups in <strong>MKS</strong> <strong>Integrity</strong>.<br />
4 Are your user groups defined by team, or do some user groups include members from<br />
different teams?<br />
Is your user groups to be defined by your organization structure, or by process?<br />
With your assessment answers in hand, you can now proceed to customizing your<br />
installation, described in the next section. As you go, you can refer to your assessment of<br />
your current tracking mechanism, your teams and user groups, and your scope of<br />
implementation.<br />
Working With <strong>MKS</strong> <strong>Integrity</strong><br />
Consider the following when setting up your admin provided objects in <strong>MKS</strong> <strong>Integrity</strong>:<br />
The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client does not lock admin provided objects, making<br />
it possible for two or more administrators to edit a common object at the same time. The<br />
final state of the option is the state set by the administrator who last saved the option.<br />
For example, if two administrators are creating workflows at the same time, only the last<br />
saved workflow takes effect. This behavior should be considered if you assign multiple<br />
administrators for <strong>MKS</strong> <strong>Integrity</strong>. For more information on the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client, see “Introduction” on page 10.<br />
If your <strong>MKS</strong> <strong>Integrity</strong> system is using a DB2 database for System i, read/write<br />
operations to the database table must be synchronized. Therefore, administration work<br />
73
Chapter 4: Workflow Management<br />
74<br />
that affects the database should be performed only when the system is not in use by<br />
other users.<br />
Assigning Administrators for <strong>MKS</strong> <strong>Integrity</strong><br />
For <strong>MKS</strong> <strong>Integrity</strong>, the person who sets up and configures <strong>MKS</strong> <strong>Integrity</strong> is referred to as the<br />
super administrator. The super administrator can also delegate certain tasks related to projects<br />
for workflows and documents and types to a project administrator and type administrator.<br />
As the super administrator responsible for setting up <strong>MKS</strong> <strong>Integrity</strong>, you have access to all<br />
admin provided objects. For day-to-day management, once <strong>MKS</strong> <strong>Integrity</strong> is configured you<br />
may want to delegate a subset of administrative responsibilities by allowing certain users to<br />
manage projects and types. <strong>MKS</strong> <strong>Integrity</strong> allows you to limit access to these two key<br />
workflow and document objects and, in this way, delegate responsibilities for the associated<br />
management tasks.<br />
You can delegate certain administrative tasks by assigning project administrators and type<br />
administrators. You assign an <strong>MKS</strong> <strong>Integrity</strong> project administrator through the Create Project<br />
or Edit Project function. You assign an <strong>MKS</strong> <strong>Integrity</strong> type administrator using the Create<br />
Type or Edit Type function. For more information on project administrators, see “Assigning<br />
<strong>MKS</strong> <strong>Integrity</strong> Project Administrator” on page 260. For more information on type<br />
administrators, see “Assigning Type Administrator” on page 94.<br />
<strong>MKS</strong> <strong>Integrity</strong> then limits access according to the specific projects and types you have<br />
assigned the administrators to. The following table summarizes the functionality available to<br />
the <strong>MKS</strong> <strong>Integrity</strong> super administrator, project administrator, and type administrator:<br />
Workflow and<br />
Document Object<br />
Super Administrator Project Administrator Type Administrator<br />
Users Create<br />
Edit<br />
View<br />
Delete<br />
Import<br />
View View<br />
Groups Create<br />
Edit<br />
View<br />
Delete<br />
Import<br />
View View
Workflow and<br />
Document Object<br />
Dynamic Groups Create<br />
Edit<br />
View<br />
Delete<br />
Edit project membership<br />
Projects Create<br />
Edit<br />
View<br />
Delete<br />
Assign project or type<br />
administrators<br />
States Create<br />
Edit<br />
View<br />
Delete<br />
Type Overrides<br />
Types Create<br />
Edit<br />
View<br />
Delete<br />
Create/edit presentation<br />
templates<br />
Assign project or type<br />
administrators<br />
Fields Create<br />
Edit<br />
View<br />
Type Overrides<br />
Triggers Create<br />
Edit<br />
View<br />
Delete<br />
Admin Charts Create<br />
Edit<br />
View<br />
Delete<br />
Assigning Administrators for <strong>MKS</strong> <strong>Integrity</strong><br />
Super Administrator Project Administrator Type Administrator<br />
View<br />
Edit project membership<br />
Create subprojects a<br />
Edit<br />
View<br />
Delete subprojects1 View<br />
View<br />
No access Create<br />
Edit b<br />
View<br />
Delete2 Type Overridesc No access Edit<br />
View<br />
Create/edit<br />
presentation<br />
templates<br />
No access Create<br />
Edit 2<br />
View<br />
Type Overrides 3<br />
No access No access<br />
No access No access<br />
75
Chapter 4: Workflow Management<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Permissions<br />
76<br />
Workflow and<br />
Document Object<br />
Admin Dashboards<br />
Create<br />
Edit<br />
View<br />
Delete<br />
Admin Queries Create<br />
Edit<br />
View<br />
Delete<br />
Admin Reports Create<br />
Edit<br />
View<br />
Delete<br />
Super Administrator Project Administrator Type Administrator<br />
No access No access<br />
No access No access<br />
No access No access<br />
a Project administrators can only create and delete subprojects. They cannot create top level projects.<br />
b<br />
Type administrators can only delete/modify a field or state if they are an administrator of all types that refer to it.<br />
c<br />
Type administrators can only modify the overrides for the type they administer. Other overrides for the field cannot be<br />
modified.<br />
The <strong>MKS</strong> <strong>Integrity</strong> super administrator is set by allowing the Admin permission under the<br />
mks:im ACL. Any user granted the Admin permission has access to all workflow and<br />
document admin provided objects, including users, groups, dynamic groups, projects, states,<br />
types, fields, and triggers. Project and type administrators are not granted the Admin<br />
permission, and <strong>MKS</strong> <strong>Integrity</strong> limits their access to the specific projects and types they are<br />
assigned to.<br />
As super administrator, you can extend the capability of a project or type administrator by<br />
granting certain ACL permissions. The following ACL permissions extend the capability of<br />
the assigned administrator:<br />
The CreateProject permission allows the user to create a new top level project for<br />
workflows and documents and allows the project administrator to assign another<br />
<strong>MKS</strong> <strong>Integrity</strong> project administrator.<br />
The CreateType permission allows the user to create a new type and allows the type<br />
administrator to assign another type administrator.<br />
NOTE For more information on setting ACL permissions in <strong>MKS</strong> <strong>Integrity</strong>, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.
Assigning Administrators Using Command Line Interface<br />
States<br />
Functionality for assigning <strong>MKS</strong> <strong>Integrity</strong> project and type administrators is also available<br />
through the CLI using commands createProject, editProject, createType, and<br />
editType.<br />
To assign a project administrator from the CLI, use the createProject or editProject<br />
commands with the --permittedAdministrators option. Similarly, to assign a type<br />
administrator, use the createType or editType commands with the<br />
--permittedAdministrators option. For more information on these commands, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> <strong>Administration</strong> CLI Reference <strong>Guide</strong>.<br />
States<br />
In <strong>MKS</strong> <strong>Integrity</strong>, item types can each have their own set of states to advance through. They<br />
can also follow a state model defined by the project administrator, giving greater control over<br />
who has access to a specific item type at a given time, as well as who has responsibility for<br />
approving the advancement of the state.<br />
Throughout the development lifecycle, items submitted in <strong>MKS</strong> <strong>Integrity</strong> go through a<br />
workflow. You can customize the workflow and the stage the item is in. These stages are<br />
called states in <strong>MKS</strong> <strong>Integrity</strong>. For example, your process may include resource allocation,<br />
research, coding, and testing, or your process can be more elaborate.<br />
Example<br />
Possible states for a typical development environment are Submitted, In Review, Rejected,<br />
In Development, Unit Test, Development Done, Built, In QA, Passed, Failed, In Production,<br />
and Released.<br />
Key Considerations<br />
You can only create one state at a time.<br />
States can be referenced by more than one workflow. For example, you could set the<br />
Submit state as the starting step for all your workflows.<br />
Working in States View<br />
Using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, you can manage states from one convenient<br />
location. Managing states is carried out through the States view.<br />
CLI EQUIVALENT im states<br />
77
Chapter 4: Workflow Management<br />
78<br />
To open the States view from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the<br />
Workflows and Documents node, and select States. The States view displays.<br />
By default, the data filter in the States view displays all existing states. You can search for a<br />
specific state by typing in the text filter. For more information, see “Filtering Data” on<br />
page 18.<br />
Throughout your development lifecycle, items submitted in <strong>MKS</strong> <strong>Integrity</strong> go through a<br />
workflow. You can customize the workflow and the stage the item is in. These stages are<br />
called states in <strong>MKS</strong> <strong>Integrity</strong>. For example, your process may include resource allocation,<br />
research, coding, and testing, or your process can be more complex.<br />
Available Menu Commands for States<br />
Through the States view, you can:<br />
edit the details for existing states<br />
view the details for existing states<br />
delete states<br />
Creating States<br />
create a new state for use in your workflow<br />
reposition or change the sequence for an existing state in the workflow<br />
Any changes you make in the States view have an immediate effect on your <strong>MKS</strong> <strong>Integrity</strong><br />
database.<br />
You can create states for use in an item type’s workflow. You can only create one state at a<br />
time.<br />
To create a state in the GUI<br />
CLI EQUIVALENT im createstate<br />
1 From the States view (see “States” on page 77), select State > Create. The Create State<br />
dialog box displays.<br />
2 In the Name field, type a name for the state. This is the name the state is referred to in<br />
<strong>MKS</strong> <strong>Integrity</strong>.<br />
3 Under the Description tab, type a more detailed textual description of the state, such as<br />
the state’s meaning in your workflow. To do this, click the Description tab.<br />
4 Under the Position tab, specify where the new state displays in the State list within an<br />
item. Use the Move Up and Move Down buttons to change the position of the new state.
States<br />
5 Under the Image tab, associate a custom icon image with the state. To do this, select Use<br />
Custom Image, and click Select to browse for the image file. To have no image associated<br />
with the type, select No Image.<br />
If you choose to use your own custom icon image, the image must be in GIF or JPEG<br />
format, and no larger than 24 by 16 pixels.<br />
6 Under the Capabilities tab, define state-based capabilities. In <strong>MKS</strong> <strong>Integrity</strong>, state based<br />
capabilities allow change packages that are under review or change packages that are<br />
open to exist while an item is in a given state. For more information on the change<br />
package review and approval process, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
If the item state does not allow open change packages, <strong>MKS</strong> <strong>Integrity</strong> prompts users to<br />
close the item’s change package before they move any item to that state. In addition, if an<br />
item state does not allow open change packages, users cannot create new change<br />
packages for any items in that state.<br />
To define a state-based capability, do one of the following:<br />
To display only enabled state-based capabilities, from the Filter list select<br />
.<br />
To display all available state-based capabilities, from the Filter list select .<br />
To display only the state-based capabilities related to workflows and documents,<br />
select <strong>MKS</strong> <strong>Integrity</strong>. Then to allow time entries in the selected state, enable the<br />
Allows time entry in this state option. For more information on creating, editing,<br />
viewing, and deleting time entries, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
To display only the state-based capabilities related to configuration management,<br />
select <strong>MKS</strong> Source. Then select one or more of the following capabilities:<br />
To allow change packages under review in the selected state, enable the Allows<br />
SI change packages under review to exist in this state option.<br />
To allow open change packages in the selected state, enable the Allows open SI<br />
change packages to exist option.<br />
To display only the state-based capabilities related to test management, select <strong>MKS</strong><br />
Test. To allow test results to be created and modified when a test session item is in<br />
the selected state, enable Allow test results to be created and modified in this state.<br />
For more information on using <strong>MKS</strong> <strong>Integrity</strong> to create and edit test results, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
NOTE If you are using the Implementer integration with <strong>MKS</strong> <strong>Integrity</strong>, additional<br />
state-based capabilities are available.<br />
7 When you are finished setting the properties, click OK.<br />
79
Chapter 4: Workflow Management<br />
Editing States<br />
Viewing States<br />
80<br />
You can edit state details, but you can only edit one state at a time. You cannot edit the<br />
Unspecified state; you can only view it.<br />
To edit a state in the GUI<br />
CLI EQUIVALENT im editstate<br />
1 From the States view (see “States” on page 77), select the state you want to edit.<br />
2 Select State > Edit. The Edit State dialog box displays.<br />
3 Edit the information as required. For more information about the fields that display in<br />
this dialog box, see “To create a state in the GUI” on page 78.<br />
4 To determine which states are referenced by any given type, click the Usage tab for the<br />
state in question.<br />
The Usage panel shows what types refer to the state and what attributes have been<br />
overridden for that type.<br />
5 To determine all objects that reference the state, click the References tab. For information<br />
on the contents of the tab, see “To manage admin provided objects in the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client” on page 244.<br />
6 To view a history of administrative changes for the selected state, click the History tab.<br />
The record of changes displays.<br />
7 To save your changes, click OK.<br />
You can view detailed information for existing states. You cannot edit any of the details, and<br />
you can only view the details for one state at a time.<br />
To view a state in the GUI<br />
CLI EQUIVALENT im viewstate<br />
1 From the States view (see “States” on page 77), select the state you want to view.<br />
2 Select State > View. The View State dialog box displays. For more information about the<br />
fields in this dialog box, see “To create a state in the GUI” on page 78.<br />
TIP You can double click a state in the States view to view it.
Deleting States<br />
Moving States<br />
3 To determine which states are referenced by any given type, click the Usage tab for the<br />
state in question.<br />
The Usage panel shows what types refer to the state and what attributes have been<br />
overridden for that type.<br />
States<br />
4 To determine all objects that reference the state, click the References tab. For information<br />
on the contents of the tab, see “To manage admin provided objects in the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client” on page 244.<br />
5 To view a history of administrative changes for the selected state, click the History tab.<br />
The record of changes displays.<br />
6 When you are finished viewing, click Close.<br />
You can only delete a state if it is unreferenced, that is, if no one has used this state in any<br />
item.<br />
To delete a state in the GUI<br />
CLI EQUIVALENT im deletestate<br />
1 From the States view (see “States” on page 77), select the state(s) you want to delete.<br />
2 Select State > Delete. A confirmation dialog box displays.<br />
3 To confirm the deletion, click Yes.<br />
You can customize the order the states display in. The order in the Reposition States dialog<br />
box is also the order used in <strong>MKS</strong> <strong>Integrity</strong>.<br />
To change the order of the states in the GUI<br />
CLI EQUIVALENT im editstate<br />
1 From the States view (see “States” on page 77), select State > Reposition. The Reposition<br />
States dialog box displays.<br />
2 Select the state you want to move, and use Move Up or Move Down buttons to change its<br />
position.<br />
3 Click OK.<br />
81
Chapter 4: Workflow Management<br />
State Metrics<br />
Types<br />
82<br />
In addition to recording information in fields, <strong>MKS</strong> <strong>Integrity</strong> can also perform arithmetic<br />
operations between fields, storing the result as a read-only value in an item’s computed field,<br />
or displaying it as a value when you run a chart or report. Using external information<br />
functions in computed fields, you can generate state metrics. State metrics are useful for<br />
determining item responsiveness and workflow progression. For example, you could use the<br />
DaysInState(state-name) function in a computed expression to calculate how many days a<br />
Defect item was in state In Development. The computed value is then stored in the<br />
computed field. For more information on state metrics, see “Using Computed Fields to<br />
Calculate State Metrics” on page 319.<br />
In <strong>MKS</strong> <strong>Integrity</strong>, a type represents a category of items that share a specific development cycle<br />
or workflow. Individual types are required whenever an independent workflow is needed.<br />
As part of creating a customized workflow, type permissions allow you to control more<br />
precisely which users can work with an item according to the type the item is associated<br />
with. Type permissions allow you to create a unique set of permissions for a specified type,<br />
allowing the membership of the group to change based on the value of the type identifier.<br />
When you create a new type, visibility is allowed to the everyone group by default (that is,<br />
all users can see the new type). You can later restrict visibility as required.<br />
When creating a type in <strong>MKS</strong> <strong>Integrity</strong>, you can also designate users or groups as<br />
<strong>MKS</strong> <strong>Integrity</strong> type administrators for that type. For more information on type<br />
administrators, see “Assigning Type Administrator” on page 94.<br />
Example<br />
In a software development environment, a request for a new software feature may follow one<br />
workflow, while work to fix a defect may follow a different workflow. In such a scenario, the<br />
administrator creates two distinct types: Feature Request and Defect.<br />
Key Considerations<br />
Individual types are required whenever an independent workflow is needed.<br />
Type permissions allow you to create a unique set of permissions for a specified type.<br />
The super administrator can designate users or groups as <strong>MKS</strong> <strong>Integrity</strong> type<br />
administrators for a given type.<br />
Type properties are used to define solution-specific ViewSets that licenses are required<br />
for.
Requirements management and test management utilize specific document item types<br />
that control the behavior of documents and promote reuse and versioning. To learn<br />
about document types, including how to manage and create them, see “Setting Up<br />
Documents” on page 97.<br />
Working in Types View<br />
Using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, you can manage types from one convenient<br />
location. Managing types is carried out through the Types view.<br />
CLI EQUIVALENT im types<br />
To open the Types view from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the<br />
Workflows and Documents node, and select Types. The Types view displays.<br />
By default, the data filter in the Types view displays all existing types. You can search for a<br />
specific type by typing in the text filter. For more information, see “Filtering Data” on<br />
page 18.<br />
You can categorize items into various types, for example, problems, proposals, solutions, or<br />
requests for change.<br />
Any changes you make in the Types view have an immediate effect on your <strong>MKS</strong> <strong>Integrity</strong><br />
database. From the Types view you can access other type-related functions including Field<br />
Relationships and Workflow. For more information on these functions, see “Managing Field<br />
Relationships” on page 143 and “Workflows” on page 152.<br />
Available Menu Commands for Types<br />
Through the Types view, you can:<br />
edit the details for an existing type<br />
view the details for an existing type<br />
delete a type<br />
create a new item type<br />
copy a type<br />
reposition, or change the order of presentation for a type<br />
The workflow view is used to graphically view and create a workflow for an item type. The<br />
workflow view cannot be used to import users and groups, or to create projects, types, and<br />
fields. Only one workflow for one type can be opened in the workflow view.<br />
NOTE To launch the workflow view, a user must have administrator permissions.<br />
Types<br />
83
Chapter 4: Workflow Management<br />
Creating Types<br />
84<br />
Access to workflow functionality occurs in the Workflow view, which is contained in the Edit<br />
Type dialog box.<br />
You can categorize items into various types, for example, problems, action items, bugs,<br />
proposals, solutions, or change requests. Individual types are required whenever an<br />
independent workflow is needed.<br />
When creating a type in <strong>MKS</strong> <strong>Integrity</strong>, you can also designate users or groups as<br />
<strong>MKS</strong> <strong>Integrity</strong> type administrators for that type. For more information on type<br />
administrators, see “Assigning Type Administrator” on page 94.<br />
To create a type in the GUI<br />
CLI EQUIVALENT im createtype<br />
1 From the Types view (see “Types” on page 82), select Type > Create. The Create Type<br />
dialog box displays.<br />
2 In the Name field, enter a name for the type. This is the name <strong>MKS</strong> <strong>Integrity</strong> uses to refer<br />
to the type. The Name field allows up 100 alphanumeric characters.<br />
3 Select a node to perform a task on the Type. The following nodes are available:<br />
Administrators
See “Assigning Type Administrator” on page 94.<br />
Attributes<br />
See “Configuring Type Attributes” on page 87.<br />
Properties<br />
See “Using Type Properties” on page 245.<br />
Change Packages<br />
Specify how change packages are used with the type. To allow change packages to<br />
be created for items of this type, select Allow Change Packages. Then select which<br />
users can create change packages against items of this type.<br />
If you select Anyone, any user can create a change package for the item.<br />
Types<br />
If you select a User Field, only users selected in that field on the item can create<br />
a change package.<br />
If you select a Group Field, only users who belong to groups selected in that<br />
field on the item can create a change package.<br />
If you select Groups, only users who belong to the groups selected in the list can<br />
create a change package.<br />
NOTE<br />
Custom user fields and any group fields first must be made visible for the type.<br />
Field relationships are set after Visible Fields are configured.<br />
Test Management<br />
Defines the type as part of Test Management.<br />
See “Setting the Test Management Role for Types” on page 112.<br />
Documents<br />
Define the model for item types that utilize documents.<br />
See “Setting Up Documents” on page 97.<br />
Editability<br />
See “Setting Item Editability for Types” on page 114.<br />
Field Relationships<br />
See “Managing Field Relationships” on page 143.<br />
Notification Fields<br />
Specify the notification fields you want to include in every e-mail notification<br />
related to this type. All visible fields for this item type are available. All users<br />
85
Chapter 4: Workflow Management<br />
86<br />
receive e-mail notifications with the notification fields you select, even if the fields<br />
are normally invisible to them.<br />
NOTE For the selected type, only fields visible to at least one group are listed.<br />
By default, the e-mail notifications include the item ID, type, and summary, as well<br />
as a hyperlink to the item, the date the item was edited, the user who performed the<br />
edit, and the fields that were modified.<br />
Overrides for Fields and Overrides for States<br />
The Overrides for Fields and Overrides for States nodes are type<br />
overrides and are configured as required after the type is created. For more<br />
information on type overrides for fields and states, see “Setting Type Overrides” on<br />
page 115.<br />
Permissions<br />
Specify the groups that have access to the type. In the right pane under Available<br />
Groups, select the desired groups and move them to Permitted Groups.<br />
As part of a customized workflow, type permissions allow you to control more<br />
precisely which groups can work with an item according to the type the item is<br />
associated with. Type permissions allow you to create a unique set of permissions<br />
for a specified type, allowing the membership of the group to change based on the<br />
value of the type identifier.<br />
By default, the everyone group is included in the list of Permitted Groups. This<br />
means that by default all users have access to created types in <strong>MKS</strong> <strong>Integrity</strong>. To<br />
limit access to a type, move the everyone group to the Available Groups list.<br />
Position<br />
Customize the order that types display in. The order you select is the order the type<br />
appears in the Create Item list. Use the Move Up or Move Down buttons to change the<br />
position of the new type.<br />
Copy Fields<br />
Define which fields are copied when items of this type are copied. In the Copy Fields<br />
list, select the fields to be copied. The fields must be visible to the user in both the<br />
original item and the new item in order to be copied.<br />
Visible Fields<br />
Define which fields are visible for particular groups. In the Fields list, select a field<br />
to define visibility for.<br />
CAUTION A type can contain a maximum of 1000 fields. Exceeding the maximum<br />
number of fields results in exception errors when creating, editing, or viewing the<br />
item type in the GUI.
Types<br />
In the Selected Field Is Visible For list, select the groups that can see this field. By<br />
default, the everyone group is selected. In this list, use the Select All button to select<br />
all the groups list, and use the Unselect All button to clear all the groups in the list.<br />
For more information on field visibility for types, see “Setting Field Visibility for<br />
Types” on page 120. If there are no fields defined for your installation, see “Creating<br />
Fields” on page 127.<br />
Workflow<br />
Design the workflow for the type. For more information, see “Workflows” on<br />
page 152.<br />
Presentations<br />
Customize the item presentation using the presentation template designer. For more<br />
information, see “Customizing Item Presentation” on page 188.<br />
History<br />
View a record of all changes made to the type object.<br />
References<br />
Determine all objects that reference the type. The References pane displays the<br />
following information:<br />
Object Type displays the type of object referencing the type. Possible objects<br />
include: Type (item), Field (includes computed fields, as well as editability,<br />
relevance, and visibility rules), Trigger (includes trigger and notification rules),<br />
User Notification Rule, Chart, and Query.<br />
Name displays the actual name of the object referencing the type.<br />
Creator displays the user ID that was logged as creating the object reference.<br />
NOTE Fields or states containing overrides display in the References pane regardless<br />
of whether the fields are visible or the states are included in the workflow.<br />
4 To save your settings and create the type, click OK.<br />
Configuring Type Attributes<br />
Type attributes are general configurable settings for the type such as version control, its icon<br />
image, and description.<br />
To configure type attributes in the GUI<br />
CLI EQUIVALENT im createtype or im edittype<br />
87
Chapter 4: Workflow Management<br />
88<br />
From the Create Type or Edit Type dialog box (see “Creating Types” on page 84 or “Editing<br />
Types” on page 91), in the tree pane, select Attributes. The Attributes view displays.<br />
Under General, you can permit the following:<br />
Display Workflow in Item displays the Workflow tab to the user in the Create Item, Edit<br />
Item, and Item Detail views. The tab also displays copying an item and when creating a<br />
related item. The Workflow tab contains a read-only display of the item type workflow to<br />
the user.<br />
NOTE Users in the Web interfaces do not have a client-side user preference to<br />
override the display of the Workflow tab. Users launching the GUI view from the<br />
CLI can override the display of the Workflow tab on a per command basis, if the tab<br />
is enabled for the type.<br />
To display phases in the Workflow tab, select a phase field from the Phase Field list. Only<br />
phase fields that are enabled in the Visible Fields node appear in the Phase Field list.<br />
For more information on phases, see “Phase Fields” on page 130.<br />
Under Items of this type, you can permit the following:<br />
Allow Time Tracking allows one or more users to allocate time spent working on items of<br />
this type. When enabled, a Time Entries tab displays in the Edit Item and Item Detail<br />
views. You can use time entries to develop metrics (in the form of queries, charts, and<br />
reports) that measure the amount of effort spent on projects.
NOTE<br />
To create, edit, and delete time entries on behalf of other users, the<br />
TimeTrackingAdmin ACL permission is required.<br />
The ability to create, edit, and delete time entries is governed by state-based<br />
capabilities. For more information, see “Creating States” on page 78.<br />
Types<br />
Back Projects enables the type to back a project, allowing you to create a link between an<br />
item of this type and a project in the Project field. Backing a project with an item allows<br />
you to link the current project to a specific item that stores project metadata and metrics.<br />
For more information, see “Managing Metadata for Workflow and Document Projects”<br />
on page 257.<br />
NOTE<br />
To make this option available, the Project field must be selected as a visible field<br />
for this type.<br />
If you enable the Back Projects option, creating items of this type and linking<br />
them to projects is useful only to certain users. You may want to prevent most<br />
users from being able to create items of this type, for example, you can allow only<br />
users in the ProjectManagers group to create Project items. To restrict type<br />
visibility, see “Setting Type Visibility” on page 114.<br />
May have their tree copied allows items of this type and all related items within the<br />
hierarchy to be copied. Copy tree is disabled by default and is available primarily for the<br />
use of <strong>MKS</strong> solution templates.<br />
When this option is selected, the Rule for Copy Tree button is enabled. Selecting this<br />
button displays the Edit Copy Tree Rule dialog box, which closely resembles the Item<br />
Editability dialog box.<br />
To learn more about item editability, see “Setting Item Editability for Types” on<br />
page 114. To learn more about rules, see “Defining Rules” on page 43.<br />
May be branched allows items of this type to be branched by users who have applicable<br />
project visibility based on the branching rules you set up for item types. A branch is an<br />
identical copy of the original item and is added to the project history based on a current<br />
or historical date.<br />
Branches are created when users want to begin new divergent work off of a current or<br />
historical version of an item. For more information about what is visible to the user in the<br />
<strong>MKS</strong> <strong>Integrity</strong> Client after an item is branched, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Branching is disabled by default and is available primarily for the use of <strong>MKS</strong> solution<br />
templates.<br />
When this option is selected, the Rule for Branching button is enabled. Selecting this<br />
button displays the Edit Branch Rule dialog box, which closely resembles the Item<br />
89
Chapter 4: Workflow Management<br />
90<br />
Editability dialog box. This rule allows you to define the rules for the branching specific<br />
item types for users and user groups.<br />
To learn more about item editability, see “Setting Item Editability for Types” on<br />
page 114. To learn more about rules, see “Defining Rules” on page 43.<br />
May have labels applied allows items of this type to have labels applied.<br />
Labels allow users to associate a particular point in time of an item or group of items<br />
with a name, for example, items belonging to a prior release, or those marking project<br />
milestones or document baselines. Labeling is disabled by default and is available<br />
primarily for the use of <strong>MKS</strong> solution templates.<br />
For more information about what the user sees in the <strong>MKS</strong> <strong>Integrity</strong> Client after an item<br />
is labeled, see <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
IMPORTANT You must set up a rule to enforce the permissions for labeling before<br />
you enable labels on a type.<br />
When you select this option, the Rule for Add Label and Rule for Delete Label buttons are<br />
enabled. Selecting a button displays either the Edit Label Rule or the Edit Delete Label<br />
Rule dialog box. Each closely resembles the Item Editability dialog box.<br />
To learn more about item editability, see “Setting Item Editability for Types” on<br />
page 114. To learn more about rules, see “Defining Rules” on page 43.<br />
May be deleted, controlled by rule allows items of this type to be deleted, as defined by a<br />
rule. Users or groups defined in the rule that are allowed to delete items of this type<br />
require the ModifyDeleteItemRule permission.<br />
IMPORTANT The ModifyDeleteItemRule permission differs from the<br />
DeleteItem permission, which allows users or groups to delete items of any type<br />
without a defined rule. To define strict item deletion rules in your organization,<br />
<strong>MKS</strong> recommends defining a delete item rule and assigning the<br />
ModifyDeleteItemRule permission to the appropriate users and groups.<br />
When you select this option, the Rule for Delete Item button is enabled. Selecting this<br />
button displays the Edit Delete Item Rule dialog box, which closely resembles the Item<br />
Editability dialog box. This rule allows you to define the rules for deleting specific item<br />
types for users and user groups.<br />
To learn more about deleting items, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>. To learn more<br />
about item editability, see “Setting Item Editability for Types” on page 114. To learn<br />
more about rules, see “Defining Rules” on page 43.<br />
To associate a custom icon image with the type, under Image select Use Custom Image, and<br />
browse for the image file. When you select an image for the type, it displays with the type. To<br />
have no image associated with the type, select No Image.
Editing Types<br />
Types<br />
If you choose to use your own custom icon image, the image must be in GIF or JPEG format,<br />
and no larger than 24 by 16 pixels.<br />
In the Description field, type a descriptive statement about the type if necessary.<br />
You can edit the details of an item type, but you can only edit one type at a time.<br />
To edit a type in the GUI<br />
CLI EQUIVALENT im edittype<br />
1 From the Types view (see “Types” on page 82), select the type you want to edit.<br />
2 Select Type > Edit. The Edit Type dialog box displays.<br />
3 Edit the type as required. Details on the individual nodes are provided as follows:<br />
Administrators, see “Assigning Type Administrator” on page 94.<br />
Attributes, see “To configure type attributes in the GUI” on page 87.<br />
Properties, see “Using Type Properties” on page 245.<br />
Change Packages, see “To create a type in the GUI” on page 84.<br />
Documents, see “Setting Up Documents” on page 97.<br />
Test Management, see “Setting the Test Management Role for Types” on page 112.<br />
Item Editability, see “Setting Item Editability for Types” on page 114.<br />
Field Relationships, see “Managing Field Relationships” on page 143.<br />
Notification Fields, see “To create a type in the GUI” on page 84.<br />
Overrides for Fields and Overrides for States, see “Setting Type<br />
Overrides” on page 115.<br />
Permissions, see “To create a type in the GUI” on page 84.<br />
Position, see “To create a type in the GUI” on page 84.<br />
Visible Fields, see “To create a type in the GUI” on page 84.<br />
Workflow, see “Workflows” on page 152.<br />
Presentations, see “Customizing Item Presentation” on page 188.<br />
References, see “To create a type in the GUI” on page 84.<br />
History, see “Viewing <strong>Administration</strong> History” on page 47.<br />
91
Chapter 4: Workflow Management<br />
Copying Types<br />
92<br />
4 To save your changes, click OK.<br />
You can copy a type and rename it to create a new type. Copying a type is useful for quickly<br />
creating a new type that shares common details with an existing type.<br />
When naming a copied type, you cannot use a name that already exists.<br />
To copy a type in the GUI<br />
CLI EQUIVALENT im copytype<br />
1 From the Types view (see “Types” on page 82), select the type you want to copy.<br />
2 Select Type > Copy. The Copy Type dialog box displays.<br />
3 In the Name field, type a new name for the type. This is the name <strong>MKS</strong> <strong>Integrity</strong> uses to<br />
refer to the type. The Name field allows 100 alphanumeric characters.<br />
4 Edit the type as required. Details on the individual nodes are provided as follows:<br />
Administrators, see “Assigning Type Administrator” on page 94.<br />
Attributes, see “To configure type attributes in the GUI” on page 87.<br />
Properties, see “Using Type Properties” on page 245.<br />
Change Packages, see “To create a type in the GUI” on page 84.<br />
Documents, see “Setting Up Documents” on page 97.<br />
Item Editability, see “Setting Item Editability for Types” on page 114.<br />
Field Relationships, see “Managing Field Relationships” on page 143.<br />
Notification Fields, see “To create a type in the GUI” on page 84.<br />
Overrides for Fields and Overrides for States, see “Setting Type<br />
Overrides” on page 115.<br />
Permissions, see “To create a type in the GUI” on page 84.<br />
Position, see “To create a type in the GUI” on page 84.<br />
Visible Fields, see “To create a type in the GUI” on page 84.<br />
Workflow, see “Workflows” on page 152.<br />
Presentations, see “Customizing Item Presentation” on page 188.<br />
References, “To create a type in the GUI” on page 84.<br />
History, see “Viewing <strong>Administration</strong> History” on page 47.
Viewing Types<br />
5 To save your changes, click OK.<br />
You can view the details of an item type, but you can only view the details for one type at a<br />
time.<br />
To view a type in the GUI<br />
CLI EQUIVALENT im viewtype<br />
1 From the Types view (see “Types” on page 82), select the type you want to view.<br />
2 Select Type > View Definition. The Type dialog box displays.<br />
3 Details on the individual nodes are provided as follows:<br />
Administrators, see “Assigning Type Administrator” on page 94.<br />
Attributes, see “To configure type attributes in the GUI” on page 87.<br />
Properties, see “Using Type Properties” on page 245.<br />
Change Packages, see “To create a type in the GUI” on page 84.<br />
Types<br />
Test Management, see “Setting the Test Management Role for Types” on page 112.<br />
Document, see “Setting Up Documents” on page 97.<br />
Item Editability, see “Setting Item Editability for Types” on page 114.<br />
Field Relationships, see “Managing Field Relationships” on page 143.<br />
Notification Fields, see “To create a type in the GUI” on page 84.<br />
Overrides for Fields and Overrides for States, see “Setting Type<br />
Overrides” on page 115.<br />
Permissions, see “To create a type in the GUI” on page 84.<br />
Position, see “To create a type in the GUI” on page 84.<br />
Visible Fields, see “To create a type in the GUI” on page 84.<br />
Workflow, see “Workflows” on page 152.<br />
Presentations, see “Customizing Item Presentation” on page 188.<br />
References, “To create a type in the GUI” on page 84<br />
History, see “Viewing <strong>Administration</strong> History” on page 47.<br />
4 When you are finished viewing the information, click Close.<br />
93
Chapter 4: Workflow Management<br />
Deleting Types<br />
Moving Types<br />
94<br />
If you decide you no longer need a particular type, you can delete it, as long as no items of<br />
that type have been created. You can delete more than one type at a time.<br />
To delete a type in the GUI<br />
CLI EQUIVALENT im deletetype<br />
1 From the Types view (see “Types” on page 82), select the type(s) you want to delete.<br />
2 Select Type > Delete. A confirmation dialog box displays.<br />
3 To confirm the deletion, click Yes.<br />
NOTE You can delete a type only if it is not used by other admin objects and it has<br />
not appeared in your history, that is, if no one has created an item of that type. To<br />
view references to the type, see “Viewing Types” on page 93.<br />
You can customize the order the types display in. <strong>MKS</strong> <strong>Integrity</strong> uses the order displayed in<br />
the Reposition Types dialog box.<br />
To change the order of the types in the GUI<br />
CLI EQUIVALENT im edittype<br />
1 From the Types view (see “Types” on page 82), select Type > Reposition. The Reposition<br />
Types dialog box displays.<br />
2 Select the type you want to move, then click Move Up or Move Down as required.<br />
3 Click OK to save your changes.<br />
Assigning Type Administrator<br />
As the super administrator for <strong>MKS</strong> <strong>Integrity</strong>, you can designate groups or individual users,<br />
or a combination of them, to be type administrators for the selected type.<br />
<strong>MKS</strong> <strong>Integrity</strong> type administrators are allowed to edit and view types. Type administrators<br />
are not allowed to assign themselves as administrators to any other types, or to edit types<br />
that are assigned to other type administrators.
TIP If you have multiple type administrators, <strong>MKS</strong> recommends as a best practice<br />
that you isolate the administration objects that each type interacts with, for example,<br />
dynamic groups. This prevents type modifications made by one administrator<br />
affecting another type.<br />
NOTE To determine which fields and states are referenced by any given type,<br />
administrators can view the Usage panel for the field or state in question. The Usage<br />
panel shows the types that refer to the field or state and the attributes that have been<br />
overridden for that type.<br />
If the assigned type administrators are granted the CreateType ACL permission, then they<br />
are allowed to create new types, as well as delete any types. <strong>MKS</strong> <strong>Integrity</strong> type<br />
administrators who are granted the CreateType permission can also assign other type<br />
administrators. For more information on the CreateType permission, see the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
Types<br />
The list of available users and groups contains all active and inactive members that have been<br />
imported into <strong>MKS</strong> <strong>Integrity</strong>; however, the available list does not necessarily include all users<br />
and groups available in the realm. For more information, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
The following table summarizes the capabilities and limitations of the type administrator:<br />
Type administrators can: Type administrators cannot:<br />
Create fields and states.<br />
Create new type in <strong>MKS</strong> <strong>Integrity</strong> (if<br />
CreateType permission is granted).<br />
Edit and view existing types where they are<br />
assigned type administrator.<br />
Edit and view fields and states referenced by<br />
corresponding type if they are also type<br />
administrator for all types that reference those<br />
fields.<br />
Edit field overrides for type they administer.<br />
Delete type (if the CreateType permission is<br />
granted).<br />
View users, groups, dynamic groups, projects,<br />
states, and fields.<br />
View assigned type administrators.<br />
Create, edit, view, and delete custom<br />
presentation templates.<br />
Example<br />
Edit fields (fields cannot be deleted) or states<br />
that reference types assigned to another<br />
administrator.<br />
Delete states that reference type assigned to<br />
another administrator.<br />
Edit users, groups, dynamic groups, projects,<br />
or triggers.<br />
Create/import or delete users, groups,<br />
dynamic groups, projects, or triggers.<br />
Create new type in <strong>MKS</strong> <strong>Integrity</strong> (unless<br />
CreateType permission granted).<br />
Assign another type administrator (unless<br />
CreateType permission granted).<br />
Mary is the type administrator for the Feature type and Neil for the Defect type. The types<br />
reference the following fields:<br />
95
Chapter 4: Workflow Management<br />
96<br />
With this arrangement, Mary can modify the ReleaseID field and Neil can modify the<br />
Priority field; however, neither administrator can modify the Date or Description fields<br />
because these are shared between the two types. Type administrators cannot make edits to<br />
fields or states that affect other types not administered by them.<br />
Only the super administrator is automatically allowed to modify fields that are referenced by<br />
multiple types. To modify fields or states that are referenced by multiple types, the user must<br />
be assigned as a type administrator for all types referencing those fields. For example, if Mary<br />
is added as a type administrator for the Defect type then she can modify all three fields (Date,<br />
Description, and ReleaseID), assuming no other types referenced these fields.<br />
A type administrator can add an existing field to his or her type; however, if the selected field<br />
is already referenced by another type, no type administrator is then allowed to make changes<br />
to that field. For example, if Mary added the Priority field to the Feature type, then Neil is<br />
no longer able to modify the Priority field.<br />
Key Considerations<br />
Only the super administrator is automatically allowed to assign a type administrator in<br />
<strong>MKS</strong> <strong>Integrity</strong>. Type administrators can assign another type administrator only if they<br />
are first granted the CreateType permission.<br />
Through the Create Type window, the super administrator can also assign a type<br />
administrator while creating a new type.<br />
To assign an <strong>MKS</strong> <strong>Integrity</strong> type administrator<br />
CLI EQUIVALENT im edittype<br />
Type Fields Referenced<br />
Feature Date<br />
Description<br />
ReleaseID<br />
Defect Date<br />
Description<br />
Priority<br />
1 From the Types view, select the type you want to create a type administrator for, then<br />
select Type > Edit. The Edit Type window displays.<br />
NOTE Only the super administrator is automatically allowed to assign a type<br />
administrator in <strong>MKS</strong> <strong>Integrity</strong>. Type administrators can assign another type<br />
administrator only if they are first granted the CreateType permission.<br />
Through the Create Type window, the super administrator can also assign a type<br />
administrator while creating a new type.
2 Click the Administrators node.<br />
To assign a specified user or group as a type administrator, see “Filtering Data” on<br />
page 18. You can assign more than one user or group as a type administrator.<br />
Types<br />
3 Click OK to accept the changes. The selected user or group is assigned as a type<br />
administrator. Users and groups displayed in the Assigned column are then allowed to<br />
manage the selected type in <strong>MKS</strong> <strong>Integrity</strong>.<br />
Setting Up Documents<br />
Documents are containers for content items in <strong>MKS</strong> <strong>Integrity</strong>. Each document is composed of<br />
three types: Segments, Nodes, and Shared items, as well as two specific relationships:<br />
Contains/Contained By and References/Referenced By. Together, these types and<br />
relationships form a document model.<br />
Document models control the behavior of documents and content modified by users across<br />
and between domains. A domain is an area of discipline or other logical grouping of like<br />
documents; for example, requirements management and test management. The root of each<br />
document is called a segment root and it has a set of Node types that are its content. Shared<br />
items are referenced by nodes and represent shared content in a document model.<br />
As an administrator, it is your task to create new and modify existing document models from<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client. To learn the specific definitions for all of the terms<br />
mentioned above, see “Key Terms and Concepts in Documents” on page 98.<br />
The following graphic illustrates how segments, nodes, and shared items interact in a typical<br />
document model:<br />
Typical Document Model with relationships<br />
This section describes how to create document types that control the behavior of documents<br />
modified using the Document view in <strong>MKS</strong> <strong>Integrity</strong>.<br />
97
Chapter 4: Workflow Management<br />
98<br />
As an administrator you are responsible for:<br />
creating all three document types (segment, node, shared item) and assigning the<br />
applicable permissions to users and groups<br />
adding the document type to the Category list users will see in the Document view by<br />
editing the Shared Category field<br />
making the associated segments and/or nodes meaningful or non-meaningful<br />
defining field relationships for the fields you want to make traces as well as any other<br />
relevant field relationships<br />
defining additional attributes on the document types the same way you would any type<br />
in <strong>MKS</strong> <strong>Integrity</strong>, for example, triggers and queries<br />
The <strong>MKS</strong> Application Lifecycle Management (ALM) solution template contains sample<br />
document types with associated sample configurations. To learn more about the ALM<br />
template, which includes requirements management and test management concepts and case<br />
studies specific to the operation of the document model in <strong>MKS</strong> <strong>Integrity</strong>, see the ALM<br />
section of the <strong>MKS</strong> Customer Community Knowledge Base found at http://www.mks.com/<br />
community.<br />
Key Terms and Concepts in Documents<br />
This section discusses document model terms and concepts at a high level. It gives you the<br />
basis for understanding these concepts so you can create typical document types using the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
For more details and diagrams on the concepts in this section, including use cases, best<br />
practices, and other relevant information, see the ALM section of the <strong>MKS</strong> Customer<br />
Community Knowledge Base found at http://www.mks.com/community.
<strong>MKS</strong> <strong>Integrity</strong><br />
Term<br />
Architectural<br />
Term<br />
Document (root) Segment<br />
(root)<br />
Document Segment/<br />
Subsegment<br />
Definition<br />
Types<br />
Container for nodes that reference shared items or other documents.<br />
A root document is also considered a segment.<br />
Represented by the top-level node in the Outline panel of the Document<br />
view.<br />
May be related to the item backing the project via the Documents<br />
relationship. The subsegment refers to the node that references a segment<br />
root.<br />
Segments:<br />
are documents or subdocuments that contain content.<br />
can include or reference other segments.<br />
Subsegments:<br />
are segments that are a part of another document. If they are independent of<br />
another document they are considered segments.<br />
are included or inserted into a document which creates a References/<br />
Referenced By relationship between nodes/segment respectively.<br />
can be nested within segments or other subsegments.<br />
Content Node Content:<br />
is the term used in <strong>MKS</strong> <strong>Integrity</strong> for a node/shared item pair; the node<br />
references the shared item.<br />
can be meaningful, for example, a requirement, test case, segment or<br />
subsegment. It can also be non-meaningful; for example a heading or a<br />
comment. These criteria are defined by your system administrator on the<br />
Shared Category field.<br />
Nodes:<br />
are references to individual content items (can also be subsegments<br />
containing their own nodes) that belong to a document and contain<br />
document-specific metadata.<br />
Contents n/a All node/shared item pairs that are contained within a document.<br />
Shared Item n/a <strong>MKS</strong> <strong>Integrity</strong> items that represent shared content in your document model.<br />
Transparent during the creation or modification of content.<br />
Shared Items:<br />
are referenced by nodes.<br />
track modifications to content and reflect them in the node.<br />
Section n/a A grouped hierarchy of nodes in a document, for example: section 1.4 and its<br />
children, 1.4.1, 1.4.2 or section 3.4.2 and its children 3.4.2.1, 3.4.2.2.<br />
Reference mode n/a Setting available on a node within a document that controls how the system<br />
behaves when content is reused and modified. Options are: Author, Reuse,<br />
Share.<br />
99
Chapter 4: Workflow Management<br />
<strong>MKS</strong> <strong>Integrity</strong><br />
Term<br />
100<br />
Architectural<br />
Term<br />
Category n/a Pick field exposed on a node or segment type which allows for the<br />
categorization of content items, for example: Heading, Comment, Requirement,<br />
Test Case.<br />
You can select a segment or node type from the Category pick list value when<br />
you create or modify a segment or a node.<br />
Available options are defined by your administrator on the Shared Category<br />
field.<br />
Group document n/a A read-only document used for grouping content. You cannot create or edit<br />
meaningful content in a group document.<br />
How Segments and/or Nodes Are Exposed to Users<br />
Editable Field Value Attributes (FVAs) are the mechanism used to expose data contained on<br />
the shared item to the user through the node in a document.<br />
When you are creating a field that contains common data across all instances of its use, you<br />
create it on the shared item and create a paired FVA on the node. If the field is project-specific<br />
it only needs to be created on the node.<br />
To learn how to edit built in FVA fields to expose data to users on the shared item after<br />
creating item types, see “Document Set Up Tasks” on page 103.<br />
To learn how to create a node/shared item relationship by editing FVAs, see “Editing Field<br />
Relationships” on page 151.<br />
Document Relationships<br />
There are three classes of relationships that work with the segment, node and shared item<br />
types to complete the document model within <strong>MKS</strong> <strong>Integrity</strong>.<br />
Structural<br />
The structural relationship is used to construct the tree hierarchy or document structure.<br />
Each parent in the hierarchy can have one or more children. Conversely, each child can<br />
have only one parent.<br />
The main structural relationship is between the segment and the node, or the node and a<br />
node and is called Contains/Contained By.<br />
Couplet<br />
Definition<br />
The couplet relationship is used to connect the node(s) to the shared item. This<br />
relationship, in combination with the Reference Mode field, controls how content is<br />
versioned, branched, and reused within a document model.<br />
The node/shared item relationship is called References/Referenced By.
Trace<br />
Types<br />
Trace relationships are used to link document content to other items for a specific<br />
purpose.<br />
Users can create trace relationships between two items in the document model<br />
repository, for example, between a requirement and a test case, or between a higher-level<br />
requirement and a lower-level requirement.<br />
Trace relationships connect nodes, not shared items, together and are tied to the<br />
Category field rather than to the type of the object itself (not <strong>MKS</strong> <strong>Integrity</strong> item types)<br />
for content. Using type properties, you can control the relationships between the various<br />
types and categories of items. Although the number of trace relationships is not<br />
constrained, generally there is one relationship between each type of object in the<br />
system, for example: high level requirements, marketing requirements, test cases, and<br />
components. As an administrator, you can define which relationship fields act as trace<br />
fields relationships between document content items.<br />
To learn how to create a trace relationship field, see the ALM section of the <strong>MKS</strong><br />
Customer Community Knowledge Base found at http://www.mks.com/community.<br />
To learn how users create trace relationships, see your <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Trace relationships are often used in the context of the ALM template. To learn more<br />
about these another other relationships in ALM, see the ALM section of the <strong>MKS</strong><br />
Customer Community Knowledge Base found at http://www.mks.com/community.<br />
Customizing Document Content<br />
Document content is a general term used to describe all of the items contained within a<br />
document or all nodes and shared items contained in a segment. Since all of the nodes of a<br />
given document are of the same <strong>MKS</strong> <strong>Integrity</strong> type, you need a way to differentiate between<br />
headings, comments and other more specific content items. The fields Category and Shared<br />
Category are used for this differentiation and field relationships are used to limit the choices<br />
for the field in each domain.<br />
Categories<br />
Categories are defined on the shared item or segment root via the Shared Category field. The<br />
value of the category is exposed to the end user via the FVA Category field on a node. In<br />
addition to this field pair, field relationships help constrain which values are available on<br />
each type in a document mode. For example, users are prevented from assigning a category<br />
value of Business Requirement to a test case through the use of field relationships.<br />
Meaningful and Non-Meaningful Content<br />
Meaningful and non-meaningful content are the terms used in <strong>MKS</strong> <strong>Integrity</strong> to differentiate<br />
types of content for the purposes of reporting and metrics. By default, content is meaningful<br />
if it is not of category Comment or Heading.<br />
101
Chapter 4: Workflow Management<br />
102<br />
For example, a node with a category of Performance Test may be meaningful to your<br />
metrics, but the headings contained in the content items may not be. You define content as<br />
meaningful or non-meaningful on the Shared Category field after you create document types.<br />
You can define content as meaningful or non meaningful when you edit the Shared Category<br />
field. Similar to Category values, you can create queries and triggers that operate based on<br />
meaningful and non-meaningful definitions for document content.<br />
To learn how to create document model queries, see <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
For sample document model triggers, see the ALM section of the <strong>MKS</strong> Customer Community<br />
Knowledge Base found at http://www.mks.com/community.<br />
Significant Fields<br />
Defined for the segment, node, and shared item. Significant fields are fields that, when<br />
modified by users, result in an update to the contents revision identifier, by default the<br />
Revision Date or Input Revision Date fields.<br />
Changes are reflected to the user in the item history and can be viewed through the History<br />
tab of the individual items of via reports defined within your configuration. Each type has<br />
default associated significant edit fields.<br />
Setting up a document model within <strong>MKS</strong> <strong>Integrity</strong>, you must define significant fields for<br />
each document type.<br />
The ALM template has sample built-in significant fields by type, for details see the ALM<br />
section of the <strong>MKS</strong> Customer Community Knowledge Base found at http://www.mks.com/<br />
community.<br />
Reference Modes<br />
Reference mode is a system-defined field on nodes that contributes to controlling how<br />
content is shared and reused within a document model.<br />
The following are valid reference mode values, some of which users can set and others are<br />
controlled by the system:<br />
Author<br />
The content belongs to the current document. Any user or group with permissions to do<br />
so can modify the content. A new version or branch is not created when content with a<br />
reference mode value of Author is modified.<br />
Reuse<br />
The content belongs to another document and is being referenced by the current<br />
document. Any user or group with permissions to do so can modify the content and any<br />
modification do not affect any other reference to the same shared item. Should a change<br />
be made, the system branches the item and the branched item then has an author<br />
reference to it.
Share<br />
The content belongs to another document and is being referenced by the current<br />
document. The content cannot be modified directly but shows all changes made by the<br />
author.<br />
<strong>MKS</strong> Solution Global Type<br />
The <strong>MKS</strong> Solution global type contains system-defined type properties that control the<br />
behavior of the documents and content across and between domains as well as some<br />
Document view behaviors.<br />
Type properties within this type that should never be modified are denoted with <strong>MKS</strong> Only.<br />
Details about type properties and other specific tasks related to the modification of the <strong>MKS</strong><br />
Solution global type is contained in the <strong>MKS</strong> Customer Community Knowledge Base<br />
found at http://www.mks.com/community.<br />
Types<br />
For more information about how types are created and modified in general in <strong>MKS</strong> <strong>Integrity</strong>,<br />
see “Types” on page 82.<br />
Creating a Document Domain<br />
This section contains the procedures required in order to set up a typical document model,<br />
using the options available under Workflow and Documents in the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client.<br />
To understand how to create a document model using three types in the <strong>MKS</strong> <strong>Integrity</strong><br />
Client, in this section you create a sample document domain called Requirements that has<br />
sample document types and sample attributes, for example: states, projects, visible fields,<br />
field relationships.<br />
The example in this section assumes you are setting up a document model for the first time.<br />
You can also copy existing document domain by copying and modifying the three document<br />
types (segment, node, and shared item) the way you would any type in <strong>MKS</strong> <strong>Integrity</strong>.<br />
Document Set Up Tasks<br />
The following table outlines the steps required to define a typical document model.<br />
Step Task Procedure(s)<br />
1 Create a project with the applicable permissions to<br />
back your document items.<br />
2 Create a state to use as the Initial State when you<br />
create document types. The initial state is selected<br />
for each document type when you create them. You<br />
may want to define different states for documents<br />
and nodes.<br />
“Workflow and Document Projects” on page 248<br />
“Creating Projects” on page 265<br />
“States” on page 77<br />
“Creating States” on page 78<br />
103
Chapter 4: Workflow Management<br />
Step Task Procedure(s)<br />
3 Create a Shared Attachment field to support rich<br />
content.<br />
4 Create a Shared Text field to support rich content.<br />
Set the Default Attachment Field to the newly<br />
created Shared Attachment field.<br />
5 Create the following two FVA fields and make them<br />
editable; they use the References relationship to the<br />
shared fields you created in step 3 and 4:<br />
Attachment<br />
Text<br />
6 Create a Shared_Requirement type with the<br />
applicable attributes.<br />
7 Create a node type called Requirement with the<br />
applicable attributes.<br />
8 Create a segment type called Requirement_<br />
Document with the applicable attributes.<br />
9 Edit the References relationship field. For type<br />
Requirement, allow type Requirement_ Document.<br />
10 Make the applicable nodes and/or segments<br />
meaningful or nonmeaningful by editing the Shared<br />
Category field.<br />
104<br />
Creating Document Types<br />
“Fields” on page 121<br />
“Creating Fields” on page 127<br />
“Fields” on page 121<br />
“Creating Fields” on page 127<br />
CLI EQUIVALENT im createtype or im edittype<br />
“Creating Fields” on page 127<br />
“Field Value Attribute Fields” on page 129<br />
“To create a shared item type in the GUI” on<br />
page 105<br />
“To create a node type from the GUI” on page 106<br />
“To create a segment type from the GUI” on<br />
page 108<br />
“To edit the References field relationship to add the<br />
Requirement Document type” on page 110<br />
“Meaningful and Non-Meaningful Content” on<br />
page 101<br />
This step is included as a part of “Creating<br />
Document Types” on page 104.<br />
11 Create trace relationships fields. This step is included as a part of “Creating<br />
Document Types” on page 104.<br />
In order to set up a domain for managing Requirements, a segment, a node, and a shared<br />
item type need to be created using the various options on the Document Model node in the<br />
Create Type dialog box. These types need to be set in order to interact and control the<br />
behavior of the documents users create and modify. None is the default value for all domain<br />
types that do not utilize a document model.<br />
The following table lists the examples you will create in this section and their associated<br />
relationships:
Name Type Relationship<br />
Shared_Requirement Shared Item Represented by the Reference relationship which is pre-defined<br />
in <strong>MKS</strong> <strong>Integrity</strong>.<br />
Requirement Node Represented by the Contained By relationship to the segment<br />
and Referenced By relationship to the shared item.<br />
This relationship is pre-defined in <strong>MKS</strong> <strong>Integrity</strong>.<br />
Requirement_ Document Document<br />
(segment root)<br />
To create a shared item type in the GUI<br />
In this example, you create a shared item type called Shared_Requirement.<br />
1 Ensure you have completed steps 1–5 in “Document Set Up Tasks” on page 103.<br />
2 From the Types view (see “Types” on page 82), select Types > Create Type. The Create<br />
Type dialog box displays.<br />
3 Type Shared_Requirement in the Name field.<br />
4 In the tree pane, select Attributes (see “Configuring Type Attributes” on page 87). The<br />
Attributes view displays. Enable the following:<br />
May have their tree copied<br />
May be branched<br />
May have labels applied<br />
5 Define the following as Visible Fields (see “Setting Field Visibility for Types” on<br />
page 120):<br />
State<br />
Shared Attachments<br />
Shared Text<br />
6 Define a workflow (see “Creating Workflow” on page 158) with the following<br />
transitions:<br />
Unspecified–Active<br />
Active–Active<br />
To create the type that fulfills the role of Shared Item:<br />
Represented by the Contains relationship. This relationship is<br />
pre-defined in <strong>MKS</strong> <strong>Integrity</strong>.<br />
7 In the tree pane, select Document Model. The Document Model view displays.<br />
Types<br />
105
Chapter 4: Workflow Management<br />
106<br />
8 Select Shared Item from the drop list at the top of the dialog box. Settings for Shared Item<br />
displays.<br />
To learn more about shared items in the document model, the <strong>MKS</strong> Customer<br />
Community Knowledge Base found at http://www.mks.com/community.<br />
Define the Significant Edit Fields setting for the shared item. Specify the significant fields<br />
for this type (see “Significant Fields” on page 102). To learn how to create and modify<br />
fields, see “Fields” on page 121.<br />
9 Define the following field relationships (see “Managing Field Relationships” on<br />
page 143):<br />
Type=Shared_Requirement<br />
Shared Category=Heading, Comment,System Requirement, ....<br />
10 Define additional type attributes using the tree pane. Refer to the following sections for<br />
complete details about the options included with the node:<br />
“States” on page 77<br />
“Types” on page 82<br />
“Workflows” on page 152<br />
“Fields” on page 121<br />
“Customizing Item Presentation” on page 188<br />
“<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Permissions” on page 76<br />
11 Click OK to finish creating the Shared_Requirement type and its associated attributes.<br />
You will now create a node type for the shared item to reference.<br />
To create a node type from the GUI<br />
In this example, you create a node type called Requirement.<br />
1 Ensure you have completed steps 1–5 in “Document Set Up Tasks” on page 103.<br />
2 From the Types view (see “Types” on page 82), select Types > Create Type. The Create<br />
Type dialog box displays.<br />
3 Type Requirement in the Name field.<br />
4 In the tree pane, select Attributes (see “Configuring Type Attributes” on page 87). The<br />
Attributes view displays.<br />
5 Enable the following:<br />
May have their tree copied<br />
May be branched<br />
May have labels applied
6 Define a workflow (see “Creating Workflow” on page 155) with the following<br />
transitions:<br />
Unspecified–Active<br />
Active–Active<br />
Types<br />
7 Define the following Visible Fields (see “Setting Field Visibility for Types” on page 120):<br />
Project<br />
State<br />
Text<br />
Text Attachments<br />
To create the type that fulfills the role of node:<br />
8 In the tree pane, select Document Model. The Document Model view displays.<br />
9 Select Node at the top of the dialog box. Settings for Node displays.<br />
To learn more about nodes in the document model, see the <strong>MKS</strong> Customer Community<br />
Knowledge Base found at http://www.mks.com/community.<br />
Select the Shared Item Type you want to reference from the node from the list. In this<br />
example, the Shared Item type has already been created and is called<br />
Shared_Requirement.<br />
Previously created shared item types display in this list if any were created or<br />
installed via the ALM template. The ALM template comes with built in sample<br />
types. To learn more about the ALM template, see the <strong>MKS</strong> Customer Community<br />
Knowledge Base found at http://www.mks.com/community.<br />
Significant Edit Fields<br />
10 Click OK.<br />
Specify the significant fields for this type. See “Significant Fields” on page 102.<br />
To learn how to create and modify fields, see “Fields” on page 121.<br />
11 Create a Property (see “Configuring Type Attributes” on page 87) called<br />
<strong>MKS</strong>.PrimaryTextField. This property cannot be specified using the <strong>MKS</strong> Solution<br />
global type property. It must be specified on all nodes when there is more than one long<br />
text field on the shared item.<br />
12 Define the following field relationships (see “Managing Field Relationships” on<br />
page 143):<br />
Type=Requirement<br />
Shared Category=Heading, Comment, System Requirement<br />
107
Chapter 4: Workflow Management<br />
108<br />
13 Define additional type attributes using the tree pane, see the following sections for<br />
complete details about the options included with the node:<br />
“States” on page 77<br />
“Types” on page 82<br />
“Workflows” on page 152<br />
“Fields” on page 121<br />
“Customizing Item Presentation” on page 188<br />
“<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Permissions” on page 76<br />
14 Click OK to finish creating the Node type and its associated attributes.<br />
You will now create a segment type to contain the node type you just created.<br />
To create a segment type from the GUI<br />
In this example, you create a segment type called Requirement_Document.<br />
1 Ensure you have completed steps 1–5 in “Document Set Up Tasks” on page 103.<br />
2 From the Types view (see “Types” on page 82), select Types > Create Type. The Create<br />
Type dialog box displays.<br />
3 In the tree pane, select Attributes (see “Configuring Type Attributes” on page 87). The<br />
Attributes view displays.<br />
4 Enable the following:<br />
May have their tree copied<br />
May be branched<br />
May have labels applied<br />
5 Define a workflow (see “Creating Workflow” on page 155) with the following<br />
transitions:<br />
Unspecified–Active<br />
Active–Active<br />
6 Define the following as visible fields (see “Setting Field Visibility for Types” on<br />
page 120):<br />
Project<br />
State<br />
Shared Attachment<br />
Shared Text<br />
7 In the tree pane, select Document Model. The Document Model view displays.
To create the type to fulfill the role of segment:<br />
8 Select Segment from the list. The Settings for Segment dialog box displays.<br />
Types<br />
9 Select the Node Type you want to reference the node from the list. In this example, select<br />
the Requirement node type that you created previously.<br />
This list is empty if you did not create a node type. Previously created node types<br />
display in this list if you created or installed any via the ALM template. The ALM<br />
template comes with built in sample types. To learn more about the ALM template, see<br />
the <strong>MKS</strong> Customer Community Knowledge Base found at http://www.mks.com/<br />
community.<br />
10 Define the following settings for the segment:<br />
a) Add or remove Significant Edit fields.<br />
Specify the significant fields for this type. See “Significant Fields” on page 102.<br />
To learn how to create and modify fields, see “Fields” on page 121.<br />
b) Select a Print Report to use as the format you want for the printed output the user<br />
sees when they print a document of this type in <strong>MKS</strong> <strong>Integrity</strong>. Reports should be<br />
designed to print the entire document.<br />
Any administration report can be used for printing a document. However, <strong>MKS</strong><br />
recommends you use the Document Content report that is included with the ALM<br />
template.<br />
To learn more about the ALM template, see the <strong>MKS</strong> Customer Community<br />
Knowledge Base found at http://www.mks.com/community.<br />
For additional information, refer to “Defining the Format of Printed Documents” on<br />
page 111.<br />
c) Check Group Document if you use this item type to group content. You cannot<br />
create or edit meaningful content in a group document.<br />
For example, the ALM template uses Test Group to collect test cases for test<br />
execution. Tests can be authored in test suites, based on functional or architectural<br />
structures, and linked to the requirements that they verify. This grouping of tests<br />
makes it easy for the author to ensure complete testing coverage. But in some testing<br />
environments not all tests in a suite are executed at the same time. The Test Group<br />
can be used to organize a subset of test cases for each environment, with special<br />
testers and scripts. For more examples of using grouping in test management, see<br />
the <strong>MKS</strong> Customer Community Knowledge Base found at http://www.mks.com/<br />
community.<br />
d) Specify the default reference mode to apply to nodes after they are branched. To<br />
understand the differences between reference modes, see “Reference Modes” on<br />
page 102.<br />
109
Chapter 4: Workflow Management<br />
110<br />
11 Define the following field relationships (see “Managing Field Relationships” on<br />
page 143):<br />
Type=Requirement_Document<br />
Shared Category=Document<br />
12 Define additional type attributes using the tree pane, see the following sections for<br />
complete details about the options included with the node:<br />
“States” on page 77<br />
“Types” on page 82<br />
“Workflows” on page 152<br />
“Fields” on page 121<br />
“Customizing Item Presentation” on page 188<br />
“<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Permissions” on page 76<br />
13 Click OK to finish creating the Segment type and its associated attributes.<br />
IMPORTANT If you have a node type referenced by a segment, you cannot change the<br />
document type of the node to shared item or segment.<br />
To edit the References field relationship to add the Requirement Document type<br />
1 From the Fields view (see “Fields” on page 121), select References > Edit. The Edit Field<br />
dialog box displays.<br />
2 Click the Field Relationships node.<br />
3 In the Types box, select the Requirement node type add Requirement Document to the<br />
Allowed SubSegment Types list.<br />
If the segment allows more than one valid Shared Category, then you should set the<br />
<strong>MKS</strong>.RQ.Domain property to include additional categories. If the segment allows only one<br />
valid Shared Category, for example, the default Document you do not need to augment<br />
<strong>MKS</strong>.RQ.Domain property.<br />
To learn how about the <strong>MKS</strong>.RQ.Domain property, see the <strong>MKS</strong> Customer Community<br />
Knowledge Base found at http://www.mks.com/community.<br />
4 Click OK.<br />
This section of the procedure is optional to add Shared Category pick values and make them<br />
meaningful or non meaningful:<br />
1 From the Fields view (see “Fields” on page 121), select Shared Category > Edit. The Edit<br />
Field dialog box displays.<br />
2 Click Add. The Add Pick dialog box displays.
3 Type a Label for the Shared Category value you want to add.<br />
4 Select meaningful or non-meaningful from the list.<br />
5 Define images as applicable (“Editing Fields” on page 140).<br />
6 Click OK twice.<br />
To learn how to create a trace relationship field, see the <strong>MKS</strong> Customer Community<br />
Knowledge Base found at http://www.mks.com/community.<br />
7 Click OK to finish creating your document model.<br />
After you have created your document domain, you need to make the Document and<br />
Content menus visible to users. To learn how to activate menus on ViewSet, see “Updating<br />
Published ViewSets” on page 64. When a user selects Document > Create, the categories<br />
become visible in the Document view.<br />
Types<br />
You may want to limit the categories associated with the shared item (field relationships) to a<br />
list applicable to your application.<br />
You can configure additional type attributes, for example, define document items to be a part<br />
of test management. See “Setting the Test Management Role for Types” on page 112.<br />
To see how the document types you created translate to the structure of a document that<br />
users create and modify, see your <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Defining the Format of Printed Documents<br />
You can define the printed output users will see when they print documents by creating a<br />
report and defining it on the Segment type. Reports can only be set on segment types and a<br />
segment type does not require a print report definition.<br />
The ALM template ships with sample reports. To learn more about what those reports are,<br />
and where you can find them, see the <strong>MKS</strong> Customer Community Knowledge Base found at<br />
http://www.mks.com/community.<br />
To define a print report format for a Segment type in the GUI<br />
1 Create a report to use with segment types using the report feature. To learn how to use<br />
the report feature, see your <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
NOTE A sample report is available if you are using documents in an ALM template<br />
environment. To locate the sample report, the <strong>MKS</strong> Customer Community<br />
Knowledge Base found at http://www.mks.com/community.<br />
111
Chapter 4: Workflow Management<br />
112<br />
2 From the Create Type or Edit Type panel, with the Segment mode button enabled,<br />
choose a report from the Print Report pick list.<br />
Any administration report can be used for printing a document. However, <strong>MKS</strong><br />
recommends you use the Document Content report that is included with the ALM<br />
template.<br />
To learn more about the ALM template, see the <strong>MKS</strong> Customer Community Knowledge<br />
Base found at http://www.mks.com/community.<br />
3 Complete the rest of the panel depending on the document model definition you require.<br />
4 Click OK. The report is attached to the segment for this Document type.<br />
When a user selects Document > Print in the Document view, the document prints<br />
using the report specified for the segment. If no report is defined and the user prints<br />
using this method, the table on the right is sent to the printer.<br />
When a document is selected in the Item view and a user selects View > Print, you are<br />
presented with an option to print Selected Document. This option only exists if an<br />
item type is a document segment and there is a print report associated with the type.<br />
NOTE Multiple document printing is not supported in <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong>. If<br />
multiple documents are selected in the Item view, this option is disabled.<br />
To learn more about item printing options, see <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Setting the Test Management Role for Types<br />
If you are using <strong>MKS</strong> <strong>Integrity</strong> for test management, you can specify the role that the type has<br />
in the test management process.<br />
To set test management roles for types in the GUI<br />
1 From the Create Type, Copy Type, or Edit Type dialog box, click the Test Management<br />
node. (For more information on the dialog box, see “Creating Types” on page 84,<br />
“Copying Types” on page 92, or “Editing Types” on page 91.)<br />
2 Specify whether this item type can be related to test results. For example, you might<br />
want a defect item type to be able to be related to a test result.<br />
3 Select one of the following test management roles for the item type:<br />
None<br />
The item type does not have a role specific to test management.<br />
Test Suite<br />
A test suite is a grouping of test cases. Typically, tests are authored in test suites. Test<br />
suites can vary from small groupings that test an individual feature, to large
Types<br />
groupings that test an entire product or perform stress or load testing. Test suites<br />
can contain other test suites. Test suites must have a document model of Segment<br />
since test suites are containers of content. For more information on the document<br />
model, see “Setting Up Documents” on page 97.<br />
If you select this role, proceed to step 7.<br />
Test Case<br />
A test case describes the test conditions and provides a container for adding test<br />
results from the test session. Test cases can be specified for different types of tests,<br />
including functional, performance, automated, or manual tests. Test cases must<br />
have a document model of Node since test cases provide the content for test suite or<br />
test group documents. For more information on the document model, see “Setting<br />
Up Documents” on page 97.<br />
If you select this role, proceed to step 5.<br />
Test Step<br />
A test step is a specific testing operations performed as part of a executing a test case.<br />
A test case contains an ordered list of steps to follow in order to complete the test.<br />
Test steps can be shared across test cases. Test steps must have a document model of<br />
None. For more information on the document model, see “Setting Up Documents”<br />
on page 97.<br />
If you select this role, proceed to step 7.<br />
Test Session<br />
A test session is a concrete run or execution of a group of test cases. The group of<br />
tests to be run can be based on a test suite or test group. During the test session each<br />
test suite or test group is executed, (which in turn means that each test case in each<br />
of the test suites or test groups is executed) and test results are collected. Test<br />
sessions must have a document model of None. For more information on the<br />
document model, see “Setting Up Documents” on page 97.<br />
4 Specify who is able to modify the test results for the test session:<br />
Anyone<br />
The user in the specified User Field on the test session.<br />
Any user in the group in the specified Group Field on the test session.<br />
Any user in the specified Groups.<br />
Proceed to step 7.<br />
5 Select Test Steps will be enabled on items of this type if you want test steps to display on<br />
the test case. A test step is a specific test for a test case. A test case can contain an ordered<br />
list of steps to follow in order to complete the test. Test steps can be shared across test<br />
cases.<br />
6 Specify the Fields on the test case that you want to display in the Test Results view.<br />
113
Chapter 4: Workflow Management<br />
114<br />
7 Click OK.<br />
For more information on using <strong>MKS</strong> <strong>Integrity</strong> for test management, see the <strong>MKS</strong> Customer<br />
Community Knowledge Base found at http://www.mks.com/community.<br />
Setting Item Editability for Types<br />
You can define the conditions that give users permission to edit items of a specific type.<br />
To define item editability for a type in the GUI<br />
CLI EQUIVALENT im createtype, im copytype, or im edittype<br />
1 From the Create Type, Copy Type, or Edit Type dialog box, click the Item Editability<br />
node. (For more information on the dialog box, see “Creating Types” on page 84,<br />
“Copying Types” on page 92, or “Editing Types” on page 91.) The Item Editability panel<br />
displays.<br />
2 Do one of the following:<br />
Under Condition, define the conditions this type should be editable under.<br />
For information on the available operators and rule structure, see “Defining Rules”<br />
on page 43. For information on using the data filter, see “Filtering Data” on page 18.<br />
Under Copy, do one of the following:<br />
Click Add to copy editability rules from another type. The copied rules are<br />
appended to any existing rules.<br />
Click Replace to copy editability rules from another type to replace any existing<br />
rules.<br />
The Rule Selection dialog box displays.<br />
In the Objects with Rules list, select the type that you want to copy a rule from.<br />
If the type has a rule, that type displays in the Preview area.<br />
Click OK. The rule displays in the Editability panel.<br />
3 Click OK to save the item editability rule(s) for the type.<br />
Setting Type Visibility<br />
Type visibility allows you to control access to information throughout your organization.<br />
Through <strong>MKS</strong> <strong>Integrity</strong>, you can manage the types that reflect your product development.<br />
You can use type visibility to ensure that sensitive information from one group is not viewed
or modified by another group. All items and e-mail notification are subject to type visibility<br />
rules.<br />
Types<br />
When you create a type, you can select which user groups can see the type and all items<br />
assigned to the project. You can also define which user groups can see all types in the<br />
database and which ones are restricted to see only certain types. If a user is not a member of<br />
at least one group allowed to view the type, that user cannot view any items of that type.<br />
Based on type visibility, users are allowed to query the database only for items of the types<br />
that are visible to them. Items of types not visible to users are not displayed in the query<br />
results. If users try to view an item of a type that is not visible to them, an error message<br />
displays.<br />
If an item in one project is related to an item in a project not visible to the user, the related<br />
item does not display in the Relationship view. In the History view, the user can see only that<br />
an edit occurred (Modified by on ). Users do not see the related item<br />
ID, and cannot see if the edit was an addition or removal of a related item.<br />
If an item, previously invisible to users, is reassigned to a type that is visible to users, they do<br />
not see the previous type name in the History view. Instead, a symbolic “Restricted Type”<br />
value displays.<br />
Setting Type Overrides<br />
Type overrides allow you to set certain attribute values that apply only for the selected type.<br />
<strong>MKS</strong> <strong>Integrity</strong> allows two varieties of type overrides: overrides for fields and overrides for<br />
states. Overrides for fields and states can be set while editing a type.<br />
When you set a type override, you are effectively customizing the applicable field or state<br />
attribute to suit the type(s) you administer. <strong>MKS</strong> <strong>Integrity</strong> then applies the new attribute<br />
value only for the type you are editing. The customized value supersedes the global settings<br />
for the target attribute when referenced by the selected type.<br />
NOTE Type overrides can also be set through the CLI using the im editfield and<br />
im editstate commands. For more information, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
<strong>Administration</strong> CLI Reference <strong>Guide</strong>.<br />
Overrides for Fields<br />
Once a type is created, you can set overrides for certain field attributes. Overrides can be set<br />
for all fields referenced by that type; however, only the following field attributes are available<br />
for override:<br />
Relevance<br />
Editability<br />
Description<br />
115
Chapter 4: Workflow Management<br />
116<br />
Ranges<br />
Phases<br />
Display pattern<br />
Default value<br />
Parameter substitution<br />
Overriding field relevance allows you to define, for the selected type, specific conditions that<br />
make a field applicable to users, groups, or items with certain field values. For example, if the<br />
global setting meant that the selected field was generally relevant and you wanted to<br />
simplify the information presented for the majority of users, you could set an override that<br />
made the field relevant only to the primary users of the selected type. For more information<br />
on the relevance attribute, see “Setting Field Relevance” on page 133.<br />
Overriding the field’s editability allows you to define, for the selected type, the conditions<br />
where users have permission to edit a field. For example, if the global setting means that the<br />
selected field is generally editable and you want to simplify the tasks required for the<br />
majority of users, you could set an override that makes the field editable only by the primary<br />
users of the selected type. For more information on the editability attribute, see “Setting Field<br />
Editability” on page 135.<br />
Overriding the field description allows you to customize the description that <strong>MKS</strong> <strong>Integrity</strong><br />
uses for the type you are administering. This new description supersedes the global<br />
description for the selected field and is applied only when the field is referenced by the<br />
selected type. For example, the global description for the Submit field might be “Initial<br />
stage“. When referenced by the Feature Request type, you could set this description to<br />
“Feature request submission“. For more information on the description attribute, see<br />
“Setting Field Description” on page 137.<br />
Overriding the field default value allows you to have multiple types share a field with<br />
different field defaults for each type. For example, if you shared the Assigned Group field<br />
across multiple types, you could override the default Assigned Group field value and replace<br />
it with a new default field value for the type, or just remove the existing default.<br />
To set a type override for fields<br />
CLI EQUIVALENT im edittype<br />
1 From the Types view (see “Types” on page 82), select the type you want to edit.<br />
2 Select Type > Edit. The Edit Type dialog box displays.<br />
3 In the tree pane, select the Override for Fields node. The display pane shows the<br />
fields referenced by the selected type. A checkmark indicates the attribute has been<br />
overridden.
Column headers display the field attributes that are available for override, including<br />
Description, Relevance, Editability, Ranges, Display Pattern, and Phases.<br />
4 To set an override for a field, highlight the field in the list, and click Edit. The Edit Field<br />
Overrides For Type dialog box displays.<br />
TIP To view the existing overrides for a field, highlight the field, and click View.<br />
If the Override the global rule option is not selected, an editable attribute displays the<br />
global value. A checkmark in the tab indicates an override. You can set the following<br />
overrides:<br />
Types<br />
To set an override for a numeric field’s global display pattern, click the Values tab (if<br />
not already displayed), select the Override the global display pattern option, and<br />
make the required changes. For more information on display patterns, see “Display<br />
Patterns” on page 28.<br />
To set an override for global range values, click the Values tab (if not already<br />
displayed), select the Override the global range values option, and make the<br />
required changes. For more information on ranges, see “Range Fields” on page 130.<br />
To set an override for global phases, click the Values tab (if not already displayed),<br />
select the Override the global phases option, and make the required changes. For<br />
more information on phases, see “Phase Fields” on page 130.<br />
To set an override for the default value, click the Values tab (if not already<br />
displayed), select the Override the default value option, and change the Set Default<br />
Value option. If the field is an integer, float, or date field, you can also change the Set<br />
Minimum Value and Set Maximum Value options. If you do not want to use a default<br />
or minimum/maximum value for the type, disable Override the default value.<br />
To set an override for parameter substitution in a text field, click the Values tab (if<br />
not already displayed), select Override "Substitute Parameters" Value and change<br />
the Substitute Parameters option. When parameter substitution is not enabled for a<br />
field, you see parameter entries in the following format: {{}}.<br />
When parameter substitution is enabled for a field, the parameter name is replace<br />
with a parameter value when you view the item through a view or report that<br />
supports parameter substitution.<br />
To set an override for default columns in a relationship field, click the Default<br />
Columns tab, select the Override the global default columns option, and make the<br />
required changes. For more information on setting default columns, see “Specifying<br />
Default Columns” on page 133.<br />
To set an override for the relevance attribute, click the Relevance tab, select the<br />
Override the global rule option, and make the required changes. For more<br />
information on the relevance attribute, see “Setting Field Relevance” on page 133.<br />
117
Chapter 4: Workflow Management<br />
118<br />
To set an override for the editability attribute, click the Editability tab, select the<br />
Override the global rule option, and make the required changes. For more<br />
information on the editability attribute, see “Setting Field Editability” on page 135.<br />
To set an override for the description attribute, click the Description tab, and select<br />
the Override the global description option. In the text field, type the text description<br />
you want to apply to this field only when referenced by this type.<br />
NOTE<br />
To view the existing sequence of fields referenced by this type, click the Position<br />
tab. The list of fields displays.<br />
To view the administrative changes made to fields referenced by this type, click<br />
the History tab. A list of administrative changes, if any, displays.<br />
Position and History information is for information purposes only and is not<br />
editable.<br />
5 When you are finished setting the overrides, click OK.<br />
Overrides for States<br />
Once a type is created, you can set overrides for certain state attributes. Overrides can be set<br />
for all states referenced by that type; however, only the following state attributes are<br />
available for override:<br />
Description<br />
Image<br />
Capabilities<br />
Overriding the attribute allows you to set a unique description, image, or capability that<br />
supersedes the global setting used by <strong>MKS</strong> <strong>Integrity</strong>. The override you set is then used by<br />
<strong>MKS</strong> <strong>Integrity</strong> only when that state is referenced by the selected type. For example, for the<br />
Build state, the state capability rule does not allow open change packages. However, you<br />
could set an override that allowed open change packages in the Build state only when<br />
referenced by the Web Development type.<br />
For more information on state attributes, see “Creating States” on page 78.<br />
To set a type override for states<br />
CLI EQUIVALENT im edittype<br />
1 From the Types view (see “Types” on page 82), select the type you want to edit.<br />
2 Select Type > Edit. The Edit Type dialog box displays.
3 In the tree pane, select the Overrides for States node. The display pane shows the<br />
states referenced by the selected type. A checkmark indicates the attributes have been<br />
overridden.<br />
Column headers display the state attributes that are available for override, including<br />
Description, Image, and Capabilities.<br />
4 To set an override for a state, highlight the state in the list, and click Edit. The Edit State<br />
Overrides For Type dialog box displays.<br />
If the Override the global rule option is not selected, an editable attribute displays the<br />
global value. A checkmark in the tab indicates an override.<br />
TIP To view the existing overrides for a state, highlight the state, and click View.<br />
Types<br />
5 To set an override for the description attribute, click the Description tab, and select the<br />
for Override the global description option. In the text field, type the text description you<br />
want to apply to this state only when referenced by this type.<br />
6 To view the existing sequence of states referenced by this type, click the Position tab. The<br />
list of states displays. Details displayed under the Position tab is for information<br />
purposes only and cannot be edited.<br />
7 To set an override for the image attribute, click the Image tab, select the Override the<br />
global image option, and make the required changes in the image selection.<br />
You can associate a custom icon image with the state. To do this, select Use Custom<br />
Image, and browse for the image file. To have no image associated with the type, select<br />
No Image. If you choose to use your own custom icon image, the image must be in GIF or<br />
JPEG format, and no larger than 24 x 16 pixels.<br />
8 To view the administrative changes made to states referenced by this type, click the<br />
History tab. A list of administrative changes, if any, displays. Details displayed under the<br />
History tab is for information purposes only and cannot be edited.<br />
9 To set an override for the state capability attribute, click the Capabilities tab, select the<br />
Override global capabilities option, and make the required changes to define state-based<br />
capabilities. In <strong>MKS</strong> <strong>Integrity</strong>, state-based capabilities allow time entries to exist while an<br />
item is in a given state. For more information on creating, editing, viewing, and deleting<br />
time entries, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
In <strong>MKS</strong> <strong>Integrity</strong>, state-based capabilities allow change packages that are under review<br />
or change packages that are open to exist while an item is in a given state. For more<br />
information on the change package review and approval process, see the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>2009</strong> User <strong>Guide</strong>.<br />
If the item state does not allow open change packages, <strong>MKS</strong> <strong>Integrity</strong> prompts users to<br />
close the item’s change package before they move any item to that state. In addition, if an<br />
119
Chapter 4: Workflow Management<br />
120<br />
item state does not allow open change packages, users cannot create new change<br />
packages for any items in that state.<br />
To define a state-based capability, do one of the following:<br />
To display only enabled state-based capabilities, from the Filter list select<br />
.<br />
To display all available state-based capabilities, from the Filter list select .<br />
To display only the state-based capabilities related to <strong>MKS</strong> <strong>Integrity</strong>, select<br />
<strong>MKS</strong> <strong>Integrity</strong>. Then to allow time entries in the selected state, enable the Allows<br />
time entry in this state option.<br />
To display only the state-based capabilities related to <strong>MKS</strong> <strong>Integrity</strong>, select<br />
<strong>MKS</strong> <strong>Integrity</strong>.Then select one or more of the following capabilities:<br />
To allow change packages under review in the selected state, enable the Allows<br />
SI change packages under review to exist in this state option.<br />
To allow open change packages in the selected state, enable the Allows open SI<br />
change packages to exist option.<br />
NOTE If you are using the Implementer integration with <strong>MKS</strong> <strong>Integrity</strong>, additional<br />
state-based capabilities are available.<br />
10 When you are finished setting the overrides, click OK.<br />
Setting Field Visibility for Types<br />
When you create a type, you can select which groups can see the fields and the values within<br />
the fields. Field visibility, based on the type definition, allows you to control access to<br />
information within an item. You can use field visibility to ensure that sensitive information<br />
from one group is not viewed or modified by another group. All items, attachments, and<br />
queries are subject to field visibility rules.<br />
If users do not have visibility for a field (in a specified type), they cannot:<br />
see the value(s) assigned to that field for an item of the specified type<br />
use queries to search on fields that are not visible to them<br />
IMPORTANT In the Create Query dialog box, users are able to see the field name. If<br />
the field is a picklist, users are able to see all possible values within the field.<br />
The standard fields Type, ID, Created By, Created Date, Modified By, and Modified Date are not<br />
subject to field visibility rules and are always visible for all item types. Other standard fields<br />
are always visible for specific types, based on their document model or test role. Fields that<br />
are always visible are displayed with a gray checkmark.
Fields<br />
Field visibility applies to the Fields, History, Attachments, and Relationships sections in an<br />
item. In addition, because queries are subject to field visibility, reports and charts do not<br />
include data from invisible fields.<br />
NOTE Field visibility is not field relevance. Relevance allows you to create subsets of<br />
information that make it easier for users to create and edit items. Field visibility is a<br />
security mechanism that restricts user access to information in <strong>MKS</strong> <strong>Integrity</strong>. For<br />
more information on relevance, see “Setting Field Relevance” on page 133.<br />
Fields<br />
<strong>MKS</strong> <strong>Integrity</strong> comes with a standard set of default fields that are visible to all item types and<br />
all users. Fields are categories of data that can be associated with items. You can also create<br />
custom fields in <strong>MKS</strong> <strong>Integrity</strong>.<br />
When naming a field, <strong>MKS</strong> <strong>Integrity</strong> also allows you to use a secondary name to be displayed<br />
on the interface. This secondary name, known as the display name, can be helpful in<br />
simplifying information presented to the user. For more information, see “Using Display<br />
Names” on page 126.<br />
Any changes you make within the Fields dialog box are implemented in the database<br />
immediately; you cannot cancel them. If you create a field with an incorrect type, you cannot<br />
change its type. You can remedy the problem by renaming the field, making it invisible for all<br />
types, or deleting it if there are no references (see “Deleting Fields” on page 142).<br />
NOTE There are special considerations if you rename a default field that is<br />
referenced in an item type property. Item type properties are used to define<br />
solution-specific behavior. For more information, see the ALM section of the <strong>MKS</strong><br />
Customer Community Knowledge Base found at http://www.mks.com/<br />
community.<br />
Several of the default fields are used specifically in the document model structure. To learn<br />
more about the architecture of the document model, see the ALM section of the <strong>MKS</strong><br />
Customer Community Knowledge Base found at http://www.mks.com/community.<br />
Standard <strong>MKS</strong> <strong>Integrity</strong> fields that you can include in your workflow are as follows:<br />
Field Name Editable? Description<br />
Assigned User Yes User responsible for item.<br />
Assigned Group Yes Group responsible for item.<br />
Attachment Yes Attachment(s) included with the item. For more<br />
information about creating attachments in items, see your<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
121
Chapter 4: Workflow Management<br />
122<br />
Field Name Editable? Description<br />
Backward Relationships Yes Related parent items. For more information on item<br />
relationships, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Category Yes FVA field that displays the value from the Shared<br />
Category field in a node item.<br />
For more information about item types in the document<br />
model, “Types” on page 82.<br />
Contained By No Describes the linkage from child to parent and defines the<br />
contents and structure of a document.<br />
For more information about item types in the document<br />
model, “Types” on page 82.<br />
Contains No Describes the linkage from parent to child and defines<br />
the contents and structure of a document.<br />
For more information about item types in the document<br />
model, “Types” on page 82.<br />
Created By No User who created item.<br />
Created Date No Date item was created.<br />
Subdocument Name No Name of the document item name that references the<br />
segment. The subdocument name is derived from the<br />
Summary field on the referencing node. You can edit<br />
Summary directly on a node or a segment.<br />
For more information about item types in the document<br />
model, “Types” on page 82.<br />
Document ID No ID of the document item in which content is contained.<br />
For more information about item types in the document<br />
model, “Types” on page 82.<br />
Forward Relationships Yes Related child items. For more information on item<br />
relationships, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
ID No Unique ID assigned to each item upon creation.<br />
Input Revision Date Yes Date of the last significant modification to this document<br />
item or, if a node, to the shared item that backs it.<br />
Modified By No User who last modified item.<br />
Modified Date No Date item was last changed.<br />
Notes Yes Special notes about the item.<br />
Parameters Yes Lists the valid parameters for an item. For more information,<br />
see “Using Parameters and Parameter Values Fields” on<br />
page 138.<br />
Parameter Values Yes Specifies the values for the parameters. For more<br />
information, see “Using Parameters and Parameter Values<br />
Fields” on page 138.
Field Name Editable? Description<br />
Project No Project item belongs to. Projects are groupings of related<br />
items.<br />
Referenced By No Describes the linkage from shared item to node, or document<br />
root to node.<br />
For more information about item types in the document<br />
model, “Types” on page 82.<br />
Referenced Item Type Yes Shared item type as exposed through the node<br />
reference.<br />
For more information about item types in the document<br />
model, “Types” on page 82.<br />
Reference Mode No Controls how document items are versioned, branched, and<br />
reused.<br />
References No Describes the linkage from node to shared item, or node to<br />
document root.<br />
Root ID No ID of the original ancestor of a document item. Same as<br />
the item ID if an original artifact.<br />
Shared By No Establishes an explicit sharing linkage between two node<br />
items.<br />
Node items participating in a Shares/Shared By<br />
relationship always point to the same shared item.<br />
Edits to shared node fields also appear on the items<br />
listed.<br />
For more information on nodes and shared items, see<br />
“Setting Up Documents” on page 97.<br />
Shared Category Yes Defines the type of document or shared item. Values are<br />
constrained by field relationships.<br />
For more information about item types in the document<br />
model, “Types” on page 82.<br />
Note: Shared Category fields are always mandatory.<br />
Shared Test Steps Yes Related test steps for a test case. Test steps are items with a<br />
test management role of Test Step. For more information,<br />
see “Setting the Test Management Role for Types” on<br />
page 112.<br />
A test step shared with another test case cannot be edited,<br />
but it can be copied and replaced with the new version.<br />
Shares No Establishes an explicit sharing linkage between two node<br />
items.<br />
Node items participating in a Shares/Shared By<br />
relationship always point to the same shared item.<br />
Shared node fields can only be edited on the item listed.<br />
For more information on nodes and shared items, see<br />
“Setting Up Documents” on page 97.<br />
Fields<br />
123
Chapter 4: Workflow Management<br />
124<br />
Field Name Editable? Description<br />
Signature Comment No Any comments entered as part of electronic signature.<br />
For more information, see “Setting Up Electronic<br />
Signatures” on page 241.<br />
Signed By No User who provided electronic signature when item was<br />
changed. For more information, see “Setting Up<br />
Electronic Signatures” on page 241.<br />
State Yes Step or stage of workflow process.<br />
Summary Yes Brief summary of item, up to 250 alphanumeric<br />
characters.<br />
Tests As Of Date Yes Date on test session that determines which test cases<br />
display for test documents in the test result editor. Test<br />
cases added to test documents after this date are not<br />
displayed.<br />
Test Cases Yes Related test cases that shared test steps belong to.<br />
Tests Yes Related test documents or test cases. When you add a<br />
related item to this field, a dialog box displays, allowing<br />
you to select a test document, or select individual test<br />
cases from a test document.<br />
Note: You cannot create new items to add as related<br />
items.<br />
Test documents can be test suite or test group<br />
documents. Test suites have a document model of<br />
Segment and a test management role of Test Suite.<br />
Test group documents have a document model of<br />
Segment and a segment setting of Group Document.<br />
Test cases have a document node of Node and a test<br />
management role of Test Case.<br />
For more information on the document model, see<br />
“Setting Up Documents” on page 97. For more<br />
information about test management roles, see “Setting<br />
the Test Management Role for Types” on page 112.<br />
Tests For Yes Related item that the test document or test case belongs to.<br />
Test Steps No FVA field that displays information from the Shared Test<br />
Steps field in a related test case.<br />
Type No Item type that pertains to particular workflow.<br />
Key Considerations<br />
<strong>MKS</strong> <strong>Integrity</strong> comes with a set of standard fields that are visible to all item types and all<br />
users.<br />
Field visibility rules based on item type are defined when creating a type. For more<br />
information, see “Setting Field Visibility for Types” on page 120.
When naming a field, <strong>MKS</strong> <strong>Integrity</strong> allows you to use a secondary name (the display<br />
name) that appears on the GUI.<br />
Working in Fields View<br />
Using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, you can manage fields from one convenient<br />
location. Managing fields is carried out through the Fields view.<br />
CLI EQUIVALENT im fields<br />
To open the Fields view from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the<br />
Workflows and Documents node, and select Fields. The Fields view displays.<br />
By default, the data filter in the Fields view displays all existing fields. You can search for a<br />
specific field by typing in the text filter and/or using the following filters:<br />
Filter Description<br />
visible in item type Displays fields visible in the specified item type.<br />
visible in all item types Displays fields common to all types.<br />
of field type Displays specific field types.<br />
For more information on using the data filter, see “Filtering Data” on page 18.<br />
Fields<br />
<strong>MKS</strong> <strong>Integrity</strong> has a standard set of default fields that are visible to all users for all item types.<br />
Fields are categories of data that can be associated with items. You can also create custom<br />
fields in <strong>MKS</strong> <strong>Integrity</strong>.<br />
NOTE Field visibility rules based on item type are defined when creating a type. For<br />
more information, see “Setting Field Visibility for Types” on page 120.<br />
Any changes you make in the Fields view have an immediate effect on your <strong>MKS</strong> <strong>Integrity</strong><br />
database. For general information on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, see<br />
“Introduction” on page 10.<br />
Through the Fields view, you can:<br />
edit the details for an existing field<br />
view the details for an existing field<br />
create a new field<br />
reposition, or change the order of presentation for a field<br />
delete an existing field<br />
125
Chapter 4: Workflow Management<br />
126<br />
Any changes you make within the Fields dialog box are implemented in the database<br />
immediately; you cannot cancel them. If you create a field with an incorrect type, you cannot<br />
delete it or change its type or definition. You can either rename it or make it invisible for all<br />
types.<br />
Using Display Names<br />
NOTE Certain standard fields are always visible and cannot be edited. For these<br />
standard fields, only the Description and Position panels appear. The standard<br />
fields are: ID, Modified By, Created By, Modified Date, and Created Date. You can<br />
provide a description for each standard field.<br />
When naming a field, <strong>MKS</strong> <strong>Integrity</strong> also allows you to use a secondary name that can be<br />
displayed to the user on the interface. This secondary name, known as the display name, is the<br />
field title that users see when working with <strong>MKS</strong> <strong>Integrity</strong>. Therefore, the field name is the<br />
name used by <strong>MKS</strong> <strong>Integrity</strong> to identify the field, and the display name is the text displayed<br />
to the user.<br />
When naming a field, <strong>MKS</strong> <strong>Integrity</strong> automatically enters the same selected name in the<br />
Display Name field; however, you can choose a different name to use as the display name.<br />
Display names are useful for clarifying the terminology presented to users on the interface.<br />
For example, you may want to use acronyms or short forms when naming your fields, but<br />
then provide the full text name as the field title that is presented to users, such as a field name<br />
Mgr with a display name Manager. You could also use display names to simplify titles, such<br />
as a field name Created Date with a display name Created On.<br />
NOTE Display names are not intended as a method for translating or localizing<br />
information presented on the interface.<br />
To avoid confusion for users, display names must be unique for fields referenced within a<br />
single type. Fields referenced across multiple types do not need to have unique display<br />
names. For non-unique display names referenced across multiple types, <strong>MKS</strong> <strong>Integrity</strong><br />
appends detailed information or displays tooltips to help the user identify the field.<br />
In the presentation template designer, display names are also used by default for the titles of<br />
fields that you insert into your custom template. For more information on working with<br />
custom presentation templates, see “Customizing Item Presentation” on page 188.<br />
TIP To view the column for display names from the GUI, right click the column<br />
header, and select Display Names from the shortcut menu.
Creating Fields<br />
Fields<br />
<strong>MKS</strong> <strong>Integrity</strong> is installed with a set of default fields, and you can also create custom fields to<br />
suit your work process. Default fields cannot be deleted.<br />
IMPORTANT When creating custom fields used in item types, custom indexes may<br />
need to be created for your database. Contact your Database Administrator (DBA)<br />
for assistance.<br />
You can create the following types of fields.<br />
Field Type Description<br />
Attachment For including attachments, such as design documents.<br />
Note: You can create relevance and editability rules on<br />
attachment fields; however, you cannot include attachment<br />
fields in the definition of a rule.<br />
Integer For simple, countable items, such as call tracking numbers.<br />
Item Backed Picklist (IBPL) For displaying values from one or more items in a picklist. For<br />
more information, see “Item Backed Picklist Fields” on<br />
page 129<br />
Field Value Attribute (FVA) For sharing field information from a linked item. For more<br />
information, see “Field Value Attribute Fields” on page 129<br />
Picklist Specifies items that should display in a drop-down list, such as<br />
predefined product codes. You can also choose an option that<br />
allows users to select multiple picklist values.<br />
Note: Once you use a picklist value, that value cannot be used<br />
again, even if you delete the pick field that is associated with it.<br />
Similarly, you cannot change the picklist value once you have<br />
set it.<br />
Floating Point For numbers with decimals, such as performance data.<br />
Logical For Boolean items (ones that are either true or false), such as<br />
whether an item has been tested.<br />
Date For dates, such as when a defect was fixed. Optionally, you<br />
can include the time.<br />
Short Text For miscellaneous information, such as a comment field. You<br />
can define suggestions to appear in this field.<br />
Long Text For miscellaneous information. You can display information in<br />
this field in rows.<br />
User For users that display in a drop-down list, such as users in a<br />
specific group.<br />
Group Fields For groups that display in a drop-down list, such as groups<br />
assigned to a specific project.<br />
127
Chapter 4: Workflow Management<br />
128<br />
Field Type Description<br />
Relationship Fields Relationship fields enable you to link one item to another.<br />
For more information, see “Relationship Fields” on page 128.<br />
Trace Relationship Fields Trace relationship fields enable you to create trace<br />
relationships between two items in the document model.<br />
Phase For categorizing groups of states in a workflow. For more<br />
information, see “If an FVA field is backed by a text field with<br />
parameter substitution, when you view the item through a view<br />
or report that supports parameter substitution, the substituted<br />
values from the item containing the backing field are displayed<br />
in the FVA field on the current item. For more information, see<br />
“Using Parameters and Parameter Values Fields” on<br />
page 138.” on page 130.<br />
Query Backed Relationship For displaying a large number of related items in a read-only<br />
relationships field, based on a query. For example, the<br />
Features field in a Project item could display all the Feature<br />
items that are returned by the Release_5_Features query.<br />
Range For categorizing numeric value ranges in an associated<br />
numeric field (integer or floating point). For more information,<br />
see “Range Fields” on page 130.<br />
Relationship Fields<br />
You can create relationship fields to link items for reference purposes, such as linking<br />
duplicate items, or linking features and their defects. You can also create relationship fields to<br />
link items for the purposes of tracking and monitoring. For example, you can create a Sub<br />
Features relationship field on a Feature item type to link a master feature to a group of<br />
secondary features, which in turn can have relationship fields that link to defect and<br />
documentation items. Users can then track the overall development progress for a master<br />
feature by reviewing its hierarchy of related items using the Relationships view. For more<br />
information on the Relationships view, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Every relationship consists of a pair of relationship fields: one for the forward relationship<br />
and one for the backward relationship. Forward relationships are relationships where the<br />
related item is a child of the original item. Backward relationships are relationships where the<br />
related item is a parent of the original item. For example, you could create a forward<br />
relationship field named Sub Features to link master features to their sub features, and a<br />
backward relationship field named Master Feature to link sub features to their master feature.<br />
Users can create a relationship from either the child or the parent, and the corresponding<br />
field in the related item is updated automatically.<br />
To learn how to define a relationships field as a trace for use in document types, see the last<br />
section of “Creating Document Types” on page 104.
Item Backed Picklist Fields<br />
Fields<br />
An item backed picklist (IBPL) field displays the values of one or more fields from another<br />
item type as picklist values. The item type that the values are based on is known as the<br />
backing item type. Whenever a value in one of the fields is updated in a backing item, all items<br />
with IBPL fields that reference that value are updated to reflect the new value.<br />
For example, if you create an IBPL field named Documentation on the Defect item type,<br />
backed by the ID field on the Documentation item type, ID field values in all Documentation<br />
items appear as pick text in the Documentation IBPL field in Defect items. If you wanted to<br />
show more information in the pick text, the Documentation field could be backed by the<br />
Project and Summary field as well as the ID field. The values from these fields would be<br />
combined to form more descriptive picklist values.<br />
Only values from active backing items are displayed in IBPL fields. You determine the<br />
criteria for active items by specifying the active states, and by defining a filter for any<br />
additional criteria that you require. The item type, active states, and additional filter criteria<br />
are used together to filter the values that appear in the IBPL field.<br />
If a selected picklist value becomes inactive, it still displays in the IBPL field, unless you edit<br />
that field.<br />
Note the following:<br />
The name of the IBPL field cannot be the same as the referenced field in the backing item<br />
type.<br />
If a new or existing IBPL field is multi-valued, it cannot be used as a relationship for a<br />
Field Value Attribute (FVA) field. When creating an FVA field, the IBPL field does not<br />
appear in the relationship field.<br />
Field Value Attribute Fields<br />
If an item is related to another item through a single-valued relationship field or IBPL field,<br />
you can share information from the related item in an FVA field. For example, if Department<br />
items have a Manager field and a Phone Extension field, and Department items can be related<br />
to Defect items through a Manager IBPL field on the Defect, you can also create an FVA field<br />
on the Defect named Extension to Call that displays the phone number for the selected<br />
department manager. If you change the Phone Extension in the Department item, that change<br />
is reflected in the Defect item.<br />
Note the following:<br />
You cannot create an FVA field backed by a range field that is based on a numerical field<br />
value attribute field.<br />
Users cannot edit an FVA field if it has no backing relationship.<br />
If you create an FVA rich content field, it can only access attachments from an FVA<br />
attachment field over the same relationship as the FVA rich content field. This keeps the<br />
text and image data together. If the rich content field is not an FVA field, it should use<br />
129
Chapter 4: Workflow Management<br />
130<br />
non-FVA attachment fields. If you create a type with visible FVA and non-FVA rich<br />
content and attachment fields, <strong>MKS</strong> <strong>Integrity</strong> only displays attachment fields visible to<br />
the user in the GUI or Web interface. From the CLI, the user must know which<br />
attachment fields to use with rich content fields.<br />
If an FVA field is backed by a text field with parameter substitution, when you view the<br />
item through a view or report that supports parameter substitution, the substituted<br />
values from the item containing the backing field are displayed in the FVA field on the<br />
current item. For more information, see “Using Parameters and Parameter Values<br />
Fields” on page 138.<br />
Phase Fields<br />
Phases are useful for organizing an item type’s workflow if it contains a large number of<br />
states and provide users with a broad overview of an item’s status independent of the<br />
workflow. For example, a Feature type could have the following phases (states are in<br />
parentheses):<br />
Requirements (Draft 1, First Draft Signoff, ...)<br />
Design (Update Data Model, ...)<br />
Development (In Development, Unit Testing, ...)<br />
Testing (White Box Testing, Black Box Testing, Regression Testing, ...)<br />
Implementation (Planning, Implementation, ...)<br />
Post-Implementation Maintenance (Patch 1 In Progress, ...)<br />
You can create any number of phases for a phase field. States not grouped into a phase are<br />
referred to as out of phase states. When an item is in an out of phase state, the phase field<br />
displays Out of Phase.<br />
Range Fields<br />
A range field is a computed picklist field associated with a numeric field: range limits and the<br />
associated field are stored in the computation expression and the range category name and<br />
icon are stored in the database as picklist items. When a value is entered in the associated<br />
numeric field, the appropriate range category displays in the range field. Range fields are<br />
useful for defining thresholds for numeric data and providing a broad overview of that data.<br />
For example, if a Project type has an integer field called Critical Defects that displays the<br />
number of Defect items marked Critical, you could add a range field called Defect Status<br />
that displays one of the following range categories based on the number of items in the<br />
Critical Defects field:<br />
Golden ("Critical Defects" = 0)<br />
Acceptable (1
Fields<br />
You can also add visual indicators to a range field by using customized images for each range<br />
category or by using the item presentation template designer to render range fields<br />
differently for each range category. For example, in the Defect Status field you could render<br />
Golden as black text on a white background, Acceptable as blue text on a white<br />
background, Watch as black text on a yellow background, and Trouble as red text on a<br />
yellow background.<br />
NOTE<br />
You cannot specify different range category names and icons for types; however,<br />
you can specify different range limits for types.<br />
Range field values are automatically determined based on an associated numeric<br />
field. You cannot edit range fields in an Item Details view.<br />
Range fields cannot contain an associated field that includes a computed<br />
expression with an external information function.<br />
Range value limits can be overridden on a per type basis; however, you cannot<br />
override range category names and icons.<br />
SI Project Fields<br />
SI project fields allow users to specify a related configuration management project, optionally<br />
including a checkpoint revision or development path. By creating a configuration<br />
management project field and a computed field that uses the SIMetric() external<br />
information function, you can retrieve metrics about the specified project, for example, how<br />
many lines of code are in the project. For more information on creating configuration<br />
management project metrics, see “Using Configuration Management Project Metrics” on<br />
page 280. For more information on external information functions and computed fields, see<br />
“Computed Expressions” on page 291.<br />
IMPORTANT<br />
Metrics are only maintained against project checkpoints; therefore, to generate<br />
metrics users must specify a checkpoint when they specify the configuration<br />
management project.<br />
Configuration management project fields cannot be specified in any type of rule.<br />
To allow users to specify a related configuration management project when<br />
creating or editing an item, you must enable and properly configure the<br />
workflow and document, and configuration management integration. For more<br />
information, refer to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration<br />
<strong>Guide</strong>. You must restart the server for this change to take effect.<br />
To create a field in the GUI<br />
CLI EQUIVALENT im createfield<br />
1 From the Fields view (see “Fields” on page 121), select Field > Create. The Create Field<br />
dialog box displays.<br />
131
Chapter 4: Workflow Management<br />
132<br />
2 In the Name field, type a new name for the field. This is the name you use to refer to the<br />
field in <strong>MKS</strong> <strong>Integrity</strong>. The Name field allows 100 alphanumeric characters.<br />
In the Display Name field, <strong>MKS</strong> <strong>Integrity</strong> automatically enters the same selected name.<br />
Display names are the field titles that users see when working with <strong>MKS</strong> <strong>Integrity</strong>.<br />
You can choose a different name to use as the display name. Display names are useful<br />
for clarifying the terminology presented to users on the interface. For more information,<br />
see “Using Display Names” on page 126.<br />
3 On the Values panel, from the Data Type list select a data type for the field. When you<br />
select a data type, the values the field can accept display below. For more information,<br />
see the following.<br />
“Attachment Fields: Values Tab” on page 443<br />
“Integer Fields: Values Tab” on page 443<br />
“Item Backed Picklist Fields: Values Tab” on page 444<br />
“Field Value Attribute Fields: Values Tab” on page 444<br />
“Pick Fields: Values Tab” on page 445<br />
“Floating Point Fields: Values Tab” on page 445<br />
“Logical Data Fields: Values Tab” on page 446<br />
“Date Fields: Values Tab” on page 446<br />
“Short Text Fields: Values Tab” on page 447<br />
“Long Text Fields: Values Tab” on page 448<br />
“User Fields: Values Tab” on page 449<br />
“Group Fields: Values Tab” on page 450<br />
“Relationship Fields: Values Tab” on page 450<br />
“Phase Fields: Values Tab” on page 452<br />
“Query Backed Relationship Fields: Values Tab” on page 452<br />
“Range Fields: Values Tab” on page 453<br />
NOTE The Values panel is unavailable for standard fields, such as Type, ID, Created<br />
Date, Created By, Modified Date, and Modified By.<br />
4 Edit the field information as needed:<br />
To type a more detailed textual description of the field, such as the field’s purpose<br />
or what distinguishes this field from others, click the Description tab.
Fields<br />
To customize the order the fields display in, click the Position tab to display the<br />
Position panel, and use the Move Up and Move Down buttons to change the order in<br />
the list. This order is used throughout <strong>MKS</strong> <strong>Integrity</strong>.<br />
To specify default columns for relationship fields, click the Default Columns tab to<br />
display the Default Columns panel. For more information, see “Specifying Default<br />
Columns” on page 133.<br />
To set field relevance, click the Relevance tab. For more information, see “Setting<br />
Field Relevance” on page 133.<br />
To set field editability, click the Editability tab. For more information, see “Setting<br />
Field Editability” on page 135.<br />
To set field rules, click the Rules tab. For more information, see “Setting Field Rules”<br />
on page 137.<br />
5 When you are finished setting the field’s properties, click OK.<br />
Specifying Default Columns<br />
You can specify default columns for fields types Relationship and Query Backed<br />
Relationship.<br />
Use the Forward tab to specify the columns displayed on the forward relationship field and<br />
the Backward tab for the columns displayed on the backward relationship field. The<br />
customization of the two fields are independent of each other, but both can be specified from<br />
just one of the fields (you are not required to edit both fields).<br />
For information on filtering data to specify fields and the common interactors on the panel,<br />
see the <strong>MKS</strong> <strong>Integrity</strong> Client <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
Setting Field Relevance<br />
Relevance is a set of field conditions that determine which fields are relevant to selected<br />
groups of users or to specified field values. Fields that do not meet the relevance rules are not<br />
visible to users.<br />
You can define specific conditions that make a field relevant to selected groups of users or<br />
items with field values. Fields that do not meet relevance rules are not visible to users.<br />
Relevance allows you to create subsets of information that make it easier for users to create<br />
and edit items.<br />
Relevance uses logical conditions based on user groups and field values to make up a rule.<br />
These rules apply item by item and not by type definition.<br />
If you create a dynamic group related to a specific project, you can also choose to make a field<br />
relevant only to members of that group.<br />
Relevance is not a security mechanism for controlling access to information in <strong>MKS</strong> <strong>Integrity</strong>.<br />
For purposes of security, <strong>MKS</strong> <strong>Integrity</strong> includes project, type, and field visibility rules to<br />
133
Chapter 4: Workflow Management<br />
134<br />
control user access to information. For more information on visibility rules, see “Setting<br />
Workflow and Document Project Visibility” on page 250, “Setting Type Visibility” on<br />
page 114, and “Setting Field Visibility for Types” on page 120.<br />
NOTE Relevance rules are evaluated on the <strong>MKS</strong> <strong>Integrity</strong> Client’s time zone.<br />
To define field relevance in the GUI<br />
CLI EQUIVALENT im createfield or im editfield<br />
NOTE Relevance does not apply for fields ID, Created Date, Created By, Modified<br />
Date, Modified By, and Type.<br />
1 From the Create Field or Edit Field dialog box, click the Relevance tab. For more<br />
information on the dialog box, see “Creating Fields” on page 127 or “Editing Fields” on<br />
page 140. The Relevance panel displays.<br />
2 To prevent the field from being displayed, enable Never Relevant. This option is useful if<br />
you want to hide read-only custom fields (that is, phase, range, computed) in Item Detail<br />
and Items views, but still be able to query on them. Enabling this option replaces any<br />
existing rules with false, removing all remaining options in the panel. If you enable this<br />
option, proceed directly to the final step of this procedure.<br />
3 Under Condition, define the conditions that make the selected field relevant to the<br />
selected user, groups, or field values. For more information, see “Defining Rules” on<br />
page 43.
4 Under Copy, copy relevance rules from another field. Do one of the following:<br />
Fields<br />
Click Add to copy relevance rules from another field. The copied rules are appended<br />
to any existing rules.<br />
NOTE If the field you are copying has a false relevance rule (never relevant), the<br />
rule does not appear. This means that a false relevance rule cannot be copied.<br />
Click Replace to copy relevance rules from another field to replace any existing<br />
rules. The Rule Selection dialog box displays.<br />
In the Objects with Rules list, select the field that you want to copy a rule from. If the<br />
field has a rule, that field displays in the Preview area.<br />
Click OK. The rule displays in the Relevance panel.<br />
5 Click OK to save the relevance rule(s).<br />
Setting Field Editability<br />
You can define the conditions that give users permission to edit a field. If you create a<br />
dynamic group related to a specific project, you can also choose to make a field editable only<br />
by members of that group.<br />
Key Considerations<br />
Editability rules are evaluated on the <strong>MKS</strong> <strong>Integrity</strong> Client’s time zone.<br />
Editability does not apply for fields ID, Created Date, Created By, Modified Date, Modified By,<br />
and Type. It also does not apply for phase, range, item backed picklist, query backed<br />
relationship, and computed fields.<br />
Editability rules cannot include a computed expression that requires an external<br />
information function. For more information on computed expressions, see “Computed<br />
Expressions” on page 291.<br />
To define field editability in the GUI<br />
CLI EQUIVALENT im createfield or im editfield<br />
1 From the Create Field or Edit Field dialog box, click the Editability tab. For more<br />
information on the dialog box, see “Creating Fields” on page 127 or “Editing Fields” on<br />
page 140. The Editability panel displays.<br />
135
Chapter 4: Workflow Management<br />
136<br />
To prevent the field from being edited, enable Never Editable. This option is useful for<br />
fields that are updated by event triggers and are not meant to be edited by users. For<br />
example, you could create a date field where the date is automatically specified when the<br />
item enters a certain state. If you enable this option, proceed directly to the final step of<br />
this procedure.<br />
NOTE By default, this option is enabled for read-only custom fields (that is, phase,<br />
range, field value attribute (FVA), computed) and cannot be disabled.<br />
2 Under Condition, define the conditions this field should be editable under. For more<br />
information, see “Defining Rules” on page 43.<br />
3 Under Copy, do one of the following:<br />
Click Add to copy editability rules from another field. The copied rules are<br />
appended to any existing rules.<br />
If the field you are copying has a false editability rule (never editable), the rule<br />
does not appear. This means that a false editability rule cannot be copied.<br />
Click Replace to copy editability rules from another field to replace any existing<br />
rules. The Rule Selection dialog box displays.<br />
In the Objects with Rules list, select the field that you want to copy a rule from. If the<br />
field has a rule, that field displays in the Preview area.
Click OK. The rule displays in the Editability panel.<br />
NOTE If the field type is a phase, range, item backed picklist, query backed<br />
relationship, or computed field, a false rule automatically displays in the<br />
Editability panel. These field types display read-only values and cannot be edited.<br />
4 Click OK to save the editability rule(s).<br />
Setting Field Rules<br />
You can select and configure rules that control how a field works. You can select multiple<br />
rules for one field. Currently, rules are only available for relationship fields.<br />
To define a field rule in the GUI<br />
CLI EQUIVALENT im createfield or im editfield<br />
Fields<br />
1 From the Create Field or Edit Field dialog box, click the Rules tab. For more information<br />
on the dialog box, see “Creating Fields” on page 127 or “Editing Fields” on page 140. The<br />
Rules panel displays.<br />
2 Click New. The Rules Wizard dialog box displays.<br />
3 Type a name for the rule.<br />
4 Select a template to use for the rule. The rule description displays in the field below.<br />
5 Click a rule parameter (with links shown in blue) in the rule description. A dialog box<br />
displays, allowing you to set the value(s) for the parameter.<br />
Repeat this step until there are values set for all the required parameters in the rule.<br />
6 Click OK. The rule displays in the Rules tab.<br />
Setting Field Description<br />
You can specify a text description of a field. This description displays as a tooltip when users<br />
point to the field name in the GUI or Web interface.<br />
To specify a field description in the GUI<br />
CLI EQUIVALENT im createfield or im editfield<br />
1 From the Create Field or Edit Field dialog box, click the Description tab. For more<br />
information on the dialog box, see “Creating Fields” on page 127 or “Editing Fields” on<br />
page 140. The Description panel displays.<br />
2 Type a text description of the specified field.<br />
3 Click OK to save your changes.<br />
137
Chapter 4: Workflow Management<br />
138<br />
Using Parameters and Parameter Values Fields<br />
Parameters are a special type of long text field. You can make the default fields visible on<br />
item types, but you cannot create new Parameters or Parameter Values fields.<br />
You use these fields to specify valid parameters and parameter values for an item type. Users<br />
can then specify the appropriate parameters for individual items. For more information on<br />
how users work with Parameters and Parameter Values fields, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong><br />
User <strong>Guide</strong>.<br />
Parameters allow you to reuse an item in different contexts by being able to specify unique<br />
item values for each context. Parameters are typically used in the requirements management<br />
and test management domains. For example, you could have a test case item with parameters<br />
that display different values for different test sessions.<br />
Example<br />
The ABC watch company produces a number of waterproof watch models. Each watch is<br />
tested underwater, but the depth requirement is different for each model. If the waterproof<br />
depth is a parameter value, then the same test can be used for each model, but the value of<br />
the depth parameter will change based on the model being tested. If there are multiple tests<br />
for the different amounts of time the watch should work underwater, making the depth a<br />
parameter also ensures that if the depth requirement for a model changes, all the tests for that<br />
model would use the new value.<br />
<strong>MKS</strong> <strong>Integrity</strong> determines what parameters can be specified and what parameter values are<br />
substituted in text fields based on items that are related to the item being edited or viewed.<br />
How <strong>MKS</strong> <strong>Integrity</strong> Determines Parameters and Parameter Values for an Item<br />
<strong>MKS</strong> <strong>Integrity</strong> uses the following process to determine the parameters and parameter values<br />
that display in a Parameter Values field when viewing an item, and that are substituted for<br />
parameter names in short and long text fields when viewing an item.<br />
<strong>MKS</strong> <strong>Integrity</strong> searches a hierarchy of items that are related to the current item. It searches for<br />
parameters and parameter values that are defined in the related item, or that are shared with<br />
the related item through a Field Value Attribute (FVA) field backed by a parameters or<br />
parameter values field.<br />
The following hierarchy of related items is considered when determining parameters and<br />
parameter values for an item:<br />
1 Shared parameters from a related project item. For example, the related project item has<br />
an FVA field that displays a parameter value from the application item.<br />
2 Parameters defined in the related project item.<br />
3 Shared parameters from a related test session item.<br />
4 Parameters defined in the related test session item.
5 Shared parameters from a related document content item linked through a Shares<br />
relationship.<br />
6 Parameters defined in a related document content item linked through a Shares<br />
relationship.<br />
Fields<br />
7 Shared parameters from the closest related document root item, for example, a test suite.<br />
8 Parameters defined in the closest related document root item.<br />
The next two steps only apply when substituting parameters in FVA fields backed by a<br />
text field with parameter substitution, or when substituting parameters in text fields for<br />
items in a relationship table field.<br />
9 Shared parameters from the item containing the backing field or from the item<br />
represented by the table row.<br />
10 Parameters defined in the item containing the backing field for an FVA field or in the<br />
item represented by the table row.<br />
11 Shared parameters on the current item.<br />
12 Parameters defined in the current item.<br />
Parameter values higher in the hierarchy are overridden by parameter values lower in the<br />
hierarchy, unless the parameter value is locked, in which case the value locked at the highest<br />
point in the hierarchy is used. If the relationship does not exist, <strong>MKS</strong> <strong>Integrity</strong> skips that step<br />
and continues down the hierarchy.<br />
Example<br />
NOTE If you change a parameter value in an item, and you have an item that is<br />
lower in the hierarchy open, you must refresh the view of the lower level item in<br />
order to see the updates.<br />
The ABC watch company produces a number of waterproof watch models. Each watch is<br />
tested underwater, but the depth requirement is different for each model. The waterproof<br />
depth is a parameter.<br />
If the following parameters and parameter values are defined:<br />
The project item for the new waterproof watches has a Depth parameter with a value of<br />
25 metres.<br />
The test suite for watch model A has a Depth parameter value with a value of 25<br />
metres.<br />
The test suite for watch model B had a value of of 10 metres.<br />
The test cases, which are shared across the test suites for watch models A and B, specify<br />
the depth parameter in a text field: {{Depth}}.<br />
139
Chapter 4: Workflow Management<br />
Editing Fields<br />
140<br />
When viewing the test cases for the model A test suite, a value of 25 metres displays in the<br />
text field.<br />
When viewing the test cases for the model B test suite, a value of 10 metres displays in the<br />
text field.<br />
You can edit field details, including editability, relevance, description, and position.<br />
To edit a field in the GUI<br />
CLI EQUIVALENT im editfield<br />
1 From the Fields view (see “Fields” on page 121), select the field you want to edit.<br />
2 Select Field > Edit. The Edit Field dialog box displays.<br />
3 Edit the field information as needed.<br />
For more information about the fields and tabbed panels in this dialog box, see “To<br />
create a field in the GUI” on page 131.<br />
NOTE<br />
When editing the maximum length of a short text or long text field, decreasing<br />
the value does not truncate existing data or affect how data is displayed in the<br />
Items view.<br />
If you specify an inactive value for a user, group, or project field with a default<br />
value, the existing value is cleared when you relaunch the Edit Field dialog box.<br />
For multi-valued user and group fields, the entire field value is cleared even if<br />
you specify one inactive value.<br />
To view a history of administrative changes for the selected field, click the History<br />
tab. The record of changes displays.<br />
To determine which fields are referenced by any given type, click the Usage tab. The<br />
Usage panel shows what types refer to the field and what attributes have been<br />
overridden for that type. For types used in document model, the Usage panel shows<br />
which fields are significant and which ones are copied when a document is<br />
branched. To learn about document branching and significant fields, see “Setting<br />
Up Documents” on page 97.<br />
To determine all objects that reference the field, click the References tab. For<br />
information on the contents of the tab, see “To manage admin provided objects in<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client” on page 244.<br />
4 Click OK to save your changes.
Viewing Fields<br />
You can view detailed information for existing fields. You can only view the details for one<br />
field at a time.<br />
To view a field in the GUI<br />
CLI EQUIVALENT im viewfield<br />
1 From the Fields view (see “Fields” on page 121), select the field you want to view.<br />
2 Select Field > View. The View Field dialog box displays. For more information about the<br />
fields and tabbed panels in this dialog box, see “To create a field in the GUI” on<br />
page 131, and “To edit a field in the GUI” on page 140.<br />
NOTE You cannot change information that displays in a view mode.<br />
3 When you are finished viewing, click Close.<br />
Deactivating Picklist Values<br />
Setting a picklist value to inactive means that in the GUI it is not displayed in any filtered<br />
picklists, such as Severity; however, an inactive picklist value can still be selected using the<br />
Select button in the Web interface and is denoted with the [Inactive] tag.<br />
Fields<br />
By deactivating picklist values, the picklist is filtered to display only those picklist values that<br />
are currently active in <strong>MKS</strong> <strong>Integrity</strong>.<br />
Key Considerations<br />
Inactive picklist values continue to display in fields, history, query filters, relevance and<br />
editability rules, field relationship filters, charts, and reports.<br />
Inactive picklist values can be selected in query filters, relevance and editability rules,<br />
field relationships, charts, and reports.<br />
Inactive picklist values cannot be selected in fields; however, fields retain inactive<br />
picklist values. If a user edits a multi-valued picklist, inactive picklist values are no<br />
longer valid selections, even if only one of the values was previously inactive.<br />
If one or more active picklist values are referenced in a trigger field assignment and you<br />
attempt to make one of those values inactive, an error message displays the picklist<br />
values and the trigger(s) where the assignment occurs. The references in the event<br />
trigger(s) must be removed before making a picklist value inactive.<br />
141
Chapter 4: Workflow Management<br />
Deleting Fields<br />
142<br />
To deactivate a picklist value in the GUI<br />
CLI EQUIVALENT im editfield<br />
1 From the Fields view (see “Working in Fields View” on page 125), select the pick field<br />
you want to edit.<br />
2 Select Fields > Edit. The Edit Field dialog box displays.<br />
3 Select the picklist value you want to deactivate, and click Edit. The Edit Pick dialog box<br />
displays.<br />
4 To deactivate the picklist value, clear the Active check box.<br />
5 To save the changes, click OK. The changes take effect immediately in the <strong>MKS</strong> <strong>Integrity</strong><br />
database. Inactive picklist values are denoted by the [Inactive] tag.<br />
6 To save the pick field, click OK.<br />
You can delete fields, even if items have already been created that use that field. However, to<br />
delete a field, all objects must be edited so that they no longer contain references to that field.<br />
You can view references from the References tab when viewing a field (see “Viewing Fields”<br />
on page 141). For a list of objects that can reference a field, see “To manage admin provided<br />
objects in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client” on page 244.<br />
You cannot delete a field that has historical references to that field in the history of one or<br />
more items. You must first delete the items that have entries for the field in their histories.<br />
CAUTION Deleting a field is permanent. That data cannot be restored after command<br />
completion. Ensure that you back up your database before deleting a field.<br />
IMPORTANT Deleting a field of the Relationship data type also deletes its partner<br />
field. By default, you are asked to confirm that the server delete the partner field. For<br />
more information on such fields, see “Managing Field Relationships” on page 143.<br />
To delete a field in the GUI<br />
CLI EQUIVALENT im deletefield<br />
1 From the Fields view (see “Working in Fields View” on page 125), select the field you<br />
want to delete.<br />
2 View the field (see “Viewing Fields” on page 141), and examine the References tab to<br />
ensure that there are no references to the field.
Moving Fields<br />
3 Return to the Fields view, and with the field you are deleting selected, select Field ><br />
Delete. The Confirm Delete Field dialog box displays.<br />
4 To confirm field deletion, click Yes.<br />
You can customize the order fields display in. The order in the Fields dialog box is the order<br />
in <strong>MKS</strong> <strong>Integrity</strong>.<br />
To change the order of the fields in the GUI<br />
CLI EQUIVALENT im editfield<br />
1 From the Fields view (see “Working in Fields View” on page 125), select Field ><br />
Reposition. The Reposition Fields dialog box displays.<br />
2 Select the field you want to move, and click Move Up or Move Down.<br />
3 Click OK.<br />
Managing Field Relationships<br />
Fields<br />
Once you have types and corresponding fields for your types, you can use field relationships<br />
to customize the display of data in an item further. Field relationships allow for a finer level<br />
of control by making the available selections in a given field dependent on the values selected<br />
in another field. Field relationships can be used to subset data for specific groups in your<br />
organization and minimize long lists of selections.<br />
NOTE You cannot create a relationship to a field value attribute data type.<br />
When creating a field relationship, you select a Source Field that controls what displays in the<br />
Target Field. The source field and target field are also assigned a corresponding value. Before<br />
reading about how field relationships work, you should note the following rules apply:<br />
Field relationships are subject to visibility rules. Visibility rules restrict access to specific<br />
information based on project or item type. For more information, see “Setting Field<br />
Visibility for Types” on page 120 and “Setting Workflow and Document Project<br />
Visibility” on page 250.<br />
Field relationships are based on Type, which means that you can only create<br />
relationships between fields that exist within a single Type in your workflow.<br />
143
Chapter 4: Workflow Management<br />
144<br />
You can only use Type, State, Project, Assigned User, Assigned Group, custom User,<br />
custom Group, Boolean, or Picklist fields as source or target fields in a field relationship.<br />
NOTE If you are copying a type, Type is not available as a source or target field in a<br />
field relationship because the copied type has not been created yet.<br />
Field relationships can only be created on a one-to-one basis; one field is related to<br />
another field. However, you can select multiple values for a source or target field. You<br />
may also create many field relationships for the same source field to different target<br />
fields.<br />
When the target field is an item backed picklist (IBPL) field, the value selected in the<br />
source field controls which picklist values are displayed from the backing items. For<br />
these types of relationships, the source value is defined as a rule that compares the<br />
values between the value in the source field and the value for the same field in the items<br />
backing the IBPL target field.<br />
The following examples show how field relationships can be used in an organization:<br />
Source Field Target Field Function<br />
Project Assigned User or<br />
custom User<br />
State Assigned User or<br />
custom User<br />
Selection in Project field determines subset of user names in<br />
Assigned User or custom User field. Only users that work on<br />
selected project are available for selection.<br />
Selection in State field determines subset of user names in<br />
Assigned User, or custom User field. For example, a State -<br />
Assigned User field relationship ensures only users who are<br />
developers can be assigned item in state In Development.<br />
Assigned Group State Selection in Assigned Group field determines subset of states in<br />
State field. For example, if Assigned Group value is QA, only states<br />
that QA group members use are available for selection, such as In<br />
QA, Verified, and Failed QA.<br />
Assigned Group Assigned User or<br />
custom User<br />
Selection in Assigned Group field determines subset of user<br />
names in Assigned User or custom User field. Only users that are<br />
members of selected group are available for selection. If changes<br />
are made to membership of group, changes are dynamically<br />
updated throughout <strong>MKS</strong> <strong>Integrity</strong>.
Source Field Target Field Function<br />
Assigned Group Assigned User and<br />
State<br />
Access to field relationship functionality occurs in the Field Relationships view, which is<br />
contained in the Edit Type and Create Type dialog boxes.<br />
NOTE Because field relationships are based on Type, data must be sent to the server<br />
before any changes take effect. This means that once you have created, edited, or<br />
deleted field relationships, you must click OK on the Edit Type dialog box to send<br />
this information to the server. If you cancel the Edit Type dialog box, changes made<br />
to field relationships are lost.<br />
Fields<br />
In this view, you can customize the columns and sort order to organize the field relationships<br />
to suit your needs. For more information on customizing columns, see the <strong>MKS</strong> <strong>Integrity</strong><br />
Client <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
To open the Field Relationships view in the GUI<br />
CLI EQUIVALENT im edittype<br />
In this example, same source field (Assigned Group) has field<br />
relationship to two different targets. Selection in Assigned Group<br />
field determines subset of user names in Assigned User or custom<br />
User field, and also determines subset of states in State field. For<br />
example, if Assigned group is QA, then Assigned User must be<br />
member of group QA, and State can only be one that users in that<br />
group can use, such as In QA.<br />
Product Component In this example, the Component field is an item backed picklist field<br />
backed by the Component item type. You want the picklist values<br />
that come from the backing Component items to be filtered based<br />
on the value selected in the Product field. When you select a value<br />
in the Product field, only components items that have the same<br />
value in the product field are displayed. For example, if Product is<br />
Financial Toolkit then you could have Component picklist<br />
values such as Savings Manager and Amortization<br />
Calculator.<br />
1 From the Types view, select a type. The type you select here is the type the field<br />
relationship is based on. For more information on the Types view, see “Types” on<br />
page 82.<br />
2 Edit the selected type. The Edit Type dialog box displays. For information on editing<br />
types, see “Editing Types” on page 91.<br />
3 In the tree pane, select Field Relationships. The Field Relationships view displays.<br />
4 Use the Create, Edit, and Delete buttons to perform related tasks.<br />
145
Chapter 4: Workflow Management<br />
146<br />
Creating Field Relationships<br />
To create a field relationship, you must have a type with fields already defined. You can only<br />
create one field relationship at a time.<br />
NOTE You cannot create or edit fields while creating a field relationship.<br />
To create a field relationship in the GUI<br />
CLI EQUIVALENT im edittype<br />
1 From the Edit Type dialog box, in the tree pane select Field Relationships. For more<br />
information on the Edit Type dialog box, see “Editing Types” on page 91.<br />
2 Click Create. The Create a Field Relationship dialog box displays.<br />
3 From the Source Field list, select the field you want to control the other field.<br />
NOTE If you select Type as your source field, the only type available in the Source<br />
Values list is the one you selected when entering into the Edit Type dialog box. For<br />
more information, see “Editing Types” on page 91.<br />
4 From the Source Values list, select the corresponding value(s) for the Source Field. For<br />
example, if your source field is State, you can select one or more different state values,<br />
such as Unspecified, and Submit. If you select multiple values, then at least one of the<br />
values must be selected in the item field for the relationship to apply.<br />
If you select a user field from the Source Field list, a selection panel displays. For<br />
information on selecting users, see “Filtering Data” on page 18.<br />
5 From the Target Field list, select the field you want to specify values in.<br />
NOTE You cannot create a field relationship to a field value attribute (FVA).
6 Depending on your target field, do one of the following:<br />
Fields<br />
If you select Assigned User or any custom user field as the target field, proceed to<br />
step 7.<br />
If you select a field other than Assigned User or any custom user field as the target<br />
field, proceed directly to step 9.<br />
7 When you select Assigned User or any custom user field as the target field, a selection<br />
panel displays in the Static Values panel. For information on selecting users, see<br />
“Filtering Data” on page 18. You have the option to assign the value of this field to be<br />
populated based on a group (within the same realm), or select static values.<br />
To select a non-user value, see step 8.<br />
8 To assign the value based on a group, in the Dynamic Values panel do one of the<br />
following and proceed directly to step 9:<br />
Select Value Of, and the pane is populated with all visible group fields for the<br />
specified type. Select the Assigned Group or a custom group field from the active<br />
list. This selection populates the Assigned User or custom user field in the type<br />
definition with all users. However, when creating or editing an item, the values in a<br />
user field based on a group field are determined based on the users in the specified<br />
group.<br />
Select Member Of, and the pane is populated with all the valid groups. Select one or<br />
more groups from the active list. This selection populates the Assigned User or<br />
custom user field with all members in the specified group(s).<br />
NOTE If you select a dynamic group, it populates the Assigned User or custom<br />
user field in the type definition with all users. However, when creating or editing an<br />
item, the values in a user field based on a dynamic group are determined based on<br />
the current project for that item.<br />
147
Chapter 4: Workflow Management<br />
148<br />
9 In the Static Values list, select the corresponding value(s) for the target field. For<br />
example, if your target field is Project, you can select one or more different project<br />
values.<br />
10 Click OK. The field relationship displays in the Field Relationships view.<br />
11 To save the field relationship, click OK on the Edit Type dialog box.<br />
To create a rule-based field relationship in the GUI<br />
You can only create a rule-based field relationship for item backed picklist (IBPL) fields. This<br />
rule determines which values appear in the picklist.<br />
NOTE For general information on rule nodes and conditions, see “Rule Format” on<br />
page 43.<br />
1 From the Edit Type dialog box, in the tree pane select Field Relationships. For more<br />
information on the Edit Type dialog box, see “Editing Types” on page 91.<br />
2 Click Create (Rule Based). The Create Rule Based Field Relationship dialog box displays.
NOTE The only IBPL fields that display in the Target Field are those that are made<br />
visible in the type. If none are made visible in visible fields, then none display in the<br />
Target Field.<br />
Fields<br />
3 In the Target Field section, select a field from the list of IBPL fields for the type. The rule<br />
you define controls the items that appear as picklist values in this field.<br />
4 Select And or Or, depending on the type of logical connector you want to use between<br />
conditions.<br />
NOTE If you are creating a rule with only one condition, you do not need to select<br />
And or Or.<br />
Swap replaces the selected node with the opposite node. For example, swapping an Or<br />
node replaces it with an And node.<br />
Remove deletes the selected node.<br />
5 Under Condition, select the type of comparison used for the condition:<br />
Compare the value of a field with a constant<br />
This option filters IBPL values based on a comparison between a field in the backing<br />
items and a specific value.<br />
Compare the value of a field with the value of another field<br />
This option filters IBPL values based on a comparison between a field in the item<br />
being edited and a field in the backing items.<br />
Check a pre-condition associated with a document<br />
This option filters IBPL values based on conditions associated with components in<br />
the document model.<br />
149
Chapter 4: Workflow Management<br />
150<br />
For more information, see the ALM section of the <strong>MKS</strong> Customer Community<br />
Knowledge Base found at http://www.mks.com/community.<br />
6 Define the condition by specifying fields, operators and values.<br />
The following types of fields cannot be used in conditions: attachment fields, text fields,<br />
relationship fields, or dynamic computation fields.<br />
If you select a date field, you must compare it to another date field. Refer to step 7 if you<br />
are comparing a date field to a constant.<br />
When defining a condition, you specify whether the field or value applies to the item<br />
containing the item backed picklist field (Editing Item Value) or to the items backing the<br />
item backed picklist field (Target Field).<br />
For example, if you are comparing the value of a field with a constant, and you want the<br />
IBPL field values filtered based on a specific value in the Project field of the backing<br />
items, you would do the following:<br />
Select Project as the first part of the rule and specify it as the Target Field<br />
Select = as the operator<br />
Select Financial Toolkit 2.0 from the list of product values<br />
Only backing items with a Project field containing Financial Toolkit 2.0 display as<br />
values in the IBPL field.<br />
For example, if you are comparing the value of a field with the value of another field,<br />
and you want the IBPL field values filtered based on matching the value in the Project<br />
field of the item containing the IBPL and the items backing the IBPL, you would do the<br />
following:<br />
Select Project as the first part of the rule and specify it as an Editing Item Value<br />
Select = as the operator<br />
Select Project as the second part of the rule and specify it as the Target Field<br />
Only backing items with a Project field containing the same value as the Project field on<br />
the item being edited display as values in the IBPL field.<br />
NOTE<br />
For more information on using the data filter to select fields, see “Filtering Data”<br />
on page 18.<br />
For more information on operators, see “When working with conditions, the<br />
meaning of the operator depends on whether the field you are using in the rule is<br />
single or multi valued.” on page 44.<br />
7 If you are comparing the value of a date field with a constant, click Change. The Specify<br />
Date or Time dialog box displays. Do one of the following:
Fields<br />
Select a date from the calendar. If the date field is configured to display the time and<br />
you want to include it, select the Show time option (if not already enabled) and<br />
include a time from the calendar. The Show time option is enabled by default.<br />
Select now to specify the current date and time. This option displays only if the date<br />
field is configured to display the date and time.<br />
Select today to specify the current date and a time of 00:00:00 (midnight). This<br />
option can be specified for a date field or a date field configured to display the date<br />
and time.<br />
Select none to specify an empty value for the date field.<br />
To save the specified value, click OK.<br />
8 When you are finished constructing the condition, click Add. The condition displays<br />
under the selected node.<br />
9 When you have defined all your rules, click OK. The field relationship displays in the<br />
Field Relationships view.<br />
10 To save the field relationship, click OK on the Edit Type dialog box.<br />
Editing Field Relationships<br />
To change the source and target fields or their values, you can edit a field relationship. You<br />
can only edit one field relationship at a time.<br />
NOTE You cannot create or edit fields while editing a field relationship.<br />
To edit a field relationship in the GUI<br />
CLI EQUIVALENT im edittype<br />
1 From the Field Relationships view, select the field relationship you want to edit. For<br />
more information on the Field Relationships view, see “Managing Field Relationships”<br />
on page 143.<br />
2 Click Edit. The Edit a Field Relationship dialog box displays. The current field<br />
relationship settings display highlighted.<br />
3 Edit the field relationship as required. For more information on the lists in this dialog<br />
box, see “Creating Field Relationships” on page 146.<br />
4 Click OK. The field relationship displays in the Field Relationships view.<br />
5 To save the field relationship, click OK on the Edit Type dialog box.<br />
151
Chapter 4: Workflow Management<br />
Workflows<br />
152<br />
Deleting Field Relationships<br />
If a field relationship is no longer necessary, you can delete it.<br />
To delete a field relationship in the GUI<br />
CLI EQUIVALENT im edittype<br />
1 From the Field Relationships view, select the field relationship you want to delete. For<br />
more information on the Field Relationships view, see “Managing Field Relationships”<br />
on page 143.<br />
2 Click Delete. The Delete Field Relationship dialog box confirms the operation.<br />
3 Click Yes to continue. The field relationship no longer displays in the Field Relationship<br />
view.<br />
4 To delete the field relationship, click OK on the Edit Type dialog box.<br />
Each item follows a workflow, the process established by your administrator to capture and<br />
track information during your software development cycle. Each item type can have its own<br />
set of states to advance through the development cycle. For example, a change request may<br />
go through states such as submitted, work started, tested, reviewed, and closed. Items and<br />
their current states provide change management information necessary to support business<br />
decisions.<br />
The Workflow view is a graphical depiction. You also use it to create a workflow for an item<br />
type. The Workflow view cannot be used to import users and groups or to create projects,<br />
types, and fields. Only one workflow for one type can be opened in the Workflow view.<br />
Access to workflow functionality occurs in the Workflow view, which is contained in both<br />
the Create Type and Edit Type dialog boxes.<br />
NOTE Because workflows are based on Type, data must be sent to the server before<br />
any changes take effect. This means that once you have created or edited workflows,<br />
you must click OK on the Edit Type (or Create Type) dialog box to send this<br />
information to the server. If you cancel the Edit Type (or Create Type) dialog box,<br />
you will lose your changes to the workflow.<br />
To open the Workflow view in the GUI<br />
1 From the Types view, select a type. The type you select here is the type that uses the new<br />
workflow. For more information on the Types view, see “Types” on page 82.
Workflow View<br />
Title Bar<br />
Menu Bar<br />
Tree Pane<br />
Workflows<br />
2 Edit the selected type. For information on editing types, see “Editing Types” on page 91.<br />
The Edit Type dialog box displays with the Workflow view in focus.<br />
The Workflow view allows you to edit the selected workflow in graphical mode using drag<br />
and drop gestures, and menu options.<br />
Title Bar<br />
The title bar displays the name of the type whose workflow is opened, and the server and<br />
port number for the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> it resides on.<br />
Menu Bar<br />
The menu bar is located directly below the title bar and contains the menus: View, Edit, State,<br />
and Transition.<br />
Workflow<br />
Workflow Pane Groups/Mandatory Fields Box<br />
Available States Box<br />
The workflow is a graphical representation of the type’s workflow. The following items may<br />
be included in the workflow:<br />
153
Chapter 4: Workflow Management<br />
154<br />
A filled box denotes the Unspecified state. The Unspecified state always displays in<br />
the workflow and cannot be deleted.<br />
A clear box denotes a named state in the workflow. The name of the state is centered<br />
within the box. You cannot manually control the position of states in the workflow. The<br />
position of states is determined by the direction of the layout and the state transitions to<br />
and from the state.<br />
Underneath the name of a state, a name in brackets denotes a named phase in the<br />
workflow. Phases are optional read-only fields that specify categorized groups of states<br />
in a workflow, essentially creating states (represented by phases) and sub-states<br />
(represented by states) for an item type. Phases are useful for organizing an item type’s<br />
workflow if it contains a large number of states and provide users with a broad overview<br />
of an item’s status independent of the workflow.<br />
An arrow denotes a state transition moving in a direction of the layout (see “Viewing<br />
Workflow” on page 157).<br />
A blue outline denotes the currently selected state(s) or state transition(s). You can only<br />
multi select states together or state transitions together.<br />
Available States Box<br />
In the Available states box, the State column lists all states that are not currently in the type’s<br />
workflow, but that can be dragged or inserted into the workflow. The Phase column lists all<br />
phases that correspond to states, if any.<br />
Groups/Mandatory Fields Box<br />
The contents of this box change based on what is selected in the workflow. Selecting at least<br />
one state transition displays the Groups box, which contains a list of the groups of users who<br />
are permitted to make state transitions for the item type. The checkmarked boxes denote<br />
groups of users who are able to make the transition(s) selected in the workflow. When<br />
multiple state transitions are selected, gray checkmarks denote that the group is allowed in at<br />
least one selected state transition, not all.<br />
Selecting at least one state displays the Mandatory Fields dialog box, which contains a list of<br />
the fields for the item type. The checkmarked boxes denote fields that must contain values<br />
before the user is permitted to advance to that state in the workflow. When multiple states<br />
are selected, gray checkmarks denote that the field is mandatory for at least one selected state<br />
but not all.<br />
User Preferences<br />
User preferences that are automatically saved for each user when closing the Workflow view<br />
include:<br />
zoom factor<br />
layout direction
window size and location<br />
Creating Workflow<br />
Workflows<br />
Before using the Workflow view to create a workflow, you must first set up the following<br />
items:<br />
users (see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>)<br />
groups (see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>)<br />
projects (see “Creating Workflow and Document Projects” on page 252)<br />
states (see “Creating States” on page 78)<br />
types (see “Creating Types” on page 84)<br />
fields (see “Creating Fields” on page 127)<br />
To create a workflow in the GUI<br />
CLI EQUIVALENT im createtype<br />
1 Open the Workflow view (see “To open the Workflow view in the GUI” on page 152). If<br />
this is a workflow for a type that has no states inserted, only the default state<br />
Unspecified displays in the workflow.<br />
2 Insert a state into the workflow by doing one of the following:<br />
From the Available states box, drag a state onto the workflow.<br />
From the Available states box, right click the state you want to add, and select Insert.<br />
Select State > Insert > State Name, where State Name is the state you want to insert.<br />
The state displays in the workflow. By default, everyone can edit an item without<br />
advancing the state in the workflow. To change from the default, see “Configuring Self<br />
Transitions” on page 156).<br />
NOTE You cannot define a field or group in the Workflow view. If another<br />
administrator creates a new group or field while you have a Workflow view open,<br />
they are not available from the view until it is re-initiated.<br />
155
Chapter 4: Workflow Management<br />
156<br />
3 In the Workflow pane, select the state that you just added to the workflow. Then from<br />
the Mandatory fields dialog box, select the fields that the user is required to fill out before<br />
advancing to that state in the workflow.<br />
IMPORTANT If you set field visibility for groups or define a relevance rule for a<br />
mandatory field, you must ensure that it is both visible to users and relevant for all<br />
states for which it is mandatory (see “Creating Fields” on page 127).<br />
4 Create a state transition from a state in the workflow to the newly added state by doing<br />
one of the following:<br />
Drag the existing state in the workflow to the state added.<br />
Select the existing state in the workflow, and select State > Create Transition to ><br />
State Name, for example, submit.<br />
Right click the existing state in the workflow, and select Create Transition to > State<br />
Name.<br />
An arrow displays in the workflow from the existing state to the state added. The<br />
color of the arrow is determined by the layout direction of the workflow (see<br />
“Workflow View” on page 153 and “Viewing Workflow” on page 157).<br />
NOTE A state must have at least one state transition to be saved in the workflow.<br />
Every state transition must have at least one group assigned to it.<br />
5 Specify groups of users who are permitted to make the state transition. First select the<br />
state transition(s), then from Groups box select the groups. You must assign at least one<br />
group to each state transition in the workflow or you cannot save the workflow.<br />
6 Repeat this procedure to add additional states and state transitions to the workflow.<br />
When you complete the workflow, do one of the following:<br />
To save the workflow, click OK.<br />
To print the workflow, click Print (see “Printing Workflow” on page 161).<br />
To save the workflow as an image file, click Save Diagram, then follow the prompts<br />
(see “Saving Workflow as Image” on page 161).<br />
Configuring Self Transitions<br />
Self transitions allow users to edit the item without being required to advance it to another<br />
state in the workflow. By default, each state has a state transition to itself shared to the
everyone group. The self transition does not display in the workflow, but it can be<br />
configured as follows:<br />
1 In the Workflow pane (see “Workflow View” on page 153), do one of the following:<br />
Select the state you want to configure the self transition for, and select State ><br />
Configure Self Transition. The Configure Self Transition dialog box displays.<br />
Right click the state, then select Configure Self Transition.<br />
Workflows<br />
2 Select the groups that can edit the item in that state. Groups that are not selected can only<br />
edit the item by advancing the state in the workflow.<br />
3 Click OK.<br />
Viewing Workflow<br />
You can customize the appearance of the workflow.<br />
To view a workflow in the GUI<br />
CLI EQUIVALENT im viewtype<br />
1 From the Workflow view (see “To open the Workflow view in the GUI” on page 152),<br />
you can modify the appearance of the workflow in the following ways:<br />
To change the size of the workflow, select a zoom level from the View menu. The<br />
options are Zoom 100%, Zoom 75%, Zoom 50%, and Zoom to Fit. The zoom size<br />
determines the size of the workflow when it is printed or saved as an image.<br />
To change the layout of the workflow, select View > Layout and a layout option as<br />
follows:<br />
Up, the green arrows point from down to up<br />
Down, the green arrows point from up to down<br />
Right, the green arrows point from right to left<br />
Left, the green arrows point from left to right<br />
For example, if you perceive the workflow as climbing through the states to<br />
completion, use the Up layout option.<br />
157
Chapter 4: Workflow Management<br />
Managing Workflow<br />
158<br />
2 The following information is available using tooltips:<br />
Point to a state transition arrow in the workflow to view a tooltip of the groups<br />
permitted to make that transition.<br />
Point to a state box in the workflow to view a tooltip of the mandatory fields<br />
assigned to that state and the groups permitted to edit the type without being<br />
required to advance it in the workflow.<br />
You can edit the information in a workflow as part of its management.<br />
To manage a workflow in the GUI<br />
CLI EQUIVALENT im edittype<br />
1 Open the Workflow view (see “To open the Workflow view in the GUI” on page 152).<br />
2 To add additional states and state transitions, see “Creating Workflow” on page 155.<br />
3 To remove state transitions from the workflow, do one of the following:<br />
Select the transition(s) then Transition > Remove Delete.<br />
Right click the transition, and select Remove.<br />
NOTE You cannot save the workflow unless at least one group is assigned to each<br />
state transition in the workflow.<br />
4 To remove states from the workflow, do one of the following:<br />
Select the state(s) then State > Remove.<br />
Right click the state, and select Remove.<br />
In addition to the state, the state transitions to and from that state are removed. The<br />
Unspecified state cannot be deleted and must always exist in the workflow.
5 From the Edit menu, you can perform the following:<br />
To undo the last operation, select Edit > Undo.<br />
To redo the operation that undo was last performed on, select Edit > Redo.<br />
You can undo or redo up to 10 operations when performing the following:<br />
adding states<br />
removing states<br />
adding state transitions<br />
removing state transitions<br />
adding groups to selected state transitions<br />
removing groups from selected state transitions<br />
adding mandatory fields to selected states<br />
removing mandatory fields from selected states<br />
To create multiple state transitions to a single state in the GUI<br />
CLI EQUIVALENT im edittype<br />
Workflows<br />
1 Select the states from the workflow. For more information, see “Workflow View” on<br />
page 153.<br />
2 Select State > Create Transition to, and select a state name from the list. Arrows appear<br />
from the states you multi selected to the state you created selected from the State menu.<br />
To multi-edit state transitions in the GUI<br />
CLI EQUIVALENT im edittype<br />
1 Select the transitions you want to edit. For more information, see “Workflow View” on<br />
page 153.<br />
2 In the Groups box, groups that are assigned to all of the selected state transitions display<br />
a black checkmark. Groups that are assigned to some but not all of the selected state<br />
transitions display a gray checkmark. Clicking a check box either displays a black<br />
checkmark or clears an existing checkmark.<br />
3 Right click the group name you want to edit states transitions for. A context menu<br />
displays listing the state transitions you multi selected. State transitions for that group<br />
are checkmarked in the list.<br />
159
Chapter 4: Workflow Management<br />
160<br />
4 Select a state transition from the list to either assign it for the group or clear it from the<br />
assigned group. Repeat as necessary until the group is assigned to the desired state<br />
transitions.<br />
5 Repeat steps 3 and 4 for all groups you want to assign to state transitions.<br />
To multi-edit states in the GUI<br />
CLI EQUIVALENT im edittype<br />
1 Select the states you want to edit. For more information, see “Workflow View” on<br />
page 153.<br />
2 In the Mandatory fields box, fields that are mandatory for some but not for all of the<br />
selected states display a gray checkmark.<br />
3 Right click the field name you want to edit states for. A context menu displays listing the<br />
states you have multi selected. If the field is mandatory for that state, it is checkmarked<br />
in the list.<br />
4 Select a state from the list to assign it a mandatory field. Repeat as necessary until the<br />
field is mandatory for the desired states.<br />
5 Repeat steps 3 and 4 for all mandatory fields you want to assign to the states.
Printing Workflow<br />
Workflows<br />
You can print out the workflow in a variety of sizes, depending on the zoom factor (for more<br />
information, see “Viewing Workflow” on page 157).<br />
To fit the workflow on a single printed page, select View > Zoom to Fit before printing.<br />
To print a workflow in the GUI<br />
1 From the Workflow view (see “To open the Workflow view in the GUI” on page 152),<br />
click Print. A print dialog box displays.<br />
2 Select the print options you want.<br />
3 Click OK.<br />
Saving Workflow as Image<br />
You can save a copy of the workflow in an image format for use in documents or on Web<br />
pages. The zoom factor determines the size of the workflow in the saved image. For more<br />
information, see “Viewing Workflow” on page 157.<br />
To save a workflow as an image in the GUI<br />
1 From the Workflow view (see “To open the Workflow view in the GUI” on page 152),<br />
click Save Diagram. The Save Diagram dialog box displays.<br />
2 Enter the location where you want to save the image.<br />
3 Click Save.<br />
Testing Workflow With Admin Migration Wizard<br />
As part of the procedure for setting up workflows and documents, you can use the<br />
<strong>MKS</strong> <strong>Integrity</strong> Admin Migration Wizard (migration wizard) to test your workflows and<br />
documents configuration on a separate server before ultimately migrating a final<br />
configuration to your production <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
For the purpose of migrating workflow and document admin provided objects, the separate<br />
server for testing your configuration is called the staging server and the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
that users connect to is known as the production server. By default the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> is<br />
always installed as a production server. The production server manages all aspects of<br />
<strong>MKS</strong> <strong>Integrity</strong>: workflows and documents, requirements, configuration management,<br />
testing, and deployment. The migration wizard allows you to test proposed changes<br />
thoroughly on the staging server before migrating those changes to the production server,<br />
avoiding the situation where live changes must be made in your production environment.<br />
161
Chapter 4: Workflow Management<br />
162<br />
The process helps you to work with the required admin provided objects to create a<br />
workflow that functions for your environment.<br />
Staging<br />
<strong>Server</strong><br />
Holds Lock on<br />
Production<br />
Admin Migration <strong>Server</strong> Configuration<br />
1<br />
Copy Database<br />
Migrate Objects<br />
2<br />
Production<br />
<strong>Server</strong><br />
Locked by Staging<br />
IMPORTANT Production and staging servers must be installed on separate machines.<br />
Both servers must be from the current release.<br />
To create a staging server, you must install a second <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> on a separate<br />
machine and then configure specified properties on that server.<br />
The staging server starts by using a copy of the <strong>MKS</strong> <strong>Integrity</strong> database from the production<br />
server. The two servers must have identical copies of the database or you cannot begin the<br />
initial migration configuration setup (later, changes to imported users and converted admin<br />
provided objects are automatically detected and can be imported from the production<br />
server). The database copy is created manually, based on the recommended procedures for<br />
the type of database you are using for your system. If assistance is required for managing the<br />
database, you should contact your database administrator.<br />
In starting up, the staging server automatically obtains a binding administrative lock on the<br />
production server. The administrative lock means that no changes can be made to workflow<br />
and document admin provided objects on the production server. The binding establishes an<br />
association between the two servers: the staging server is the server you want to test your<br />
workflow changes on, and the production server is the server you want to ultimately migrate<br />
the changes to. At any time, you may also lock the staging server to prevent changes from<br />
being made in your test environment.<br />
When you have made your desired changes on the staging server, the migration wizard<br />
allows you to transfer those changes to the production server. After a successful migration,<br />
the production server then has the same administrative configuration in <strong>MKS</strong> <strong>Integrity</strong> that<br />
existed on the staging server. You can also elect to transfer only specific changes to the<br />
production server. States, fields, workflows, and other admin provided objects migrated
Workflows<br />
from the staging server function in the same way on the production server. You can migrate<br />
admin provided objects repeatedly until all the desired changes are migrated.<br />
IMPORTANT Releasing the lock on the production server means that the binding link<br />
between the staging server and production server is lost and the two servers are no<br />
longer synchronized. Further staging work therefore requires a new copy of the<br />
database from the production server, including items outside of the database such as<br />
trigger scripts and workflow and document report templates.<br />
Admin provided objects and components that are migrated include the following:<br />
administrative charts<br />
administrative dashboards<br />
administrative queries<br />
administrative report resources<br />
administrative reports<br />
change package attributes<br />
change package entry attributes<br />
change package types<br />
dynamic groups<br />
fields<br />
files under the data/public_html directory<br />
groups<br />
item presentation templates (including image files in the public_html directory)<br />
projects<br />
states<br />
document items<br />
time entries<br />
trigger scripts<br />
triggers<br />
types<br />
users<br />
ViewSets<br />
test verdicts<br />
163
Chapter 4: Workflow Management<br />
164<br />
The basic steps for completing a workflow migration include:<br />
1 Install and start the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> you intend to use for production purposes (the<br />
production server). For more information, see “Installing and Starting Production<br />
<strong>Server</strong>” on page 166.<br />
2 On a separate machine (the staging server), install the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> you intend<br />
to use for testing and migrating your workflow and document admin provided objects.<br />
For more information, see “Installing and Configuring Staging <strong>Server</strong>” on page 166.<br />
3 Place an administrative lock on the production server before copying the database. For<br />
more information, see “Managing Administrative Locks” on page 169.<br />
4 Copy the database (and other necessary objects) from the production server to the<br />
staging server. For more information, see “Copying <strong>MKS</strong> <strong>Integrity</strong> Database” on<br />
page 168.<br />
5 Start the staging server, which automatically creates a lock binding between the staging<br />
server and the target production server. For more information, see “Starting Staging<br />
<strong>Server</strong>” on page 168.<br />
6 Configure workflow and document admin provided objects on the staging server and<br />
test your configuration. For more information, see “Testing Workflow and Document<br />
Configuration” on page 169.<br />
7 As required, manage administrative locks on the staging and production servers to keep<br />
the two databases synchronized. For more information, see “Managing Administrative<br />
Locks” on page 169.<br />
8 Migrate your configuration from the staging server to the production server. For more<br />
information, see “Using Admin Migration Wizard” on page 171.<br />
Two Stage <strong>Server</strong> Configuration<br />
<strong>MKS</strong> <strong>Integrity</strong> supports a two-stage migration whereby two staging servers are used with a<br />
single production server. For example, the two staging servers in the following diagram are<br />
named Development and Test. In this configuration, all changes are made on the<br />
Development server and migrated to the Test server for testing. Only if the changes test<br />
successfully are they migrated to the Production server.<br />
Development<br />
Test<br />
<strong>Server</strong><br />
<strong>Server</strong><br />
Holds Lock on<br />
Holds Lock<br />
on Test <strong>Server</strong> Migrate Objects<br />
Production<br />
Locked by<br />
Development<br />
Migrate Objects<br />
3 4<br />
Two Stage <strong>Server</strong> Configuration<br />
2<br />
Copy Database<br />
1<br />
Copy Database<br />
Production<br />
<strong>Server</strong><br />
Locked by Test
The basic steps for completing two stage workflow migration include:<br />
Workflows<br />
1 Install and start the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> you intend to use for production purposes (the<br />
production server). For more information, see “Installing and Starting Production<br />
<strong>Server</strong>” on page 166.<br />
2 On a separate machine (a staging server), install the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> you intend to<br />
use for development of your workflow and document admin provided objects. For more<br />
information, see “Installing and Configuring Staging <strong>Server</strong>” on page 166.<br />
3 On a separate machine (a staging server), install the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> you intend to<br />
use for testing of your workflow and document admin provided objects. For more<br />
information, see “Installing and Configuring Staging <strong>Server</strong>” on page 166.<br />
4 Create administrative locks, and then copy databases as follows:<br />
a) Copy the database from the production server to the staging server you want to use<br />
for testing. For more information, see “Copying <strong>MKS</strong> <strong>Integrity</strong> Database” on<br />
page 168.<br />
b) Copy the database from the production server to the staging server you want to use<br />
for development. For more information, see “Copying <strong>MKS</strong> <strong>Integrity</strong> Database” on<br />
page 168.<br />
NOTE Ensure that the production server (in step 1) has been started before starting<br />
the servers in steps c) and d) next.<br />
c) Start the test staging server, which automatically creates a lock binding between that<br />
staging server and the target production server. For more information, see “Starting<br />
Staging <strong>Server</strong>” on page 168.<br />
d) Start the development staging server, which automatically creates a lock binding<br />
between that staging server and the test staging server. For more information, see<br />
“Starting Staging <strong>Server</strong>” on page 168.<br />
IMPORTANT Place an administrative lock on the production server before copying<br />
the database. To place an administrative lock manually, see “Managing<br />
Administrative Locks” on page 169.<br />
5 Configure workflow and document admin provided objects on the development staging<br />
server, then test the configuration of those objects on the test server until you have a final<br />
configuration. For more information, see “Testing Workflow and Document<br />
Configuration” on page 169.<br />
6 As required, manage administrative locks on the staging and production servers to keep<br />
the databases synchronized. For more information, see “Managing Administrative<br />
Locks” on page 169.<br />
165
Chapter 4: Workflow Management<br />
166<br />
Installing and Starting Production <strong>Server</strong><br />
The production server is the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> that users connect to when using<br />
<strong>MKS</strong> <strong>Integrity</strong>. By default, all <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>s are installed as production servers. For<br />
detailed procedures on installing and starting the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, see the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
Installing and Configuring Staging <strong>Server</strong><br />
By default, all <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>s are installed as production servers. To create a staging<br />
server, you install another <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> on a separate machine. For more<br />
information on installing an <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
After installing the second <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, configure additional properties to have it<br />
operate as a staging server. Configure the following properties in the installdir/config/<br />
properties/is.properties file:<br />
Properties To Be Modified Defined Values<br />
mksis.adminStaging<strong>Server</strong>= If <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> is to function as production server or<br />
staging server. Valid options are true or false. If false,<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> functions as standard production server. If<br />
true, <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> functions as staging server that can<br />
be used to test workflow configuration and migrate it to<br />
production server.<br />
By default, mksis.staging<strong>Server</strong>=false (that is,<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> operates as standard production server).<br />
mksis.adminStaging<strong>Server</strong>DisplayName= Display name of staging server. For example, if you are using<br />
two stage staging server configuration, two staging servers can<br />
be named Development <strong>Server</strong> and Test <strong>Server</strong>. If no<br />
value specified, display name is Staging <strong>Server</strong>.<br />
In the title bar of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, the<br />
name of the staging server displays. For example, if you specify<br />
the staging server name as My <strong>Server</strong>, the following displays:<br />
<strong>Administration</strong> jriley@abcFinancial:7001 (My<br />
<strong>Server</strong> - Locked)<br />
If you do not specify a name, the following displays:<br />
<strong>Administration</strong> jriley@abcFinancial:7001<br />
(Staging <strong>Server</strong> - Locked)<br />
Note: On a production server, Locked appears only if the<br />
staging server is manually locked.<br />
NOTE The names of the staging server properties are case sensitive. For example,<br />
you must use mksis.im.prod<strong>Server</strong> rather than mksis.im.prodserver.<br />
To configure the staging server, configure the following properties in the installdir/config/<br />
properties/im.properties file:
Properties To Be Modified Defined Values<br />
mksis.im.prod<strong>Server</strong>= Host name of production <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
mksis.im.prodPort= Port number to connect to on production server.<br />
E-mail Notification Upon Lock Break<br />
Workflows<br />
mksis.im.prodUser= Login ID of administrator used when the staging server<br />
performs verifications and comparisons between the staging<br />
and production servers.<br />
Note: The Admin Migration Wizard allows you to specify a login<br />
ID and password for the administrator migrating workflow and<br />
document admin provided objects.<br />
mksis.im.prodPassword= Password of administrator used when the staging server<br />
performs verifications and comparisons between the staging<br />
and production servers.<br />
Note: Password encryption is enabled for this password if you<br />
have encryption enabled on <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
mksis.im.allowPartialAdminMigration= If true, permits ability to migrate individually specified objects<br />
from staging server to production server.<br />
Note: This property is modified under Workflows and<br />
Documents > Configuration > Properties in the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
mksis.im.allowAdminDeletionWithAdmin<br />
Migration<br />
As administrator, you can ensure that you are notified whenever an administrative lock is<br />
broken by editing the following property under Workflows and Documents ><br />
Configuration > Properties in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client:<br />
mksis.im.notificationsOnAdminLockBreak==value<br />
where value is a comma separated list of e-mail addresses for the administrators to be notified<br />
whenever an administrative lock is released<br />
Configuring SMTP <strong>Server</strong><br />
To configure an SMTP server for handling e-mail notifications, edit the following property<br />
under Configuration > Properties in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client:<br />
mksis.mailserver=hostname<br />
If true, permits you to delete admin objects on a staging<br />
server, even if that object has been migrated to the production<br />
server. By default, you may only delete admin objects if they<br />
have not been migrated to the production server. This prevents<br />
deadlock situations from occurring during an admin migration.<br />
Note: This property is modified under Workflows and<br />
Documents > Configuration > Properties in the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
where hostname is the host name or TCP/IP address of the SMTP server to send e-mail<br />
notifications through.<br />
167
Chapter 4: Workflow Management<br />
168<br />
Copying <strong>MKS</strong> <strong>Integrity</strong> Database<br />
Before creating a copy of your database, you should back up the existing production database<br />
and then restore a copy for use by the staging server. Follow the copying procedures<br />
recommended for the specific database you are using.<br />
CAUTION To ensure that you do not lose any data, follow the manufacturer’s<br />
recommended back up procedures for the specific database you are using.<br />
Starting Staging <strong>Server</strong><br />
You start the staging server using the standard procedure for starting any <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong>. For more information on starting the server, see “Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>” on<br />
page 283<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
Starting the staging server automatically creates a lock binding between the staging server<br />
and the production server. You can confirm the status of the lock binding by connecting to<br />
the production server, right clicking the Workflows and Documents directory node, and<br />
then selecting View Admin Lock from the shortcut menu. The View Admin Lock dialog box<br />
displays information on the production server (hostname:port number) that is locked,<br />
when the lock was obtained, and the staging server (hostname:port number) it is bound to.<br />
For more information on lock binding, see “Managing Administrative Locks” on page 169.<br />
IMPORTANT When starting the staging server for the first time, it will not start if<br />
differences are detected between it and the production server.<br />
When the staging server starts, it first tests to see if its database contains the same workflow<br />
and document admin provided objects as the production server's database. If they are<br />
identical, the production server creates a binding lock to that staging server. The server also<br />
tests to see if the <strong>Integrity</strong> Presentation Templates (IPTs), trigger scripts, reports, ViewSets,<br />
and the public_html directory are identical. If differences are detected, the staging server<br />
does not start.<br />
NOTE Exceptions to the database content include auto imported users/groups.<br />
If the production server is not running when the staging server attempts to initialize, the<br />
staging server does not start. If the production server is running, the staging server creates a<br />
lock binding.<br />
If the production server already has a lock as a result of a super administrator manually<br />
obtaining the lock, then the staging server still creates a lock binding between the two<br />
servers. A check is then carried out to ensure that the admin provided objects on the staging<br />
server match exactly with those on the production server. If they are not the same, the staging<br />
server does not start and the lock binding is dropped. An error message is posted to the<br />
installdir/log/server.log file on the staging server.
Workflows<br />
A lock binding cannot be directly created by an administrator. It is created automatically<br />
when the staging server has initialized and successfully verified that it is synchronized with<br />
the production server. Once the staging server is started and the binding lock is set, you can<br />
then modify the required workflow and document admin provided objects on the staging<br />
server.<br />
Testing Workflow and Document Configuration<br />
Once the staging server is started and creates a lock binding to the production server, you can<br />
work with the required admin provided objects to create a workflow that functions for your<br />
environment. Admin provided objects cannot be modified when the production server is<br />
locked.<br />
For detailed information on working with the various admin provided objects in<br />
<strong>MKS</strong> <strong>Integrity</strong>, see the following sections:<br />
For Managing Users, Groups, and Dynamic Groups, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
“Workflow and Document Projects” on page 248<br />
“States” on page 77<br />
“Types” on page 82<br />
“Fields” on page 121<br />
“Managing Field Relationships” on page 143<br />
“Workflows” on page 152<br />
“ViewSets” on page 49<br />
Managing Administrative Locks<br />
Locking a server means that the server is no longer editable directly through the standard<br />
command set. The migration wizard requires that the production server be locked before it<br />
can start any migration operation. Locking ensures that no changes can be made during the<br />
migration or at any time while the staging server is bound to the production server.<br />
IMPORTANT As administrator, you can also manually lock either the staging or<br />
production servers, or both, to prevent administrative changes from taking place.<br />
Locking both servers means that no one can make any administrative changes to the<br />
workflow and document system unless they are using the Admin Migration<br />
Wizard.<br />
It is important to understand that an administrative lock cannot be used to prevent<br />
other administrators from making changes so that you (the owner of the lock) can<br />
make changes.<br />
169
Chapter 4: Workflow Management<br />
170<br />
Creating a lock binding is the act of linking one server to a lock on another server. When a<br />
lock binding is created, the production server records the host name and port of the staging<br />
server.<br />
IMPORTANT<br />
You cannot bind two different staging servers to the same production server.<br />
Do not break a lock when a migration operation is in progress.<br />
A lock binding cannot be directly created by an administrator. It is created automatically<br />
when the staging server has initialized and successfully verified that it is synchronized with<br />
the production server.<br />
If the connection between the staging and production servers is lost for any reason, such as a<br />
hardware or network failure, the lock remains on the production server and the staging<br />
server continues to act as if the lock binding relationship is in place. If the migration wizard is<br />
started while the communication between the two servers is still broken, then the system<br />
posts an error. You cannot then run the migration wizard until the problem has been<br />
resolved.<br />
To avoid the possibility of any administrative changes occurring while the staging server is<br />
being brought on line, you can also manually lock the production server before setting up the<br />
staging server. If the production server is locked when the staging server initializes, a lock<br />
binding is still created.<br />
IMPORTANT When the production server is locked, users and groups can be<br />
automatically imported.<br />
In the GUI, locking and unlocking are available through the shortcut menu. For more<br />
information, see “To work with administrative locks in <strong>MKS</strong> <strong>Integrity</strong>” on page 171.<br />
If a super administrator attempts to break a lock on the production server, a warning<br />
message indicates that breaking the lock invalidates any work that is currently being done on<br />
the staging server and that the staging server must be re-initialized. E-mail notifications are<br />
also sent, provided the appropriate properties have been configured. For more information,<br />
see “E-mail Notification Upon Lock Break” on page 167.<br />
CAUTION Releasing the lock on the production server means that the lock binding<br />
between the staging server and production server is lost and the two servers are no<br />
longer synchronized. Further staging work, therefore, requires a new copy of the<br />
database from the production server.<br />
You can also control server locks through the CLI using the commands for<br />
im obtainadminlock, im releaseadminlock, and im viewadminlock. For more<br />
information on using these commands, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> <strong>Administration</strong> CLI<br />
Reference <strong>Guide</strong>.
To work with administrative locks in <strong>MKS</strong> <strong>Integrity</strong><br />
1 Open the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client and connect to the selected<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, whether a staging server or production server.<br />
Workflows<br />
2 Right click the Workflows and Documents node on the tree pane. From the shortcut<br />
menu, select one of the following commands:<br />
Obtain Admin Lock to place an administrative lock on the server. If you have the<br />
required permissions, the lock is placed immediately. If you do not have the<br />
required permissions, an error message displays.<br />
Release Admin Lock to release an administrative lock on the selected server. If you<br />
are releasing the lock on a production server, a message cautions you that releasing<br />
the lock means an inability to migrate any existing changes from the staging server<br />
to the production server. The message includes the user ID of the person who set the<br />
lock, the lock timestamp, and the host name and port of the server the lock is bound<br />
to. If the lock is not bound to any staging server, the message indicates that.<br />
View Admin Lock to view the status of an existing lock on the production server.<br />
Anyone using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client can view the status of an<br />
administrative lock. The View Admin Lock dialog box displays the user ID of the<br />
person who set the lock and the lock timestamp. After reviewing the status of the<br />
target lock, click Close to exit.<br />
3 In the title bar of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, an administrative lock is<br />
indicated by Locked, for example:<br />
On a locked production server:<br />
<strong>Administration</strong> jriley@abcFinancial:7001 (Locked)<br />
On a locked staging server:<br />
<strong>Administration</strong> jriley@abcFinancial:7001 (Staging <strong>Server</strong> - Locked)<br />
On a locked staging server with stagings<strong>Server</strong>DisplayName=My <strong>Server</strong><br />
specified in is.properties:<br />
<strong>Administration</strong> jriley@abcFinancial:7001 (My <strong>Server</strong> - Locked)<br />
If there is no administrative lock, lock status is not appended to the title bar. For<br />
example, an unlocked staging server displays:<br />
<strong>Administration</strong> jriley@abcFinancial:7001 (Staging <strong>Server</strong>)<br />
Using Admin Migration Wizard<br />
Once you are ready to migrate your final changes to the production server, you can launch<br />
the migration wizard. You can also run the wizard to view the existing state of<br />
synchronization between the production and staging servers. Only an <strong>MKS</strong> <strong>Integrity</strong> super<br />
administrator can perform the final operation to migrate changes. Type administrators are<br />
only permitted to view migration details using the wizard.<br />
171
Chapter 4: Workflow Management<br />
172<br />
You launch the migration wizard from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client by right<br />
clicking the Workflows and Documents node and selecting Launch Admin Migration Wizard<br />
from the shortcut menu. The Launch Admin Migration Wizard menu item appears only when<br />
the server is configured as a staging server and for users who are assigned as super<br />
administrators or type administrators.<br />
Only the super administrator can actually perform a migration. Type administrators may<br />
access the migration wizard only to view the information but cannot complete the migration<br />
operation. Type administrators can view all admin provided objects but can only edit the<br />
ones that they have permissions for.<br />
Changes made by the migration wizard are shown as being carried out by the super<br />
administrator user who ran the migration operation. All changes are viewable in the history<br />
for the object and in the audit log.<br />
If the staging server or the production server is disconnected, or if the whole system is put<br />
into a state where the migration cannot be completed, then the operation is rolled back to put<br />
the production server (or staging server) into a usable state. You can also cancel a migration<br />
that is in progress. The operation is then rolled back to put the production server into a<br />
usable state.<br />
Migrating admin provided objects from the staging server to the production server involves<br />
updating the configuration for the entire object being modified. When you perform the<br />
migration, all overrides are transferred to production. Therefore, you should only start a<br />
migration when all changes are finalized on the staging server. Since this may affect the work<br />
of multiple type administrators, you may want to consult with all type administrator before<br />
starting a migration. Once the migration is complete, a migration report displays.<br />
Note the following:<br />
The super administrator who performs the migration must also be a super administrator<br />
on the target production server (that is, he or she must have the Admin ACL permission<br />
under mks:im).<br />
<strong>MKS</strong> recommends that all locks be maintained while the migration is running. If the lock<br />
on the production server is broken during a migration, an error message displays and<br />
the migration stops.<br />
To prevent deadlock situations from occurring during an admin migration, you cannot<br />
delete admin objects on a staging server if they have been migrated to a production<br />
server. Admin objects that have not been migrated to a production server may be<br />
deleted.<br />
To migrate a shared field or state that has an override, without migrating the overrides<br />
of the new types that refer to it, see “Migrating a Shared Field or State Override” on<br />
page 177.
Workflows<br />
To migrate workflow and document admin provided objects to the production server<br />
NOTE Settings chosen from a previous migration session are not retained.<br />
1 On the staging server, open the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
2 Right click the Workflows and Documents node on the tree pane and select Admin<br />
Migration Wizard. The wizard displays, confirming the server you are migrating data<br />
from and the server you are migrating data to. The wizard also confirms the type of<br />
migration your server is configured to perform, for example, a partial admin migration.<br />
In addition to migrating user objects, you can also choose to migrate user notification<br />
rules by enabling Include user notification rules. By default this option is disabled.<br />
Enabling this option overwrites individual user notification rules configured by users.<br />
IMPORTANT Enabling Include user notification rules may significantly increase the<br />
time required to migrate your data.<br />
To continue, click Next.<br />
3 If the wizard detects admin provided objects or users/groups with identical names on<br />
both the test and production servers, the objects or users/groups are listed in the<br />
Identical Objects panel of the wizard.<br />
If this occurs, the migration wizard asks you to confirm that the two admin provided<br />
objects are to be mapped together. Do one of the following:<br />
If the object names can be mapped together, click Next to continue the migration.<br />
The migration wizard then links the two counterparts and any differences between<br />
the objects display as edits.<br />
If the two object names are not to be mapped together, click Cancel to stop the<br />
migration. Then either rename or delete the object on the staging server to avoid an<br />
error.<br />
If there are no duplicate named admin provided objects, the Identical Objects panel does<br />
not display. Instead, advance to the next step.<br />
4 If the wizard detects changes to the staging server (or test server depending on your<br />
configuration), the import panel displays the new admin provided objects (or users and<br />
groups) that must be imported into the production server database. To import the admin<br />
provided objects, click Next. You cannot advance through the wizard without first<br />
importing the admin provided objects.<br />
NOTE Differences between servers for LDAP realm users appear on this panel.<br />
If there are no new admin provided objects on the production server, the import panel<br />
does not display. Instead, advance to the next step.<br />
173
Chapter 4: Workflow Management<br />
174<br />
5 The migration wizard displays the options for migrating unused objects. To continue,<br />
click Next. The summary panel displays the available changes to be migrated from the<br />
staging server to the production server.<br />
By default, the Show objects containing data filter displays all objects on the staging<br />
server. Use the data filter to display objects you want to migrate to the production<br />
server. For more information on using the data filter, see “Filtering Data” on page 18.<br />
When you select an object in the Show objects containing data filter, its metadata<br />
displays in the bottom pane.<br />
IMPORTANT You can only select individual candidates for migration if the<br />
mksis.im.allowPartialAdminMigration property is set to true in file<br />
im.properties. For more information, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
If there are mandatory objects for the selected object, they are highlighted in light blue.<br />
Mandatory objects always move with the selected object. Objects are only highlighted<br />
when selecting another object that either is an object with a reference to or from it or if<br />
there is some relationship that requires the actions to be performed in the same
Workflows<br />
migration. If there are objects referenced by the selected object, those referenced objects<br />
display an icon in the Ref Info column, indicating the relationship.<br />
The following details are provided for admin provided objects in each list:<br />
Position indicates the order objects are migrated in.<br />
Type indicates the type of admin provided object affected by the change, for<br />
example, State.<br />
Name indicates the name of specific admin provided object, for example, state<br />
Published.<br />
Action lists the type of change that occurred, for example, Create.<br />
Modified Date indicates the date the object was modified (not always available).<br />
Modified User indicates the user name of the user who modified the object (not<br />
always available).<br />
Ref Info indicates the relationship to and from the selected object.<br />
indicates that the object refers to at least one of the selected objects.<br />
indicates that the object is referenced by at least one of the selected objects.<br />
indicates that the object refers to at least one of the selected objects and that<br />
at least one of the selected objects refers to this object.<br />
Selected indicates the object is currently selected (explicitly or implicitly). This<br />
allows you to sort by the selected objects if they are spread out among a large list of<br />
objects. Once you make a new selection, the column must be resorted if the new<br />
selection is sorted by selection.<br />
Grouping indicates a number given to selections of objects added to the Objects to<br />
be migrated list. A grouping number allows you to move objects between the lists as<br />
groups.<br />
Explicit indicates that the selected object was explicitly added to the list. This<br />
column is hidden by default.<br />
Referred By indicates the number of objects that this object is referenced by. This<br />
column is hidden by default.<br />
Refers To indicates the number of objects that this object directly references. This<br />
column is hidden by default.<br />
To include one or more objects for migration, select the object(s) in the Show objects<br />
containing data filter and then click + to move the object(s) to the Objects to be migrated<br />
list. Similarly, to remove one or more objects from the Objects to be migrated list, select<br />
the object(s) and click x to return them to the Show objects containing data filter.<br />
175
Chapter 4: Workflow Management<br />
176<br />
To print migration candidates, click Print. The Print summary of admin migration to be<br />
performed dialog box displays. Select one of the following, and then click Print:<br />
Print filtered changes not to be migrated prints the contents of the top data filter.<br />
Print all changes being migrated prints the contents of the Objects to be migrated<br />
list.<br />
NOTE Availability of this option requires that the property mksis.im.<br />
allowPartialAdminMigration be true in file im.properties. For more<br />
information, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
To select the migration policies you want applied for this migration, click Options. The<br />
available options include:<br />
Include References<br />
Select this option to automatically select all objects that the explicitly selected objects<br />
reference. If any of these additional objects force more objects to be implicitly<br />
selected, they are also selected.
Include References Recursively<br />
Select this option to recursively include the objects that the referenced objects<br />
reference.<br />
Include Referrers<br />
Workflows<br />
Select this option to automatically select all objects that have references to the<br />
explicitly selected objects. If any of these additional objects force more objects to be<br />
implicitly selected, they are also selected.<br />
Include Referrers Recursively<br />
Select this option to recursively include the objects that reference the objects<br />
referencing the selected objects.<br />
NOTE If you are a type administrator, you do not have permission to run the<br />
migration and the next panels are not available for viewing.<br />
6 To continue the migration, click Next. The migration wizard displays the description<br />
field. Enter a description for this migration request.<br />
7 To continue the migration, click Next. The migration wizard displays the credentials<br />
panel.<br />
To finish the migration, enter your credentials (user name and password) for logging<br />
into the production server, and click Finish.<br />
NOTE<br />
To cancel a migration after it has started, right click the status bar at the bottom of<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client window, and select Cancel from the<br />
shortcut menu. Once the migration operation is completed, it cannot be undone.<br />
Settings chosen from a previous migration session are not retained.<br />
After the migration is completed, the migration report displays the results of the<br />
migration, including the options and policies you selected.<br />
Click OK.<br />
You can also view a record of the staging server operations for the migration in the file<br />
installdir/log/server.log.<br />
Migrating a Shared Field or State Override<br />
If you override a shared field or state for an item type on the staging server, when you<br />
migrate the field with the override you must also migrate any new item types that refer to the<br />
override. This can make migration difficult to manage, especially if there are multiple<br />
administrators or groups developing workflows.<br />
The admin migration wizard contains a CLI command that allows you to migrate a shared<br />
field or state that has an override, without migrating the overrides of the new types that refer<br />
177
Chapter 4: Workflow Management<br />
178<br />
to it. This also removes the requirement of the new types to be migrated. To enable this<br />
feature, set the following property to true under Workflows and Documents ><br />
Configuration > Properties in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client:<br />
mksis.im.allowOverrideSuppression<br />
NOTE You must have the Admin<strong>Server</strong> permission.<br />
If this feature is enabled and if you have created at least one new type on the staging server<br />
that has at least one field or state override, a new type overrides panel displays after the<br />
welcome panel of the Admin Migration Wizard. The new panel lists each item type that has<br />
not been migrated. You can select the type(s) that you want to temporarily remove overrides<br />
for during the migration.<br />
In the summary panel of the Admin Migration Wizard, item types that referenced a field or<br />
state override that has been removed are no longer highlighted as mandatory. If you select an<br />
item type, the metadata displayed at the bottom of the screen indicates if its overrides have<br />
been removed.<br />
Field or state overrides remain on the staging server and can be migrated separately when<br />
required.<br />
Considerations When Modifying Visibility,<br />
Editability, and Types<br />
Workflow and document, and configuration management users may experience errors when<br />
trying to create change packages if visibility rules, editability rules, or type specifications are<br />
not properly set. The following modifications may result in user error:<br />
visibility of the Assigned User, Project, or Summary fields<br />
visibility of the SI Change Package project (used for configuration management<br />
standalone change packages), excluding the creator of the change package<br />
editability of the Assigned User, Project, or Summary fields<br />
specifications of the SI Change Package type (used for configuration management<br />
standalone change packages)<br />
For more information, see the following:<br />
“Setting Workflow and Document Project Visibility” on page 250<br />
“Setting Field Visibility for Types” on page 120<br />
“Editing Types” on page 91
Deleting Admin Provided Objects and Items<br />
Deleting Admin Provided Objects and Items<br />
As administrator, you may want to delete some of the building blocks that are used by<br />
<strong>MKS</strong> <strong>Integrity</strong>. A building block is any one of the fundamental pieces that your <strong>MKS</strong> <strong>Integrity</strong><br />
database is built on, such as users, groups, projects, and items.<br />
Deleting Admin Provided Objects<br />
Deleting Items<br />
You can delete a user, group, dynamic group, type, state, field, or project, if you have not<br />
used them to make a change to the database. You cannot delete any building block that has<br />
been recorded in the history. For example, if you create a user or group and want to delete it<br />
immediately, you can. However, if a user or a group member logs in as that user and creates<br />
an item, or if someone else assigns an item to that user or group, you can no longer delete that<br />
user or group.<br />
You can only delete a project if an item does not reference that project or any of its children.<br />
To delete an idle project that has children, you must first delete all of its children and then<br />
delete the project.<br />
You can delete admin provided objects that have references to other admin provided objects<br />
as long as the admin provided object you are deleting does not violate the restrictions<br />
mentioned earlier in this section. When deleting the admin provided object, a prompt<br />
displays stating if there are object references. You then have the opportunity to cancel and<br />
manually remove the references. Object references can be viewed on the References tab when<br />
editing or viewing an admin provided object. For information on identifying object<br />
references, see “To manage admin provided objects in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong><br />
Client” on page 244.<br />
IMPORTANT Contrary to other admin provided objects, you cannot delete a field if it<br />
has references to other admin provided objects, even if that field has not made a<br />
change to the database. You must remove the references before deleting the field.<br />
Deleting an item removes it from the database. Only a user with the DeleteItem permission<br />
can delete an item of any type; however, your administrator can assign the<br />
ModifyDeleteItemRule permission, allowing a type administrator to set a type rule that<br />
specifies which users can delete items of that type. Deleting an item removes the item history<br />
and any links to attachments, change packages (change package members associated with the<br />
item are not deleted from the database), relationships (including both forward and backward<br />
relationships), and some history records from related items. If you delete an item containing<br />
relationships, the history of each related items denotes the ID of the deleted items, the user<br />
that deleted the items, and the date of the deletion.<br />
179
Chapter 4: Workflow Management<br />
180<br />
Key Considerations<br />
Deleting an item is irreversible.<br />
The ID of a deleted item is never reused.<br />
<strong>MKS</strong> recommends that you do not delete requirements management items. With the<br />
release of the Requirements Management 2007 solution template and the associated<br />
node-item data model, these items are linked to configuration management baselines<br />
which means that these items, if deleted, change the recorded baseline as if the items<br />
never existed.<br />
If you are using both workflows and documents, and configuration management, do not<br />
confuse an item’s change package members with project or Sandbox members.<br />
To delete an Item in the GUI<br />
CLI EQUIVALENT im deleteissue<br />
You can delete an item by choosing the delete option from the Item menu in the GUI.<br />
Although this option is outside the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, the Delete Item<br />
command is not visible to users without administrative privileges. If the delete option is<br />
unavailable even though you have selected an item to delete and the item displays in the Item<br />
Details panel, this item cannot be deleted temporarily because it is being edited by another<br />
user.<br />
1 In the Query Results pane, select an item to delete, making sure it displays in the Item<br />
Details panel.<br />
2 Select Item > Delete. The Delete Item message warns you that deleting this item cannot be<br />
undone and that if you delete it all the history information for this item is lost.<br />
3 Click Yes to confirm the deletion of an item. After successful deletion, the item is<br />
removed from the Item Details pane.<br />
4 Run the query to remove the item from the Query Results view.<br />
Setting Up E-mail Notification<br />
Any <strong>MKS</strong> <strong>Integrity</strong> user can be notified through an e-mail message whenever a new item is<br />
submitted or item information changes. This is useful for users who need to review and<br />
approve state changes on new submissions or existing items and for users who need to work<br />
on items assigned to them. Notifications also keep users informed of project progress.
NOTE<br />
Setting Up E-mail Notification<br />
E-mail notification is subject to project, type, and field visibility rules. Only users<br />
that have visibility for a given project and type receive e-mail notification for<br />
items related to that project and type. In addition, e-mail notifications include<br />
only the fields they have permission to view. For more information, see “Setting<br />
Workflow and Document Project Visibility” on page 250, “Setting Type<br />
Visibility” on page 114, and “Setting Field Visibility for Types” on page 120.<br />
E-mail notifications are evaluated on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>’s time zone.<br />
You configure <strong>MKS</strong> <strong>Integrity</strong> to send you e-mail notification by creating rules. Rules are made<br />
up of conditions, which are logical expressions of specific item field changes that you want to<br />
be notified about. For example, you could create a simple rule containing one condition that<br />
sends you e-mail every time a new problem assigned to you is submitted. Similarly, you<br />
could create a complex rule containing two conditions that sends you e-mail every time a<br />
new problem assigned to you is submitted and when existing problems become assigned to<br />
you. Rules can contain as many conditions as you want.<br />
The e-mail message displays information on the item, for example, the item type, ID,<br />
summary, who edited the item and when, a hyperlink to the item, and the modified fields.<br />
Optionally, you can select additional notification fields for each type. These additional<br />
notification fields are included in the notification e-mail sent to users. Additional notification<br />
fields appear as a separate Notification Fields section between the default header<br />
section and the Modified Fields section.<br />
You can also select the character set that the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> uses when sending e-mail.<br />
The property controlling the character set is contained in file:<br />
installdir/config/properties/is.properties<br />
By default, the character set for internationalization support is:<br />
java.system.property.smtpencoding=UTF-8<br />
Permissions for E-mail Notification<br />
Depending on how <strong>MKS</strong> <strong>Integrity</strong> is configured, the administrator may be the only one who<br />
can create and edit e-mail notification rules for users and groups. If you want users to have<br />
access to the notification feature, you assign the following permissions to them:<br />
allow ViewMyNotification allows users to view e-mail notification settings, but not<br />
make any changes to them. If users do not have this permission, they see the options but<br />
cannot perform any edits in the GUI. In the Web interface, users who do not have<br />
ViewMyNotification may select Session > Notifications, but the notification settings<br />
do not display.<br />
allow ModifyMyNotification allows users to create and edit notification rules. If<br />
users do not have this permission, they cannot create or edit e-mail notification rules.<br />
181
Chapter 4: Workflow Management<br />
182<br />
For more information on setting permissions, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
To set e-mail notification in the GUI<br />
CLI EQUIVALENT im setnotification<br />
1 In the <strong>MKS</strong> <strong>Integrity</strong> Client, select Item > Set Notification. The Notifications dialog box<br />
displays.<br />
2 The e-mail address specified for you by your administrator is automatically entered in<br />
the Email Address field.<br />
3 If certain conditions are met, nodes specify if e-mail notification is sent. Select a node<br />
option by clicking a button:<br />
And specifies that all of the conditions specified must be true for an e-mail<br />
notification to be sent. For example, if an item’s assigned group =<br />
documentation and project = editor, then an e-mail notification is sent.<br />
Or specifies that one or more of the conditions must be true for an e-mail notification<br />
to be sent. For example, if an item’s state = submitted or the priority is not<br />
equal to high, an e-mail notification is sent.<br />
Swap replaces the selected node with the opposite node. For example, swapping an<br />
Or node replaces it with an And node.<br />
Remove deletes the selected node.<br />
NOTE You do not need to use the And and Or nodes if your rule contains only one<br />
condition. If your rule contains more than one condition, you must begin by<br />
entering and And or Or node.<br />
The following image shows a sample notification rule.
Setting Up E-mail Notification<br />
4 Under Condition, define the conditions that specify when an e-mail notification is sent.<br />
For more information, see “Defining Rules” on page 43.<br />
For example, you can configure <strong>MKS</strong> <strong>Integrity</strong> to send an e-mail notification every time<br />
the assigned user of an item is changed to the specified user, such as in the following<br />
example:<br />
Assigned UserAssigned User<br />
Assigned User=mchang<br />
You could also configure <strong>MKS</strong> <strong>Integrity</strong> to send an e-mail notification for all items that<br />
are currently assigned to the specified user (such as, Assigned User=mchang).<br />
5 To add the condition to the rule, click Add. To replace an existing rule with a new rule,<br />
select the rule in the rules list, and then click Replace.<br />
6 To accept the changes, click OK.<br />
183
Chapter 4: Workflow Management<br />
184<br />
To set e-mail notification in the Web interface<br />
The Web interface allows you to set simple e-mail notification rules, for example, receiving<br />
e-mail notification when new submitted items are assigned to you.<br />
NOTE To create advanced e-mail notification rules, you must create them in the GUI.<br />
1 Click My Profile on the right side of the title pane.<br />
NOTE When the view is maximized, click in the title pane and select My Profile.<br />
The My Profile dialog box displays. Your e-mail address displays on the Item<br />
Notifications tab.<br />
NOTE If you create a notification rule in the GUI that is too complex to view or edit<br />
in the Web interface, you are asked whether you want to delete the existing rule and<br />
create a new one in the Web interface.<br />
2 Click the button and select a pre-defined notification rule. The pre-defined rule<br />
displays in the list with a .<br />
3 Click specific type(s) in the rule and use the data filter to select one or more item types to<br />
be notified about when the condition described in the rule is satisfied. For example, if<br />
you set the notification rule Items of type(s) Defect are submitted you would be notified<br />
when a new Defect item type is submitted.<br />
If you select a rule that has an item state condition, click specific state(s) and use the data<br />
filter to select one or more states that the specified item type must be in for a notification<br />
to be sent. For example, if you set the notification rule Items of type(s) Docs are assigned
Setting Up E-mail Notification<br />
to state(s) Rejected you would be notified when a documentation item is rejected. The<br />
list of states you can select depends on the workflow implemented by your<br />
administrator.<br />
If you add more than one rule at a time without defining any values for them, all rules<br />
display with a . After defining the values for one of the rules, the changes to a .<br />
4 Repeat steps 2 and 3 for any additional notification rules. All rules are connected using<br />
the logical or, which indicates that one or more of the specified conditions must be true.<br />
To remove a notification rule, select it and click .<br />
5 When all the notification rules are set, click OK.<br />
Troubleshooting E-mail Notification<br />
In the event of problems with e-mail notification, you can also configure specific properties to<br />
increase the level of detail included in the error messages that are logged to the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. The relevant properties are included in the following file on the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>:<br />
installdir/config/properties/logger.properties<br />
where installdir is the path to the directory where you installed the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Logging levels are set to a value between 0 and 10, with 10 providing the greatest level of<br />
detail. Increasing the logging level increases the level of detail returned in the error message.<br />
185
Chapter 4: Workflow Management<br />
186<br />
Logging for SMTP Operations<br />
The following property provides a category to log the SMTP conversation between the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> and the SMTP server:<br />
mksis.logger.message.includeCategory.SMTP=10<br />
Logging for <strong>MKS</strong> <strong>Integrity</strong> E-mail Notification<br />
The following properties provide categories to log rule evaluations, project visibility checks,<br />
error handling, and other information for the <strong>MKS</strong> <strong>Integrity</strong> notification dispatcher:<br />
message logging property<br />
mksis.logger.message.includeCategory.IM-NOTIFICATION=10<br />
exception logging property<br />
mksis.logger.exception.includeCategory.IM-NOTIFICATION=5
C HAPTER FIVE<br />
Customizing Workflow<br />
Item Presentation and Configuration<br />
5<br />
This chapter contains information on customizing the presentation of items to users, as<br />
well as configuring how they appear in reports. Information on customizing admin<br />
provided objects for workflows and documents is also provided.<br />
This chapter contains the following topics:<br />
“Customizing Item Presentation” on page 188<br />
“Customizing Rich Content Fields” on page 216<br />
“Customizing Report Presentation Templates” on page 219<br />
“Customizing Test Verdicts” on page 234<br />
“Configuring Attachment Size Limits” on page 237<br />
“Configuring Limits for Queries” on page 238<br />
“Configuring Context Based Text Searching” on page 240<br />
“Setting Up Electronic Signatures” on page 241<br />
“Admin Provided Objects” on page 242<br />
“Using Type Properties” on page 245<br />
“Using Type Properties” on page 245<br />
187
Chapter 5: Customizing Workflow<br />
Where to Go Next<br />
188<br />
The following table summarizes the available content for customizing items:<br />
To Do This … See …<br />
Use an item presentation template to customize<br />
how items appear to users.<br />
Customize how reports are rendered through the<br />
use of report presentation templates.<br />
Customizing Item Presentation<br />
<strong>MKS</strong> <strong>Integrity</strong>’s presentation template designer allows you to customize the layout and<br />
display of items in your <strong>MKS</strong> <strong>Integrity</strong> database. The template designer incorporates drag<br />
and drop functionality to help you create a custom layout for a selected item type. Using the<br />
template designer, you can:<br />
create unique templates for viewing, editing, and printing items<br />
control the field order and position for each item type<br />
apply labels, field labels, field values, and images to the contents of a cell<br />
create borders and colors to group similar information<br />
apply background color, logos, and field visibility conditions to the presentation<br />
template<br />
create and delete grids, changing the number of the rows or columns in any grid<br />
apply custom cell properties for individual cells and allow cells to span adjacent<br />
columns<br />
minimize the requirement for scrolling by placing short fields on the same line<br />
preview a graphical representation of the template’s layout<br />
“Customizing Item Presentation” on page 188<br />
“Customizing Report Presentation Templates” on<br />
page 219<br />
Configure how users use attachments for items. “Configuring Attachment Size Limits” on<br />
page 237<br />
Configure limits for how items appear in queries. “Configuring Limits for Queries” on page 238<br />
Configure how users search for items in<br />
<strong>MKS</strong> <strong>Integrity</strong>.<br />
Ensure confidentiality of electronic records by<br />
using electronic signatures.<br />
Learn about and manage admin provided<br />
objects for workflows and documents.<br />
“Configuring Context Based Text Searching” on<br />
page 240<br />
“Setting Up Electronic Signatures” on page 241<br />
“Admin Provided Objects” on page 242
Customizing Item Presentation<br />
<strong>MKS</strong> <strong>Integrity</strong> saves your presentation template files in XML format in the database.<br />
<strong>MKS</strong> recommends creating and editing IPTs in the GUI; however, you can retrieve IPTs from<br />
the database for manual editing. Once you are finished editing these files, you can store them<br />
in the database.<br />
As an alternative to using the Admin Migration Wizard, you could also retrieve an IPT from<br />
a server, modify it, and place it in another server’s database for use.<br />
To retrieve IPTs from the database, use the integrity/im getdbfile command.<br />
To put IPTs in the database, use the integrity/im putdbfile command.<br />
NOTE The integrity putdbfile and getdbfile commands require the<br />
mks:Admin<strong>Server</strong> permission. The im putdbfile and getdbfile commands<br />
require the mks:im:Admin<strong>Server</strong> permission.<br />
For more information on using these commands, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
<strong>Administration</strong> CLI Reference <strong>Guide</strong>.<br />
Understanding Template Designer<br />
Presentation templates are customizable layouts for displaying items in <strong>MKS</strong> <strong>Integrity</strong>.<br />
<strong>MKS</strong> <strong>Integrity</strong>’s presentation template designer allows you to customize the layout and<br />
display of items in your <strong>MKS</strong> <strong>Integrity</strong> database. The template designer incorporates drag<br />
and drop functionality to help you create a custom layout for a selected item type.<br />
Certain tools also work in a modal fashion, that is, by clicking the tool on the toolbar you can<br />
operate in the selected mode on the design pane. Template properties and the preview<br />
function are also available on the toolbar. For more information on the available tools, see<br />
“Available Tools” on page 190.<br />
NOTE You can only work with presentation templates from the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client.<br />
The following shows the main features of the template designer interface.<br />
189
Chapter 5: Customizing Workflow<br />
190<br />
Name Field<br />
Fields Filter<br />
Fields View Pane<br />
Property Pane<br />
Available Tools<br />
Toolbar<br />
Design Pane<br />
The presentation template designer includes tools to help you create a customized<br />
presentation for your items. Certain tools can work in two modes:<br />
clicking the tool to operate in the selected mode, for example, clicking the text tool to<br />
insert a text label into a cell<br />
dragging the tool onto the design pane to add the selected component, for example, drag<br />
the image tool to insert an image into a cell<br />
The following table summarizes the available tools:<br />
Tool Function<br />
Preview custom template. Displays Set Item Number dialog box for previewing<br />
template.<br />
Modify template properties. Displays Layout Properties dialog box where you<br />
can modify general properties, and default styles for text, cells, and grids.<br />
Delete selected item from design pane.<br />
Note: To completely delete field and return it to fields view pane, you must<br />
delete both Field Label and Field Value.<br />
Select components of template, including grids, cells, and labels.<br />
Create a new tab in the layout.
Tool Function<br />
Modifying Template Properties<br />
Customizing Item Presentation<br />
Clone the selected tab and insert it into the layout at the last position.<br />
Add new grid to template. Works in modal fashion by selecting tool or by<br />
dragging it.<br />
Insert text label into cell. Works in a modal fashion by selecting tool or by<br />
clicking/dragging it.<br />
Insert image into cell. Works in modal fashion by selecting tool or by clicking/<br />
dragging it.<br />
Insert row above selected cell. To delete row, select cell in that row and then<br />
click .<br />
Insert row below selected row. To delete row, select cell in that row and then<br />
click .<br />
Delete row containing selected cell.<br />
Insert column to left of insertion point. To delete inserted column, first select cell<br />
in that column and then click .<br />
Insert column to right of insertion point. To delete inserted column, first select<br />
cell in that column and then click .<br />
Delete column containing selected cell.<br />
Join cell to right of selected cell. To join multiple cells across row, continue<br />
clicking until all target cells joined.<br />
Split cell. Only available if selected cell previously joined.<br />
Copy the selected grid.<br />
Paste the copied grid.<br />
Note: You cannot paste a grid that would result in a field appearing twice on the<br />
same tab.<br />
The Layout Properties dialog box allows you to configure styles and settings that can be<br />
applied globally to components of your template.<br />
191
Chapter 5: Customizing Workflow<br />
192<br />
By using the styles and settings in Layout Properties, you can avoid having to configure<br />
detailed settings for each individual element of your template, and instead have a consistent<br />
style that is applied to all instances of a text, cell, or grid element.<br />
Using the properties pane, you can also override a global style setting by modifying<br />
individual values for a selected item.<br />
General Properties<br />
General properties include settings for background color, logo URL and alignment, and the<br />
layout for any fields that are not referenced by the template.<br />
To access general properties, click on the toolbar to open the Layout Properties dialog box,<br />
and click the General tab. The available settings for general properties display in the dialog<br />
box.<br />
Once you have modified the necessary general properties, you can click the next tab to<br />
configure additional properties. If you have completed your changes, click OK to save them<br />
and close the dialog box.<br />
The following table summarizes the available general properties:<br />
General Properties Description<br />
Background Color Specifies preferred background color of entire template. Select<br />
preferred background color by selecting:<br />
available named HTML color<br />
option for Custom… and then a color from the selectors for<br />
Swatches, HSB (Hue, Saturation, Brightness), or RGB (Red,<br />
Green, Blue)<br />
By default, background color is default as determined by<br />
operating system.<br />
Logo URL Displays image, such as corporate logo, as part of customized<br />
template. By default, no logo displays.<br />
Note: Logo file stored in public HTML directory of server and<br />
referenced using an URL.<br />
For more information, see “To add a logo” on page 212.
General Properties Description<br />
Text Styles<br />
Customizing Item Presentation<br />
Logo Alignment Specifies alignment of logo, if one selected, at top of template.<br />
Options are Left or Right. Option not available if no logo<br />
selected. By default, logo alignment set to Right.<br />
Unreferenced Fields Layout Specifies default layout for any fields not referenced by template.<br />
Available fields from field view pane not inserted into cell. Options<br />
are:<br />
Single field per row allowing only one field on row of<br />
template<br />
Multiple fields per row allowing more than one field on<br />
row of template<br />
By default, unreferenced fields layout set to Single field per<br />
row.<br />
Default setting for defaultprint template is Multiple<br />
fields per row.<br />
You can configure text styles for field labels, field values, and labels. To access text styles,<br />
click on the toolbar to open the Layout Properties dialog box, and click the Text Styles tab.<br />
The available settings for defined text styles display in the Layout Properties dialog box.<br />
Once you have completed your changes, click Apply to save your settings. To cancel the<br />
changes, click Revert.<br />
To create a new text style, click New. A new text style has a name, default font, size (weight),<br />
and color. You can then apply the new text style as you would for any of the defined text<br />
styles.<br />
NOTE When creating a style for a mandatory field, consider using a unique font<br />
color so users can quickly identify mandatory fields when editing items. The color is<br />
also used as an indicator for the tab name of a tab that contains the mandatory field<br />
(see “Working With Tabs” on page 209).<br />
To delete a text style that is no longer required, click Delete.<br />
NOTE You do not need to assign text styles. If no text styles are assigned, the default<br />
styles are applied.<br />
193
Chapter 5: Customizing Workflow<br />
194<br />
The following table summarizes the available properties for text styles:<br />
Text Styles Properties Description<br />
Defined Text Styles By default, styles are defined for Heading, FieldLabel, and<br />
FieldValue.<br />
Heading style available to apply to any text you define as heading.<br />
FieldLabel and FieldValue styles available to apply to field<br />
labels and values.<br />
Name Display name of defined text style you select. By default, first one<br />
selected.<br />
Font Font for selected text style. Default font determined by operating<br />
system.<br />
Size Available font sizes from 8–72 points. Also font weight, such as Bold,<br />
or Italic, or both. Default font size determined by operating system.<br />
Color Font color from available system font colors. By default, color<br />
determined by operating system.<br />
Sample Sample of text, including font size, weight, and color.<br />
Default Text Styles Properties<br />
The default text styles provide the underlying style for labels, field labels, field values, and<br />
mandatory field labels.<br />
To access default text styles, click on the toolbar to open the Layout Properties dialog box,<br />
and click the Default Text Styles tab. The available settings for default text styles display.<br />
Use the default text styles to define how different text elements display by default in your<br />
template.<br />
Once you have modified the necessary default text style properties, click the next tab to<br />
configure additional properties. If you have completed your changes, click OK to save them<br />
and close the dialog box.<br />
The following table summarizes the available properties for default text styles:<br />
Default Text Styles Properties Description<br />
Default Label By default, label text style is system.<br />
Default Field Label By default, field label text style is system.<br />
Default Field Value By default, field value text style is system.<br />
Default Mandatory Field Label By default, mandatory field label text style is system.
Default Grid Properties<br />
Customizing Item Presentation<br />
Modifying the default grid properties affects the characteristics of all grids in the selected<br />
template. The available properties are background color, border, cell spacing, cell padding,<br />
pack, and fill.<br />
To access the default grid properties, click on the toolbar to open the Layout Properties<br />
dialog box, and click the Default Grid tab. The available settings for default grid properties<br />
display.<br />
Once you have modified the necessary default grid properties, click the next tab to configure<br />
additional properties. If you have completed your changes, click OK to save them and close<br />
the dialog box.<br />
The following table summarizes the available default grid properties:<br />
Default Grid Properties Description<br />
Background Color Background color of grid. Choose color by clicking list and<br />
selecting:<br />
available color<br />
custom option and then choosing a color from the selectors for<br />
Swatches, HSB (Hue, Saturation, Brightness), or RGB (Red,<br />
Green, Blue).<br />
By default, background color is default as determined by<br />
operating system.<br />
Border Thickness of border around grid from 0 to 99 pixels. By default,<br />
border is 0.<br />
Cell Spacing Distance between individual cells from 0 to 99 pixels. By default,<br />
cell spacing is 0.<br />
Cell Padding Distance between cell’s contents and cell margin from 0 to 99<br />
pixels. By default, cell padding is 0.<br />
Pack Specifies whether any extra horizontal space in grid is filled by last<br />
column (at far right). If pack is False, then extra horizontal space<br />
distributed across all columns. Extra horizontal space only occurs<br />
when Fill option set to True. By default, pack is True.<br />
Fill Specifies whether grid expands to fill available width in item<br />
display. If fill False, grid uses only space required to display its<br />
contents. By default, fill is True.<br />
Default Cell Properties<br />
Modifying the default cell properties affects the characteristics of all cells within the template.<br />
The available properties are background color, horizontal alignment, vertical alignment, and<br />
wrap.<br />
To access default cell properties, click on the toolbar to open the Layout Properties dialog<br />
box, and then click the Default Cell tab. The available settings for default cell properties<br />
display.<br />
195
Chapter 5: Customizing Workflow<br />
196<br />
Once you have modified the necessary default cell properties, click the next tab to configure<br />
additional properties. If you have completed your changes, click OK to save them and close<br />
the dialog box.<br />
The following table summarizes the available default cell properties:<br />
Default Cell Properties Description<br />
Background Color Preferred background color of cell. Select preferred background<br />
color by clicking list and selecting:<br />
available named HTML color<br />
custom option and then choosing a color from the selectors for<br />
Swatches, HSB (Hue, Saturation, Brightness), or RGB (Red,<br />
Green, Blue).<br />
By default, background color is default as determined by<br />
operating system.<br />
Horizontal Alignment Horizontal alignment of cell contents (Left, Center, or Right). By<br />
default, horizontal alignment is Left.<br />
Vertical Alignment Vertical alignment of cell contents (Top, Middle, or Bottom). By<br />
default, vertical alignment is Middle.<br />
Wrap Wrapping of text within cell. By default, Wrap enabled.<br />
Tips for Working With Template Designer<br />
Consider the following when using the presentation template designer to create and edit<br />
templates:<br />
To have a standard corporate presentation for your items, you can create a generic<br />
presentation template and use that template as the basis for all other templates. You can<br />
then copy the generic template and make modifications that are specific to an individual<br />
item type saving each modified template and applying it to the appropriate type.<br />
You can select any naming convention for saving your templates, but associating the<br />
template name with the item type can simplify the task of assigning templates.<br />
You can create and set individual templates for viewing, submitting/editing, and<br />
printing items. For more information, see “Templates for Viewing, Submitting, and<br />
Printing Items” on page 197.<br />
While designing your template you can save your work without closing the template<br />
designer. The template designer does not include an undo function. Once you are<br />
satisfied with your work, you can save it to avoid losing your design.<br />
If you have made changes and cannot correct them, immediately close the template<br />
designer without saving to discard those changes. You can then reopen the earlier version<br />
of the template with all your desired changes intact and continue editing.<br />
Instead of modifying individual cell, text, and grid elements in the template, you can<br />
define and use styles through the Layout Properties dialog box. Styles allow you to make
Customizing Item Presentation<br />
a change in one place that applies to every instance where the style is applied in the<br />
template.<br />
When formatting a mandatory field, choose a unique font color so users can quickly<br />
identify mandatory fields when editing items. The color is also used as an indicator for<br />
the tab name of a tab that contains the mandatory field (see “Working With Tabs” on<br />
page 209).<br />
When choosing background color, remember the color of an individual cell overrides the<br />
color of the grid, and the color of the grid overrides the background color of the<br />
template.<br />
You can preview all your changes before saving them by clicking on the toolbar. Once<br />
you are satisfied with the changes you have made, click Save to retain those changes.<br />
You can only preview the template for the type of item you are working on. For example,<br />
if you are working from the Edit Type window on the Feature Request type, you cannot<br />
preview the template for the Bug type.<br />
When previewing a template, you must also enter an item ID number for an item that is<br />
of the same type as the template you are working on. For example, if you are working on<br />
the Feature Request type and want to preview the template, you must enter an item<br />
number for an item that is also a Feature Request. If you enter a number for an item that<br />
is of the wrong type or does not exist, an error message displays.<br />
When working in the template designer, you can preview the template only in the GUI.<br />
When working from the Edit Type window, you can preview the template in either the<br />
GUI or Web interface.<br />
Templates for Viewing, Submitting, and Printing Items<br />
You can create unique templates for viewing, submitting/editing, and printing items.<br />
Templates for viewing and submitting/editing items are intended for on-screen displays,<br />
and they can be designed with features such as a controlled field width to minimize scrolling<br />
and larger font sizes to improve readability.<br />
Templates for printing items are intended for paper output, and they can be designed with<br />
smaller font sizes, or without color or backgrounds, to make printing more efficient.<br />
Previewing Presentation Template<br />
When working in the presentation template designer, you can preview all your changes<br />
before saving them by clicking on the toolbar. You can only preview the template for the<br />
type of item you are working on. For example, if you are working on the Feature Request<br />
type, you cannot preview a template for the Bug type.<br />
When working in the template designer under Select User Interface, you can preview<br />
templates only in the GUI. From the template designer under Select Command, you can<br />
select the command the template is previewed with, for example, whether the template is for<br />
viewing an item, or for submitting and editing items.<br />
197
Chapter 5: Customizing Workflow<br />
198<br />
When working from the Edit Type window, you can preview your presentation template by<br />
clicking Preview. You can choose to preview the template in either the GUI or Web interface.<br />
Whenever you want to preview a template, you must first set an item number ID through the<br />
Set Item ID dialog box.<br />
The item ID number must be for an item that is of the same type as the template you are<br />
working on. For example, if you are working on the Feature Request type and want to<br />
preview the template, you must enter an item number for an item that is also a Feature<br />
Request. If you enter a number for an item that is of the wrong type or does not exist, an error<br />
message displays.<br />
To preview a presentation template<br />
1 From the Set Item ID dialog box in the Item ID field, type an item ID number that<br />
corresponds with the type you are working on.<br />
IMPORTANT When previewing a template, you must enter an item ID number for an<br />
item that is of the same type as the template you want to preview. For example, if<br />
you are working on the Feature Request type and want to preview the template, you<br />
must enter an item number for an item that is also a Feature Request. If you enter a<br />
number for an item that is of the wrong type or does not exist, an error message<br />
displays.<br />
2 Under Select User Interface, select the interface for viewing (either the GUI or Web<br />
interface).<br />
3 Under Select Command, select the command you will use the template with, for<br />
example, will you use it for viewing an item, or for submitting and editing items. The<br />
available options are:<br />
View<br />
Submit/Edit<br />
Print<br />
NOTE Select Command options are only enabled when working from the<br />
presentation template designer.<br />
4 To preview the item in the selected template and user interface, click OK.<br />
Creating New Presentation Template<br />
You can create a new presentation template to provide a custom look for displaying,<br />
submitting, and printing items. Presentation templates are set according to the item type.<br />
You create a new presentation template through the Edit Type window using the New<br />
function.
To create a new presentation template<br />
Customizing Item Presentation<br />
1 From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the Workflows and Documents<br />
node, and select Types. The display pane shows the available item types.<br />
2 Highlight the item type you want to create the new presentation template for, and select<br />
Type > Edit. The Edit Type window displays.<br />
3 From the Edit Type directory tree, select Presentations. The display pane shows the<br />
presentation template options and available templates.<br />
4 To open the template designer and begin designing your template, click New under<br />
Available Presentation Templates. The Create Presentation Template window displays.<br />
5 In the Name field, type the name for the new presentation template. By default, the name<br />
is template. The name you choose should help you to associate the template with the<br />
item type it is intended for.<br />
To save an initial version of the new presentation template, click Save.<br />
6 There is a default two-by-two grid available on the tab. To add or modify a grid, see<br />
“Working With Grids” on page 204.<br />
7 Add fields to the template (see “Adding Fields” on page 211).<br />
199
Chapter 5: Customizing Workflow<br />
200<br />
8 Continue editing the template as required for your design. Depending on the design you<br />
create, you may need to carry out the following tasks:<br />
“Working With Cells” on page 205<br />
“Working With Labels” on page 206<br />
“Working With Images” on page 212<br />
“Working With Tabs” on page 209<br />
CAUTION The presentation template designer does not include an undo function.<br />
You can preview all your design changes before saving them. Once you are satisfied<br />
with the changes you have made, click Save to retain those changes.<br />
If you have made changes and cannot correct them, close the template immediately<br />
without saving it to discard those changes. You can then reopen the earlier version<br />
of the template with all your desired changes intact and continue editing.<br />
To preview your changes, click on the toolbar. You can only preview the template for<br />
the type of item you are working on.<br />
When previewing a template, you must also enter an item ID number for an item that is<br />
of the same type as the template you are working on. For example, if you are working on<br />
the Feature Request type and want to preview the template, you must enter an item<br />
number for an item that is also a Feature Request. If you enter a number for an item that<br />
is of the wrong type or does not exist, an error message displays.<br />
From the template designer under Select User Interface, you can preview templates only<br />
in the GUI. Under Select Command, you can select the command the template is<br />
previewed with. For example, whether the template is for viewing an item, or for<br />
submitting and editing items. For more information on previewing a template, see<br />
“Previewing Presentation Template” on page 197.<br />
To save your new template design, click Save.
A completed presentation template might look like the following:<br />
Customizing Item Presentation<br />
9 Once you have completed and saved all your changes, click Close. The template<br />
designer closes and the new template is added to the list of available presentation<br />
templates in the Edit Type window. You can open this template for further editing at any<br />
time.<br />
Keep the Edit Type window open for the next step. The next step sets the template for the<br />
item type you are editing.<br />
To set the new presentation template for the target type<br />
1 From the Edit Type window under Set Presentation Template, view the available<br />
templates:<br />
View Item is the presentation template that is used to display items on screen in<br />
<strong>MKS</strong> <strong>Integrity</strong>. By default, this is the default template.<br />
Submit/Edit Item is the presentation template that is used for submitting and editing<br />
items in <strong>MKS</strong> <strong>Integrity</strong>. By default, this is the default template.<br />
Print Item is the presentation template that is used for printing items. By default this<br />
is the defaultprint template.<br />
201
Chapter 5: Customizing Workflow<br />
202<br />
For more information on templates for viewing, submitting and printing items, see<br />
“Templates for Viewing, Submitting, and Printing Items” on page 197.<br />
2 To preview the layout of an item in the assigned template, click Preview. The Set Item ID<br />
dialog box displays.<br />
3 From the Set Item ID dialog box in the Item ID field, type an item ID number for the type<br />
you want to preview.<br />
IMPORTANT When previewing a template, you must enter an item ID number for an<br />
item that is of the same type as the template you want to preview. For example, if<br />
you are working on the Feature Request type and want to preview the template, you<br />
must enter an item number for an item that is also a Feature Request. If you enter a<br />
number for an item that is of the wrong type or does not exist, an error message<br />
displays.<br />
4 Under Select User Interface, select the interface for viewing (either the GUI or Web<br />
interface).<br />
5 To preview the item in the selected template and user interface, click OK. The target item<br />
displays in the template you selected.<br />
6 Once you have set and previewed the presentation template, click OK to save the settings<br />
and exit the Edit Type window.
Editing Presentation Template<br />
Customizing Item Presentation<br />
After you have created a presentation template, you can edit that template as required. You<br />
edit an existing presentation template through the Edit Type window using the Edit function.<br />
CAUTION The presentation template designer does not include an undo function.<br />
You can preview all your changes before saving them by clicking Preview. Once you<br />
are satisfied with the changes you have made, click Save to retain those changes. Try<br />
to save at frequent intervals to avoid losing your work.<br />
If you have made changes and cannot correct them, close the template immediately<br />
without saving it to discard those changes. You can then reopen the earlier version<br />
of the template with all your desired changes intact and continue editing.<br />
You can also edit the default template, though it is recommended that you edit a copy of the<br />
default template instead (see “Copying Presentation Template” on page 214). When editing<br />
the default template, you can modify or delete the Relationships and Attachments tabs (see<br />
“Working With Tabs” on page 209). However, other tabs, such as Change Packages and<br />
History, are not editable and are not viewable in the presentation template designer.<br />
To edit a presentation template<br />
1 From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the Workflows and Documents<br />
node.<br />
2 Highlight the item type you want to edit and do one of the following:<br />
Select Type > Edit.<br />
Right click, and select Edit from the shortcut menu.<br />
The Edit Type window displays.<br />
3 From the Edit Type directory tree, select Presentations. Presentation template options<br />
and available templates displays in the display pane.<br />
4 From the list, select the template you want to edit, and click Edit. The Edit Presentation<br />
Template window displays with the selected template in the editing pane.<br />
5 Perform your editing tasks as required:<br />
“Working With Grids” on page 204<br />
“Working With Cells” on page 205<br />
“Working With Labels” on page 206<br />
“Working With Tabs” on page 209<br />
“Filtering Fields” on page 210<br />
“Adding Fields” on page 211<br />
“Working With Images” on page 212<br />
203
Chapter 5: Customizing Workflow<br />
204<br />
6 Save your changes at frequent intervals. When you have completed your editing, click<br />
Save and then Close to close the template designer.<br />
Working With Grids<br />
You can set up new grids or modify the properties for an existing grid. The available<br />
properties are background, border, cell padding, cell spacing, fill, pack, and visibility.<br />
To set up a grid<br />
NOTE To modify an existing grid, highlight the target grid and go directly to step 4.<br />
1 From the presentation template designer, drag the grid tool onto the design pane to<br />
add a new grid to your template. The New Grid dialog box displays. By default, the<br />
template starts with a grid containing two rows and two columns.<br />
2 Set the size of the grid:<br />
In the Number of Rows field, select the number of rows required for the grid.<br />
In the Number of Columns field, select the number of columns required for the grid.<br />
3 Click OK to insert the new grid on the design pane.<br />
NOTE These procedures only describe how to modify selected grid components of<br />
the template. Through the Layout Properties dialog box, you can make global<br />
changes that apply by default to all grid components. For more information, see<br />
“Default Grid Properties” on page 195.
4 Modify the properties of the grid as required:<br />
Customizing Item Presentation<br />
For Background, specify the default background color of the grid. You can select a<br />
named color from the list, or click Custom and select from the Swatches, HSB, or<br />
RGB color selectors. Your systems determines the Default color.<br />
For Border, specify the width of the border around the outside edge of the grid.<br />
Values range from 0 to 99. By default, Border has the value 0.<br />
For Cell Padding, specify the distance between individual cells on the grid.<br />
Values range from 0 to 99. By default, Cell Padding has the value 0.<br />
For Cell Spacing, specify the distance between the cell contents and the cell<br />
margin. Values range from 0 to 99. By default, Cell Spacing has the value 0.<br />
For Fill, specify whether the grid expands to fill the available display space. If fill<br />
is set to True, the grid expands to fill the available width in the item display. If fill is<br />
set to False, the grid uses only the space required to display its contents. By<br />
default, Fill is enabled.<br />
NOTE Because it can result in an uneven border, it is preferable to use the<br />
Fill=False option only for grids at the bottom of the item display.<br />
For Pack, specify the horizontal space occupied by columns. If pack is set to True,<br />
then all columns are sized to fit their contents and the last column (at the far right)<br />
then occupies the remaining horizontal space in the grid. By default, Pack is<br />
enabled.<br />
For Visible When, specify a value to control the visibility of the selected grid. For<br />
example, if the grid is only visible when the assigned group is visible, select<br />
Assigned Group. The visibility of the grid takes priority over the visibility of an<br />
individual cell.<br />
The selected grid is immediately formatted according to your selections.<br />
5 To save your changes, click Save.<br />
Working With Cells<br />
You can modify the property for individual cells as required to customize your template<br />
design. The available properties include horizontal alignment, background, vertical<br />
alignment, visibility, and wrap.<br />
NOTE If you decide to leave empty cells in the template, empty space displays in the<br />
item presentation for both the GUI and Web interface.<br />
205
Chapter 5: Customizing Workflow<br />
206<br />
To format template cells<br />
1 From the presentation template designer, select the cell you want to modify. The<br />
available properties display.<br />
NOTE These procedures only describe how to modify selected cell components of<br />
the template. Through the Layout Properties dialog box, you can make global<br />
changes that apply by default to all cell components. For more information on<br />
default cell properties, see “Default Cell Properties” on page 195.<br />
2 In the Properties pane, configure the following properties as required:<br />
For Background, specify the preferred background color of the cell by choosing an<br />
available named color, or by selecting the Custom option and choosing a color from<br />
the selectors for Swatches, HSB, RGB, or Default.<br />
For Horz. Alignment, specify the horizontal alignment of the cell contents,<br />
whether Left, Center, Right, or Default.<br />
For Vert. Alignment, specify the vertical alignment of the cell contents, whether<br />
Top, Middle, Bottom, or Default.<br />
For Visible When, specify a value to control the visibility of the cell. For example,<br />
if the cell is only visible when the assigned group is visible, select Assigned Group.<br />
For Wrap, specify how text wraps within the selected cell. By default, wrapping is<br />
enabled (true). To disable wrapping, select false.<br />
NOTE The visibility of the grid takes priority over the visibility of an individual cell.<br />
3 To save your changes, click Save.<br />
Working With Labels<br />
You can modify individual text labels, field labels, and field values to create the emphasis,<br />
readability, and layout you want for your template. Text labels are simple text strings defined<br />
by you.
Customizing Item Presentation<br />
Field labels are assigned by <strong>MKS</strong> <strong>Integrity</strong> according to your field definitions. You can<br />
override the text presented as a field label for purposes of the item display.<br />
IMPORTANT For purposes of item display, a field label also overrides the display<br />
name for a field. For more information on display names, see “Using Display<br />
Names” on page 126.<br />
The field value is directly associated with the field label. The content for field values is<br />
supplied by <strong>MKS</strong> <strong>Integrity</strong> according to the information submitted by users over the item’s<br />
life. You can format the style of presentation for field values, but you cannot change their<br />
content.<br />
To modify text labels<br />
1 From the presentation template designer, select the label you want to modify.<br />
TIP These procedures only describe how to modify selected text labels of the<br />
template. You can make global changes that apply by default to all text labels using<br />
the Layout Properties dialog box. For more information, see “Modifying Template<br />
Properties” on page 191.<br />
207
Chapter 5: Customizing Workflow<br />
208<br />
2 In the Property pane, configure the following properties as required:<br />
For Text, type the text string you want to display as the label. For example, you<br />
could type Development Items to create a heading for your custom display. To<br />
restore the default text, delete the text string that you entered as an override and<br />
press ENTER; the default text string is restored on the label.<br />
For Text Style, specify the style you want applied to the label. By default, styles<br />
are pre-defined for Default, FieldLabel, FieldValue, and Heading. You can<br />
edit the pre-defined styles and create additional custom styles as needed. For<br />
example, you could apply the Heading style to set a label as a heading. For more<br />
information on text styles, see “Text Styles” on page 193.<br />
NOTE You can modify or delete the default styles or create new ones to suit your<br />
design.<br />
For Visible When, specify a value to control the visibility of the cell. For example,<br />
if the cell is only visible when the assigned group is visible, select Assigned Group.<br />
3 To save your changes, click Save.<br />
To modify field labels<br />
1 From the presentation template designer, select the field label you want to edit.<br />
TIP These procedures only describe how to modify selected field labels of the<br />
template. You can make global changes that apply by default to all field labels using<br />
the Layout Properties dialog box. For more information, see “Modifying Template<br />
Properties” on page 191.
2 In the Property pane, configure the properties as required:<br />
Customizing Item Presentation<br />
For Text Override, type the text string you want to display as the field label. For<br />
purposes of the presentation template, this text overrides the field label, that is the<br />
display name, as defined in <strong>MKS</strong> <strong>Integrity</strong>.<br />
For Text Style, specify the style you want to apply. By default, styles are predefined<br />
for Default, FieldLabel, FieldValue, and Heading. You can edit the<br />
pre-defined styles and create additional custom styles as needed. For more<br />
information on text styles, see “Text Styles” on page 193.<br />
3 To save your changes, click Save.<br />
To modify field values<br />
1 From the presentation template designer, select the field value you want to edit.<br />
TIP These procedures only describe how to modify selected field values of the<br />
template. You can make global changes that apply by default to all field values<br />
using the Layout Properties dialog box. For more information, see “Modifying<br />
Template Properties” on page 191.<br />
2 In the Property pane, modify the Text Style property as required. Select a style to<br />
apply to the field value. By default, styles are pre-defined for Default, FieldLabel,<br />
FieldValue, and Heading. You can edit the pre-defined styles and create additional<br />
custom styles as needed. For more information on text styles, see “Text Styles” on<br />
page 193.<br />
3 To save your changes, click Save.<br />
Working With Tabs<br />
In a presentation template, a tab provides a way for you to separate design elements onto<br />
different panels.<br />
Key Considerations<br />
You cannot add the same field more than once to the same tab.<br />
209
Chapter 5: Customizing Workflow<br />
210<br />
You can add the same field to different tabs in the same template.<br />
You can view a comma-separated list of the tabs a field has been added to by removing<br />
the not in any tab filter (see “Filtering Fields” on page 210). The tab name appears in<br />
parentheses after the field name in the Fields View pane, for example, Attachments<br />
[Fields].<br />
When there are mandatory fields on different tabs, the same visual indicator you have<br />
specified for mandatory fields is automatically used for the tab name to indicate to the<br />
user that the tab contains a mandatory field on a tab not currently displayed.<br />
Tab Operations<br />
The following table is a quick reference for performing tasks with tabs in presentation<br />
templates from the Presentation Template Designer (see “Creating New Presentation<br />
Template” on page 198 or “Editing Presentation Template” on page 203).<br />
Task Operation<br />
Create tab Click . The default name is new tab.<br />
Clone tab Select a tab, then click . The cloned tab is inserted into the<br />
last position in the layout (last tab). The source tab name is<br />
used for the default name, appended with clone.<br />
Rename tab Select the tab (click its name). Its properties display in the<br />
Property Pane. Change the value for the Name property.<br />
Reorder a tab Select the tab (click its name). Its properties display in the<br />
Property Pane. Change the value for the Position property.<br />
Use the same field on different tabs Ensure that not on any tab is not a restriction on the Fields<br />
Filter. That way the same field is available to drag to a cell on<br />
any tab.<br />
Enable tab check mark Indicators Select the tab (click its name). Its properties display in the<br />
Property Pane. Change the value for the Has Checkmark<br />
Icon property to True.<br />
Enabling this property causes users to see a check mark<br />
icon on the tab name if any field on a tab requires user input.<br />
Delete tab Select the tab (click its name). Click . The Delete Tab<br />
dialog displays to confirm before the delete operation is<br />
performed.<br />
Caution: You cannot undo deleting a tab.<br />
Filtering Fields<br />
The fields filter determines which fields are displayed in the Fields View pane of the<br />
presentation template designer. For more information on using the fields filter, see “Filtering<br />
Data” on page 18.
The following table describes the available field filters:<br />
Filter... Displays...<br />
not in any tab Fields not yet added to any tab.<br />
Adding Fields<br />
Customizing Item Presentation<br />
The Fields view pane displays the fields associated with the selection. The fields are available<br />
to be dragged onto the grid.<br />
To add a field to the template grid<br />
1 In the Fields view pane of the presentation template designer, select a field to add to the<br />
template, for example, Assigned Group. The available fields are determined by the<br />
selection you make in the fields filter list (see “Filtering Fields” on page 210).<br />
2 Drag the selected field into the target cell of the grid. The field displays as a Field<br />
Name{Field Value}. For example, if you select the Assigned Group field, the display<br />
appears as follows:<br />
By default, the field name shown by the template designer is the display name entered<br />
when the field was created. For more information on display names, see “Using Display<br />
Names” on page 126.<br />
3 Drag the field value to the adjacent cell.<br />
Note: Filter is on by default for each new template created.<br />
in tab Fields added to specified tab.<br />
visible in item type Fields visible in specified item type.<br />
mandatory in item type Fields mandatory in specified item type.<br />
visible in all types Fields visible in all types.<br />
of field type Specific field.<br />
4 Repeat this procedure until all desired fields are added to the grid.<br />
211
Chapter 5: Customizing Workflow<br />
212<br />
NOTE Fields that remain in the Fields view pane are not referenced by the template.<br />
<strong>MKS</strong> <strong>Integrity</strong> assigns these fields a layout according to the default setting for<br />
Unreferenced Fields under General template properties. For more information,<br />
see “General Properties” on page 192.<br />
To delete a field completely and return it to the Fields view pane, you must delete<br />
the Field Label and Field Value pair for the target field.<br />
If you decide to leave empty cells in the template, empty space displays in the item<br />
presentation for both the GUI and Web interface.<br />
Working With Images<br />
The presentation template designer allows you to add logos and images to customize your<br />
presentation template. Images are added by entering a URL or Web address. You can<br />
reference image files that are in GIF, JPEG, or PNG format.<br />
You add a logo by modifying the general properties for the template. Logos are always<br />
added at the top of the template and can be aligned to the right or left edge.<br />
Images can be added to any cell in the grid by dragging the image tool to the target cell.<br />
You then type the URL or Web address for the target image, and it displays in the<br />
presentation template.<br />
Storing Image Files<br />
If you use the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> to store the required images, the image files are made<br />
available to your template from the following directory:<br />
installdir/data/public_html/images<br />
where installdir is the path to the directory where you installed the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Using an URL address, you can also access images on any public HTML server.<br />
To add a logo<br />
IMPORTANT Image files copied to the web directory are not backed up and must be<br />
restored manually. Therefore, it is important to retain copies of your required image<br />
files.<br />
1 Copy the image to the following directory on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>:<br />
installdir/data/public_html/images/logo<br />
where installdir is the path to the directory where you installed the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
The image is now available for use in your template.<br />
NOTE Using an URL address, you can also access images on any public HTML<br />
server.
Customizing Item Presentation<br />
2 To open the Layout Properties dialog box, click on the toolbar. The Layout Properties<br />
dialog box displays.<br />
3 Under the General tab in the Logo URL field, enter the case-sensitive URL for the image<br />
location using the following syntax:<br />
http:///images/logos/<br />
For example, an image file named corporate_logo.gif on the xyz-server would<br />
have the following URL:<br />
http://xyz-server:7001/images/logos/corporate_logo.gif<br />
4 In the Logo Alignment field, choose whether you want the logo to be aligned to the right<br />
or left edge of the template. Logos are always placed at the top edge of the template. The<br />
logo is placed at the top of the template.<br />
5 To save your changes, click Save.<br />
To add a new image<br />
1 Copy the image to the following directory on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>:<br />
installdir/data/public_html/images<br />
where installdir is the path to the directory where you installed the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>,<br />
and images is a subdirectory to contain the images. The image is now available for use<br />
in your template.<br />
2 Click the image tool on the toolbar and insert the image placeholder in the target cell.<br />
3 In the Property pane, click the value field for Image URL, and enter the URL for the<br />
image location using the following syntax:<br />
http://images/<br />
For example, the image file named corporate_logo.gif on the xyz-server would<br />
have the following URL:<br />
http://xyz-server:7001/images/corporate_logo.gif<br />
213
Chapter 5: Customizing Workflow<br />
214<br />
4 If required for the Visible When property, specify a value to control the visibility of the<br />
image. To set a value, click the associated value field. For example, if the image should<br />
only be visible when the assigned group is visible, select Assigned Group. The image is<br />
placed into the target cell on the template.<br />
5 To save your changes, click Save.<br />
Copying Presentation Template<br />
You can copy a presentation template to use it as the basis for a new template. For example,<br />
you can create a generic presentation template to reflect your corporate standards, and use<br />
that template as the basis for all other templates. You can then copy the generic template and<br />
make modifications that are specific to an individual item type saving each modified<br />
template and applying it to the appropriate type. Copying a template is carried out from the<br />
Edit Type window using the Copy function.<br />
To copy a presentation template<br />
1 From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the Workflows and Documents<br />
node, and select Types. The display pane shows the available item types.<br />
2 Highlight the item type for the presentation template you want to copy, and select Type<br />
> Edit. The Edit Type window displays.<br />
3 From the Edit Type directory tree, select Presentations. The display pane shows the<br />
presentation template options and available templates.<br />
4 From the list, select the template you want to copy, and click Copy. The Create<br />
Presentation Template window displays the file name with the prefix Copy of.<br />
5 In the Name field, rename the template file as desired. The name you choose should help<br />
you to associate the template with the item type it is intended for.<br />
6 Make any design changes to the new presentation template as required. For more<br />
information, see “Editing Presentation Template” on page 203.<br />
7 When you have completed your changes, click Save and then Close. The new template is<br />
added to the list of available templates. You can now set the new template for the item<br />
type, or retain it for future use.<br />
Viewing Presentation Templates<br />
At any time, you can also view the presentation template settings for a given type. Viewing is<br />
carried out from the View Type window.
To view the presentation template settings for a type<br />
Customizing Item Presentation<br />
1 From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the Workflows and Documents<br />
node, and select Types. The display pane shows the available item types.<br />
2 Select the item type you want to create the new presentation template for, and select<br />
Type > View. The View Type window displays.<br />
3 From the View Type directory tree, select Presentations. The display pane shows the<br />
selected template options under Set Presentation Template.<br />
NOTE You cannot modify any presentation template options while in view mode.<br />
4 Once you have finished viewing the information, click Close to close the View Type<br />
window.<br />
Deleting Presentation Template<br />
If you no longer want to use a template for a given item type, you can delete that template.<br />
You cannot delete a presentation template that is still set for an item type. You must first set a<br />
new template for the type and then delete the presentation template. For more information<br />
on setting the presentation template for an item type, see “To set the new presentation<br />
template for the target type” on page 201.<br />
Deleting a template is carried out from the Edit Type window using the Delete function. Once<br />
a template is deleted for a given type, you must set a new template—either a default template<br />
or one created by you. If you do not set a new template, <strong>MKS</strong> <strong>Integrity</strong> notifies you with an<br />
error message and automatically applies the default templates.<br />
NOTE You cannot delete the default templates (default and defaultprint)<br />
stored with <strong>MKS</strong> <strong>Integrity</strong>.<br />
To delete a presentation template<br />
1 From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the Workflows and Documents<br />
node, and select Types. The display pane shows the available item types.<br />
2 Highlight the item type you want to delete the new presentation template for, and select<br />
Type > Edit. The Edit Type window displays.<br />
3 From the Edit Type directory tree, select Presentations. The display pane shows the<br />
presentation template options and available templates.<br />
4 Under Set Presentation Template, set a new template (either a default or one created by<br />
you) for the item type you are editing.<br />
215
Chapter 5: Customizing Workflow<br />
216<br />
5 From the list, select the presentation template you want to delete, and click Delete. The<br />
Confirm Delete Presentation Template dialog box displays and you are asked to confirm<br />
the deletion.<br />
IMPORTANT You cannot delete a presentation template that is still set for an item<br />
type. You must first set a new template for the type and then delete the presentation<br />
template. For more information on setting the presentation template for an item<br />
type, see “To set the new presentation template for the target type” on page 201.<br />
6 To delete the selected template, click Yes. The template is deleted and the name is<br />
removed from the list of available presentation templates.<br />
If no custom presentation template is assigned for a type, items display and are printed<br />
using <strong>MKS</strong> <strong>Integrity</strong>’s default and defaultprint templates.<br />
Customizing Rich Content Fields<br />
Rich content allows users to enhance the display of text in long text fields by adding<br />
formatted text, tables, background colors, images, and hyperlinks. To ensure a consistent<br />
look when viewing and printing rich content field data in different Web browsers, you can<br />
define screen and printer Cascading Style Sheets (CSS).<br />
HTML Elements and Attributes<br />
Rich content is expressed using a limited set of HTML elements and attributes. In the GUI<br />
and Web interface, rich content is applied using commands and toolbar buttons; however,<br />
HTML source can be copied and pasted into rich content fields. In the CLI and CSS files, rich<br />
content is applied and styles are defined using the HTML elements and attributes. Detailed<br />
information about CSS and HTML is beyond the scope of this guide. For more information,<br />
browse to:<br />
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/html/<br />
CSS.html
http://www.w3.org/TR/CSS1<br />
Element Attributes<br />
Customizing Rich Content Fields<br />
Mandatory element that prefaces all elements in a rich content<br />
field. Other comments are removed.<br />
to align<br />
style, align<br />
<br />
size, width<br />
, , style<br />
Chapter 5: Customizing Workflow<br />
218<br />
Element Attributes<br />
<br />
style<br />
style, rowspace, align, height, width, bgcolor, valign,<br />
background<br />
<br />
CSS Definitions<br />
NOTE For any elements that deal with size units, the attributes can only be specified<br />
as values in pixels or points. Values in inches cannot be specified.<br />
Each CSS file consists of a single HTML style element, which is a subset of the CSS 1.0<br />
specification. The element defines base styles to be applied to the rich content field;<br />
however, styles for supported HTML elements may also be defined. Regular or class styles<br />
cannot be defined, specifically:<br />
no generic (.foo { color: green; }) or regular classes (h1.foo {color:<br />
green;})<br />
no ID based selectors (#1234 { color: green; })<br />
no pseudo-classes (A:link { color: red}) or pseudo-elements (P:first-line {<br />
font-variant: small-caps})<br />
Location of CSS Files<br />
Screen and printer CSS files (default.css) are stored on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> in the<br />
following directories:<br />
installdir/data/im/richcontent/styles/screen<br />
installdir/data/im/richcontent/styles/printer<br />
Removing and Transforming Style Definitions and Elements<br />
If any CSS selector or rich content field references an unsupported selector or element, the<br />
invalid style definition or element is silently discarded.<br />
In the Web interface and instances where rich content field data is displayed as a complete<br />
HTML page, such as the Items view, the definitions in the CSS file are transformed before the<br />
file is applied to the rich content field data.<br />
Key Considerations<br />
The screen and print CSS file are not applied to field data in reports.<br />
The printer CSS file is applied by the print item command.
Customizing Report Presentation Templates<br />
You cannot override a rich content field’s CSS using the type field override or report<br />
definition.<br />
Customizing Report Presentation Templates<br />
Workflow and document reports are summaries of the data in your project. Reports are based<br />
on the standard and custom fields of types. Reports can be customized to include images,<br />
fonts, and hyperlinks, and can be saved as HTML files for viewing on the Web. Configuration<br />
management reports provide an analysis of projects, members, or individual archives.<br />
Reports and graphs can be printed or viewed on screen.<br />
Report presentation templates control the organization of report data based on groupings<br />
and sortings. The report tags you specify in a report presentation template represent the<br />
panels that a user sees after they select a presentation template in the Report Wizard. For more<br />
information on creating a workflow and document report, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User<br />
<strong>Guide</strong>.<br />
<strong>MKS</strong> <strong>Integrity</strong> provides sample templates you can use as a base to create custom templates<br />
that include only the data you require. Templates are saved in HTML or XML format for<br />
rendering in a Web browser.<br />
Key Considerations<br />
Creating a custom template or modifying an existing template requires knowledge of<br />
HTML/XML. This guide does not offer assistance with HTML/XML coding. If you are<br />
not familiar with HTML/XML, you should not attempt to create or modify a<br />
presentation template.<br />
If you create a custom template that is not based on an existing workflow and document<br />
report template, and if you want that report to display UTF-8 characters, specify UTF-8<br />
as the character set (HTML), or encoding (XML) in the report header.<br />
Creating report styles requires knowledge of CSS. This guide does not offer assistance<br />
with CSS coding. If you are not familiar with HTML/XML, you should not attempt to<br />
create or modify a CSS file.<br />
Workflow and document report elements are not removed when the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong> is uninstalled.<br />
You should not directly alter an existing presentation template or an example<br />
presentation template. Instead, you should create a copy of it and modify the copy to suit<br />
your needs.<br />
Report tags used in report presentation templates are case sensitive.<br />
If you create a custom template that is not based on an existing report template, review<br />
your HTML and report tags, and ensure that hyperlinks open in a new window.<br />
219
Chapter 5: Customizing Workflow<br />
220<br />
To create a custom report presentation template<br />
The following procedure details how to create a report presentation template by beginning<br />
with a copy of an existing template. You can, however, create a template simply using the<br />
available tags. For it to appear in the Report Wizard, the template, along with screen and<br />
printer CSS files, logo image, and report template preview image must be placed in the<br />
correct directories.<br />
NOTE Once you move the modified files to the correct locations, the changes are<br />
automatically detected when you run the Report Wizard. You do not need to restart<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
1 Browse to the following directory:<br />
installdir/data/reports/recipes<br />
where installdir is the path to the directory where you installed the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
2 Select an example template to use, and make a copy of the file.<br />
3 Rename the copied example template to the name you want to appear in the Report<br />
Wizard.<br />
4 Open the template file in a text editor, and make the necessary modifications using the<br />
tags described in “Report Tags” on page 222.<br />
5 When you complete the necessary modifications to the template file, move it to:<br />
installdir/data/reports/recipes<br />
6 Create individual CSS files for the printer and screen styles. The sample names must<br />
match the report template name.<br />
a) Place the printer style in:<br />
installdir/data/reports/styles/printer<br />
b) Place the screen style in:<br />
installdir/data/reports/styles/screen<br />
c) Place the screen style sample in:<br />
installdir/data/reports/styles/screen/samples<br />
d) Place the printer style sample in:<br />
installdir/data/reports/styles/printer/samples<br />
7 Optionally, create an image in JPEG, GIF, or PNG format for a company logo to be used<br />
in the report. Place the image in:<br />
installdir/data/public_html/images/logos
Report Elements<br />
Customizing Report Presentation Templates<br />
8 Optionally, create an image in JPEG, GIF, or PNG format for the new template. The<br />
image name must match the report template name. Place the image in:<br />
installdir/data/reports/recipes/images<br />
The following customizable elements make up a report:<br />
Element Description Location<br />
template file Template file determines layout and format<br />
of report and includes parameters that<br />
determine what data is contained in report.<br />
Template file must be coded in either<br />
HTML or XML and saved without an<br />
extension.<br />
If you are creating or working with an XML<br />
report template, encoding must be<br />
adjusted if you are using a special<br />
character set of any kind.<br />
cascading style sheet CSS determines how reports appear when<br />
viewed in a browser window or when<br />
printed. A CSS file is required for both<br />
screen style and printer style.<br />
Important: Creating a CSS file or<br />
modifying an existing CSS file requires<br />
knowledge of CSS. This guide does not<br />
offer assistance with CSS coding. If you<br />
are not familiar with CSS, you should not<br />
attempt to create or modify a CSS file.<br />
images A small image of report template so that<br />
users have a graphic representation of<br />
report and how it displays data. This is<br />
optional, but is helpful to users when<br />
deciding on a template to use.<br />
Note: Image must have same name as<br />
corresponding template file.<br />
Template files are located in:<br />
/<br />
data/reports/recipes<br />
Screen style HTML samples are located in:<br />
/<br />
data/reports/styles/screen/<br />
samples<br />
Printer style HTML samples are located in:<br />
/<br />
data/reports/styles/printer/<br />
samples<br />
Style sheet samples are HTML files with<br />
same name as CSS and a .css.html<br />
extension.<br />
Screen style CSS files are located in:<br />
installdir/data/reports/<br />
styles/screen<br />
Printer style CSS files are located in:<br />
installdir/data/reports/<br />
styles/printer<br />
CSS files must be in CSS format with a .css<br />
extension.<br />
installdir/data/reports/<br />
recipes/images<br />
Note: Supported image types are GIF, JPEG,<br />
and PNG.<br />
logos A logo image to display in report. installdir/data/public_html/<br />
images/logos<br />
Note: Supported image types are GIF, JPEG,<br />
and PNG.<br />
221
Chapter 5: Customizing Workflow<br />
Report Tags<br />
222<br />
The following tables show the available report tags and what they do.<br />
Report Tag Description<br />
Basic Tags<br />
Presentation template version. Allows future releases of report wizard to<br />
interpret and process older templates. Information is on first line in template<br />
and does not display in Report Wizard or generated report.<br />
Templates created in <strong>MKS</strong> <strong>Integrity</strong> 2006 use , templates<br />
created in <strong>MKS</strong> <strong>Integrity</strong> 2007 (or later) use , and so on.<br />
Presentation template description. Typically second line in presentation<br />
template. Displays with report name and image in Type panel of Report<br />
Wizard.<br />
You can include HTML tags in description. For example, to add bolding,<br />
specify:<br />
Project Description<br />
If you do not include tags, literal string displays in report, for<br />
example, Project Description.<br />
/<br />
<br />
/<br />
<br />
/<br />
<br />
Everything between tags repeated for each item returned by specified query.<br />
Tag required for all templates.<br />
Everything between tags repeated by number of fields selected in Item Fields<br />
panel of Report Wizard.<br />
Use to prevent grouping fields<br />
from being reported (if using grouping tag).<br />
&fielddisplayname displays field name.<br />
&fieldname displays field value.<br />
&#fields displays number of fields iterated.<br />
Everything between tags is used to filter report contents. You can specify<br />
multiple filter criteria. For example:<br />
((field[Type] = "Defect") and (field[Project]<br />
= "Release 2.1"))<br />
filters for items with a type of Defect that are assigned to project Release 2.1.
Report Tag Description<br />
Parameter Tags<br />
Customizing Report Presentation Templates<br />
Displays user entered values, such as name and description of report in<br />
Parameters panel of Report Wizard. Instances of &name tag are replaced with<br />
value, for example:<br />
<br />
Use ampersand and parameter name (that is &reporttitle) to display<br />
value in template.<br />
type can be String for single line or MultiString for multiple lines.<br />
Special values:<br />
{fieldname} displays value of field in template<br />
{fieldname.name} displays field name in template<br />
Specifies keyword user can substitute with parameter value when running<br />
report (im runreport --param=value). Keywords and parameter values<br />
allow user to configure report content at runtime.<br />
For example, if report template includes:<br />
<br />
:%><br />
<br />
and user specifies:<br />
im runreport --param=segmentname=SegmentA BugReport<br />
replaced with , which is then<br />
substituted during normal pre-item substitution.<br />
Displays name of <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> that items in report reside on.<br />
Displays port number of <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> that items in report reside on.<br />
Displays name and port number of <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> that items in report<br />
reside on. Tag builds http://hostname:hostport/ as part of<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> URL.<br />
Tag useful in HTML tags for displaying images or linking to other reports.<br />
<br />
<br />
<br />
<br />
Displays an item ID number as hyperlink.<br />
Displays header and footer on each report page.<br />
Achieved through use of and HTML table tags and CSS.<br />
Required CSS:<br />
thead {display: table-header-group}<br />
tfoot {display: table-footer-group}<br />
and tags must be placed before tag.<br />
A pre-processing tag that replaces itself with the current name of the builtin<br />
fields used in solutions, where FILENAME is the one of the English field names<br />
for the builtin field. Because it is a pre-processing tag, it must be enclosed<br />
within a tag itself<br />
223
Chapter 5: Customizing Workflow<br />
Report Tag Description<br />
224<br />
Attribute Tags<br />
Displays Date Format field in Attributes panel of Report Wizard, for example:<br />
<br />
MM/dd/yy expands to 01/30/09.<br />
MMM dd yyyy expands to Jan 30 <strong>2009</strong>.<br />
MMMM dd, yyyy expands to January 30, <strong>2009</strong>.<br />
Displays Date Time Format field in Attributes panel of Report Wizard, for<br />
example:<br />
MM/dd/yy expands to 01/30/09.<br />
MMM dd yyyy expands to Jan 30 <strong>2009</strong>.<br />
MMMM dd, yyyy expands to January 30, <strong>2009</strong>.<br />
hh:mm:ss expands to hour, minute, and second using 2
Report Tag Description<br />
/<br />
<br />
Segment Tags<br />
Customizing Report Presentation Templates<br />
Displays Segment panel in Report wizard, for example:<br />
<br />
<br />
Can add any other tag between segment tags (i.e. ,<br />
, etc.) and you can nest segment tags.<br />
Setting type=regular to type=relationship enables Relationship Field<br />
panel in Report Wizard, for example:<br />
Chapter 5: Customizing Workflow<br />
Report Tag Description<br />
226<br />
<br />
/<br />
<br />
<br />
/ <br />
/<br />
<br />
/<br />
<br />
Report Tag Description<br />
<br />
/ <br />
<br />
/ <br />
/ <br />
<br />
/<br />
<br />
Attachment Tags<br />
Required to report on attachment information, with attachment tags placed<br />
between tags.<br />
Adding &attachmentFilter to attachment tag enables Attachment Filter<br />
section in Report Wizard to filter by file extension.<br />
Displays Attachment Fields panel in Report Wizard, allowing selection of<br />
attachment information.<br />
Adding &attachmentfielddisplayname displays name of attachment<br />
fields in report.<br />
Adding &attachmentfieldname displays value of attachment fields in<br />
report.<br />
Everything between tags displays when no attachments exist.<br />
Required to report on relationship attachment information, with attachment<br />
tags placed between tags.<br />
Time Entry Tags<br />
Required to report on time entry information, with time entry tags placed<br />
between tags.<br />
Displays Time Entry Fields panel in report wizard, allowing selection of time<br />
entry information.<br />
Everything between tags displays when no time entries exist.<br />
Adding &timeentryfielddisplayname displays name of time entry fields<br />
in report.<br />
Adding &timeentryfieldname displays value of time entry fields in report.<br />
Required to report on relationship time entry information, with time entry tags<br />
placed between tags.
Report Tags Description<br />
<br />
<br />
<br />
&verdictfilter<br />
&verdictfiltertype<br />
/<br />
<br />
/<br />
<br />
<br />
<br />
<br />
/<br />
<br />
/<br />
<br />
<br />
<br />
<br />
/<br />
<br />
/<br />
<br />
Test Result Tags<br />
Customizing Report Presentation Templates<br />
Reports on test result information, with test result field tags placed between<br />
tags.<br />
The field tag can be one of the following: Session ID, Test ID, Annotation,<br />
Verdict, Modified By, Modified Date.<br />
Allows test results to be filtered by verdict or verdict type.<br />
Everything between tags displays above test results when test results exist.<br />
Everything between the tags displays when no test results exist.<br />
Reports on test step information for a test result, with test step field tags<br />
placed between tags.<br />
The field tag can be one of the following: Step ID, Annotation, Result, Modified<br />
By, Modified Date.<br />
Everything between tags displays above test steps when test steps exist.<br />
Everything between the tags displays when no test steps exist.<br />
Reports on attachment information for a test result, with attachment field tags<br />
placed between tags.<br />
The field tag can be one of the following: Name, Size, HTML Link, Created By,<br />
Date Added, Summary.<br />
Everything between tags displays above attachments when attachments exist.<br />
Everything between the tags displays when no attachments exist.<br />
227
Chapter 5: Customizing Workflow<br />
Report Tags Description<br />
228<br />
<br />
<br />
<br />
/<br />
<br />
/<br />
<br />
Report Tag Description<br />
<br />
/<br />
<br />
<br />
/<br />
<br />
<br />
Reports on item information for a test result, with item field tags between tags.<br />
The field tag can be any regular item field.<br />
Everything between tags displays above items when items exist.<br />
Everything between the tags displays when no items exist.<br />
Relationship Tags<br />
Displays Relationship Fields panel in Report Wizard.<br />
Tag functions same as but for<br />
relationships. Required for each relationship segment.<br />
Must specify L# for each relationship level, except for first level, for example:<br />
First level would be: .<br />
Second level would be: .<br />
Displays Item Fields panel in Report Wizard for relationship section.<br />
Tag functions same as , but<br />
for relationships.<br />
Adding &relationshipfielddisplayname displays related field name.<br />
Adding &relationshipfieldname displays related field value.<br />
Displays Sort By panel in Report Wizard for relationship section, allowing<br />
sorting of related items.<br />
Displays Relationship Filter panel in Report Wizard, allowing filtering of related<br />
items.<br />
Is same type of filtering available for field editablility and relevance rules.<br />
<br />
/<br />
<br />
Test Result Tags<br />
Displays relationship flag in report. Replace flagname with name of flag.<br />
<strong>MKS</strong> recommends setting up flag name as parameter rather than be hardcoded<br />
in template.<br />
Everything between tags displays above related items when relationships<br />
exist.
Report Tag Description<br />
/<br />
<br />
/<br />
<br />
/<br />
<br />
/<br />
<br />
/<br />
<br />
<br />
<br />
<br />
<br />
<br />
header_and_or_footer_bl<br />
ocks<br />
<br />
Relationship Tags<br />
Customizing Report Presentation Templates<br />
Everything between tags displays below related items when relationships<br />
exist.<br />
Everything between tags displays when no relationships exist.<br />
Displays Group By in Report Wizard, allowing grouping of related items.<br />
For more than one level, include L# tag.<br />
Everything between tags displays above related items.<br />
Everything between tags displays below related items.<br />
To display specific relationship fields.<br />
Filter relationships within specified relationship field by flags, for example:<br />
<br />
Specify headers and footers for relationship details. Possible values for param<br />
are:<br />
header<br />
footer<br />
none<br />
Group items returned by specified relationship fields of specified item, where:<br />
Relationship level groupby tag prefixed with relationship to<br />
differentiate it from top-level groupby tag.<br />
L# tag specifies relationship level. L# tag not specified for level 1<br />
relationship.<br />
groupby_fieldname tag specifies field name in list of items. items are<br />
grouped by field values. Only one field can be specified per tag; allows<br />
header and footer per grouping.<br />
+ or - specify sort order of groups based on value of groupby field. +<br />
(default) indicates ascending, and - indicates descending.<br />
Multiple sets of relationshipgroupby tags can be specified within<br />
relationshipsdetail tag for multi-level grouping. For example, second<br />
set nested within first set and third set nested within second set.<br />
229
Chapter 5: Customizing Workflow<br />
Report Tag Description<br />
230<br />
<br />
<br />
<br />
<br />
group_computation_strin<br />
g<br />
<br />
<br />
computation_string<br />
<br />
<br />
/<br />
<br />
<br />
/<br />
<br />
Relationship Tags<br />
Specify headers and footers for relationship level groups. Valid values for<br />
param are:<br />
header<br />
footer<br />
Following grouping related tags used at top-level may also be used as part of<br />
header and footer at relationship level:<br />
specifies name of groupby field. Valid in header and<br />
footer.<br />
specifies value of groupby field. Valid in header and<br />
footer.<br />
specifies total number of items in group. Valid in footer<br />
only.<br />
Specify calculation against relationships fields in group of items, where<br />
group_computation_string specifies group computed expression.<br />
These tags are within context of specific relationship level. Do not specify L#<br />
relationship level tag.<br />
Specify calculation against relationship fields within item, where:<br />
computedValueDisplayPattern specifies display pattern for computed<br />
value.<br />
computation_string specifies computed expression.<br />
L# tag specifies relationship level. L# tag not specified for level 1<br />
relationship.<br />
Required to report on relationship time entry information, with time entry tags<br />
placed between tags.<br />
Required to report on label information for related items, with label tags placed<br />
between tags.<br />
For more than one relationship level, include L# tag. For example, for label<br />
information on a second level relationship use:<br />
Report Tag Description<br />
/<br />
<br />
<br />
/<br />
<br />
<br />
/<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Change Package Tags<br />
Customizing Report Presentation Templates<br />
Displays Change Package Type panel in Report Wizard, allowing selection of<br />
change package type to report on.<br />
Displays Change Package Attributes panel in Report Wizard to allow selection<br />
of CP attribute information in report.<br />
Attributes available depend on CP type chosen.<br />
Adding &genericcpfielddisplayname displays cp attribute name in<br />
report.<br />
Adding &genericcpfieldname displays cp attribute value in report.<br />
No tags to get relationship CP information.<br />
Displays Change Package Entry Attributes panel in Report Wizard.<br />
Used between /<br />
tags.<br />
Entry attributes available depend on CP type chosen.<br />
Adding &genericcpentryfielddisplayname displays cp entry attribute<br />
name in report.<br />
Adding &genericcpentryfieldname displays cp entry value in report.<br />
Display change package details for items included in report.<br />
These tags provide details for workflow and document management, and<br />
configuration management change packages.<br />
Display change package entry details for items included in report.<br />
These tags provide details for workflow and document management, and<br />
configuration management change packages.<br />
Display change package details for items included in report. These tags<br />
provide details for Implementer change packages.<br />
Display change package entry details for items included in report. These tags<br />
provide details for Implementer change packages.<br />
231
Chapter 5: Customizing Workflow<br />
Report Tag Description<br />
232<br />
Computed Expression Tags<br />
Performs calculation between fields in single item. For information on creating<br />
computed expressions, see “Computed Expression Types” on page 292.<br />
<br />
computation<br />
<br />
computation<br />
<br />
Report Tag Description<br />
/<br />
<br />
Performs calculation between fields in group of items. For information on<br />
creating computed expressions, see “Computed Expression Types” on<br />
page 292.<br />
Note: Group calculation must be aggregate expression.<br />
Specifies display pattern with computation against fields in single item, for<br />
example:<br />
22.0/7.0<br />
For more information on display patterns, see “Display Patterns” on page 28.<br />
Specifies display pattern with computation against fields in group of items.<br />
Grouping and Sorting Tags<br />
Displays Group By panel, allowing item grouping. Everything between tags<br />
grouped. You can nest grouping tags for any number of groupings.<br />
You can further detail grouping by specifying group names, values, and counts.<br />
groupby tag allows user to choose field to group by.<br />
To group data for multiple fields, include multiple groupby tags, for example:<br />
<br />
...<br />
<br />
...<br />
<br />
...<br />
<br />
...<br />
<br />
...<br />
<br />
Displays name of grouping field in report.<br />
Displays value of grouping field in report.
Report Tag Description<br />
Displays count of grouped items in report.<br />
Customizing Report Presentation Templates<br />
Displays Sort By panel in Report Wizard, allowing users to sort by selected<br />
item fields.<br />
Sort data for specific field, for example, report organizes data by sorting on ID<br />
field, starting from lowest ID to highest ID. sortby tag allows user to choose<br />
field to sort by.<br />
You may sort by multiple fields, separated by comma (,). Default sort order<br />
ascending (+); however, if necessary you can specify descending (-), for<br />
example:<br />
<br />
Report Tag Description<br />
/<br />
<br />
/<br />
<br />
/ <br />
/ <br />
<br />
<br />
Report Tag Description<br />
/<br />
<br />
/<br />
<br />
Grouping and Sorting Tags<br />
Label Tags<br />
Required to report on label information, with label tags placed between tags.<br />
The following label tags may be used:<br />
specifies the name of label.<br />
specifies the time the label was applied.<br />
Everything between the tags displays when no labels exist.<br />
Everything between the tags displays above labels when labels exist.<br />
Everything between the tags displays below labels when labels exist.<br />
Specify headers and footers for label details. Possible values for param are:<br />
header<br />
footer<br />
none<br />
Label Tags<br />
Required to report on label information, with label tags placed between tags.<br />
The following label tags may be used:<br />
specifies the name of label.<br />
specifies the time the label was applied.<br />
Everything between the tags displays when no labels exist.<br />
233
Chapter 5: Customizing Workflow<br />
Report Tag Description<br />
Customizing Test Verdicts<br />
234<br />
/ <br />
/ <br />
<br />
<br />
Report Tag Description<br />
<br />
or<br />
%<br />
Test verdicts are used to indicate the outcome of a test, for example, passed or failed.<br />
You can add new test verdicts or change the standard verdicts that are shipped with<br />
<strong>MKS</strong> <strong>Integrity</strong>. The default verdicts are: passed, failed, and skipped.<br />
You must have the Admin permission to work with test verdicts.<br />
Working in the Test Verdicts View<br />
Everything between the tags displays above labels when labels exist.<br />
Everything between the tags displays below labels when labels exist.<br />
Specify headers and footers for label details. Possible values for param are:<br />
header<br />
footer<br />
none<br />
You customize test verdicts in the Test Verdicts view. To open the Test Verdicts view from<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the Workflows and Documents node, and<br />
select Test Verdicts.<br />
CLI EQUIVALENT tm verdicts<br />
Label Tags<br />
Solution Tags<br />
Required to report on item type properties. Possible values for<br />
solutionproperty are:<br />
CategoryFieldName
Through the Test Verdicts view, you can perform the following actions.<br />
Operation Procedure<br />
Create a test verdict See “To create a test verdict in the GUI” on page 235<br />
Edit a test verdict See “To edit a test verdict in the GUI” on page 236<br />
Creating a Test Verdict<br />
Customizing Test Verdicts<br />
View test verdict details Select the test verdict in the Test Verdict view and select Test<br />
Verdict > View Definition<br />
Reposition a test verdict Select the test verdict in the Test Verdict view and select Test<br />
Verdict > Reposition. The Reposition Fields dialog box displays.<br />
Select the field you want to move, and click Move Up or Move<br />
Down.<br />
Deactivate a test verdict See “Deactivating Test Verdicts” on page 237.<br />
Delete a test verdict Select the test verdict in the Test Verdict view and selected Test<br />
Verdict > Reposition.<br />
Note: You cannot delete the default test verdicts shipped with<br />
<strong>MKS</strong> <strong>Integrity</strong>.<br />
You can create your own test verdicts to use in addition to the default verdicts shipped with<br />
<strong>MKS</strong> <strong>Integrity</strong>.<br />
CLI EQUIVALENT tm createverdict<br />
To create a test verdict in the GUI<br />
1 From the Test Verdicts view, select Test Verdict > Create. The Create Test Verdict dialog<br />
box displays.<br />
2 In the Name field, type a new name for the test verdict. This is the name you use to refer<br />
to the field in <strong>MKS</strong> <strong>Integrity</strong>. The Name field allows 100 alphanumeric characters.<br />
In the Display Name field, <strong>MKS</strong> <strong>Integrity</strong> automatically enters the same selected name.<br />
Display names display in the pick list field for test verdicts.<br />
You can choose a different name to use as the display name. Display names are useful<br />
for clarifying the terminology presented to users on the interface. For more information,<br />
see “Using Display Names” on page 126.<br />
3 In the Description field, type a more detailed textual description of the test verdict, such<br />
as when it should be used.<br />
4 To customize the order the test verdicts display in a picklist field, click the Position tab to<br />
display the Position panel, and use the Move Up and Move Down buttons to change the<br />
order in the list. This order is used throughout <strong>MKS</strong> <strong>Integrity</strong>.<br />
235
Chapter 5: Customizing Workflow<br />
236<br />
5 On the Image tab, associate an image with a test verdict. To associate an image with the<br />
test verdict, you have three options:<br />
To use your own icon image, select Use Custom Image, and click Select to browse<br />
for the image file.<br />
To use the predefined icon image, select Default Image.<br />
To associate no icon image with the user, select No Image.<br />
If you choose to use your own custom icon image, the image must be in GIF or JPEG<br />
format and no larger than 16 x 24 pixels.<br />
6 On the Verdict Type tab, select the appropriate type for the test verdict. You can have<br />
multiple verdicts for each type. For example, you could create different verdicts for<br />
different types of failures.<br />
Editing a Test Verdict<br />
You can edit the details of the default verdicts shipped with <strong>MKS</strong> <strong>Integrity</strong> or of any custom<br />
verdicts you have added.<br />
CLI EQUIVALENT tm editverdict<br />
To edit a test verdict in the GUI<br />
1 From the Test Verdicts view, select the test verdict you want to edit.<br />
2 Select Test Verdict > Edit. The Edit Test Verdict dialog box displays.<br />
3 Edit the information as required. For details about the fields in this dialog box, see “To<br />
create a test verdict in the GUI” on page 235.<br />
NOTE To deactivate a test verdict, disable the Active check box. Deactivated verdicts<br />
do not display in picklist fields. You cannot deactivate the default test verdicts<br />
shipped with <strong>MKS</strong> <strong>Integrity</strong>. For more information, see “Deactivating Test Verdicts”<br />
on page 237<br />
4 To view a history of administrative changes for the test verdict, click the History tab. The<br />
record of changes displays.<br />
NOTE You cannot edit the verdict type for the default test verdicts shipped with<br />
<strong>MKS</strong> <strong>Integrity</strong>.<br />
5 To save your changes, click OK.
Deactivating Test Verdicts<br />
Configuring Attachment Size Limits<br />
Setting a test verdict to inactive means that in the GUI it is not displayed in any filtered<br />
picklists. By deactivating test verdicts, the picklist is filtered to display only those test verdict<br />
values that are currently active in <strong>MKS</strong> <strong>Integrity</strong>.<br />
Key Considerations<br />
Inactive test verdicts continue to display in fields, history, query filters, relevance and<br />
editability rules, field relationship filters, charts, and reports.<br />
Inactive test verdicts can be selected in query filters, relevance and editability rules, field<br />
relationships, charts, and reports.<br />
Inactive test verdicts cannot be selected in fields; however, fields retain inactive picklist<br />
values.<br />
If one or more active test verdicts are referenced in a trigger field assignment and you<br />
attempt to make one of those test verdicts inactive, an error message displays the test<br />
verdicts and the trigger(s) where the assignment occurs. The references in the event<br />
trigger(s) must be removed before making a test verdict inactive.<br />
Configuring Attachment Size Limits<br />
As administrator, you can control the maximum size of file that users can attach to any item<br />
in <strong>MKS</strong> <strong>Integrity</strong>. You can set a higher or lower limit by modifying the value for<br />
mksis.im.maxAttachmentSizeMB in the following file:<br />
installdir/config/properties/im.properties<br />
For example, the following setting limits the maximum size of an attached file to 4 MB:<br />
mksis.im.maxAttachmentSizeMB=4<br />
The minimum value for the attachment size is a limit of 1 MB, while the maximum value is a<br />
limit of 250 MB. By default, the limit for attachment file size is 4 MB.<br />
NOTE For Microsoft SQL <strong>Server</strong>, the attachment size should not exceed 25 MB.<br />
For more information on configuring the property for mksis.im.maxAttachmentSizeMB,<br />
see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
237
Chapter 5: Customizing Workflow<br />
Configuring Limits for Queries<br />
238<br />
A query is a request to select and list the items that meet specific selection criteria. The<br />
selection criteria are a logical expression of specific values, or ranges of values, of the<br />
standard and custom fields of the item type.<br />
Charts are graphs that present trends over time or distributions of the data in your project.<br />
Charts are based on the standard and custom fields of item types. You can display trend<br />
charts as line or bar graphs, and distribution charts as pie or bar graphs. You can also display<br />
data in tabular form.<br />
<strong>MKS</strong> <strong>Integrity</strong> users have the ability to create complex queries that can demand significant<br />
system resources when run against a large database of items. Queries, reports, or charts that<br />
return a large result count can also demand significant memory resources from both the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> and client.<br />
To address the item of complex queries, <strong>MKS</strong> <strong>Integrity</strong> also includes two further options:<br />
query timeout setting for groups configured through the Groups view in the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
maximum query item count setting configured through Workflows and Document ><br />
Configuration > Properties in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
If you have specified query limits and a user runs a query exceeding those limits,<br />
<strong>MKS</strong> <strong>Integrity</strong> displays an error message to the user advising that the set limit has been<br />
exceeded. If the specified limits are relatively low and many of your users have large,<br />
complex queries, it may become necessary to modify the settings.<br />
As administrator, you can also stop a query that is actively running on the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong>. For more information on viewing and stopping query processes, contact<br />
<strong>MKS</strong> Customer Care.<br />
System Query Timeout<br />
By default, the system query timeout value is 15 seconds. This means that if no other options<br />
are set for group query timeouts or maximum query item count, individual queries are<br />
allowed to run for 15 seconds before the system stops them.<br />
Values assigned for query timeout represent the total time the query is allowed to run—the<br />
higher the value, the longer the query is allowed to run. For example, a system query timeout<br />
value of 20 seconds allows the query to run for 20 seconds, which is higher than the default<br />
value of 15 seconds.<br />
IMPORTANT A system timeout value of 0 means there is no limit on the time allowed<br />
for the query and queries are allowed to run until all results are returned.
Configuring Limits for Queries<br />
The system query timeout is modified using the im diag command. For more information<br />
on the im diag command and modifying the system query timeout value, contact<br />
<strong>MKS</strong> Customer Care.<br />
Query Timeouts for Groups<br />
In addition to the system timeout value, you can limit the total time allowed for queries<br />
performed by members of any group. You can use group query timeouts to lower the system<br />
value by setting the group timeout value to a value lower than the system timeout value. By<br />
default, the query timeout value for groups is 0 allowing queries to run until all results are<br />
returned or until the system query timeout limit is met.<br />
IMPORTANT All users belong to the everyone group and the highest value of 0 (no<br />
limit) applies for all users. Therefore, to set effective query timeout limits for groups,<br />
you must first modify the query timeout value for the everyone group.<br />
The group query timeout option sets the time (in seconds) that any query can run for a<br />
member of the selected group.<br />
If a user belongs to multiple groups, the highest timeout setting is applied for that user. For<br />
example, if a user is in two groups, the Development group (with a 5 second query timeout<br />
value) and the everyone group (with a 10 second query timeout value), the 10 second limit is<br />
applied for that user. Therefore, any queries performed by that user are permitted to run for<br />
10 seconds before they are stopped.<br />
The group query timeout option is set through the Groups view in the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client. For procedures on setting the query timeout option for groups, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>. You can also modify the group<br />
query timeout setting while editing a group.<br />
Maximum Query Item Count<br />
Extremely large queries can demand significant memory resources from both server and<br />
client. To assist in the management of memory resources, you can set higher or lower limits<br />
for the number of results returned by a query. The maximum query item count sets a value<br />
based on the total number of results rather than on the time it takes the query to run.<br />
The maximum query item count is configured by modifying the value for<br />
mksis.im.queryGovernor through Workflows and Document > Configuration > Properties in<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
The mksis.im.queryGovernor property governs the computation and return of queries run<br />
by <strong>MKS</strong> <strong>Integrity</strong>, and displays an error message if the number of items returned exceeds the<br />
specified limit. The setting applies to queries, reports, and charts. The minimum value is 100,<br />
and the maximum value is unlimited. By default, mksis.im.queryGovernor=10000. For<br />
239
Chapter 5: Customizing Workflow<br />
240<br />
more information on configuring the property for mksis.im.queryGovernor, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
NOTE Setting the mksis.im.queryGovernor property controls the total of all<br />
pages independent of the client’s page size.<br />
Configuring Context Based Text Searching<br />
The text searching feature enables the use of context search indexes. Context search indexes<br />
are automatically built for text searches, if the underlying database supports it; however, the<br />
text search queries perform differently using a context search.<br />
The Search function allows users to carry out simple text searches of the <strong>MKS</strong> <strong>Integrity</strong> item<br />
database. The text search uses a search syntax similar to many common Web search engines.<br />
The search is carried out by the underlying database and the results are passed back to<br />
<strong>MKS</strong> <strong>Integrity</strong>.<br />
Text searches are available to users through both the GUI and the Web interface using the<br />
Search field on the toolbar. Text searches look only for information that is in short or long<br />
text fields. The search does not capture information in other types of fields, such as integer,<br />
pick, floating point, logical, date, user, or group fields. For more information on the text<br />
search feature, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
The property for configuring context based text searches is mksis.im.contextSearchOn set<br />
through Workflows and Document > Configuration > Properties in the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client. By default, mksis.im.contextSearchOn is set to true.<br />
IMPORTANT For information on the databases that support the text search feature,<br />
see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
If you are migrating an <strong>MKS</strong> <strong>Integrity</strong> database from a previous release, certain<br />
additional steps are required. For more information, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
<strong>2009</strong> Installation and Configuration <strong>Guide</strong> and the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Upgrading<br />
<strong>Guide</strong>.<br />
If your users have <strong>MKS</strong> <strong>Integrity</strong> queries from a previous release that rely on the old<br />
text searching behavior, you may want to disable the use of the context search<br />
indexes temporarily. Otherwise, you can leave context searching enabled if the<br />
underlying database supports it.<br />
Synchronizing Database<br />
If your database does not support the automatic tracking of text field updates in the context<br />
search indexes, you can set a property to specify an interval for synchronizing that database.<br />
The property is configured through Workflows and Document > Configuration > Properties in<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client as follows:
mksis.im.contextSearchSync=30<br />
Setting Up Electronic Signatures<br />
NOTE This property is ignored for databases that do not require it. Currently only<br />
the Oracle database uses it.<br />
Setting the mksis.im.contextSearchSync property forces an update within the time interval<br />
(in seconds) that you specify. By default, this value is set to 30 seconds—that is, a<br />
synchronization every 30 seconds. The minimum value is 10 seconds.<br />
Setting Up Electronic Signatures<br />
Electronic signatures are required by certain regulatory bodies to ensure the authenticity,<br />
integrity, and, when appropriate, the confidentiality of electronic records. <strong>MKS</strong> provides<br />
electronic signature support for <strong>MKS</strong> <strong>Integrity</strong> items by allowing you to require users to<br />
specify a user name and password when making certain changes to an item. For example,<br />
you could require a user to provide an electronic signature when they change an item’s state<br />
to Completed.<br />
CAUTION If a batch edit causes an item change that requires an electronic signature,<br />
the batch edit fails.<br />
Electronic signatures are set up using event triggers for workflows and documents. For<br />
general information on event triggers and how to use them, see “Overview of Workflow and<br />
Document Triggers” on page 355. The electronic signature trigger must be set up as a rulebased<br />
pre-event trigger. When a change to an item matches the rule, the user must enter user<br />
name, password, and any comments in the Signature Required dialog box. The server<br />
validates the user’s signature and records it in the item’s delta.<br />
NOTE<br />
If a scheduled trigger or a change to a relationship field in a related item causes<br />
an item change that would normally require an electronic signature, the<br />
signature requirement is bypassed.<br />
NTSS-only schemes are not supported for electronic signatures in <strong>MKS</strong> <strong>Integrity</strong>.<br />
In such cases, an error message informs the user and the error is logged.<br />
Customizing Electronic Signature Trigger<br />
<strong>MKS</strong> provides a pre-created script (signatureRequired.js) for the electronic signature<br />
event trigger. You may need to modify this script to use some advanced features of electronic<br />
signatures. The script is broken into separate functions that you can modify. Full<br />
documentation is available in the comments for those functions.<br />
241
Chapter 5: Customizing Workflow<br />
242<br />
The pre-created script does the following:<br />
Requires a signature when an item is modified in a way that matches the trigger rule.<br />
You can restrict your signature requirements further through the isSigningRequired<br />
method.<br />
If the signature is valid, stores the signature information in the item history. You can set<br />
up additional logging using the signatureSuccess method.<br />
Allows all authenticated users to sign an item modification. You can restrict the users<br />
allowed to sign for an item modification using the signerRestriction method.<br />
Logs any signature failures. You can change what happens when an invalid signature is<br />
used, for example, sending an e-mail to an administrator. Use the signatureFailed<br />
method.<br />
Displays a message if no signature is provided. You can customize the message by<br />
changing the string used by the setSignatureRequired method.<br />
Displays a message if an invalid signature is provided. You can customize the message<br />
by changing the string used by the setRetrySignatureRequired method.<br />
Specific methods are available on the imIssueDeltaBean for signature authentication. For<br />
details on these methods, refer to the installed Javadocs under:<br />
installdir/data/documentation/javadocs/triggers/index.html<br />
However, you should not have to change any of the calls to these methods.<br />
Admin Provided Objects<br />
Admin provided objects are objects within the workflow and document object model that<br />
support solution definition and management, as well as workflow migration.<br />
Converting a user object to an admin provided object provides a number of benefits:<br />
it identifies the object as part of a solution, allowing users to distinguish between<br />
corporate standard user objects and those that other users have created (which may not<br />
be intended for general use)<br />
it allows <strong>MKS</strong> <strong>Integrity</strong> administrators, in addition to the creator of the original user<br />
object, to manage and update the object as needed<br />
admin provided objects are visible to all users, regardless of sharing permissions,<br />
avoiding potential issues with visibility<br />
Any object that is a component of a solution must be an admin provided object. The objects<br />
that can be converted to admin provided objects include: queries, charts, reports, and<br />
dashboards. Objects are specified as admin provided objects by setting the Admin Provided<br />
attribute when you create or edit the objects. If an object, such as a query, is required by a
Admin Provided Objects<br />
dependant component in the solution, such as a scheduled trigger, it is automatically<br />
registered as an admin provided object. Since triggers can only be defined and managed by<br />
<strong>MKS</strong> <strong>Integrity</strong> administrators and apply to all users, they are by nature part of a solution.<br />
Converting User Objects to Admin Provided Objects<br />
You may want to convert some user objects to admin provided objects to control access to<br />
them by users or so that they can be migrated. Access to admin provided objects is controlled<br />
by the CreateSharedAdmin permission. Admin provided objects are migrated using the<br />
Admin Migration Wizard (see “Testing Workflow With Admin Migration Wizard” on<br />
page 161).<br />
Note the following about converting user objects to admin provided objects:<br />
Converting a user object to an admin provided object is an irreversible operation based<br />
on the assumption that once converted, it is part of a solution and therefore should no<br />
longer be a privately controlled object that only the creator can manage.<br />
The creator of the original user object does not retain any special rights to that object<br />
after it is converted to an admin provided object.<br />
The creator of the original user object can still edit the admin provided object (if the<br />
server that hosts that object is not locked by an Admin Staging server) and delete the<br />
object if it is not referenced by other objects. These privileges are extended to <strong>MKS</strong><br />
<strong>Integrity</strong> administrators.<br />
You can migrate admin provided objects as part of the admin migration process.<br />
Admin provided objects are subject to the lock when the production server is locked.<br />
Admin provided objects display in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
You can share admin provided objects with users who are not administrators to view or<br />
edit.<br />
You can convert user objects queries, charts, reports, and dashboards to admin provided<br />
objects. When those objects are created from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, they<br />
are always admin provided objects. However, objects created from the <strong>MKS</strong> <strong>Integrity</strong> Client<br />
can be converted to admin provided objects by editing them in the <strong>MKS</strong> <strong>Integrity</strong> Client, and<br />
then selecting the Admin Provided option. For details on editing queries, charts, reports, and<br />
dashboards, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Once the object has been converted to an admin provided object, it appears in the<br />
corresponding subview in the Workflows and Documents view of the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client (see “Tree Pane” on page 14). For example, admin queries appear in<br />
243
Chapter 5: Customizing Workflow<br />
244<br />
the Queries view that is a subview of the Workflows and Documents view (see “Tree Pane”<br />
on page 14).<br />
NOTE If you copy an admin provided object such as an admin query from the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, the Admin Provided option is selected and<br />
cannot be changed. If you copy an admin provided object from the <strong>MKS</strong> <strong>Integrity</strong><br />
Client, the Admin Provided option is cleared by default in the copy. You must select<br />
that option for the copied object to be an admin provided object.<br />
To manage admin provided objects in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
1 Expand the Workflows and Documents node, and select the type of object you want to<br />
manage (Queries, Reports, Charts or Dashboards). The object view displays.<br />
By default, the data filter in the object view displays all admin provided objects of that<br />
type. You can search for a specific chart by typing in the text filter. For more information,<br />
see “Filtering Data” on page 18.<br />
2 From the object menu, select Run, Create, Copy, Delete, Edit, or View Definition. For<br />
information on performing those tasks, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
3 When editing an object or viewing an object’s definition, you can view all the objects that<br />
refer to it by clicking the References tab. You can then use that information to minimize<br />
the impact of editing or deleting that object.<br />
The References panel displays the following information:<br />
Object Type displays the type of object referencing the viewed object. Possible<br />
objects include:<br />
Admin Change Package Type<br />
Admin Chart<br />
Admin Dynamic Group<br />
Admin Project<br />
Admin Query<br />
Admin Report<br />
Admin Type (item)<br />
Chart (user charts)<br />
Column Set<br />
Field (includes computed fields, as well as editability and relevance rules)<br />
Group Notification Rule<br />
Item Presentation Template<br />
Query (user queries)<br />
Report
Trigger (includes trigger rules and assignments)<br />
User Notification Rule<br />
User Name<br />
Name displays the actual name of the object referencing the viewed object.<br />
Using Type Properties<br />
Creator displays the user ID that was logged as creating the object reference.<br />
Using Type Properties<br />
Type properties provide custom code (such as triggers and API) with attributes to read and<br />
to act on based on their values in <strong>MKS</strong> <strong>Integrity</strong>.<br />
Viewing Type Properties<br />
You can view type properties from the Type dialog box (see “Viewing Types” on page 93) in<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client. To view type properties, click the Type<br />
Properties node and use the data filter to search for the properties you want to view.<br />
If you have a solution installed on your <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, there are likely several type<br />
properties with values that you can choose to modify as part of your customization of<br />
<strong>MKS</strong> <strong>Integrity</strong>.<br />
Defining Type Properties<br />
You can define type properties from the Edit Type (or Create Type) dialog box (see “Editing<br />
Types” on page 91 or “Creating Types” on page 84) in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong><br />
Client GUI. To define type properties, click the Type Properties node and use the data<br />
filter to search for the properties you want to define.<br />
Type properties can be any name=value pairing. For example, a type property can be<br />
something that solutions or custom configured triggers can look for as a switch in the custom<br />
code.<br />
Type Property Fields<br />
Type properties contain the following fields:<br />
Name contains the name of the type property.<br />
Value contains the definition of the type property (see “Defining Type Properties” on<br />
page 245).<br />
Description contains an optional description for the type property.<br />
245
Chapter 5: Customizing Workflow<br />
246<br />
You can perform the following operations on type properties from the type properties pane<br />
(see “Defining Type Properties” on page 245):<br />
Operation Procedure<br />
Operations for Type Properties<br />
Create type property Click Create. The Create a type property dialog box displays.<br />
For information on fields, see “Type Property Fields” on page 245.<br />
Edit type property Select the type property, and click Edit. The Edit a type property<br />
dialog box displays.<br />
For information on fields, see “Type Property Fields” on page 245.<br />
Copy type property Select the type property, and click Copy. The Copy a property<br />
dialog box displays. The default name is Copy of <br />
where is the name of the property copied.<br />
For information on fields, see “Type Property Fields” on page 245.<br />
Delete a type property Caution: You cannot undo deletion of a type property.<br />
Select the type property, and click Delete. Click Yes to the<br />
confirmation dialog box.
C HAPTER SIX<br />
Projects<br />
Using Projects to Manage Change and Source<br />
6<br />
This chapter contains information on using projects with items and members. It is<br />
important to understand that projects used for managing workflows and documents<br />
behave differently from projects used for managing configuration management, and that<br />
the two kinds of projects do not interact with each other.<br />
This chapter contains the following topics:<br />
“Workflow and Document Projects” on page 248<br />
“Configuration Management Projects” on page 262<br />
247
Chapter 6: Projects<br />
Where to Go Next<br />
248<br />
The following table contains a summary of what workflow and document project<br />
information is available to you:<br />
To Do This … See …<br />
Manage workflow and document projects,<br />
including creating and editing.<br />
Learn how to work with workflow and document<br />
projects in the Projects view.<br />
The following table contains a summary of what configuration management project<br />
information is available to you:<br />
Workflow and Document Projects<br />
“Workflow and Document Projects” on page 248<br />
“Projects View” on page 249<br />
Use workflow and document project metrics. “Managing Metadata for Workflow and<br />
Document Projects” on page 257<br />
Deactivate workflow and document projects that<br />
are no longer needed or in use.<br />
Assign an <strong>MKS</strong> <strong>Integrity</strong> administrator for a<br />
workflow and document project.<br />
To Do This … See …<br />
Learn what interfaces are available to you for<br />
working with and administering configuration<br />
management projects.<br />
Organize your configuration management<br />
projects.<br />
Work with configuration management projects,<br />
such as creating, importing, importing members,<br />
dropping, restoring to a checkpoint, deleting, and<br />
restoring deleted projects.<br />
“Deactivating Workflow and Document Projects”<br />
on page 259<br />
“Assigning <strong>MKS</strong> <strong>Integrity</strong> Project Administrator”<br />
on page 260<br />
“Configuration Management Interfaces” on<br />
page 263<br />
“Organizing Your Projects” on page 263<br />
“Working With Projects” on page 265<br />
Use configuration management project metrics. “Using Configuration Management Project<br />
Metrics” on page 280<br />
Use configuration management subprojects. “Working With Subprojects” on page 282<br />
Share configuration management archives with<br />
configuration management projects.<br />
“Sharing Archives With Other Projects” on<br />
page 287<br />
When <strong>MKS</strong> <strong>Integrity</strong> is used for managing workflows and documents, a project is known as a<br />
workflow and document project. Workflow and document projects allow you to group items
Projects View<br />
Workflow and Document Projects<br />
according to undertakings that are defined in your organization. The projects created by you<br />
then become available for selection in the Project field—a default field in <strong>MKS</strong> <strong>Integrity</strong>. You<br />
can create projects and subprojects (or child projects) as needed.<br />
Once a project is created, you can edit it or add a subproject. You can also add a subproject to<br />
a subproject. If a project has subprojects, it has a plus sign (+) symbol to the left of it. To<br />
expand the project so you can see its subprojects, click + or double click the project name.<br />
Through the Project view, you can also designate users or groups as project administrators<br />
for a specified project. For more information on project administrators, see “Assigning <strong>MKS</strong><br />
<strong>Integrity</strong> Project Administrator” on page 260.<br />
Using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, you can manage workflow and document<br />
projects from one convenient location: the Projects view.<br />
CLI EQUIVALENT im projects<br />
To open the Projects view from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the<br />
Workflows and Documents node, and select Projects. The Projects view displays. For<br />
general information on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, see “Introduction” on<br />
page 10.<br />
The data filter (see “Filtering Data” on page 18) in the Projects view displays the names and<br />
descriptions of active projects by default; however, you can also configure the view to display<br />
the backing item ID (if specified), open image, and closed image. For more information, see<br />
“Creating Workflow and Document Projects” on page 252.<br />
With <strong>MKS</strong> <strong>Integrity</strong>, you can create projects and subprojects, as needed. You can even add a<br />
subproject to a subproject, as well as edit projects. If a project has subprojects, a + displays to<br />
the left. To expand the project so you can see its subprojects, click +. To launch a detailed<br />
view of the project, double click the name itself.<br />
NOTE To display entries in user and group fields when submitting items, at least<br />
one project must be shared with each available group, and the users and groups<br />
must have visibility into that project.<br />
If you double click a project, the Project dialog box displays for the selected project<br />
allowing you to view the properties. For more information on viewing projects, see “Viewing<br />
Workflow and Document Projects” on page 256.<br />
When you create a project, you can add additional information in a description field. For<br />
example, you can enter the project objective, start and end dates, name of the project<br />
manager, resources—anything that pertains to the project.<br />
249
Chapter 6: Projects<br />
250<br />
When creating a project, you can also designate users or groups as <strong>MKS</strong> <strong>Integrity</strong> project<br />
administrators for that project. For more information on project administrators, see<br />
“Assigning <strong>MKS</strong> <strong>Integrity</strong> Project Administrator” on page 260.<br />
Any changes you make in the Projects view have an immediate effect on your <strong>MKS</strong> <strong>Integrity</strong><br />
database. The project list is sorted alphabetically.<br />
Available Menu Commands for Workflow and Document Projects<br />
Through the Projects view, you can:<br />
edit the details for existing projects<br />
view the details for existing projects<br />
delete projects<br />
create new projects<br />
create a child project<br />
reparent an existing project<br />
create a backing item<br />
edit the backing item<br />
view backing item details<br />
Setting Workflow and Document Project Visibility<br />
Project visibility allows you to control access to information throughout your organization.<br />
Through <strong>MKS</strong> <strong>Integrity</strong>, you can manage workflow and document projects that reflect your<br />
product development. You can use project visibility to ensure that sensitive information from<br />
one group is not viewed or modified by another group. All items and e-mail notification are<br />
subject to project visibility rules.<br />
When you create a project, you can select which user groups can see the project and all items<br />
assigned to the project. You can also define which user groups can see all projects in the<br />
database and which ones are restricted to see only certain projects.<br />
If a user is not a member of at least one group allowed to view the project, that user cannot<br />
view any items belonging to the project and its subprojects. For users to see a given<br />
subproject, they must have permission to see the associated parent project. Not all user<br />
groups with visibility to the project must see all the subprojects under the project. You can<br />
restrict the subproject visibility to fewer groups than you have chosen to be able to view the<br />
project.<br />
Based on project visibility, users are allowed to query the database only for items within<br />
projects that are visible to them. Projects not visible to users are not displayed in the query<br />
results. If users try to view an item within a project that is not visible to them, an error<br />
message displays.
Workflow and Document Projects<br />
If an item in one project is related to an item in a project not visible to the user, only the item<br />
ID of the related item displays in the Relationship view. In the History view, the user can see<br />
only that an edit occurred (Modified by on ). Users cannot see<br />
if the edit was an addition or removal of a related item.<br />
If an item previously invisible to users is reassigned to a project that is visible to users, they<br />
cannot see the previous project name in the History view. Instead, a symbolic Restricted<br />
Project value displays.<br />
Example<br />
Look at an example of three users: one is a member of the Word Processor R&D group, the<br />
second one is a member of the Spreadsheet R&D group, and the third one is a member of the<br />
Product Managers group. The assigned workflow and document project permissions are<br />
recursive and apply to subprojects as follows:<br />
Word Processor R&D<br />
Product Managers<br />
Spreadsheet R&D<br />
Product Managers<br />
According to project permissions, the member of the Word Processor R&D group can see<br />
only the Word Processor project and its subprojects, and all items associated with this project.<br />
According to project permissions, the member of the Spreadsheet R&D group can see only<br />
the Spreadsheet project and its subprojects, and all items associated with this project.<br />
According to project permissions, the member of the Product Managers group can see both<br />
the Word Processor project, the Spreadsheet project, their subprojects, and all items<br />
associated with both projects.<br />
251
Chapter 6: Projects<br />
252<br />
Key Considerations<br />
To display entries in user and group fields when submitting items, at least one workflow<br />
and document project must be shared with each available group, and the users and<br />
groups must have visibility into that project.<br />
When creating a new project as a root project, the Inherit Permissions from Parent option<br />
is unavailable. If you are creating a new project as a child project, you can select the<br />
Inherit Permissions from Parent option, if you want the permissions of the parent project<br />
to apply to your new project.<br />
Items that are not part of any project (the project field is blank) are visible to all users. To<br />
enforce project permissions, you must make the project field mandatory.<br />
If a user is not a member of at least one group allowed to view the project, that user<br />
cannot view any items belonging to the project and its subprojects.<br />
Based on project visibility, users are allowed to query the database only for items within<br />
projects that are visible to them.<br />
When creating a project, you can also designate users or groups as project administrators<br />
for that project.<br />
Creating Workflow and Document Projects<br />
You can create workflow and document projects to manage workflows and documents in<br />
<strong>MKS</strong> <strong>Integrity</strong>. Workflow and document projects allow you to group items according to<br />
undertakings that are defined in your organization. Projects created by you then become<br />
available for selection in the Project field—a default field in <strong>MKS</strong> <strong>Integrity</strong>.<br />
When creating a project, you can also designate users or groups as project administrators for<br />
that project. For more information on project administrators, see “Assigning <strong>MKS</strong> <strong>Integrity</strong><br />
Project Administrator” on page 260.<br />
To create a workflow and document project in the GUI<br />
CLI EQUIVALENT im createproject<br />
1 From the Projects view (see “Projects View” on page 249), select Project > Create. The<br />
Create Project dialog box displays.
Workflow and Document Projects<br />
2 In the Name field, type a name for the new workflow and document project. This is the<br />
name the project is known by in <strong>MKS</strong> <strong>Integrity</strong>. This field allows up to 100 alphanumeric<br />
characters.<br />
NOTE The qualified project name in <strong>MKS</strong> <strong>Integrity</strong> uses a forward slash (/)<br />
delimiter for all operating systems.<br />
Underneath the Name field, the following message displays: Project is currently not<br />
backed by an item. Backing a project with an item allows you to link the current project<br />
to a specific item that stores project metadata and metrics. For more information, see<br />
“Managing Metadata for Workflow and Document Projects” on page 257.<br />
3 Using the Active option, specify whether a project is considered active or inactive in<br />
<strong>MKS</strong> <strong>Integrity</strong>. By default, the project is created active. To deactivate the project, clear<br />
the Active check box. For more information on deactivating projects, see “Deactivating<br />
Workflow and Document Projects” on page 259.<br />
4 To add a descriptive statement for the project, click the Description tab, and type your<br />
description.<br />
5 To set the parentage of the project, click the Parentage tab. The Parentage panel displays.<br />
The parentage of a project determines whether the new project is a parent or child<br />
project. By default, the new project displays as a parent or top-level project. If you want<br />
the new project to be a parent project, you can maintain the defaults. If you want the new<br />
project to be a child project, you can drag it to the parent project you want to add it to.<br />
6 To associate an icon image with the project field, click the Images tab. The Images panel<br />
displays the default options for open and closed project folders.<br />
To use the predefined icon images for either open or closed project folders, select<br />
Use Default Image.<br />
To use your own icon image that exists somewhere in your file system, select Use<br />
Custom Image, and browse for the image file.<br />
To associate no icon image with the project field, select No Image.<br />
If you choose to use a custom icon image, the image must be in GIF or JPEG format, and<br />
no larger than 24 (width) by 16 (height) pixels.<br />
253
Chapter 6: Projects<br />
254<br />
7 You can now set the project permissions, including which groups can view the project.<br />
To set the project permissions, click the Permissions tab. The Permissions panel<br />
displays.<br />
Only groups you add to the Permitted Groups pane can see the project.<br />
To allow all user groups access to the project, click
Workflow and Document Projects<br />
child project. In this case, the Inherit Permissions from Parent option on the Permissions<br />
panel is unavailable.<br />
7 To associate an icon image with the project field, click the Images tab. The Images panel<br />
displays the default options for open and closed project folders.<br />
To use the predefined icon images for either open or closed project folders, select<br />
Use Default Image.<br />
To use your own icon image that exists somewhere in your file system, select Use<br />
Custom Image, and browse for the image file.<br />
To associate no icon image with the project field, select No Image.<br />
If you choose to use your own custom icon image, the image must be in GIF or JPEG<br />
format and no larger than 24 (width) by 16 (height) pixels.<br />
8 You can now set the project permissions, including which groups can view the project.<br />
To set the project permissions, click the Permissions tab. The Permissions panel<br />
displays.<br />
9 Select one of the following options:<br />
Inherit permissions from parent applies the same project permissions to the project’s<br />
children.<br />
Restrict access to these groups lets you limit the number of user groups that can see<br />
a subproject by eliminating selected groups from the groups authorized to see the<br />
project.<br />
If you select this option, you must manually choose which user groups can view the<br />
new project by moving them from the Available Groups pane and adding them to<br />
the Permitted Groups pane:<br />
To allow all user groups access to the project, click
Chapter 6: Projects<br />
256<br />
Editing Workflow and Document Projects<br />
You can edit the details of one workflow and document project at a time.<br />
To edit a workflow and document project in the GUI<br />
CLI EQUIVALENT im editproject<br />
1 From the Projects view (see “Projects View” on page 249), select the workflow and<br />
document project you want to edit.<br />
2 Select Project > Edit. The Edit Project dialog box displays.<br />
If the project is backed by an item, the item ID displays under the Name field. Backing a<br />
project with an item allows you link the project to a specific item that stores project<br />
metadata and metrics. For more information, see “Managing Metadata for Workflow<br />
and Document Projects” on page 257.<br />
3 Edit the project as necessary. For more information on the fields in this dialog box, see<br />
“To create a workflow and document project in the GUI” on page 252.<br />
4 To determine all objects that reference the project, click the References tab. For<br />
information on the contents of the tab, see “To manage admin provided objects in the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client” on page 244.<br />
5 To view a history of administrative changes for the project, click the History tab. The<br />
record of changes displays.<br />
6 Click OK to save your changes.<br />
Viewing Workflow and Document Projects<br />
You can view workflow and document project details. The details are not editable, and you<br />
can only view the details for one project at a time.<br />
To view workflow and document project information in the GUI<br />
CLI EQUIVALENT im viewproject<br />
1 From the Projects view (see “Projects View” on page 249), select the workflow and<br />
document project you want to view.<br />
2 Select Project > View Definition for a selected project. The Project dialog box<br />
displays. For more information on the fields in this dialog box, see “To create a workflow<br />
and document project in the GUI” on page 252.<br />
TIP You can double click a project in the Projects view to view it.
Workflow and Document Projects<br />
3 To determine all objects that reference the project, click the References tab. For<br />
information on the contents of the tab, see “To manage admin provided objects in the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client” on page 244.<br />
4 To view a history of administrative changes for the project, click the History tab. The<br />
record of changes displays.<br />
5 When you are finished viewing, click Close.<br />
Deleting Workflow and Document Projects<br />
You can delete a workflow and document project only if the project and its subprojects have<br />
not been referenced in any item. To delete an idle project that has subprojects, delete its<br />
subprojects first.<br />
To delete a workflow and document project in the GUI<br />
CLI EQUIVALENT im deleteproject<br />
1 From the Projects view (see “Projects View” on page 249), select the workflow and<br />
document project you want to delete.<br />
2 Select Project > Delete. A confirmation dialog box displays.<br />
3 To confirm the deletion, click Yes.<br />
Reparenting Workflow and Document Projects<br />
After creating a workflow and document project, you can move it from one location within<br />
your project hierarchy to another by reparenting it.<br />
To reparent a workflow and document project in the GUI<br />
CLI EQUIVALENT im editproject<br />
1 From the Projects view (see “Projects View” on page 249), select Project > Reparent. The<br />
Reparent Projects dialog box displays.<br />
2 Drag the workflow and document project you want to move to the target folder.<br />
3 Click OK to save your changes.<br />
Managing Metadata for Workflow and Document Projects<br />
Workflow and document projects enable you to organize and manage items by the projects in<br />
your organization; however, these projects do not capture in-depth metadata or metrics. By<br />
creating a Project item type then creating a Project item and linking it to a specific project, the<br />
257
Chapter 6: Projects<br />
258<br />
power and workflow of projects as items becomes available. Important metadata and metrics<br />
can be recorded in the Project item, for example, the assigned project manager, estimated and<br />
actual budgets (using computed fields), and important milestone dates. Linking a Project<br />
item to a project also reduces possible confusion about the details of projects in your<br />
database.<br />
Key Considerations<br />
A link between a Project item and a workflow and document project is optional.<br />
Projects and Project items can be used independent of one another; you do not have to<br />
create a Project type to use the Project field.<br />
Multiple types can back projects; however, only one item may back a given project.<br />
To enable the Items of this type back Projects option, you must be an administrator for<br />
the selected type. The Items of this type back Projects option can be disabled at any time.<br />
To create the item that backs a project, you must be an administrator for the selected<br />
project and belong to a group that has permission to create items of that type.<br />
For Admin Staging, you cannot stage items. Items that back projects created on a staging<br />
server will not be staged; you must recreate the items that back projects on the<br />
production server. Rules, queries, or computed fields that explicitly mention the item<br />
number that backs a project will not work after they have been transferred from the<br />
staging server to the production server.<br />
Example<br />
David, a project manager, manages several projects; however, the current workflow and<br />
document projects in <strong>MKS</strong> <strong>Integrity</strong> only allow him to organize and manage related items,<br />
such as Features and Defects, by project. David needs a way to capture important<br />
information about each project, such as milestone dates, and measure project success, for<br />
example, calculating whether his actual budget is higher or lower than his estimated budget.<br />
David creates a Project type and defines relevant fields that will allow him to capture<br />
relevant data and metrics. Next, David creates Project items for the projects he is managing<br />
and links them to the relevant projects in the Project field.<br />
David can now more effectively manage his assigned projects. The Project items he created<br />
allow him to capture project metadata in the available fields and calculate project metrics<br />
using computed fields. Using queries, charts, reports, and dashboards, David can<br />
communicate project status to his superiors and teams working under him.
To back a workflow and document project with an Item<br />
CLI EQUIVALENT im createtype and im edittype<br />
Workflow and Document Projects<br />
1 Create a Project type (see “Creating Types” on page 84), and enable the Items of this type<br />
back Projects option in the Attributes view.<br />
NOTE To make this option available, the Project field must be selected as a visible<br />
field for the type.<br />
2 Add relevant fields to the Project type to capture the metadata you want, for example, a<br />
user field that identifies the assigned project manager, date fields that record important<br />
milestones (Feature Freeze, Code Freeze, Project Completion), or computed fields that<br />
calculate budget information. For information on creating fields, see “Creating Fields”<br />
on page 127.<br />
3 Create a workflow and document project that you want to link to a Project item (see<br />
“Creating Workflow and Document Projects” on page 252).<br />
4 With the new project selected in the Projects view, select Item > Create Backing Item. The<br />
Create Item dialog box displays.<br />
NOTE<br />
If there is more than one type that can back a project, a Type Selection dialog box<br />
displays a list of types that have the backs a project option enabled and that you<br />
have view and modify permissions for. Select the type you want to back the<br />
project for, and click OK.<br />
From the Projects view, you can view or edit a project’s existing backing item by<br />
selecting the project, and selecting Project > View Backing Item Details or Edit<br />
Backing Item.<br />
5 Enter the information for the Project item in the fields provided (see the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>2009</strong> User <strong>Guide</strong>).<br />
6 Save the item. The item now holds the project metadata for the specified project in the<br />
Project field.<br />
7 Record information in the Project item as you would any other item. Use queries, charts,<br />
reports, and dashboards to monitor and communicate project status to others.<br />
Deactivating Workflow and Document Projects<br />
Setting a workflow and document project to inactive means that it is not displayed in filtered<br />
project lists, such as Project; however, an inactive project’s name can still be displayed using<br />
the inactive filter, if available. Inactive projects are denoted with the [Inactive] tag.<br />
259
Chapter 6: Projects<br />
260<br />
By deactivating projects, default project lists are filtered to display only those projects that are<br />
currently active in <strong>MKS</strong> <strong>Integrity</strong>.<br />
IMPORTANT Inactive values are not accepted in trigger assignments or as field<br />
values. If the project is referenced in a trigger assignment or as the default value in a<br />
project field, moving the project from active to inactive displays an error message.<br />
To deactivate a workflow and document project in the GUI<br />
CLI EQUIVALENT im editproject<br />
1 From the Projects view (see “Projects View” on page 249), select the workflow and<br />
document project you want to edit.<br />
2 Select Project > Edit. The Edit Project dialog box displays.<br />
3 To deactivate the project, clear the Active check box.<br />
4 To save the changes, click OK. The changes take effect immediately in the <strong>MKS</strong> <strong>Integrity</strong><br />
database. In the Projects view, the inactive project is denoted with a blank entry under<br />
the Is Active column (if displayed).<br />
TIP You can right click the column header bar to add the Is Active column.<br />
Assigning <strong>MKS</strong> <strong>Integrity</strong> Project Administrator<br />
The super administrator is responsible for setting up <strong>MKS</strong> <strong>Integrity</strong> and therefore has access<br />
to all administrative objects, including users, groups, dynamic groups, workflow and<br />
document projects, states, types, fields, and triggers. The super administrator can also<br />
designate groups or individual users, or a combination of them, to be project administrators<br />
for selected projects in <strong>MKS</strong> <strong>Integrity</strong>. The super administrator can also convert user objects<br />
to admin provided objects (see “To manage admin provided objects in the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client” on page 244).<br />
<strong>MKS</strong> <strong>Integrity</strong> project administrators are allowed to edit and view workflow and document<br />
projects. Project administrators can also manage all child projects of the project they are<br />
approved for. Project administrators cannot edit projects assigned to another project<br />
administrator, and they can only create and delete subprojects—they cannot create top level<br />
projects unless they have been granted the CreateProject permission.<br />
Project administrators can also view all users, groups, and dynamic groups, but they can only<br />
edit dynamic groups membership for the projects they are assigned to. For more information<br />
on dynamic groups, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.
Workflow and Document Projects<br />
Workflow and document projects are hierarchical; therefore, when creating a top level<br />
project, the creating super administrator is automatically set as the project administrator.<br />
When creating a subproject, the administrator list is empty because administrators of the<br />
parent project are, by default, administrators of its subprojects. The creating administrator<br />
can modify the default as required.<br />
If the assigned project administrators are granted the CreateProject ACL permission, they<br />
are allowed to create top level projects, as well as to delete any top level projects.<br />
<strong>MKS</strong> <strong>Integrity</strong> project administrators who are granted the CreateProject permission can<br />
also assign other project administrators. For more information on the CreateProject<br />
permission, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
NOTE Project administrators are not allowed to assign themselves as administrators<br />
to any other projects or to assign others as project administrator, unless they have<br />
first been granted the CreateProject permission.<br />
The list of available users and groups contains all active and inactive members that have been<br />
imported into <strong>MKS</strong> <strong>Integrity</strong>; however, the available list does not necessarily include all users<br />
and groups available in the realm. For more information, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
The following table summarizes the basic functionality available to the project administrator:<br />
Project administrators can: Project administrators cannot:<br />
Create new subproject (child project) in workflow<br />
and document project they are assigned to.<br />
Edit workflow and document projects they are<br />
assigned to, including images, descriptions, and<br />
permissions.<br />
Edit project memberships in corresponding<br />
dynamic groups.<br />
View users, groups, dynamic groups, and<br />
projects.<br />
Example<br />
Create top level workflow and document project<br />
or create users, groups, dynamic groups, states,<br />
types, fields, or triggers.<br />
Edit any other process and control objects such<br />
as users, groups, states, types, fields, or triggers.<br />
View states, types, fields, or triggers.<br />
Delete subproject they have created. Delete top level workflow and document project.<br />
Create top level workflow and document project<br />
(if CreateProject permission is allowed).<br />
Assign another project administrator or view<br />
administrator information for project they do not<br />
administer.<br />
Neil is the project administrator for the SourceCode project. By extension, he is also the<br />
project administrator for the two subprojects under SourceCode (Client and <strong>Server</strong>).<br />
If the super administrator also grants Neil the CreateProject permission, Neil is allowed to<br />
create top level projects and assign other <strong>MKS</strong> <strong>Integrity</strong> project administrators at the time the<br />
261
Chapter 6: Projects<br />
262<br />
project is first created. With the CreateProject permission, Neil can also assign another<br />
project administrator to the SourceCode project. By extension, all assigned project<br />
administrators for the SourceCode project are allowed to edit the Client and <strong>Server</strong><br />
subprojects.<br />
Key Considerations<br />
Only the super administrator can automatically assign a project administrator in<br />
<strong>MKS</strong> <strong>Integrity</strong>.<br />
Project administrators are not allowed to assign themselves as administrators to any<br />
other projects or to assign others as project administrator, unless they have first been<br />
granted the CreateProject permission.<br />
To assign an <strong>MKS</strong> <strong>Integrity</strong> project administrator<br />
CLI EQUIVALENT im editproject<br />
1 From the Projects view, select the project you want to create a project administrator for.<br />
2 Select Project > Edit. The Edit Project window displays.<br />
NOTE Only the super administrator is automatically allowed to assign project<br />
administrators in <strong>MKS</strong> <strong>Integrity</strong>. Project administrators can assign another project<br />
administrator only if they are first granted the CreateProject permission.<br />
Through the Create Project window, the super administrator can also assign a<br />
project administrator while creating a new project.<br />
3 Click the Administrators tab. The Administrators panel displays.<br />
4 To assign a specified user or group as a project administrator, see “Filtering Data” on<br />
page 18. You can assign more than one user or group as a project administrator.<br />
5 To accept the changes, click OK. The selected user or group is assigned as a project<br />
administrator. Users and groups displayed in the Assigned column are then allowed to<br />
manage the selected project in <strong>MKS</strong> <strong>Integrity</strong>.<br />
Configuration Management Projects<br />
Software management functionality provides configuration management projects to manage<br />
members. Configuration management projects are separate from workflow and document<br />
projects, and are accessed through all interfaces (see “Configuration Management Interfaces”<br />
on page 263).
Configuration Management Interfaces<br />
Configuration Management Projects<br />
Configuration management functionality is accessible in three interfaces: <strong>MKS</strong> <strong>Integrity</strong><br />
Client, Configuration Management Web interface, and command line interface (CLI).<br />
The <strong>MKS</strong> <strong>Integrity</strong> Client uses the concept of a Tabbed View Interface (or TVI). A TVI is a<br />
visual arrangement of multiple views in a single window. For more information on using and<br />
customizing this interface, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>. All configuration<br />
management commands are available in the GUI.<br />
NOTE In this guide, all GUI procedures are documented using menu-based<br />
commands; however, toolbar buttons, shortcut menus, and shortcut keys exist for<br />
most procedures. For more information, refer to descriptive tooltips and menu items<br />
in the GUI.<br />
The Configuration Management Web interface allows you to perform key project<br />
management tasks. You do not need to install the <strong>MKS</strong> <strong>Integrity</strong> Client to access the<br />
Configuration Management Web interface. To open the Configuration Management Web<br />
interface, type the name and port number of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> in the location or<br />
address field of your Web browser, for example, xyzBusiness.com:9001. From the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> home page, click the link for Start <strong>MKS</strong> <strong>Integrity</strong> Web Interface.<br />
The CLI allows you to enter <strong>MKS</strong> commands in a text-based interface. Primary use of the CLI<br />
is for scripting. It is also useful for environments where there is no GUI. The CLI can be used<br />
to manage your configuration management projects, Sandboxes, and members, and to<br />
configure configuration management functionality. To access the command line interface<br />
from a computer running Windows, from the Start menu select the MS-DOS or Command<br />
Prompt (depending on the version of Windows).<br />
You can also choose to work alternately between the GUI and the CLI, because all<br />
configuration management commands are available in these two interfaces. For example, you<br />
can perform a command in the CLI and view the results in the GUI.<br />
Organizing Your Projects<br />
Before you begin using <strong>MKS</strong> <strong>Integrity</strong> to manage the configuration management projects in<br />
your development environment, you should take a careful look at how projects and<br />
directories are organized in your repository. The recommended way to use <strong>MKS</strong> <strong>Integrity</strong> is<br />
also the easiest. If you follow these guidelines, <strong>MKS</strong> <strong>Integrity</strong> requires no special<br />
configuration:<br />
Put all the files for a project in a single directory or directory tree.<br />
Create the project in the directory at the top of the tree.<br />
263
Chapter 6: Projects<br />
264<br />
Single-tree Projects<br />
Most sites adopt hierarchical directory structures for related files, because the structure<br />
reinforces the relationship between files and makes them easier to locate and work with. A<br />
preferred approach in software development is to place the project makefile at the root of a<br />
directory tree that includes subdirectories for code files, resources, and header files. This<br />
example shows one of the simplest and most frequently used structures.<br />
<strong>MKS</strong> <strong>Integrity</strong> records the location of all members relative to the project directory (that is, the<br />
directory where the project file resides) at the top of the project directory tree. When you<br />
create a Sandbox for a single-tree project, <strong>MKS</strong> <strong>Integrity</strong> clones the project directory tree in<br />
the Sandbox directory and maintains the relative locations of all members.<br />
Problems can arise when separate project trees are located in the same directory for the<br />
purpose of sharing archives. As a result, <strong>MKS</strong> strongly recommends you keep top-level<br />
projects in separate directories so that each project can have separate security, configuration,<br />
and administrative information controlled by separate ACLs. For more information on<br />
project ACLS, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
You can still share archives across projects that are in separate directories by using shared<br />
subprojects or common projects. For more information, see “Sharing Archives With Other<br />
Projects” on page 287.<br />
IMPORTANT If you have developed a project structure that includes multiple projects<br />
in the directory, you should contact <strong>MKS</strong> Customer Care for detailed information on<br />
how to work with this situation.<br />
Archives in File System Repositories<br />
If you are using a file system repository, when you use a single-tree type of project<br />
organization, you need no further directory configuration. <strong>MKS</strong> <strong>Integrity</strong> uses its internal<br />
defaults and puts archives for the project members in subdirectories—named rcs—in the<br />
directory where each member resides.<br />
The final directory tree for the project looks like this:
Code<br />
Directory<br />
rcs<br />
Directory<br />
Configuration Management Projects<br />
When you create a Sandbox, RCS directories are not cloned in the Sandbox directory.<br />
Working With Projects<br />
When you are ready to place a related group of files under <strong>MKS</strong> source control, the first step<br />
is to create a project. A project is a container for a group of files that reside on the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Once you create a project, you can add files to it making them members of that project.<br />
Organizing your files in a project allows you to perform configuration management<br />
operations on the files as a group.<br />
Projects are created using the <strong>MKS</strong> <strong>Integrity</strong> Client and reside on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Users can then create Sandboxes that point to the project, and all operations are performed<br />
from those Sandboxes.<br />
Creating Projects<br />
Project<br />
Directory<br />
Resource<br />
Directory<br />
rcs<br />
Directory<br />
rcs<br />
Directory<br />
When creating a project, you only create the project container. To add files, or members, to the<br />
project, you must create a Sandbox on your client machine that points to the project and then<br />
add the project members through that Sandbox. For more information on creating Sandboxes<br />
and adding project members, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
To create a project, select Project > Create.<br />
Keep the following points in mind when creating a project:<br />
Header<br />
Directory<br />
rcs<br />
Directory<br />
When you specify the name of the new configuration management project,<br />
<strong>MKS</strong> <strong>Integrity</strong> automatically assigns the .pj file extension. If you specify a .pj file<br />
extension in uppercase or mixed case, <strong>MKS</strong> <strong>Integrity</strong> replaces that file extension with the<br />
correct lowercase .pj file extension. If you specify a file extension other than .pj,<br />
<strong>MKS</strong> <strong>Integrity</strong> appends the .pj file extension to the file name. For backwards<br />
265
Chapter 6: Projects<br />
266<br />
compatibility, you can import projects and subprojects that do not have the .pj file<br />
extension.<br />
A single configuration management project name can be used only once in the same<br />
location.<br />
For case-insensitive repositories, <strong>MKS</strong> <strong>Integrity</strong> does not distinguish between<br />
configuration management project names differing only in case. For example, if<br />
project.pj already exists in C:/Aurora_Program, you cannot create PROJECT.pj in<br />
C:/Aurora_Program. This results in an error and <strong>MKS</strong> <strong>Integrity</strong> asks you to specify a<br />
different path and file name, or a different project name.<br />
To create a project using the CLI<br />
1 Log in to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> by entering the command:<br />
where<br />
si connect --hostname=value --port=value --user=value --password=value<br />
--hostname=value specifies the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> name<br />
--port=value specifies the port number<br />
--user=value specifies your user name<br />
--password=value specifies your password<br />
<strong>MKS</strong> <strong>Integrity</strong> establishes a connection with the server.<br />
2 Enter the command:<br />
si createproject projname<br />
where projname specifies the path on the server and the name of the project you want to<br />
create. <strong>MKS</strong> <strong>Integrity</strong> confirms that the project is created.<br />
NOTE <strong>MKS</strong> <strong>Integrity</strong> creates file paths and project names based on the server’s<br />
operating system. In Windows, always use back slashes when specifying file paths.<br />
In UNIX, always use forward slashes.<br />
For more information on the si createproject command, see the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>2009</strong> CLI Reference <strong>Guide</strong> for Configuration Management.<br />
Importing Projects<br />
Import configuration management projects if you need to do the following:<br />
restore projects that were dropped in earlier versions of <strong>MKS</strong> <strong>Integrity</strong> (including<br />
<strong>MKS</strong> Source and Source <strong>Integrity</strong>)<br />
migrate projects from Source <strong>Integrity</strong> Standard (an earlier version of <strong>MKS</strong> <strong>Integrity</strong>)<br />
Importing a configuration management project registers it with the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Once a project is imported, <strong>MKS</strong> <strong>Integrity</strong> commands can be performed upon it.
To import a project, click Project > Import.<br />
Configuration Management Projects<br />
NOTE The Import Project command is not supported for database repositories. For<br />
information on how to import projects for database repositories, see the Database<br />
Repository Migrator document.<br />
When importing projects, the import process automatically creates histories for any nonarchived<br />
members and checkpoints any non-archived projects. Before you import a project,<br />
the project files must already reside in the server repository.<br />
CAUTION <strong>MKS</strong> <strong>Integrity</strong> does not support encrypted archives. If your existing<br />
project has encrypted archives, you must first decrypt the archives before importing<br />
and registering the project with the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Importing From Earlier Versions<br />
If you are importing a configuration management project from an earlier version of<br />
<strong>MKS</strong> <strong>Integrity</strong>, once a project has been imported you may not perform commands on it using<br />
an older version of <strong>MKS</strong> <strong>Integrity</strong>. If for some reason you need to use an earlier version of<br />
<strong>MKS</strong> <strong>Integrity</strong> on a project, first drop the project using the Drop Project command. The<br />
project must be re-imported before it can be used again with this version of <strong>MKS</strong> <strong>Integrity</strong>.<br />
If you are importing an existing Source <strong>Integrity</strong> Standard project that includes out-of-tree<br />
members or subprojects, <strong>MKS</strong> <strong>Integrity</strong> automatically detects these and imports them into<br />
the newly registered project. A project member or subproject is considered out of tree when it<br />
does not reside in the project directory.<br />
If you are re-importing a dropped project to its former repository location, the project<br />
namespace must first be reclaimed. For more information on reclaiming project namespaces,<br />
see “To run server diagnostics in the CLI” on page 417.<br />
Example<br />
The xyzBusiness company has an existing project in Source <strong>Integrity</strong> Standard. This project<br />
needs to be migrated to the new <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. To carry out the import operation, the<br />
administrator first copies the project directory to the new host <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> and then<br />
imports it.<br />
Key Considerations<br />
If your connection to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> is disconnected while you are browsing<br />
for a file, the file browser does not show any files or directories.<br />
You cannot import a configuration management project that is already registered.<br />
For case insensitive repositories, <strong>MKS</strong> <strong>Integrity</strong> does not distinguish between<br />
configuration management project names that differ only in case. For example, if<br />
project.pj is already registered in C:/Aurora_Program, you cannot import<br />
267
Chapter 6: Projects<br />
268<br />
PROJECT.pj into C:/Aurora_Program. This results in an error and <strong>MKS</strong> <strong>Integrity</strong> does<br />
not import the project.<br />
The processing of this command may take some time, since it traverses all subprojects in<br />
the imported project and may perform various operations on them, such as<br />
checkpointing.<br />
The administrator may restrict the path names of configuration management projects<br />
being imported on the server. This is done through the si.serverRoot property in the<br />
si.properties file on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. If this is set, then any project location<br />
given must be under that directory. For details, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
To import a configuration management project using the CLI<br />
Use the command:<br />
si importproject projname<br />
where projname specifies the path and name of the project you want to import.<br />
NOTE For more information on the si importproject command, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI Reference <strong>Guide</strong> for Configuration Management.<br />
Importing Members<br />
When you add a member, it is automatically registered with the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>;<br />
however, members added with Source <strong>Integrity</strong> Standard (an earlier version of<br />
<strong>MKS</strong> <strong>Integrity</strong>) or server resident files must be imported to register them with the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Do not use the Import Member command to add members that are dropped from a project.<br />
Instead, use the Add From Archive command. For more information on this command, see<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
NOTE The Import Member command is not supported for database repositories.<br />
Key Considerations<br />
The configuration management project must be registered with the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
before the member is imported.<br />
Before you begin the import operation, the files to be imported must first reside on the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Archives cannot be imported. When selecting a file to import, select the working file in<br />
the project directory. If the working file does not exist, select the project directory and<br />
enter the file name.
Configuration Management Projects<br />
You cannot import members into a shared subproject. For more information on shared<br />
subprojects, see “Adding Shared Subprojects” on page 284.<br />
Example<br />
You have a directory that contains numerous files and subdirectories, and you want to add<br />
this directory to a configuration management project. First, make sure the target directory<br />
resides on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. Then use the Import Member command to add the new<br />
directory as a member to your project, selecting the Recurse Into Directories option to include<br />
all of the associated files and subdirectories in the project.<br />
To import a member in the GUI<br />
1 .From a Project or Sandbox view, select Member > Import. The Import Members Wizard<br />
displays.<br />
2 To import a list of files to the project, click Add File. To import a directory and its<br />
contents, click Add Directory. The Select One or More Members to Import to the Project<br />
dialog box displays.<br />
3 Select one or more files from the displayed list navigating to the desired directory if<br />
necessary.<br />
NOTE If your connection to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> is disconnected while you are<br />
browsing for a file, the file browser does not show any files or directories.<br />
4 To add the operation to a change package, from the Change Package list select a change<br />
package. To create a change package, click Create. For information on how to create a<br />
change package or specify a change package when performing an operation, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
5 Click OK. The files are added to the members list. To remove files, select the files, then<br />
click Remove.<br />
6 To modify the Import Member options, click Options. For detailed information on the<br />
Import Members Wizard options, see the online help.<br />
7 Click Finish to import files without specifying options. The Import Member dialog box<br />
displays.<br />
8 If the member is being imported to a deploy project, specify the deploy type for the<br />
member in the Deploy Type field. This field only displays if you are licensed to use<br />
Deploy. For more information, see the <strong>MKS</strong> Deploy <strong>2009</strong> <strong>Administration</strong> <strong>Guide</strong>.<br />
9 To modify the Import Member options, click Options. For detailed information on the<br />
Import Member options, see the online help.<br />
10 To complete the operation, click OK. To make changes, click Back. The members display<br />
in the Project or Sandbox view.<br />
269
Chapter 6: Projects<br />
270<br />
To import a member using the CLI<br />
Use the command:<br />
where<br />
si import --project=value filename<br />
--project=value specifies the path and name of the target project<br />
filename specifies the path and name of the non-member files to be imported to the<br />
project<br />
NOTE Include the server-side path and path to the working file. Do not include the<br />
path to the archive.<br />
Other command options for si import include:<br />
--author=name specifies an author name for the file<br />
--binaryFormat specifies that the file contains unprintable characters or lines too long<br />
to be handled by text editors<br />
--textFormat specifies that file is in a format expected by text file editors<br />
--revision=value specifies a revision number for the member<br />
--description=value specifies a description of the member<br />
--[no]createSubprojects specifies whether subprojects are created<br />
--[no]unexpandKeywords specifies whether literal values in the revision are replaced<br />
with keywords<br />
--[no|confirm]recurse imports members that exist in the specified directory location<br />
recursively (if you want <strong>MKS</strong> <strong>Integrity</strong> to confirm the recurse option, use<br />
--confirmrecurse)<br />
NOTE For a complete list of command options, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI<br />
Reference <strong>Guide</strong> for Configuration Management.<br />
Dropping Projects<br />
When a configuration management project has outlived its usefulness or just does not belong<br />
on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> anymore, you can remove it.<br />
To drop a configuration management project means that the projectis no longer registered<br />
with the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. Dropped projects can still be accessed as read only from the<br />
Change Package and Locks views until the project is purged or reclaimed by your<br />
administrator.
Configuration Management Projects<br />
To drop a configuration management project, select a project in the Projects view, and click<br />
Project > Drop.<br />
CAUTION If a project is dropped and any Sandboxes or variants are associated with<br />
it, those Sandboxes or variants no longer function.<br />
Dropping a configuration management project unregisters it from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>,<br />
but it does not delete the project. Dropped configuration management projects can be added<br />
back into <strong>MKS</strong> <strong>Integrity</strong>.<br />
For more information on adding projects, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
To drop a project in the CLI<br />
Use the command:<br />
si dropproject projname<br />
where projname specifies the path and name of the project you want to drop.<br />
NOTE For a complete list of command options, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI<br />
Reference <strong>Guide</strong> for Configuration Management.<br />
Restoring Project to Previous Checkpoint<br />
The Restore Project command allows you to restore a configuration management project to a<br />
previously checkpointed revision. Restoring a project is useful when development must<br />
revert back to an earlier version and there are no plans to proceed from the current version of<br />
the project. Any further development then proceeds from the restored project revision. The<br />
Restore Project command can be applied to both normal and variant projects.<br />
NOTE The Restore Project command can potentially restore and checkpoint dropped<br />
subprojects that existed at the target revision, even if they are not currently a<br />
member of the project.<br />
To restore a project through the GUI, select the configuration management project that you<br />
want to restore in either a Project or Sandbox view, and select Project > Restore.<br />
NOTE When you work through a Sandbox or sub Sandbox, the corresponding<br />
master project is referenced.<br />
IMPORTANT Do not use the Project > Restore command to create a new development<br />
branch from a previously checkpointed project revision. For new development<br />
paths, you should instead create a development path (see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong><br />
User <strong>Guide</strong>).<br />
271
Chapter 6: Projects<br />
272<br />
How Restore Project Command Works<br />
<strong>MKS</strong> <strong>Integrity</strong> performs the Restore Project command as follows:<br />
A checkpoint is performed on the current configuration management project revision.<br />
The configuration management project is restored to the target revision.<br />
A final checkpoint of the restored revision is made.<br />
Therefore, for each configuration management project you restore, two revisions are<br />
generated. For example, if the head revision of the project is 1.4 and you decide to restore it to<br />
revision 1.2, the following project revisions are generated:<br />
1.6final checkpoint<br />
1.5pre-checkpoint<br />
You would then continue your project development work from revision 1.6.<br />
Selecting Checkpoint to Restore<br />
You can select the checkpoint to restore by selecting a Pre-Defined Revision or a Specific<br />
Revision.<br />
If you want to restore a pre-defined revision, select one of the following:<br />
Head revision, which represents the latest checkpoint on the default branch of<br />
development (or on the mainline, if no default is specified)<br />
Trunk Tip, which represents the latest checkpoint on the mainline independent of the<br />
default branch settings.<br />
If you want to restore a specific revision, you can select the revision based on a checkpoint<br />
number or label by clicking the appropriate tab. The default revision is the most recent<br />
checkpoint.<br />
Key Considerations<br />
When a configuration management project is restored, all restored members return to<br />
the initial state.<br />
The Project > Restore command can be applied to both normal and variant projects.<br />
You can effectively undo the Project > Restore command by restoring the configuration<br />
management project to the pre-checkpointed revision.<br />
You cannot restore a build project using the Project > Restore command.<br />
You cannot restore a project that is associated with a deploy stage. For more information<br />
on deploy stages, see the <strong>MKS</strong> Deploy <strong>2009</strong> <strong>Administration</strong> <strong>Guide</strong>.<br />
You cannot retore a project if a checkpoint is in progress on that project.<br />
To restore a variant project to a specific project revision, the development path must<br />
exist in all subprojects referenced by the project revision.
To restore a project or subproject in the CLI<br />
Use the command:<br />
where<br />
Configuration Management Projects<br />
si restoreproject --revision=value --reason=value --project=value<br />
--revision=value specifies the revision number you want the project restored to.<br />
--reason=reason specifies the reason for restoring the project.<br />
--project=value specifies the path and name of the project or subproject to be restored.<br />
--devpath=value specifies the development path and name of the variant project or<br />
subproject.<br />
NOTE For a complete list of command options, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI<br />
Reference <strong>Guide</strong> for Configuration Management.<br />
Deleting Projects and Archives From Database<br />
To delete specified projects that are no longer in use from the database, use the<br />
si deleteproject command. Deleting a project from the database deletes the project itself<br />
and its history. Deleting a project from the database also deletes all of the member archives<br />
for members in that project. However, shared projects and archives are retained in the<br />
database. You can also specify to delete only specified archives rather than projects by using<br />
the si deletearchive command.<br />
Deleting projects and archives is a multi-phase process referred to as delete session. Delete<br />
session is identical for both si deleteproject and si deletearchive, but only one type<br />
of session may be in progress for the same database and server. At any phase before the final<br />
commit of the delete, you can roll back the operation and end the delete session with the<br />
projects and archives intact.<br />
CAUTION Once the delete session has been completed, you cannot roll back the<br />
changes to the database. To restore deleted projects, see “Restoring Deleted<br />
Projects” on page 279.<br />
As part of the delete session, projects and archives marked for removal from the database are<br />
archived (if using the --dump subcommand) and can later be restored by migrating them<br />
back into the database. However, broken linkages between deleted projects and those<br />
projects retained in the repository are not restored.<br />
Key Considerations<br />
Both si deleteproject and si deletearchive commands require either the<br />
Admin<strong>Server</strong> or Debug<strong>Server</strong> ACL permission. The deleteproject and<br />
deletearchive permissions are required to delete projects and their member archives.<br />
273
Chapter 6: Projects<br />
274<br />
Only one type of delete session can be in process at one time (either si deleteproject<br />
or si deletearchive). If the command type does not match the type of an existing<br />
session, an error is returned.<br />
The unit of delete is an entire member archive or a project and all its variants. There is no<br />
support for purging only member revisions, only some variants, or for purging revisions<br />
or checkpoints based on date.<br />
References by name to deleted objects are not modified by the delete. These references<br />
include change package entries, ACLs, policies, trigger registrations, pending<br />
operations, lock origination, and Sandbox registries.<br />
Restoring deleted objects does not re-establish links between those objects and objects<br />
not deleted. Links are permanently broken by a delete operation.<br />
You cannot delete a project if a checkpoint is in progress on that project.<br />
Logs of the delete session are provided as part of the si migrate command<br />
functionality. For more information, see the Database Repository Migrator <strong>Guide</strong>.<br />
Before deleting projects and archives, consult the key considerations for restoring them<br />
(see “Restoring Deleted Projects” on page 279).<br />
The si deletearchive command is intended for global clean-up of files, (not for<br />
removing individual archives), because links may exist between that archive another<br />
objects in the database. For more information, refer to documentation on the<br />
--nodeleteIfInUse option in the subsequent sections.<br />
Delete Session Phases<br />
Before describing the commands and their subcommands in more detail, the following<br />
diagram shows generally the delete session phases:
Mark<br />
Dump<br />
Commit<br />
Delete session phases<br />
Rollback<br />
NOTE At any time during the delete session, you can run the --status<br />
subcommand to determine the status of the delete session.<br />
Configuration Management Projects<br />
1 The Mark phase specifies projects or archives that are new candidates for deletion. It<br />
(and consequently the delete session) begins by using the --mark subcommand to<br />
specify objects to be deleted. If projects are specified, the --mark subcommand<br />
determines what objects are to be deletion targets (projects or archives to be deleted) and<br />
what objects are to be kept candidates.<br />
IMPORTANT The <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> only supports one delete session at a time and<br />
additional targets cannot be added with a second invocation of the --mark<br />
subcommand.<br />
275
Chapter 6: Projects<br />
276<br />
Kept candidates are subprojects or members that are not deleted for one of the following<br />
reasons:<br />
Subprojects or members are not located in the directory tree of any of the projects<br />
specified.<br />
You do not have DeleteProject permission for the specified project or its<br />
development paths.<br />
You do not have DeleteArchive permission for the specified or affected member<br />
archives.<br />
You used the --nodeleteIfInUse option, and the projects are referenced by an<br />
outside link. The link can be that the projects are shared subprojects in projects not<br />
specified for the delete session. Links also include every past or present subproject<br />
and member archive of every branch of the project specified (mainline, variant, or<br />
dropped variant).<br />
You used the --nodeleteIfInUse option, and the members are referenced by an<br />
outside link. The link can be to any revision referenced in another project.<br />
NOTE If you restore deleted projects at a later date, the kept candidates do not<br />
maintain their linkages with restored projects.<br />
The Mark phase is complete when all candidates are converted to kept candidates or<br />
delete targets. At this time, you can use the --status subcommand to view information<br />
on delete targets and kept candidates.<br />
IMPORTANT All delete targets are marked by the server such that they cannot be<br />
changed, and links to them cannot be added by user operations. Existing links can<br />
be duplicated (such as creating a development path) as this does not change the<br />
results of --mark. Kept candidates are not restricted.<br />
2 The Dump phase creates backups of the marked projects in the database using the<br />
--dump subcommand. If projects are marked, the command recursively creates backups<br />
of the projects and archives to a backup table in the database (dumping them). However,<br />
the subcommand does not backup all of the members, subprojects, and variants that are<br />
referenced by those projects, only the in-tree objects.<br />
IMPORTANT At any phase before Commit, you can run the --rollback<br />
subcommand to discard the target information, and end the delete session with the<br />
database unchanged. Once the subcommand completes, you can begin a new delete<br />
session with the --mark subcommand.
Configuration Management Projects<br />
CAUTION The Dump phase is not available for the si deletearchive command.<br />
Using this command deletes archives without creating backups for them. Archive<br />
backup (and restore) is not available for individual archives; only projects that<br />
include archives. If you require archive backups, use the si deleteproject<br />
command instead.<br />
Alternatively, projects can be copied to the backup schema without using<br />
si deleteproject --dump, by using si migrate --dumpToBackup projectList, where<br />
projectList is a selection of projects. For more information on si migrate, see the<br />
Database Repository Migrator <strong>Guide</strong>.<br />
3 The Commit phase deletes all of the delete targets identified in the Mark phase, breaks<br />
links to deleted objects, and ends the delete session. Begin the commit phase using the<br />
--commit subcommand.<br />
Viewing Repository Post-Delete<br />
A command is provided to view the state of the repository after the delete session. To view or<br />
print a list of all projects, archives, and directories contained in the repository directory, use<br />
the following command:<br />
si diag --diag=showrepdir --param=dirname<br />
where dirname is the directory containing the repository. For more information on the<br />
si diag command, see “To run server diagnostics in the CLI” on page 417.<br />
To delete projects from the database using the CLI<br />
NOTE Detailed help on using si deleteproject is available from the CLI using<br />
the man command, or see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> <strong>Administration</strong> CLI Reference<br />
<strong>Guide</strong>.<br />
From the CLI, use the following command:<br />
si deleteproject [subcommmand] value<br />
where value is used with the --mark subcommand and specifies projects for the current<br />
delete session.<br />
Subcommands for si deleteproject include:<br />
--commit commits the deletion by permanently deleting the marked objects.<br />
--dump dumps the objects marked for deletion in the current delete session. If projects<br />
are marked, the command recursively creates back ups of the projects in backup tables in<br />
the database (dumping them). However, the subcommand does not export all of the<br />
members, subprojects, and variants that are referenced by those projects, only the in-tree<br />
objects. The project back-ups can be restored later (see “Restoring Deleted Projects” on<br />
page 279).<br />
277
Chapter 6: Projects<br />
278<br />
--mark starts a delete session by marking objects and their dependents as new<br />
candidates. The subcommand determines what objects are to be delete targets (projects<br />
or archives to be deleted) and what objects are to be kept candidates.<br />
IMPORTANT The <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> only supports one delete session at a time and<br />
additional targets cannot be added with a second invocation of the --mark<br />
subcommand.<br />
When later restoring deleted projects, the kept candidates do not maintain their linkages<br />
with restored projects.<br />
--rollback cancels a delete session leaving the database unchanged. This<br />
subcommand can only be used in phases prior to Commit.<br />
--status displays the status of the current delete session.<br />
Command options for si deleteproject include:<br />
--[no]deleteIfInUse, used with the --mark subcommand, specifies if to delete<br />
targets that are still in use. Something is marked as in use if it refers to a particular<br />
project or archive that is out of tree.<br />
--[no]links, used with the --status subcommand, displays a list of all links that are<br />
broken upon commit.<br />
--[no]recurse, used with the --mark subcommand, specifies if to recurse into<br />
subprojects. The default is to recurse.<br />
--[no]targets, used with the --status subcommand, displays all delete targets and<br />
kept reasons.<br />
To delete archives from the database using the CLI<br />
NOTE Detailed help on using si deletearchive is available from the CLI using<br />
the man command, or see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> <strong>Administration</strong> CLI Reference<br />
<strong>Guide</strong>.<br />
From the CLI, use the following command:<br />
si deletearchive [subcommmand] value<br />
where value is used with the --mark subcommand and specifies projects for the current<br />
delete session.<br />
CAUTION The --dump option cannot be used with the si deletearchive<br />
command. Using this command deletes archives without creating backups for them.<br />
Archive backup (and restore) is not available for individual archives; only projects<br />
that include archives. If you require archive backups, use the si deleteproject<br />
command instead.
Subcommands for si deleteproject include:<br />
Configuration Management Projects<br />
--commit commits the deletion by permanently deleting the marked objects.<br />
--mark starts a delete session by marking objects and their dependents as new<br />
candidates. The subcommand determines what objects are to be delete targets (archives<br />
to be deleted) and what objects are to be kept candidates.<br />
IMPORTANT The <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> only supports one delete session at a time and<br />
additional targets cannot be added with a second invocation of the --mark<br />
subcommand.<br />
--rollback cancels a delete session leaving the database unchanged. This<br />
subcommand can only be used in phases prior to Commit.<br />
--status displays the status of the current delete session.<br />
Command options for si deletearchive include:<br />
--[no]deleteIfInUse, used with the --mark subcommand, specifies if to delete<br />
targets that are still in use. Something is marked as in use if it refers to a particular<br />
project or archive that is out of tree.<br />
--[no]links, used with the --status subcommand, displays a list of all links that are<br />
broken upon commit.<br />
--[no]targets, used with the --status subcommand, displays all delete targets and<br />
kept reasons.<br />
Restoring Deleted Projects<br />
You can restore deleted projects by using the si migrate command with the<br />
--restoreFromBackup option.<br />
To restore a deleted project, specify the command in the following form:<br />
si migrate --restoreFromBackup=projectNames<br />
where projectNames specifies the names of projects to restore from the backup tables in the<br />
database.<br />
Review the migration logs to ensure no errors occurred, and then manually publish the<br />
restored projects (or members). For more information on si migrate, see the Database<br />
Repository Migrator <strong>Guide</strong>.<br />
Key Considerations<br />
If no project names are specified, all projects from the database are restored. If project<br />
names are specified, only those projects are restored.<br />
279
Chapter 6: Projects<br />
280<br />
Currently there is no mechanism to browse the backup tables to determine which<br />
projects are available for restoration, so it is recommended you refer to the log that was<br />
generated during backup or contact <strong>MKS</strong> Customer Care for assistance.<br />
The restore operation migrates the backup tables to the latest version of the schema<br />
before beginning the migration.<br />
If during the restore, a project (or archive) is encountered in the repository with the same<br />
name as the one being restored from the backup table, the project (or archive) is skipped<br />
(and any children such as subprojects or members).<br />
Restoring deleted objects does not re-establish links between those objects and objects<br />
not deleted.<br />
When restoring deleted objects, si migrate does not restore subprojects or archives<br />
that correspond to kept objects. Kept objects only correspond to dumped objects if they<br />
were within the tree of the project deleted. If there are missing archives or projects, the<br />
migrator creates a stub in the tree.<br />
Using Configuration Management Project Metrics<br />
You can track metrics for top-level configuration management projects and calculate them<br />
through event triggers. Calculated metrics can be viewed for a configuration management<br />
project or through a computed field on a workflow and document project item. Metrics<br />
provide information on a project as of a specific checkpoint.<br />
<strong>MKS</strong> <strong>Integrity</strong> provides some standard physical metrics you can use. You can also create<br />
your own metrics using a third party tool.<br />
NOTE Metrics are only supported for database type repositories.<br />
Metrics Included With <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>MKS</strong> <strong>Integrity</strong> provides the following metrics:<br />
physical lines<br />
number of characters in text files<br />
number of bytes in binary files<br />
number of revisions in archives<br />
number of normal members<br />
number of subproject members<br />
number of checkpoints<br />
number of java source files
number of binary files<br />
number of text files<br />
number of C or CPP files<br />
largest number of members in any subproject<br />
largest number of subprojects in any subproject<br />
These metrics are calculated by the following event triggers:<br />
check in<br />
checkpoint<br />
add member<br />
Configuration Management Projects<br />
Metric calculations generated by operations in subprojects are automatically rolled up to the<br />
parent project.<br />
Tracking Project Metrics<br />
If you decide to track metrics for a project that has already been checkpointed, you can<br />
calculate metrics for existing checkpoints using the Calculate Project Metrics command in the<br />
GUI or the si calculateprojectmetrics command in the CLI.<br />
Viewing Project Metrics<br />
You can view the calculated metrics for a project in the Project Metrics view or through the<br />
si viewmetricsinfo CLI command.<br />
You can also view calculated metrics in the workflow and document project item that is<br />
associated with the configuration management project. The workflow and document project<br />
item must have an si project data type field that links it to the configuration management<br />
project and a computed field that displays the metric calculations that you want to view. For<br />
example, if you want to see the number of members in an configuration management project<br />
in the corresponding workflow and document project item, you would create a Number of<br />
Members field with the following expression:<br />
SIMetric("siproject-name","Number of Members")<br />
You could checkpoint the configuration management project nightly and update the build<br />
revision encoded in the si project field; so any changes in the number of members would be<br />
reflected in the workflow and document project item.<br />
For more information on creating si project fields for <strong>MKS</strong> <strong>Integrity</strong> items, see “Creating<br />
Fields” on page 127. For more information on creating computed fields for <strong>MKS</strong> <strong>Integrity</strong><br />
items, see “Creating Computed Fields” on page 313.<br />
281
Chapter 6: Projects<br />
282<br />
Using Third Party Metrics Tool<br />
You can use a third party tool to track additional configuration management metrics. Metrics<br />
tracked by a third party tool must be defined in <strong>MKS</strong> <strong>Integrity</strong> and recorded for a specific<br />
project checkpoint. You define a metric by specifying a name and description for it using the<br />
si createmetricinfo CLI command. To define a metric you need the Metrics<br />
permission. For more information, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and<br />
Configuration <strong>Guide</strong>.<br />
You can use a third party tool to calculate metrics for Java. For example, you can use a tool<br />
such as JavaNCSS 1 to calculate the number of Java source files in a project. You need to write<br />
a script to add the metrics calculated by a third party tool to a specific project checkpoint. For<br />
more information on creating a script for metrics, see the comments in the sample script<br />
metrics.js. You can update this file by adding your file suffix to one of the tables and<br />
creating a new JavaScript function to implement the metrics.<br />
NOTE If you run custom Java code from a script, your custom Java code can be put<br />
into the installdir/data/java/classes directory as individual class files or<br />
packaged as one or more JAR files in the installdir/data/java/jars directory.<br />
You can use both directories at the same time if you want some classes packaged up<br />
and some exposed individually.<br />
You can use a third party tool to calculate metrics for C or C++ in the context of a Sandbox.<br />
You add the calculated value of the metric to a project checkpoint using the<br />
si addprojectmetric CLI command. For more information on the CLI commands see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI Reference <strong>Guide</strong> for Configuration Management.<br />
Performance With Metrics<br />
There may be a performance impact when using project metrics. The first time you<br />
checkpoint a project with a large number of members that existed before implementing<br />
metrics, the metric calculation may take a significant amount of time. The increase in time is<br />
due to the need for the metrics to be initially computed for the pre-existing members, while<br />
subsequent metric calculations are aggregated for members of the project.<br />
Working With Subprojects<br />
<strong>MKS</strong> <strong>Integrity</strong> allows you to create large configuration management projects composed of<br />
smaller component projects. These smaller projects are known as subprojects. Subprojects<br />
behave in the same way as projects and can be accessed with most project and Sandbox<br />
commands.<br />
1 JavaNCSS is supported but not shipped with <strong>MKS</strong> <strong>Integrity</strong>.
Configuration Management Projects<br />
For example, you could have subprojects for the following types of components:<br />
source files for creating individual executables<br />
source files for common libraries<br />
HTML files<br />
graphic files<br />
documentation<br />
Each component usually has several related files. Each component can be kept in its own<br />
project. If you have two or more products that share these common components, you can<br />
create a separate master project for each product and include the projects for the common<br />
components as subprojects of each appropriate master project.<br />
NOTE Subprojects are not the same as project members. You can only perform<br />
project-level operations on subprojects.<br />
Creating Subprojects<br />
You create a new subproject, then add members and configure the subproject as necessary.<br />
For example, if you had a financial toolkit application that you wanted to add a new<br />
calculator application to, you would create a new subproject in the toolkit project to contain<br />
the calculator application source code.<br />
To create a subproject in the GUI, select the project or Sandbox to create a subproject in, and<br />
select Project > Subproject > Create.<br />
For information on the Change Package field, creating a change package, or the Create<br />
Subproject options see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Adding Subprojects<br />
When a subproject is dropped from a project, the subproject’s historical information remains.<br />
You can add the subproject back.<br />
To add a dropped subproject to a project in the GUI, select Project > Subproject > Add, and<br />
follow the instructions on the Add Subproject wizard.<br />
Selecting Subproject Type<br />
When adding a subproject you can specify one of the following types:<br />
Normal adds a working subproject based on the mainline.<br />
283
Chapter 6: Projects<br />
284<br />
Variant adds a subproject based on a specific development path.<br />
NOTE The Variant option is unavailable if there are no available development paths.<br />
For information on creating a development path, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User<br />
<strong>Guide</strong>.<br />
Build adds a static subproject based on a specific checkpoint of the master project that is<br />
used for building or testing the project, but not for further development. You can specify<br />
the checkpoint through its checkpoint number or label.<br />
Default adds a subproject as the same type as the parent project.<br />
NOTE If you do not select a subproject type, the subproject is added as the same type<br />
as the parent project.<br />
Specifying Subproject to Add<br />
You can type in or select the subproject to add. For detailed information about entering<br />
project paths and selecting projects, see the <strong>MKS</strong> <strong>Integrity</strong> Client <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
Using Change Packages<br />
For information on the Change Package field and creating a change package, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Adding Shared Subprojects<br />
A shared subproject is a subproject that is a member of more than one configuration<br />
management project. You can share a subproject between two or more projects by referencing<br />
the original subproject. A shared subproject allows you to access common members across<br />
many projects. Shared subprojects are not required to be located within the same directory<br />
structure or project hierarchy.<br />
To add a shared subproject, select the project or Sandbox you want to add the shared<br />
subproject to, and select Project > Subproject > Add Shared.<br />
Example<br />
Ryan maintains the North American and German Web sites for ABC Financial. Both Web<br />
sites are under version control and use the same images, but they contain different content.<br />
To avoid duplication and ensure both Web sites contain the same images, Ryan adds the<br />
images to a subproject and shares it between the two projects.<br />
Shared Project Behavior<br />
A shared subproject functions the same as an unshared subproject and is accessible by the<br />
same commands. The shared subproject continues to reside within its original master project,<br />
but is referenced by the other project and shown as a shared subproject.
Configuration Management Projects<br />
When working with shared subprojects, <strong>MKS</strong> <strong>Integrity</strong> uses the actual name of the subproject<br />
in the repository rather than its relative name in the project hierarchy for the purposes of<br />
resolving ACLs, policy statements, event triggers, and change package entries. This enhances<br />
the portability of change packages across different projects.<br />
You cannot import members into a shared subproject from its shared location.<br />
Shared Projects From Source <strong>Integrity</strong> Standard<br />
Shared subprojects (out-of-tree subprojects) that were created in Source <strong>Integrity</strong> Standard<br />
(an earlier version of <strong>MKS</strong> <strong>Integrity</strong>) are detected as they are accessed by <strong>MKS</strong> <strong>Integrity</strong><br />
without disrupting the operation. The format of these subprojects is retained until you<br />
change or update it to the new format by reconfiguring it.<br />
Selecting Subproject Type<br />
When adding a subproject you can specify one of the following types:<br />
Normal adds a subproject based on the working subproject on the mainline<br />
Variant adds a subproject based on a specific development path of the master project.<br />
NOTE The Variant option is unavailable if there are no available development paths.<br />
For information on creating a development path, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User<br />
<strong>Guide</strong>.<br />
Build adds a static subproject based on a specific checkpoint of the master project that is<br />
used for building or testing the project, but not for further development. You can specify<br />
the checkpoint through its checkpoint number or label.<br />
Default adds a subproject as the same type as the parent project.<br />
NOTE If you do not select a subproject type, the subproject is added as the same type<br />
as the parent project.<br />
Specifying the Shared Subproject<br />
You can type in or select the subproject for sharing. For detailed information about entering<br />
project paths and selecting projects, see the <strong>MKS</strong> <strong>Integrity</strong> Client <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
Specifying Destination Directory<br />
When you type the subdirectory for the shared subproject, the subproject name must reside<br />
in the project directory.<br />
Using Change Packages<br />
For information on the Change Package field or creating a change package, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
285
Chapter 6: Projects<br />
286<br />
Configuring Subprojects<br />
Once you create or add a subproject, you can modify the type to suit your needs. For<br />
example, you can change a normal subproject to a build subproject to suspend development,<br />
or you can change a variant subproject to a normal subproject to continue development on<br />
the main trunk.<br />
Interface Procedure<br />
GUI Select Project > Subproject > Configure.<br />
Web Select Project > Configure Subproject.<br />
Example<br />
Jen wants the ABC Tools development team to work with revision 1.2 of amortization/<br />
project.pj, the last known stable version of the code. Jen does not want the general<br />
development team to do any further development on this release, so she configures the<br />
amortization/project.pj subproject to be a build subproject.<br />
Changes Between Configurations<br />
Any changes you make when configuring a subproject affects the project as a whole and any<br />
shared subprojects within it. Deltas reflecting these changes appear in the Project or Sandbox<br />
view. Some differences you may see include:<br />
Members existing in the original version and configured version of the subproject<br />
display a delta if the working revision in the Sandbox is different from the new member<br />
revision.<br />
Members that did not exist in the original version of the subproject, but do exist in the<br />
configured subproject, display a delta to indicate that the Sandbox does not have a<br />
working file for the new member.<br />
Members that existed in the original version of the subproject, but do not exist in the<br />
configured subproject, display as former members.<br />
Subprojects that existed as members in the original version of the subproject, but do not<br />
exist in the configured subproject, display as former subprojects.<br />
To resolve the differences, resynchronize the subSandbox.<br />
Configuring Shared Subprojects<br />
When configuring shared subprojects, remember that each shared subproject is configured<br />
independently. This means that when you configure a shared subproject, the reconfiguration<br />
does not change all instances of that subproject. For example, if the subproject tools/<br />
project.pj is shared in the two projects, Aurora/project.pj and Libra/project.pj, a<br />
change to the configuration of Aurora/tools/project.pj does not affect the configuration<br />
of Libra/tools/project.pj.
Source <strong>Integrity</strong> Standard Subprojects<br />
Configuration Management Projects<br />
Configured subprojects or frozen subprojects created in Source <strong>Integrity</strong> Standard (an earlier<br />
version of <strong>MKS</strong> <strong>Integrity</strong>) are detected as they are accessed by <strong>MKS</strong> <strong>Integrity</strong> without<br />
disrupting the operation. The format of these subprojects is retained until you change or<br />
update it to the new format by reconfiguring it.<br />
Selecting Subproject Configuration Type<br />
When configuring a subproject you can specify one of the following types:<br />
Normal configures a subproject to the working subproject on the mainline.<br />
Variant configures a subproject to a specific development path.<br />
NOTE The Variant option is unavailable if there are no available development paths.<br />
For information on creating a development path, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User<br />
<strong>Guide</strong>.<br />
Build configures a static subproject to a specific checkpoint of the project that is used for<br />
building or testing the project, but not for further development. You can specify the<br />
checkpoint through its checkpoint number or label.<br />
Using Change Packages<br />
For information on the Change Package field or creating a change package, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Configuring Subproject Using CLI<br />
For information on how to configure a subproject in the CLI, see the<br />
si configuresubproject command in the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI Reference <strong>Guide</strong> for<br />
Configuration Management.<br />
Sharing Archives With Other Projects<br />
Teams within organizations often reference the same files for several different products. This<br />
section describes two possible approaches to sharing resources using a simplified example in<br />
which two teams use a single header file.<br />
In this scenario:<br />
Team 1 works within configuration management project team1.pj and has one<br />
member, code.c.<br />
Team 2 has its own project, team2.pj, and has two members, program.c and<br />
header.h.<br />
287
Chapter 6: Projects<br />
288<br />
Team 2 was the first to use header.h and has the original file in its subdirectory. Team 1<br />
needs to access header.h for code.c.<br />
<strong>MKS</strong> <strong>Integrity</strong> allows you to control archive sharing. For more information on the<br />
permissions required to restrict archive sharing, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation<br />
and Configuration <strong>Guide</strong>.<br />
Some general administrative concerns with sharing resources are as follows:<br />
File ownership is uncertain<br />
Normally the team that first creates a resource owns it. However, when a resource is<br />
shared, its ownership comes into question. Who is authorized to make updates to<br />
header.h? Team 2 originally owned the file but team 1 may now need to make changes<br />
to it. Alternately, team 2 may want to retain ownership of header.h, restricting changes<br />
from team 1 members.<br />
Once an archive is shared, the ACLs used to control permissions for that archive depend<br />
on how the shared archive is accessed. For example, if the archive is accessed through<br />
team1.pj, the ACLs for team1.pj control permissions, and, if the archive was accessed<br />
through team2.pj, the ACLs for team2.pj control permissions.<br />
Update and compatibility concerns<br />
When team 2 checks in a new version of header.h, it normally only tests its correctness<br />
and compatibility with program.c. The changes may not be compatible with team 1’s<br />
code.c and could lead to a loss of functionality for code.c, if team 1 were to accept<br />
team 2’s changes. This could be solved by using different variants of the shared<br />
subproject for team 1 and team 2.<br />
A related concern is the stability of the changes made to a shared resource. Teams 1<br />
and 2 may have different release schedules and criteria. Even if team 2’s changes to<br />
header.h were technically compatible with team 1’s project, team 1 may still hesitate to<br />
accept any changes.<br />
NOTE ACLs on shared subprojects are based on the canonical name of the<br />
subproject. For example, if project c:/test/project.pj accesses d:/common/<br />
library.pj as a shared subproject, the ACL would be based on the name for d:/<br />
common/library.pj.<br />
The next section presents two possible solutions and briefly explores the related<br />
administrative concerns, along with ways you can use <strong>MKS</strong> <strong>Integrity</strong> to help.
Shared Subprojects<br />
Configuration Management Projects<br />
A possible solution is to create a shared subproject that is a component in team1.pj and<br />
team2.pj. For example, the following shows the shared subproject header.pj that allows<br />
both teams to access the header files that are common to both projects.<br />
NOTE Wherever possible, it is preferable to share entire subprojects rather than<br />
individual archives. For example, if you have 30 common files, it is preferable to<br />
group these into a subproject and share this subproject rather than sharing 30 files<br />
individually.<br />
When carrying out development in this structure, users create a Sandbox of their respective<br />
master projects and recurse into the relevant subprojects, including the shared subproject,<br />
header.pj.<br />
Common Projects<br />
Another alternative is to use common projects. You can create a master project that contains<br />
three projects (team1.pj, team2.pj, and header.pj) as subprojects.<br />
In this structure, ownership of the shared resources is flexible. Both teams may be given<br />
ownership and right to modifications on the common project.<br />
Alternatively, you could use ACL permissions to grant ownership and modification rights to<br />
one team but not to the other. This solution suggests a second alternative where a separate<br />
team is created with responsibility for all changes in the common project. This alternative<br />
also addresses the compatibility issue in that the team making changes in the common project<br />
should be aware of the other projects that include the common project as a subproject. This<br />
ensures compatibility.<br />
Teams 1 and 2 can now focus on updating their own code, with general confidence that<br />
shared files are compatible with their code. Any problems in compatibility can be brought to<br />
the attention of the compatibility team who can deal with the problems.<br />
When carrying out development in this structure, users create a Sandbox of the master<br />
project and recurse into the relevant subprojects. There may be some resistance to the idea of<br />
working with files located in different subprojects. This change in working environment<br />
requires time to adjust to a new operating procedure.<br />
Recursing from the master project raises the concern of updates and release criteria.<br />
However, this solution also offers some control over that concern. There is no requirement<br />
for users within a team to start from the master project. Instead, a user can create a Sandbox<br />
of their team’s project and then create a separate Sandbox of the common project. This<br />
separation allows for flexibility in deciding on the version of the common project that is<br />
desired.<br />
In this situation, the common project has its own release cycles and is checkpointed on each<br />
cycle. Each team can then choose to create a build Sandbox of the common project based on a<br />
given release of the common resources and use that in their development.<br />
289
Chapter 6: Projects<br />
290<br />
Alternatively, a team may want to continue development within the common project from a<br />
given release baseline, while isolating their changes from other teams and other team’s<br />
changes from the common project. The team can then create and use a variant Sandbox of the<br />
common project.<br />
A final alternative is to create a normal Sandbox from the common project and use it as is,<br />
accepting that it may be in a state of flux. This alternative may be acceptable, and even<br />
desirable, in the early stages of development. This type of project structure provides this<br />
flexibility and even allows for decisions to be changed during development.<br />
Potential Problems With Common Projects<br />
Although common projects provide a flexible method for managing development processes,<br />
two issues may arise when using this approach:<br />
Versioning of the common project is not team specific<br />
The version of the common project used by an individual team is not automatically<br />
referenced with that team’s project, especially when you are using a build or variant<br />
Sandbox of the common project to ensure stability and isolate changes from other teams.<br />
Each team must keep track of the version of the common project specific to their project.<br />
One solution is to use different variants of the shared subproject for each team.<br />
Another solution is to record the version of the common project in the build files<br />
maintained by the team. These build files can then be added to and archived with the<br />
team’s project thereby serving as a permanent record of the complete build environment<br />
including the version of the common project.<br />
Changes to build specifications<br />
This solution requires changes to build specifications because working file locations are<br />
changed.<br />
<strong>MKS</strong> <strong>Integrity</strong> can manage source files anywhere on your server’s repository. <strong>MKS</strong> <strong>Integrity</strong><br />
identifies project members in the same directory or its subdirectories using a path relative to<br />
the project file.
C HAPTER SEVEN<br />
Computed Expressions<br />
Performing Calculations Between Fields<br />
7<br />
In addition to recording information in fields, <strong>MKS</strong> <strong>Integrity</strong> can also perform<br />
calculations between fields, storing the result as a read-only value in a computed field or<br />
displaying it as a read-only value when you run a chart or report. For example, in a<br />
Feature item, <strong>MKS</strong> <strong>Integrity</strong> can add the values in the QA Estimated Time and<br />
Development Estimated Time fields, storing the result in the Total Estimated Time field<br />
(the computed field). Storing results in computed fields is useful for historical reporting.<br />
Another example of using computed expressions is to create a report that adds the<br />
Budget fields in a list of Project items to display a budget total. Performing calculations<br />
in charts and reports is useful if your administrator has not created computed fields<br />
and/or you want to reduce the dependencies of storing results in computed fields.<br />
In addition to calculating numeric values, you can also calculate text values by<br />
combining text and numeric fields with text functions. For example, by combining an<br />
item’s ID with the appropriate text functions, <strong>MKS</strong> <strong>Integrity</strong> can create a unique<br />
identifier for an item, such as REQ-00001234, and display it in a computed field.<br />
This chapter contains the following topics:<br />
“Computed Expression Types” on page 292<br />
“Computed Expression Rules” on page 293<br />
“Creating Computed Fields” on page 313<br />
“Calculating Static Computed Fields” on page 315<br />
“Using Computed Fields to Chart Historical Trends” on page 316<br />
“Scheduling Computation Times” on page 318<br />
“Using Computed Fields to Calculate State Metrics” on page 319<br />
“Security” on page 321<br />
“Performance and Scalability” on page 321<br />
291
Chapter 7: Computed Expressions<br />
Where to Go Next<br />
292<br />
The following table summarizes the steps you should follow to set up computed expressions:<br />
To Do This … See …<br />
Learn the available types of computed<br />
expressions.<br />
Computed Expression Types<br />
To perform calculations between fields, <strong>MKS</strong> <strong>Integrity</strong> uses computed expressions similar to<br />
any expression you would find in a programming language. Using specific syntax, operators,<br />
functions, and operations, you can create simple or complex expressions that calculate field<br />
information in a single item or against a list of items.<br />
You can create two types of computed expressions:<br />
“Computed Expression Types” on page 292<br />
Construct rules for computed expressions. “Computed Expression Rules” on page 293<br />
Create a computed field. “Creating Computed Fields” on page 313<br />
Calculate a static computed field. “Calculating Static Computed Fields” on<br />
page 315<br />
Chart historical trends. “Using Computed Fields to Chart Historical<br />
Trends” on page 316<br />
Calculate state metrics. “Using Computed Fields to Calculate State<br />
Metrics” on page 319<br />
Understand implications on performance and<br />
scalability of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> when<br />
using computed expressions.<br />
“Performance and Scalability” on page 321<br />
Intra-item expressions perform calculations between fields in a single item, storing the<br />
result in a computed field, for example, adding the QA Estimated Time and Development<br />
Estimated Time fields in a Feature item to produce a value in the Total Estimated Time<br />
field (the computed field). Computed fields are created by administrators in the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client. To users computed fields display as read-only<br />
fields in items; however, administrators can configure the field visibility. For more<br />
information on creating computed fields, see “Creating Computed Fields” on page 313.<br />
Intra-item expressions can also retrieve information from an item using external<br />
information functions, such as CPECount(), which counts the number of change package<br />
entries in an item. Using external information functions in expressions allow you to<br />
retrieve metrics about your workflow. Once you define an intra-item expression using<br />
external information functions, you can use queries, charts, reports, and dashboards to
Computed Expression Rules<br />
collect the metric data and report on it. For more information on state metrics, see “Using<br />
Computed Fields to Calculate State Metrics” on page 319.<br />
Inter-item or aggregate expressions use aggregate functions, such as sum or average, to<br />
perform calculations against fields in a list of items. For example, using the sum(field)<br />
aggregate function in a report, you can add the Estimated Cost field in a list of Project<br />
items to produce a total estimated cost. Aggregate expressions can be created in a chart<br />
or report by any user in the <strong>MKS</strong> <strong>Integrity</strong> Client or <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong><br />
Client. For more information on using aggregate expressions in charts and reports, see<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Computed Expression Rules<br />
General Syntax<br />
You must create computed expressions using syntax, operators, functions, and operations.<br />
Computed expressions use the following general syntax:<br />
To specify field names, surround the field name with double quotes, for example,<br />
"Actual Cost".<br />
Spaces are ignored, except within quotes, for example, "Defect Count".<br />
Identifiers followed by “(“ (a parenthesis) are considered functions.<br />
Identifiers not followed by a parenthesis are considered field names.<br />
Spaces and special characters within quotes are acceptable.<br />
Computed fields are valid as fields used in another computed field or computed<br />
expression; however, they may not recurse.<br />
Arithmetic Operators<br />
The following arithmetic operators are supported in computed expressions:<br />
* (multiplication)<br />
/ (division)<br />
+ (addition)<br />
- (subtraction)<br />
- (unary negation)<br />
Boolean-exp?true_exp:false_exp (conditional ternary)<br />
293
Chapter 7: Computed Expressions<br />
Boolean Operators<br />
294<br />
The following Boolean operators are supported in computed expressions:<br />
== (equal)<br />
= (contains)<br />
!= (not equal)<br />
(does not contain)<br />
< (less than)<br />
> (greater than)<br />
= (greater than or equal to)<br />
and<br />
or<br />
Empty Fields<br />
For Boolean fields, two keywords are Boolean constants: true and false. When a computed<br />
field is marked against a Boolean field, the result of the computed expression must be a<br />
Boolean value, for example:<br />
expression boolean-operator expression<br />
In <strong>MKS</strong> <strong>Integrity</strong>, a field without a value is referred to as empty. A computed expression that<br />
incorporates a field with an empty value results in an empty value, except in aggregate<br />
expressions.<br />
For example, to determine if the Project End Date date field is empty, type:<br />
or<br />
"Project End Date"-today() > 0<br />
"Project End Date" - today()
Dates, Times, and Time Zones<br />
The following rules apply to dates, times, and time zones:<br />
Computed Expression Rules<br />
Dates and dates/time are considered separate date types in computed expressions, and<br />
cannot be assigned to one another.<br />
Displayed date fields do not change based on the time zone that a user is operating in;<br />
however, displayed date/time fields and time entries vary based on the time zone that a<br />
user is operating in.<br />
Computed expressions return dates/times in the <strong>MKS</strong> <strong>Integrity</strong> Client’s time zone and<br />
perform calculations in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>’s time zone where appropriate.<br />
Computed expressions do not include a function for converting date/time information<br />
to date-only. This applies in all cases where an expression returns a timestamp (date plus<br />
time) value. Where date/time information is required, use the computed expression<br />
with a timestamp field. For more information on functions, see “Function Classes” on<br />
page 296.<br />
Date expressions accept all standardized date and timestamp formats.<br />
Timestamp Operations<br />
The following operations are supported with timestamps in computed expressions:<br />
IMPORTANT You cannot mix dates and timestamps.<br />
timestamp + integer constant; integer constant + timestamp<br />
timestamp - integer constant<br />
timestamp("timestamp-constant")<br />
timestamp - timestamp<br />
timestamps can be subtracted or added to a constant integer, for example, now()+5 or<br />
now() - 5<br />
Integer constants are treated in units of days; for example, timestamp + integer constant<br />
takes the specified time and adds a specified number of days. When subtracting two<br />
timestamps, the number of days between the two dates rounded to the nearest day is the<br />
result. Using other operators or a floating point results in an error.<br />
295
Chapter 7: Computed Expressions<br />
Date Operations<br />
296<br />
To perform date manipulation in computed expressions, the following date operations are<br />
supported:<br />
datediff() returns the difference between two specified timestamps or dates, or a<br />
combination of the two as an integer in seconds.<br />
now() returns the current timestamp.<br />
today() returns the current date.<br />
User and Group Fields<br />
Data Conversion<br />
You can compare single- and multi-valued user and group fields in computed expressions,<br />
for example, "Assigned User" = jriley, or "Assigned Group" = Development. By<br />
creating a computed expression that includes a user or group field comparison, you can<br />
incorporate the result of the computed field into an editability rule.<br />
NOTE You cannot compare two user fields in a computed expression, for example,<br />
“Assigned User” = “Created By”.<br />
TIP You can also use the symbolic me user name to indicate the user retrieving the<br />
item.<br />
The following data conversions occur when combining various field data types in a<br />
computed expression:<br />
Function Classes<br />
Two integers produce an integer.<br />
Two floating points produce a floating point.<br />
An integer and floating point produce a floating point.<br />
Constant integers can be added to timestamps, for example, 5+now().<br />
Timestamps using other operators produce an error.<br />
In a computed expression, you can use the following function classes:
Computed Expression Rules<br />
An arithmetic function can be applied in any computed expression type, for example,<br />
adding two field values and rounding the resulting value to the nearest integer. For a<br />
complete list of arithmetic functions, see “Arithmetic Operators” on page 293.<br />
NOTE Node, segment, and shared item, and test types are used by the document<br />
model. To learn more these types and the document model, see “Setting Up<br />
Documents” on page 97.<br />
A day/time function is used to return or quantify date/time information. For example, the<br />
number of days an item spends in a specific state, or the earliest date/time recorded<br />
against an item. For a complete list of date/time functions, see “Date/Time Functions”<br />
on page 299.<br />
An aggregate function is only permitted when performing an aggregate operation, for<br />
example, using the sum function to add the expressions calculated against each item that<br />
the aggregation is running against. Attempting to use an aggregate function for a normal<br />
expression results in an error. For a complete list of aggregate functions, see “Function<br />
Classes” on page 296.<br />
A text function is used to perform text calculations with text and numeric fields. For<br />
example, using an item’s ID to create a computed field that calculates a unique identifier<br />
for an item, such as REQ-00001234.<br />
To perform text calculations, string expressions in text functions accept short and long<br />
text fields. For a complete list of text functions, see “Function Classes” on page 296.<br />
CAUTION Text strings in text calculations cannot exceed 1 kilobyte. Exceeding this<br />
limit may cause the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> to fail.<br />
An external information function can only operate against a single item and allows you to<br />
extract information from an item, for example, how many times the item has been in the<br />
Submit state. Attempting to use an external information function in an aggregate<br />
expression results in an error. For example, SICPEntryCount()is an invalid aggregate<br />
expression, but sum(SICPEntryCount())is valid because the argument to an aggregate<br />
function is a normal expression. SICPEntryCount() is part of the normal expression<br />
and is therefore valid.<br />
For example, it is valid to use DaysInState() when accessing a single item, since it<br />
results in a single number; however, if you use it against a list of items, no results can be<br />
returned. To apply an external information function to each item in a list, embed it in an<br />
aggregate function, for example, avg(DaysInState()).<br />
For a complete list of external information functions, see “Function Classes” on page 296.<br />
297
Chapter 7: Computed Expressions<br />
298<br />
Arithmetic Functions<br />
Name and Description Return Value<br />
abs(numeric-expression)<br />
Returns absolute value of numeric expression.<br />
sign(numeric-expression)<br />
Returns -1 if expression evaluates to < 0, 0 if it evaluates to 0, and +1 if it evaluates to<br />
positive number.<br />
round(numeric-expression)<br />
Returns expression rounded to nearest integer.<br />
truncate(numeric-expression)<br />
Returns expression truncated to nearest integer.<br />
floor(numeric-expression)<br />
Returns largest integer less than or equal to given numeric expression.<br />
ceil(numeric-expression)<br />
Returns smallest integer greater than or equal to given numeric expression.<br />
mod(numeric-expression1, numeric-expression2)<br />
Returns remainder of first expression divided by second expression.<br />
If either expression is not integer, then expression is:<br />
(abs(e1) - floor(abs(e1)/abs(e2)) * abs(e2)) * sign(e1)<br />
isEmpty(expression1, expression2)<br />
First expression evaluated. If result not empty, it becomes return value for function. If<br />
empty, second expression evaluated and is return value for function. Both expressions<br />
must evaluate to same type. Expression can be numeric, time, or Boolean.<br />
emptyint()<br />
Returns an empty value in an integer field.<br />
emptyfloat()<br />
Returns an empty value in a floating point field.<br />
emptytime()<br />
Returns an empty value in a date/time field.<br />
emptydate()<br />
Returns an empty value in a date field.<br />
emptylogical()<br />
Returns an empty value in a logical field.<br />
emptytext()<br />
Returns an empty value in a text field.<br />
emptyuser()<br />
Returns an empty value in a user field.<br />
Integer or floating<br />
point, same as<br />
expression<br />
Integer or floating<br />
point, same as<br />
expression<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer if both<br />
expressions integers;<br />
otherwise, floating<br />
point<br />
Type in expression<br />
none<br />
none<br />
none<br />
none<br />
none<br />
none<br />
none
emptygroup()<br />
Returns an empty value in a group field.<br />
timestamp(quoted-string)<br />
Converts supplied string into timestamp constant. Using Java SimpleDateFormat,<br />
following formats are attempted in order until one succeeds:<br />
Java DateTimeInstance(LONG, LONG)<br />
Java DateTimeInstance(SHORT, SHORT)<br />
MMM d, yyyy hh:mm a<br />
MMM d, yyyy HH:mm<br />
MMM d, yyyy HH:mm:ss<br />
Note: Parsing done on the client using client's locale. Timestamp evaluated into timestamp<br />
constant during parsing. When expression displayed, displays in standard format for<br />
locale.<br />
now()<br />
Returns current time.<br />
Note: Current time is time when expression evaluated not parsed. To return number of<br />
days an item has existed, type:<br />
now() - "Created Date"<br />
SelectionCount(field-name)<br />
Returns the number of entries selected in a multi-valued field on an item. If the field is<br />
empty, returns 0; if the field is not empty but is not multi-valued, returns 1.<br />
Not valid for attachment, relationship, or computed fields.<br />
DateDiff(starttime, endtime)<br />
Returns number of seconds between two dates with times. If starttime larger than<br />
endtime, result positive, otherwise negative.<br />
Date/Time Functions<br />
Computed Expression Rules<br />
Name and Description Return Value<br />
none<br />
Timestamp<br />
Timestamp<br />
Integer<br />
Integer<br />
Name and Description Return Value<br />
DaysInState(state-name)<br />
Returns number of days item in specific state rounded to nearest day. Individual state<br />
times are added together in seconds; the resulting sum is rounded to days.<br />
To specify unspecified state, type "Unspecified", for example,<br />
DaysInState("Unspecified").<br />
DaysInPhase(phase field name, phase name)<br />
Returns number of days item in specific phase rounded to nearest day. Individual phase<br />
times are added together in seconds; the resulting sum is rounded to days.<br />
DaysCurrentState()<br />
Returns number of days item in current state rounded to nearest day.<br />
To specify unspecified state, type "Unspecified", for example,<br />
DaysCurrentState("Unspecified").<br />
Integer<br />
Integer<br />
Integer<br />
299
Chapter 7: Computed Expressions<br />
Name and Description Return Value<br />
DayOfYear(date/timestamp/field)<br />
Returns the day of the year for the specified date.<br />
dayOfWeek(date/timestamp/field)<br />
Returns the day of the week for the specified date. Sunday is 1, Monday is 2, and so on.<br />
weekOfYear(date/timestamp/field)<br />
Returns the week of the year for the specified date.<br />
monthOfYear(date/timestamp/field)<br />
Returns the month of the year for the specified date.<br />
weeksDiff(dateA, dateB)<br />
Returns the number of weeks between two specified dates.<br />
Note: This is the number of actual weeks, not the number of days divided by 7.<br />
monthsDiff(dateA, dateB)<br />
Returns the number of months between two specified dates.<br />
Note: This is the number of actual months, not the number of days divided by 30.<br />
weekdaysDiff(dateA, dateB)<br />
Returns the number of week days between two specified dates. Saturdays and Sundays<br />
are not included.<br />
DayOfWeekName(date/timestamp)<br />
Returns day of week for the specified date or date and time, for example, Monday.<br />
getDay(date/timestamp/field)<br />
Returns the date for the specified date or date and time, for example, 23.<br />
getYear(date/timestamp/field)<br />
Returns the date for the specified date or date and time, for example, <strong>2009</strong>.<br />
MonthOfYearName(date/timestamp/field)<br />
Returns month of the year for the specified date or date and time, for example, October.<br />
getHour(timestamp/field)<br />
Returns the hour for the specified time, for example, 2.<br />
Note: Hours are specified in 24-hour time. For example, midnight is 0 and 7pm is 19.<br />
getMinute(timestamp/field)<br />
Returns the minute for the specified time, for example, 05.<br />
getSecond(timestamp/field)<br />
Returns the second for the specified time, for example, 33.<br />
DaysCurrentPhase(phase-field-name)<br />
Returns number of days item in current phase rounded to nearest day.<br />
dateFirstEntered(state-name)<br />
Returns date specified state first entered.<br />
300<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Text<br />
Integer<br />
Integer<br />
Text<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Timestamp
dateLastEntered(state-name)<br />
Returns date specified state last entered.<br />
SecondsInState<br />
Returns number of seconds item in specific state. If item in state multiple times, seconds<br />
for each occurrence added together.<br />
To specify unspecified state, type "Unspecified", for example,<br />
SecondsInState("Unspecified").<br />
SecondsInPhase<br />
Returns number of seconds item in specific phase. If item in phase multiple times,<br />
seconds for each occurrence added together.<br />
To specify unspecified phase, type "Unspecified", for example,<br />
SecondsInPhase("Unspecified").<br />
SecondsCurrentState<br />
Returns number of seconds item in current state.<br />
SecondsCurrentPhase<br />
Returns number of seconds item in current phase.<br />
sumTimeEntry[(date("startdate"),date("enddate"))]<br />
or<br />
sumTimeEntry[(symbolicdate(),symbolicdate())]<br />
Returns total time spent (rounded to hour) on item in optional timeframe.<br />
sumTimeEntryByUser(user[,user...]<br />
[,date("startdate"),date("enddate")]<br />
or<br />
sumTimeEntryByUser(user[,user...]<br />
[,symbolicdate(),symbolicdate()]<br />
Returns total time spent (rounded to hour) on item by specified users in optional<br />
timeframe.<br />
Computed Expression Rules<br />
Name and Description Return Value<br />
sumTimeEntryByGroup(group[,group...]<br />
[,date("startdate"),date("enddate")])<br />
or<br />
sumTimeEntryByGroup(group[,group...]<br />
[,symbolicdate(),symbolicdate()])<br />
Returns total time spent (rounded to hour) on item by specified groups in optional<br />
timeframe.<br />
sumTimeEntryByPhase(phaseField,<br />
phase[,date("startdate"),date("enddate")])<br />
or<br />
sumTimeEntryByPhase(phaseField,<br />
phase[,symbolicdate(),symbolicdate()])<br />
Returns total time spent (rounded to hour) on item while in phase for specified phase<br />
field.<br />
Timestamp<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
301
Chapter 7: Computed Expressions<br />
Name and Description Return Value<br />
sumTimeEntryByPhaseByUser(phaseField, phase,<br />
user[,user...][,date("startdate"),<br />
date("enddate")])<br />
or<br />
sumTimeEntryByPhaseByUser(phaseField, phase,<br />
user[,user...][,symbolicdate(),symbolicdate()])<br />
Returns total time spent (rounded to hour) on item by specified users while in phase for<br />
specified phase field.<br />
sumTimeEntryByPhaseByGroup(phaseField, phase,<br />
group[,group...][,date("startdate"),<br />
date("enddate")])<br />
or<br />
sumTimeEntryByPhaseByGroup(phaseField, phase,<br />
group[,group...][,symbolicdate(),<br />
symbolicdate()])<br />
Returns total time spent (rounded to hour) on item by specified groups while in phase for<br />
specified phase field.<br />
sumTimeEntryByState(state[,date("startdate"),<br />
date("enddate")])<br />
or<br />
sumTimeEntryByState(state[,symbolicdate(),<br />
symbolicdate()])<br />
Returns total time spent (rounded to hour) on item while in specified state.<br />
Note: <strong>MKS</strong> <strong>Integrity</strong> gathers time entries on a daily basis and assigns the time entry to<br />
the date (to midnight). <strong>MKS</strong> <strong>Integrity</strong> records state changes to the exact milli-second.<br />
Using time entries to determine how long an item has been in a particular state is only an<br />
approximation. Therefore, this function is only guaranteed correct if the item contains<br />
only one state transition for the entire day.<br />
For example, an item is posted, moves through several states (Investigate,<br />
In Development, Development Done), and is closed (Built) in a single day. Then,<br />
the user working on the item enters the total time spent on the item in a time<br />
entry. Because <strong>MKS</strong> <strong>Integrity</strong> cannot subdivide this time entry (hours spent on the item)<br />
into multiple pieces of information (hours spent in each state), the<br />
sumTimeEntryByState function assigns the time entry to a single state – the state that<br />
the item had on midnight on the day of the entry (Built).<br />
To specify unspecified state, type "Unspecified", for example,<br />
sumTimeEntryByState("Unspecified").<br />
sumTimeEntryByStateByUser(state,<br />
user[,date("startdate"),date("enddate")])<br />
or<br />
sumTimeEntryByStateByUser(state<br />
(user[,symbolicdate(),symbolicdate()])<br />
Returns total time spent (rounded to hour) on item by specified users while in specified<br />
state.<br />
302<br />
Integer<br />
Integer<br />
Integer<br />
Integer
sumTimeEntryByStateByUser(state,<br />
group[,date("startdate"),date("enddate")])<br />
or<br />
sumTimeEntryByStateByUser(state,<br />
group[,symbolicdate(),symbolicdate()])<br />
Returns total time spent (rounded to hour) on item by specified groups while in specified<br />
state.<br />
countTimeEntry(date("startdate"),<br />
date("enddate"))<br />
or<br />
countTimeEntry(symbolicdate(),symbolicdate())<br />
Returns number of time entries for item with duration greater than zero in optional<br />
timeframe.<br />
countTimeEntryByUser(user[,user...]<br />
[,date("startdate"),date("enddate")])<br />
or<br />
countTimeEntryByUser(user[,user...]<br />
[,symbolicdate(),symbolicdate()])<br />
Returns number of time entries for item by specified users with duration greater than zero<br />
in optional timeframe.<br />
countTimeEntryByGroup(group[,group...]<br />
[,date("startdate"),date("enddate")])<br />
or<br />
countTimeEntryByGroup(group[,group...]<br />
[,symbolicdate(),symbolicdate()])<br />
Returns number of time entries for item by specified groups with duration greater than<br />
zero in optional timeframe.<br />
Aggregate Functions<br />
Computed Expression Rules<br />
Name and Description Return Value<br />
firstTimeEntryDate()<br />
Returns earliest date time recorded against item.<br />
lastTimeEntryDate()<br />
Returns latest date time recorded against item.<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Name and Description Return Value<br />
sum(numeric-expression)<br />
Adds expressions calculated against each item that the aggregation running against.<br />
avg(numeric-expression)<br />
Adds expressions calculated against each item that the aggregation running against,<br />
then divide by number of non-empty entries.<br />
Date<br />
Date<br />
Integer or floating point,<br />
same as expression<br />
Floating point<br />
303
Chapter 7: Computed Expressions<br />
Name and Description Return Value<br />
min(numeric-expression or timestamp)<br />
Finds smallest of expressions from each item that the aggregation running against. If all<br />
expressions empty, result empty.<br />
max(numeric-expression or timestamp)<br />
Finds largest of the expressions from each item that the aggregation is running against. If<br />
all expressions are empty, the result is empty.<br />
count()<br />
Returns number of items that the aggregation is running against.<br />
sumTimeEntrySecs<br />
[(date("startdate"),date("enddate"))]<br />
or<br />
sumTimeEntrySecs<br />
[(symbolicdate(),symbolicdate())]<br />
Returns the total time spent (in seconds) on an item in an optional timeframe.<br />
sumTimeEntrySecsByUser<br />
(user[,user...][,date("startdate"),date("enddate")]<br />
or<br />
sumTimeEntrySecsByUser<br />
(user[,user...][,symbolicdate(),symbolicdate()]<br />
Returns the total time spent (in seconds) on an item by specified users in an optional<br />
timeframe.<br />
sumTimeEntrySecsByGroup<br />
(group[,group...][,date("startdate"),date("enddate")])<br />
or<br />
sumTimeEntrySecsByGroup<br />
(group[,group...][,symbolicdate(),symbolicdate()])<br />
Returns the total time spent (in seconds) on an item by specified groups in an optional<br />
timeframe.<br />
sumTimeEntrySecsByState<br />
(state[,date("startdate"),date("enddate")])<br />
or<br />
sumTimeEntrySecsByState<br />
(state[,symbolicdate(),symbolicdate()])<br />
Returns the total time spent (in seconds) on an item while in the specified state.<br />
sumTimeEntrySecsByStateByUser<br />
(state, user[,date("startdate"),date("enddate")])<br />
or<br />
sumTimeEntrySecsByStateByUser<br />
(state (user[,symbolicdate(),symbolicdate()])<br />
Returns the total time spent (in seconds) on an item by specified users while in the<br />
specified state.<br />
304<br />
Integer, float point, or<br />
timestamp same as<br />
expression<br />
Integer, floating point,<br />
or timestamp same as<br />
expression<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer
sumTimeEntrySecsByStateByGroup<br />
(state, group[,date("startdate"),date("enddate")])<br />
or<br />
sumTimeEntrySecsByStateByGroup<br />
(state, group[,symbolicdate(),symbolicdate()])<br />
Returns the total time spent (in seconds) on an item by specified groups while in the<br />
specified state.<br />
sumTimeEntrySecsByPhase<br />
(phaseField, phase[,date("startdate"),date("enddate")])<br />
or<br />
sumTimeEntrySecsByPhase<br />
(phaseField, phase[,symbolicdate(),symbolicdate()])<br />
Returns the total time spent (in seconds) on an item while in phase for the specified<br />
phase.<br />
sumTimeEntrySecsByPhaseByUser<br />
(phaseField, phase,<br />
user[,user...][,date("startdate"),date("enddate")])<br />
or<br />
sumTimeEntrySecsByPhaseByUser<br />
(phaseField, phase,<br />
user[,user...][,symbolicdate(),symbolicdate()])<br />
Returns the total time spent (in seconds) on an item by specified users while in phase for<br />
the specified phase.<br />
Computed Expression Rules<br />
Name and Description Return Value<br />
sumTimeEntrySecsByPhaseByGroup<br />
(phaseField, phase, group[,group...][,date("startdate"),<br />
date("enddate")])<br />
or<br />
sumTimeEntrySecsByPhaseByGroup<br />
(phaseField, phase,<br />
group[,group...][,symbolicdate(),symbolicdate()])<br />
Returns the total time spent (in seconds) on an item by specified groups while in phase<br />
for the specified phase.<br />
LastResultAgg()<br />
Returns the internal ID of the most recent test result record for a group of items. This<br />
function must be used with the Aggregate, AggregateByTree, or Query functions.<br />
For example, AggregateByTree (LastResultAgg()). This function must be used<br />
with the TestVerdictName function to convert the internal ID to a display string. For<br />
example, TestVerdictName(LastResultAgg()).<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
305
Chapter 7: Computed Expressions<br />
306<br />
Text Functions<br />
Name and Description Return Value<br />
Text(string)<br />
Creates text constant.<br />
Note: If string does not contain special characters, quotes not required. For example,<br />
text("REQ") and text(REQ) identified as same string.<br />
Length(string-expression)<br />
Returns length of string.<br />
Upper(string-expression)<br />
Converts string into uppercase.<br />
Lower(string-expression)<br />
Converts string into lowercase.<br />
Concat(string-expression, string-expression[, ...])<br />
Concatenates two or more strings.<br />
Substring(string-expression, start, count)<br />
Takes substring of string. Substring starts at first character and goes for count characters.<br />
start offset is origin 1. start and count must be positive integer constants.<br />
Following conditions return empty string:<br />
start less than or equal zero.<br />
start greater than length of string being processed.<br />
count less than zero.<br />
If start plus length greater than length of string being processed, then return from<br />
start to end of string; no blank padding.<br />
Locate(string-expression, string-expression)<br />
Searches for first string in second string.<br />
To add startsWith, type Locate(x, y) == 1.<br />
Value offset into second string first string found, where if second string starts with first,<br />
value one (1). If not found, returns zero (0).<br />
Trim(string-expression)<br />
Removes leading and trailing spaces from string.<br />
LTrim(string-expression)<br />
Removes leading spaces from string.<br />
RTrim(string-expression)<br />
Removes trailing spaces from string.<br />
Text<br />
Integer<br />
Text<br />
Text<br />
Text<br />
Text<br />
Integer<br />
Text<br />
Text<br />
Text
ToText(number-expression)<br />
Converts number to string.<br />
ToTextZeroPad(number-expression, size)<br />
Converts number to string with zero padding.<br />
size must be positive integer constant.<br />
If formatted size of number greater than or equal to specified size, it returns unchanged;<br />
otherwise, padded on left with the zero (0) character. If number negative, negative sign (-)<br />
first character.<br />
Computed Expression Rules<br />
Name and Description Return Value<br />
Text<br />
Text<br />
307
Chapter 7: Computed Expressions<br />
308<br />
External Information Functions<br />
Name and Description Return Value<br />
SICPCount([cpstate, ...])<br />
Returns number of change packages associated with item. Specify one or more of<br />
following change package states to include in count:<br />
Closed<br />
Open<br />
Submitted<br />
Accepted<br />
Rejected<br />
Discarded<br />
CommitFailed<br />
If you do not specify any arguments, count of all change packages returned.<br />
SICPEntryCount([cpentrytype, ...])<br />
Returns number of change package entries associated with item. Specify one or more of<br />
following change package entry types to include in count:<br />
Update<br />
Add<br />
Drop<br />
Lock<br />
RenameFrom<br />
RenameTo<br />
UpdateRevision<br />
UpdateArchive<br />
Import<br />
AddFromARchive<br />
MoveMemberFrom<br />
MoveMemberTo<br />
CreateSubproject<br />
AddSubproject<br />
AddSharedSubproject<br />
DropSubproject<br />
ConfigureSubprojectFrom<br />
ConfigureSUbprojectTo<br />
MoveSubprojectFrom<br />
MoveSubprojectTo<br />
If you do not specify any arguments, count of all unique change package entry<br />
operations returned, for example, rename operation only counted as one entry rather<br />
than separate entries for RenameFrom and RenameTo operations.<br />
SICPBytesAdded()<br />
Returns sum of bytes added by each change package entry for all change packages<br />
associated with item.<br />
Returns 0 for text files.<br />
Integer<br />
Integer<br />
Integer
SICPBytesDeleted()<br />
Returns sum of bytes deleted by each change package entry for all change packages<br />
associated with item.<br />
Returns 0 for text files.<br />
SICPDaysOpen()<br />
Returns total number of days changes packages associated with item open.<br />
If change package currently open, current time used to calculate number of days.<br />
If function used based on date and time in past, count based on specified time. Any<br />
change packages created after specified time not counted. Number of days open for any<br />
change packages closed after specified time calculated using specified time as close<br />
time.<br />
SICPLinesAdded()<br />
Returns sum lines added by each change package entry for all change packages<br />
associated with item.<br />
Returns 0 for binary files.<br />
SICPLinesDeleted()<br />
Returns lines deleted by each change package entry for all change packages associated<br />
with item.<br />
Returns 0 for binary files.<br />
SIMetric(siproject-field-name, metric name)<br />
Returns calculated value of metric for configuration management project. For more<br />
information on configuration management metrics, see “Using Configuration<br />
Management Project Metrics” on page 280.<br />
SIMetricCount(siproject-field-name, metric name)<br />
Returns number of items that make up metric value for configuration management<br />
project.<br />
NumberOfEntriesToState(state-name)<br />
Returns number of times specified state entered.<br />
To specify unspecified state, type "Unspecified", for example,<br />
NumberOfEntriesToState("Unspecified").<br />
Computed Expression Rules<br />
Name and Description Return Value<br />
numberOfHistoryEntries()<br />
Returns number of deltas associated with item. Means number of times item edited.<br />
numberOfModifications(field-name)<br />
Returns number of deltas specified field changed in.<br />
HistoricFieldValue(field-name, timestamp-constant)<br />
Returns value of specified field at specific point in history.<br />
Warning: Operation can take long time to complete.<br />
RelCount(relationship-field)<br />
Returns number of related items through specified relationship field. Function equivalent<br />
to: aggregate(relationship-field, count()).<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Type of specified field<br />
name<br />
Integer<br />
309
Chapter 7: Computed Expressions<br />
Name and Description Return Value<br />
RelExists(relationship-field)<br />
Returns whether relationships exist through specified relationship field.<br />
Aggregate(relationship-field,<br />
ByDocument(recurseInclude,recurseReference)[, ...], aggregateexpression)<br />
Aggregate operates against a single item, using that single item to find multiple items that<br />
it then runs an aggregate expression against to product a single value.<br />
Note: Aggregate is not an aggregate function.<br />
At least one relationship field must be specified. A set of items is made by following the<br />
first relationship field. Then that set is augmented by all items that the set points to<br />
through the next relationship field, and onward for each specified relationship field.<br />
The ByDocument function treats items found through the relationship field as<br />
documents, find all their nodes, and recurses into included and referenced documents.<br />
Query(query-name-string[, correlation-field[, ...]], aggregateexpression)<br />
Operates against single item using that single item to find multiple items it aggregates<br />
into for single value. query-name-string is name of query as quoted string in syntax<br />
"username:queryname". If no correlation-fields given, value of current item<br />
not used, and result of expression is constant. Aggregation expression runs against all<br />
items that satisfy query. Otherwise, query modified to require each specified<br />
correlation-field to match source item. Resulting list of items has<br />
aggregate-expression run against it and returned.<br />
Query(query-name-string[, source-correlation-field, targetcorrelation-field[,<br />
...]], aggregate-expression)<br />
More generalized form of the previous Query function; however, if sourcecorrelation-field<br />
is the same as target-correlation-field, use the<br />
previous Query function. This Query function takes list of fields that match between<br />
source and target items. Useful when you want to match between master item that has<br />
field set equal to values on all related items, in particular, Project field.<br />
QueryCorrelated(query-name-string[, source-correlation-field,<br />
target-correlation-field[, ...]], aggregate-expression)<br />
To express Query as QueryCorrelated function, specify aggregation-field from<br />
Query as both source-correlation-field and target-correlation-field.<br />
Allows you to specify matching fields on both sides, which is useful for item backed pick<br />
list (IBPL) fields. For example, if you have an item type that defines a set of something,<br />
like applications, the IBPL links each member of application back to application while a<br />
query backed relationship (QBR) field is used for linking between each application to<br />
each of its members. You can use the QueryCorrelated function on application using<br />
item ID from Application item correlated with IBPL representing Application on Defect<br />
that is a member of it, for example:<br />
QueryCorrelated("All Defects", ID, "Application IBPL", count())<br />
310<br />
Boolean<br />
Type of aggregate<br />
expression<br />
Integer or float,<br />
depending on<br />
aggregation-expression<br />
Integer or floating point,<br />
depending on<br />
aggregation-expression;<br />
see Query function<br />
Integer or floating point,<br />
depending on<br />
aggregation-expression;<br />
see Query function
Item Information Functions<br />
Computed Expression Rules<br />
Name and Description Return Value<br />
IsState(statename[, ...])<br />
Returns true if item’s state any of states specified in its argument list.<br />
To specify unspecified state, type "Unspecified", for example,<br />
IsState("Unspecified").<br />
IsType()(typename[, ...])<br />
Returns true if item’s type any of types specified in its argument list.<br />
IsNode()<br />
Returns true if item any of type node.<br />
IsSegment()<br />
Returns true if item any of type segment.<br />
IsSharedItem()<br />
Returns true if item any of type shared item.<br />
IsContent()<br />
Returns true if item any of types content.<br />
IsSubsegment()<br />
Returns true if item any of type subsegment.<br />
IsMeaningful()<br />
Returns true if item any of type node or segment is meaningful.<br />
IsNonMeaningful()<br />
Returns true if item any of type node or segment is non meaningful.<br />
IsGroupDocument()<br />
Returns true if item any of type segment what has the Group Document flag set.<br />
IsTestCase()<br />
Returns true if item type has a test management role of Test Case.<br />
IsTestSession()<br />
Returns true if item type has a test management role of Test Session.<br />
IsTestStep()<br />
Returns true if item type has a test management role of Test Step.<br />
IsTestSuite()<br />
Returns true if item type has a test management role of Test Suite.<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
Boolean<br />
311
Chapter 7: Computed Expressions<br />
312<br />
Test Functions<br />
Name and Description Return Value<br />
TestVerdict(test-verdict-name)<br />
A test verdict name constant that can be used in a comparison. For example,<br />
LastResult()==TestVerdict(Passed).<br />
TestVerdictByType(verdict-type-name)<br />
A test verdict type constant corresponding to the pass, fail, or other.<br />
TestVerdictName(id)<br />
Returns the display name of the verdict corresponding to the ID. For example,<br />
TestVerdictName(TestVerdict(Passed) would return Passed;<br />
TestVerdictName(LastResult()) would return the last test result as a string.<br />
TestVerdictTypeName(verdict-type-id)<br />
Returns the name of the test verdict type. For example,<br />
TestVerdictTypeName(TestVerdictByType(pass)) would return Pass<br />
VerdictToType(verdict-id-expression)<br />
Returns the numeric verdict type value for the given verdict ID. Can be applied to<br />
LastResult() to check the verdict type of a result. For example,<br />
VerdictToType(LastResult())==TestVerdictByType(pass) would check if a<br />
result was a pass verdict type.<br />
ResultCount(test-verdict-name)<br />
Returns the number of test results with a specific verdict. For example,<br />
ResultCount(Passed)would return the number of successful test results. This function<br />
is intended to be used with test session type items.<br />
ResultCountByType(verdict-type-name)<br />
Returns the number of test results with a specific verdict type (pass, fail, other). For<br />
example, if you have two test verdicts with a verdict type of fail, the function<br />
ResultCountByType(Fail)would return the number of test results with either verdict.<br />
This function is intended to be used with test session type items.<br />
ResultCount(Relationship-field, test-verdict-name)<br />
Returns the number of test results with a specific verdict in related test session type items.<br />
ResultCountByType(Relationship-field, verdict-type-name)<br />
Returns the number of test results with a specific verdict type (pass, fail, other) in related<br />
test session items.<br />
LastResult()<br />
Returns the internal ID of the most recent test result for the current item. This function<br />
must be used with the TestVerdictName function to convert the internal ID to a display<br />
string. For example, TestVerdictName(LastResult()).<br />
Text<br />
Text<br />
Text<br />
Text<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer<br />
Integer
Creating Computed Fields<br />
Creating Computed Fields<br />
Computed fields allow you to perform calculations between multiple fields in an item,<br />
storing the result as a value in a read-only field (the computed field). Date, floating point,<br />
integer, logical, and short text field types are the only field data types that can be configured<br />
as computed fields. However, only date, floating point, integer, short text, and long text<br />
fields can be used in the computation.<br />
Key Considerations<br />
If you create an expression using one or more fields that a user does not have permission<br />
to view, the user sees only the fields they have permission to view.<br />
Computed fields are calculated in the order that they appear in the item; however, if a<br />
computed field depends on the value of another computed field, it is calculated after the<br />
computed field containing the dependent value. Depending on the number of items in<br />
your database and the number of items containing computed fields that contain<br />
dependencies, it may take a long time to calculate the value of the computed fields.<br />
Using the im analytics --recomputehistory -g command, you can calculate a<br />
computed field within a specific time frame, storing the value in the item history. This<br />
command is useful for historical trend charting; however, it does not allow you to<br />
“correct” the history of current item data. For more information, see the “Using<br />
Computed Fields to Chart Historical Trends” on page 316.<br />
Computed text fields only accept numeric, short text, and long text fields.<br />
You cannot create editability rules for field value attributes backed by any computed<br />
field. For more information about editability rules, see “Setting Field Editability” on<br />
page 135.<br />
To create a computed field<br />
1 From the Create Field dialog box, select Date, Floating Point, Integer, Logical, or<br />
Short Text from the Data Type list. The relevant data type settings display.<br />
2 Select the Computation Values option.<br />
3 In the Computation Definition field, create a computed expression using the rules<br />
described in “Computed Expression Rules” on page 293.<br />
For example:<br />
To determine how many days a Defect item has not been worked on, create a date<br />
field called Days Inactive and type the following expression:<br />
now() - "Modified Date"<br />
313
Chapter 7: Computed Expressions<br />
314<br />
The Days Inactive field displays the number of days elapsed since the last edit of the<br />
Defect item.<br />
If a Project item type contains Actual Cost and Expected Cost fields, and you want<br />
to determine if and how much the actual cost of a project exceeds the expected cost,<br />
create an integer or floating point field called Cost Overrun and type the following<br />
expression:<br />
"Actual Cost" - "Expected Cost"<br />
If the value of the Actual Cost field exceeds the value of the Expected Cost field, the<br />
Cost Overrun field appears after editing the item, displaying how much the actual<br />
cost overran the expected cost.<br />
To determine whether the actual cost of a project exceeded 90 percent of what you<br />
budgeted for, type the following expression:<br />
"Actual Cost" > .90 * "Expected Cost"<br />
If the value of the Actual Cost field exceeds the value of the Expected Cost field by<br />
90 percent, the Cost Overrun field appears after editing the item, displaying the<br />
percentage that the actual cost overran the expected cost.<br />
As project manager, you could closely monitor project budgets by creating a query<br />
or e-mail notification that identifies Project items where the cost has exceeded<br />
90 percent of the estimated budget.<br />
4 To indicate how often the computed field should be calculated and stored in the item’s<br />
history, select a frequency from the Store to History Frequency list. Selecting a frequency<br />
is useful for historical charting. never is the default.<br />
To specify a custom frequency, select never from the list, and create an event trigger that<br />
specifies the desired frequency. For more information on configuring the frequency at<br />
which the field computes, see “Scheduling Computation Times” on page 318.<br />
5 From the How to Run Computations list, select one of the following computation types:<br />
static calculates the field based on a schedule and stores it in the item’s history<br />
based on the value selected in the Store to History Frequency list. Columns for static<br />
fields are stored in the item’s row of the database. <strong>MKS</strong> recommends you select<br />
static if your expression involves intensive external functions, such as query or<br />
aggregate functions.<br />
dynamic calculates the field every time field values are retrieved. By default,<br />
columns for dynamic fields are not stored in the item’s row of the database;<br />
however, you can select dynamic and a frequency from the Store to History<br />
Frequency list. dynamic is the default.
NOTE<br />
Calculating Static Computed Fields<br />
Because dynamically computed fields are not stored in the database, dynamically<br />
computed short text fields cannot be located with an all text field search in the<br />
<strong>MKS</strong> <strong>Integrity</strong> Client. To search for dynamically computed short text fields,<br />
create a query that includes a specific “field contains” comparison. If the query<br />
does not include additional filters, the query may not return optimal results.<br />
To avoid performance issues when working with queries, do not use dynamic<br />
computed fields in query definitions. As a workaround you could create a rule<br />
based event trigger that fires when a relationship field changes, storing the count<br />
in a regular integer field.<br />
To avoid performance issues when working with large documents, ensure that<br />
any computed fields in <strong>MKS</strong> Requirements are static, not dynamic. To learn more<br />
about <strong>MKS</strong> Requirements, see the <strong>MKS</strong> <strong>Integrity</strong> for Requirements Management<br />
Solution <strong>Guide</strong>.<br />
6 Fill out the remaining fields and tabbed panels as described in “To create a field in the<br />
GUI” on page 131.<br />
7 Click OK to save your changes.<br />
Calculating Static Computed Fields<br />
If you created a static computed field, you specify how to display a value in the computed<br />
field.<br />
To calculate a static computed field<br />
NOTE To calculate a static computed field, the How to Run Computations field must<br />
be set to Static.<br />
1 In the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, select the computed field you want to<br />
calculate, and select Field > Edit. The Edit Field dialog box displays.<br />
2 To calculate the computed field immediately, select Compute Now. Selecting this option<br />
only calculates the field in items where the values of the underlying fields used in the<br />
computed expression have changed since the last computation.<br />
3 If you changed the computed field’s underlying computed expression and you want to<br />
calculate the field in all items containing the field, selecting Recompute All resets the last<br />
computation time associated with the computed field and recalculates the computed<br />
field in all items containing the computed field.<br />
4 If the computed field has been computed before, Last Evaluation At displays the date and<br />
time that the field was last computed. If Store to History Frequency is set to never and<br />
How to Run Computations is set to dynamic, Last Evaluation At displays never.<br />
5 To calculate the field, select Compute Now.<br />
315
Chapter 7: Computed Expressions<br />
316<br />
6 Click OK. The computed field calculates and the Compute Now option resets in the Edit<br />
Field dialog box. To recalculate the field, repeat the procedure.<br />
Using Computed Fields to Chart Historical<br />
Trends<br />
When you create a computed field, you typically configure it to calculate at a specific time in<br />
the future, storing the value in the history of each item containing the computed field.<br />
Command im analytics --recomputehistory -g calculates what the value of the<br />
computed field would have been at specific times and stores the value in the history of each<br />
item containing the computed field. This command is useful for discovering historical trends,<br />
such as how long a Defect item typically remained in state In Development in a current<br />
project compared to that of a previous project.<br />
Key Considerations<br />
The command is required only if a new calculation is required over existing historical<br />
data.<br />
To use the command, you must either be an administrator or have type administrator<br />
permissions for all types that the specified field displays in.<br />
Depending on the options specified, the command may delete or modify item history.<br />
The command may take a long time to complete depending on:<br />
complexity of the underlying computed expression<br />
number of items containing the specified computed field<br />
The command renders item data as it existed at the specified time. For non-history data<br />
source (attachments, change packages containing entries that have moved, permissions,<br />
and administrative objects), the command approximates the historical data. To render<br />
non-history data sources as they were known at a specific time, <strong>MKS</strong> recommends<br />
defining computed fields that use the static option under How to Run Computation,<br />
which captures historical values.<br />
Computed fields are calculated in the order that they appear in the item; however, if a<br />
computed field depends on the value of another computed field, it is calculated after the<br />
computed field containing the dependent value. Depending on the number of items in<br />
your database and the number of items containing computed fields that contain<br />
dependencies, it may take a long time to calculate the value of the computed fields.<br />
This command can be canceled at any time; however, it will not take effect until the<br />
specified interval calculation has completed. If you cancel this command, previous field<br />
values remain stored in the database. If the clear history option is selected and you<br />
cancel this command, item history is still cleared.
Example<br />
Using Computed Fields to Chart Historical Trends<br />
Using the im analytics --recomputehistory command from the command line<br />
interface, this example illustrates how to determine the historical trend for defects in projects.<br />
1 Create a new type to represent projects, for example, Project.<br />
2 Create some Project items to represent projects.<br />
3 Create a computed field, for example, Defect Count, that calculates the number of defects<br />
related to each project:<br />
im createfield --type=integer --computation='Query("Financial Toolkit<br />
Defects: In Dev", Project, count())' --name='Defect Count'<br />
4 Make the Defect Count field visible in the Project type only.<br />
5 Project the Defect Count field back in time:<br />
im analytics --recomputehistory –-starttime=06/01/2002 –-endtime=08/<br />
24/<strong>2009</strong> –-increment=1 –-incrementtype=week –-field='Defect Count'<br />
6 Create a query that lists all Project items, for example, All Projects.<br />
7 Create a chart:<br />
im createchart –-trendstep=week –-charttitle='Defect Count'<br />
--startdate=06/01/2002 –-enddate=02/01/<strong>2009</strong> –-computations='"Defect<br />
Count"' –-query 'All Projects' –-charttype='Item Fields Trend'<br />
--issueidentifier {Summary}<br />
To calculate a computed field within a specific time frame<br />
1 From a command line, type:<br />
im analytics --recomputehistory -g<br />
The Recompute Expression History For Field dialog box displays.<br />
317
Chapter 7: Computed Expressions<br />
318<br />
2 Select the following:<br />
From the Field to Compute list, select the computed field that you want to calculate.<br />
From the Start Time calendar, specify the starting calculation date and time.<br />
From the End Time calendar, specify the ending calculation date and time.<br />
From the Increment field, specify the interval to use for calculating the computed<br />
field. For example, if you select 1 Week, the computed field is calculated once a<br />
week.<br />
To clear previous history entries for the selected field between the specified times,<br />
select the Clear previous history option.<br />
3 To calculate the computed field, click OK. <strong>MKS</strong> <strong>Integrity</strong> calculates the compute field,<br />
storing the value in the history of the each item containing the computed field.<br />
Scheduling Computation Times<br />
To chart a computation over time, you can configure computed fields to create deltas daily,<br />
weekly, or monthly. For a static computed field, this configuration also saves the values to<br />
the computed field’s column in the item row of the database. By default, the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client includes scheduled event triggers that perform daily, weekly, and
Using Computed Fields to Calculate State Metrics<br />
monthly computations. You can edit the triggers to create your own schedule for when<br />
computations occur.<br />
IMPORTANT When you run a scheduled computation trigger, computed fields are<br />
calculated in field order. If an item contains a computed field that depends on the<br />
value of another computed field, the computed field containing the dependent value<br />
must come first in the field order. For example, if Field B depends on the value in<br />
Field A, then Field A must come before Field B in the field order.<br />
For more information on editing and running event triggers, see “Managing Event Triggers”<br />
on page 362 and the imFieldBean.computeHistoryNow() bean in the Event Trigger Java<br />
Documentation on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> home page.<br />
Using Computed Fields to Calculate State<br />
Metrics<br />
Using external information functions in computed fields, you can generate state metrics. State<br />
metrics are useful for determining item responsiveness. For example, you could use the<br />
DaysInState(state-name) function in a computed expression to calculate how many days<br />
a Defect item has been in the In Development state. The computed value is then stored in<br />
the computed field. For more information on creating computed fields, see “Creating<br />
Computed Fields” on page 313.<br />
Other possible metrics you can generate about your workflow are:<br />
how long an item stays in the workflow cycle<br />
how many times an item goes through the workflow cycle<br />
how many state transitions an item goes through<br />
the number of items that have not been modified in a certain time period<br />
The following external information functions are applicable to state metrics:<br />
DaysCurrentState()<br />
DaysCurrentPhase()<br />
DateFirstEntered(Submit)<br />
DateLastEntered(Submit)<br />
NumberOfEntriesToState(Submit)<br />
NumberOfHistoryEntries()<br />
NumberOfModifications(fieldName)<br />
DaysInState(Submit)<br />
DaysInPhase(Terminal)<br />
319
Chapter 7: Computed Expressions<br />
320<br />
For detailed information on the external information functions applicable to state metrics, see<br />
“Function Classes” on page 296.<br />
If you are using <strong>MKS</strong> <strong>Integrity</strong>’s configuration management and workflow and document<br />
management functionality, you can also generate the following types of metrics:<br />
Project metrics extract information from change packages to report how an individual<br />
project is progressing.<br />
Code metrics extract information from source code to report on a product’s status, also<br />
known as Portfolio Metrics.<br />
For more information on configuration management metrics, see “Using Configuration<br />
Management Project Metrics” on page 280.<br />
Example<br />
In the ABC Financial organization, a Defect type typically goes through the following<br />
workflow:<br />
Posted (initial state)<br />
In Development<br />
In QA<br />
Fixed (terminal state)<br />
Scenario 1<br />
To determine how many days a Defect spends in the Development phase, you create a<br />
computed field named Fix Time with the following underlying expression:<br />
daysInPhase(Development)<br />
Next, you query on Defects by the Fix Time field. To create a query, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong><br />
User <strong>Guide</strong>.<br />
Using the query you created, you create a report or chart that summarizes the query data. To<br />
create a report or chart, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Scenario 2<br />
To determine how many times a Defect went through the complete workflow cycle, meaning<br />
the number of times a Defect went from Posted to Fixed, you create a computed field named<br />
Number of Times Through the Workflow with the following underlying expression:<br />
numberOfEntriesToState(Posted)<br />
Next, you query on Defects by the Number of Times Through the Workflow field. To create<br />
and run a query, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Using the query you created, you create a report or chart that summarizes the query data. To<br />
create a report or chart, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.
Security<br />
Security<br />
An administrator creates computed fields, which display as read-only fields that cannot be<br />
edited; however, an administrator may want to allow only certain users or groups to view<br />
them. To configure a computed field’s visibility, see “Setting Field Relevance” on page 133.<br />
If you create an expression using one or more fields that a user does not have permission to<br />
view, the user sees the calculated field value; however, they may be able to extrapolate<br />
backwards the value of a field that they do not have permission to view.<br />
In charts and reports, any user can create a computed expression. However, the fields that<br />
make up the computed expression must be visible to the user.<br />
Performance and Scalability<br />
When creating computed expressions, consider the following performance and scalability<br />
issues:<br />
The complexity of a computed expression and the following may result in long<br />
calculation times and impact the performance of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>:<br />
aggregate, query, and historical external information functions, such as<br />
HistoricFieldValue<br />
using the query external information function with the im analytics<br />
--recomputehistory command<br />
any historic report that includes fields using external information functions<br />
Depending on the number of dynamic computed fields in an item and the complexity of<br />
the underlying computed expressions, an item may take a long time to display because<br />
all of the computed fields in the item are calculated before viewing.<br />
Querying for items that include state metrics in computed fields may take a long time,<br />
for example, querying for items where DaysInState(Submit) > 365. You can<br />
improve the performance of the query by configuring the computed field as a static field.<br />
Static fields are computed periodically on a schedule and although they may take a long<br />
time to calculate initially, they may be indexed as columns in the items table after the<br />
calculation. Indexing calculated fields improves query performance.<br />
Do not create computed expressions for types that include vast amounts of items. For<br />
example, do not create computed expressions for only one type, such as a Defect type,<br />
that potentially includes tens of thousands of items. Instead, include computed<br />
expressions for an aggregate type, such as a Project type, that includes maybe 20 to 30<br />
items, but are related to tens of thousands of Defect items.<br />
321
Chapter 7: Computed Expressions<br />
322
C HAPTER EIGHT<br />
Change Packages<br />
Administering and Customizing Change Packages<br />
8<br />
This chapter provides information on customizing change packages for use with<br />
<strong>MKS</strong> <strong>Integrity</strong> and integrations. This chapter also contains information on administering<br />
configuration management change packages as part of a review process.<br />
This chapter contains the following topics:<br />
“<strong>MKS</strong> <strong>Integrity</strong> Change Packages” on page 324<br />
“Configuration Management Change Packages” on page 343<br />
323
Chapter 8: Change Packages<br />
Where to Go From Here<br />
324<br />
The following table summarizes the available content for administering change packages:<br />
To Do This... See...<br />
Learn about change package types. “<strong>MKS</strong> <strong>Integrity</strong> Change Packages” on page 324<br />
Perform tasks with change package attributes,<br />
such as viewing, creating, editing, and deleting.<br />
Perform tasks with change package entry<br />
attributes, such as viewing, creating, editing, and<br />
deleting.<br />
Learn about the available operations users can<br />
perform on created change package types.<br />
How to create, edit, and delete entries used with<br />
created change package types.<br />
Learn about using configuration management<br />
change packages.<br />
Manage change packages by implementing a<br />
review process.<br />
<strong>MKS</strong> <strong>Integrity</strong> Change Packages<br />
“Modifying Change Package Attributes” on<br />
page 333<br />
“Modifying Change Package Entry Attributes” on<br />
page 336<br />
“User Operations for Created Change Package<br />
Types” on page 340<br />
“Modifying CP Entries for Created CP Types” on<br />
page 342<br />
“Configuration Management Change Packages”<br />
on page 343<br />
“Using Change Package Reviews” on page 344<br />
A change package is a group of changes made by a single user that can be considered a logical<br />
unit of work. Only the creator of a change package may add entries to that change package.<br />
Change package entries take the form of operations, both deferred and committed. When<br />
reviews are mandatory, change package entries take the form of pending entries before they<br />
are committed<br />
By default, <strong>MKS</strong> <strong>Integrity</strong> includes two change package types: configuration management<br />
and Implementer. A change package type consists of change package attributes and change<br />
package entry attributes.<br />
Users can query and filter items based on change package types and their attributes. Users<br />
can also generate reports to display information on change packages of the defined change<br />
package type. By default, all users are permitted to view configuration management and<br />
Implementer change packages.
<strong>MKS</strong> <strong>Integrity</strong> Change Packages<br />
The super administrator can customize and view permissions for the configuration<br />
management (si) change package type.<br />
NOTE For information on the Implementer change package type, see the<br />
<strong>MKS</strong> Implementer <strong>2009</strong> Installation and <strong>Administration</strong> <strong>Guide</strong>. For information on other<br />
integrations, such as the <strong>MKS</strong> integration with CA Endevor, contact <strong>MKS</strong> Customer<br />
Care.<br />
The GUI functionality for change package types is primarily intended for managing user and<br />
group permissions of change package types.<br />
The CLI provides powerful functionality for creating new change package types and<br />
modifying their attributes. The ability to create new change package types and modify their<br />
attributes is intended for use in creating custom integrations. The functionality is provided to<br />
define the schema for a change package to reproduce the attributes and entry types in<br />
<strong>MKS</strong> <strong>Integrity</strong> that exist in a third party tool for the purpose of creating compatibility<br />
between products.<br />
The CLI command documentation is provided in this section with specific options. For<br />
information on general options for CLI commands, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI Reference<br />
<strong>Guide</strong> for Workflows and Documents or man pages. The commands are also available through<br />
the <strong>MKS</strong> API. For information on using the <strong>MKS</strong> API, see <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Integrations<br />
Builder <strong>Guide</strong>.<br />
Viewing Change Package Types<br />
Using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, you can manage change package types from<br />
one convenient location. Managing change package types is carried out through the Change<br />
Package Types view.<br />
To open the Change Package Types view from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client,<br />
expand the Workflows and Documents node, and select Change Package Types. The<br />
Change Package Types view displays.<br />
By default, the data filter in the Change Package Types view displays all existing change<br />
package types. You can search for a specific change package type by typing in the text field.<br />
For more information, see “Filtering Data” on page 18.<br />
To view change package types in the CLI<br />
From the CLI, type the following command:<br />
im cptypes<br />
[--fields=field1[:width1],field2[:width2]...]<br />
[--fieldsDelim=value]<br />
cptypeID1, cptypeID2...<br />
325
Chapter 8: Change Packages<br />
326<br />
where:<br />
--fields=field1[:width1],field2[:width2]... specifies the fields and their width to display<br />
for change package types; fieldn can be any of:<br />
attributes displays the names of the change package attribute for the change<br />
package type.<br />
description displays the description for the change package type if one is<br />
available.<br />
displayName displays the name of the change package type that is displayed to<br />
users.<br />
entryAttributes displays change package entry attributes for the change package<br />
type.<br />
entryKey displays the entry key for the change package type.<br />
id displays the change package type ID.<br />
name displays the name of the change package type.<br />
permittedAdministrators displays a list of administrators who are permitted to<br />
edit the change package type.<br />
permittedGroups displays a list of groups who are permitted to edit the change<br />
package type.<br />
position displays the position order of the change package type.<br />
references displays any references to the change package type from other objects.<br />
--fieldsDelim=value specifies the string to be used as a delimiter between fields.<br />
cptypeID1, cptypeID2... specifies the IDs of the change package types you want to view. If<br />
no change package type IDs are specified, all change package types display.<br />
Changing Change Package Type Order<br />
You can change the position order of the change package type.<br />
To change the position order of a change package type<br />
1 From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the node for Workflows and<br />
Documents, and select Change Package Types. The display pane shows the available<br />
change package types.<br />
2 Select Change Package Type > Reposition. The Reposition Change Package Types dialog<br />
box displays.<br />
3 Select the change package type in the list, and click Move Up or Move Down to change its<br />
order.
4 To save your changes, click OK.<br />
Editing Change Package Types<br />
<strong>MKS</strong> <strong>Integrity</strong> Change Packages<br />
Only partial editability of change package types is available from the GUI. For full editability,<br />
use the CLI.<br />
Only users assigned as change package administrators or a super administrator with Admin<br />
permission under the mks:im ACL are permitted to edit a change package type. For more<br />
information on the required ACL permission, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation<br />
and Configuration <strong>Guide</strong>.<br />
IMPORTANT By default, the everyone group is allowed to view configuration<br />
management change packages. Once new permissions are set for the configuration<br />
management change package type, the default settings are overwritten. If you set<br />
new permissions where no parameters are specified, then no one can view<br />
configuration management change packages.<br />
NOTE You cannot edit the si (configuration management) change package type<br />
from the GUI. The change package type can only be modified through the CLI.<br />
To edit a change package type in the GUI<br />
1 From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the node for <strong>MKS</strong> <strong>Integrity</strong>,<br />
and select Change Package Types. The display pane shows the available change<br />
package types.<br />
2 To search for the specific change package type you want to edit, type in the text filter (for<br />
more information, see “Filtering Data” on page 18).<br />
3 Highlight the change package type you want to edit, and select Change Package Type ><br />
Edit. The Edit Change Package Type dialog box displays.<br />
4 Edit options as necessary:<br />
To enter a description for the change package type, click the Description tab, and<br />
type in the field.<br />
To customize the order the change package types display in the list, click the<br />
Position tab to display the Position panel, and use the Move Up and Move Down<br />
buttons to change the order in the list.<br />
To specify which groups are allowed to view and modify change packages of the<br />
specified type, click the Permitted Groups tab. By default, the everyone group is<br />
permitted to view change packages of the specified type.<br />
327
Chapter 8: Change Packages<br />
328<br />
Note the following:<br />
The Assigned list specifies the groups that are allowed to view or modify<br />
change packages of the change package type being edited.<br />
To assign permissions to a group, move the group from the Groups list to the<br />
Assigned list.<br />
To permit members of a group to modify changes packages for the editing<br />
change package type, in the Modify column click the corresponding check box.<br />
To specify which users and groups are allowed to administer the change package<br />
type, see “To assigning administrators to change package types” on page 329.<br />
To determine all objects that reference the change package type, click the References<br />
tab. For information on the contents of the tab, see “To manage admin provided<br />
objects in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client” on page 244.<br />
To view a history of administrative changes for the change package type, click the<br />
History tab. The record of changes displays.<br />
5 To save your changes, click OK.<br />
To edit a change package type in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im editcptype<br />
--entrykey=cpentryattribute1,cpentryattribute2,...<br />
--displayName=value<br />
--permittedAdministrators=u=user1,user2,…;g=group1,group2,…<br />
--permittedGroups=group1,group2:modify,…<br />
--description=value<br />
--position=|first|last|before:|after:<br />
cptypeID<br />
--entrykey=cpentryattribute1,cpentryattribute2,... specifies the entry key for the change<br />
package. The entry key is used as a unique identifier of a change package entry. An entry<br />
key must be defined for each change package type, or change packages cannot be<br />
created for that type. To create a change package entry attribute to use as the entry key,<br />
see “Creating Change Package Entry Attributes” on page 338.<br />
--displayName=value specifies the name of the change package that users see when<br />
creating change packages of that type.<br />
--permittedAdministrators=u=user1,user2,…;g=group1,group2,… specifies the<br />
users and groups that are allowed to view and edit permissions for the change package<br />
type.
<strong>MKS</strong> <strong>Integrity</strong> Change Packages<br />
--permittedGroups=group1,group2:modify,… specifies the groups that are allowed to<br />
view and edit change packages of the specified type. To allow a group to view and edit<br />
change packages of this type, append the group name with :modify, for example:<br />
--permittedGroups=everyone:modify<br />
--description=value specifies a description for the change package type.<br />
--position=|first|last|before:|after: specifies the<br />
position of the change package type.<br />
cptypeID specifies the ID of the change package type you are editing.<br />
For example, the command:<br />
im editcptype --permittedAdministrators=u=mchang<br />
--permittedGroups=QA,Development si<br />
sets user mchang as a permitted administrator who can edit and view the configuration<br />
management change package type, and also sets the groups QA and Development as the only<br />
groups having permission to view change packages of the configuration management type.<br />
To assigning administrators to change package types<br />
1 From the Edit Change Package Type dialog box (see “Editing Change Package Types” on<br />
page 327), display the Administrators tab.<br />
2 To query for one or more users or groups using a text search, type a name in the Show<br />
Principals containing text field. A list of users and groups displays in the results list<br />
becoming more specific as you type.<br />
To query for one or more users using pre-existing filters or to restrict your text query<br />
further, select one or more of the following filters from the that are filter list:<br />
Non LDAP Principals queries for users from non LDAP domains. This filter is<br />
enabled by default and displays as the active filter under the Show principals<br />
containing text field. Use the text search to query for one or more users in non LDAP<br />
domains.<br />
LDAP Principals queries for one or more users from an LDAP domain. The LDAP<br />
Query dialog box displays.<br />
329
Chapter 8: Change Packages<br />
330<br />
Using LDAP query syntax, type a query string, and click OK. The query results<br />
display in the results list of the Realm User Selection dialog box, and the LDAP<br />
Principals filter displays as the active filter under the Show principals containing text<br />
field.<br />
NOTE<br />
To create an LDAP query string, you should be familiar with your LDAP schema<br />
and LDAP query syntax.<br />
The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client does not perform syntax checking on<br />
LDAP query strings.<br />
After you query for a user in the LDAP Search Filter dialog box, you can query<br />
for a user in the results list using the Show principals containing text field.<br />
To clear the that are filter, select that are > Reset.<br />
3 From the results list, select the users and groups, and then do one of the following:<br />
To add the selected users or groups to the Assigned Administrators list, click +.<br />
To remove the selected users or groups from the Assigned Administrators list,<br />
click -.<br />
TIP To hide the principals list or Assigned Administrators list, click . To display<br />
the principals list or Assigned Administrators list, click .<br />
4 To assign administrators to the change package type, click OK.<br />
Viewing Change Package Types<br />
You can view the current permissions and other information for a change package type.<br />
To view information for a change package type in the GUI<br />
1 From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, expand the <strong>MKS</strong> <strong>Integrity</strong> node, and<br />
select Change Package Types. The display pane shows the available change package<br />
types.<br />
2 Highlight the change package type you want to customize permissions for, and select<br />
Change Package Type > View Definition for a selected change package. The Change<br />
Package Type dialog box displays.<br />
3 Information displayed in fields and lists is non-editable. For field and list descriptions,<br />
see “Editing Change Package Types” on page 327. When you are finished viewing the<br />
information, click Close.
To view information for a change package type in the CLI<br />
From the CLI, run the following command:<br />
where:<br />
im viewcptype<br />
--[no]showAttributes<br />
--[no]showEntryAttributes<br />
--[no]showEntryKey<br />
--[no]showHistory<br />
cptypeID1, cptypeID2...<br />
--[no]showAttributes displays the change package attributes.<br />
<strong>MKS</strong> <strong>Integrity</strong> Change Packages<br />
--[no]showEntryAttributes displays the change package entry attributes.<br />
--[no]showEntryKey displays the change package entry key.<br />
--[no]showHistory displays the history of changes to the change package type<br />
attributes.<br />
cptypeID1, cptypeID2... specifies the IDs of the change package types you are viewing.<br />
For example, the command:<br />
im viewcptype si<br />
displays information on the configuration management change package type, including<br />
attributes, entry attributes, permitted groups, and administrators.<br />
Creating Change Package Types<br />
The ability to create new change package types is intended for use in creating custom<br />
integrations. The functionality is provided to define the schema for a change package to<br />
reproduce the attributes and entry types in <strong>MKS</strong> <strong>Integrity</strong> that exist in a third party tool for<br />
the purpose of creating compatibility between products.<br />
IMPORTANT An entry key must be defined for the change package type you are<br />
creating, or you cannot create entries for any change packages of that type. For more<br />
information, see “Editing Change Package Types” on page 327.<br />
To create a change package type in the CLI<br />
From the CLI, type the following command:<br />
im createcptype<br />
--displayName=value<br />
--permittedAdministrators=u=user1,user2,…;g=group1,group2,…<br />
--permittedGroups=group1,group2:modify,…<br />
--description=value<br />
--position=|first|last|before:|after:<br />
331
Chapter 8: Change Packages<br />
332<br />
where:<br />
--displayName=value specifies the name of the change package type.<br />
--permittedAdministrators=u=user1,user2,…;g=group1,group2,… specifies the<br />
users and groups that are allowed to view and edit permissions for the change package<br />
type.<br />
--permittedGroups=group1,group2:modify,… specifies the groups that are allowed to<br />
view and edit change packages of the specified type. To allow a group to view and edit<br />
change packages of this type, append the group name with :modify, for example:<br />
--permittedGroups=everyone:modify<br />
--description=value specifies a description for the change package type.<br />
--position=|first|last|before:|after: specifies the<br />
position of the change package type.<br />
For example, the command:<br />
im createcptype<br />
--displayName=ExternalCPs<br />
--permittedAdministrators=u=mchang<br />
--permittedGroups=QA,Development si<br />
creates change package ExternalCPs and sets user mchang as a permitted administrator<br />
who can edit and view the change package type, and also sets the groups QA and<br />
Development as the only groups having permission to view change packages of the type.<br />
Deleting Change Package Types<br />
You can delete change package types that are not needed; however, you cannot undo an<br />
im deletecptype operation or restore deleted change package types. You cannot delete the<br />
si (configuration management) change package type.<br />
To delete a change package type in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im deletecptype<br />
--[no]confirm<br />
cptypeID1, cptypeID2...<br />
--[no]confirm specifies if to confirm deletion of the change package type. The default<br />
is to confirm.<br />
cptypeID1, cptypeID2... are the IDs of the change package types you are deleting.
For example, the command:<br />
im deletecptype --noconfirm devcp<br />
deletes change package devcp without confirmation.<br />
Modifying Change Package Attributes<br />
<strong>MKS</strong> <strong>Integrity</strong> Change Packages<br />
The ability to modify change package attributes is intended for use in creating custom<br />
integrations. The functionality is provided to define the schema for a change package to<br />
reproduce the attributes and entry types in <strong>MKS</strong> <strong>Integrity</strong> that exist in a third party tool for<br />
the purpose of creating compatibility between products.<br />
The CLI command documentation is provided in this section with specific options. For<br />
information on general options for CLI commands, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI Reference<br />
<strong>Guide</strong> for Workflows and Documents or man pages. The commands are also available through<br />
the <strong>MKS</strong> API. For information on using the <strong>MKS</strong> API, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Integrations<br />
Builder <strong>Guide</strong>.<br />
Viewing Change Package Attributes<br />
To view change package attributes in the CLI<br />
From the CLI, type the following command:<br />
im cpattributes<br />
--cpType=change package type<br />
--fields=field1[:width1],field2[:width2]...<br />
--fieldsDelim=value<br />
cpattributeID1, cpattributeID2...<br />
where<br />
--cpType=change package type specifies the type of change package to view attribute<br />
details for.<br />
--fields=field1[:width1],field2[:width2]... specifies the attribute fields to display, where<br />
fieldn can be any of the following: decimalPlaces, description, displayFormat,<br />
displayName, id, isMandatory, isReadOnly, maxLength, name, position, strings,<br />
type.<br />
--fieldsDelim=value specifies the string to be used as a delimiter between fields.<br />
cpattributeID1, cpattributeID2... specifies the IDs of the change package attributes you<br />
want to view information for. If no IDs are specified, all change package attributes for<br />
the specified change package type are displayed.<br />
333
Chapter 8: Change Packages<br />
334<br />
Viewing Change Package Attribute Details<br />
To view change package attribute details in the CLI<br />
From the CLI, type the following command:<br />
where<br />
im viewcpattribute<br />
--cpType=change package type<br />
--[no]showHistory<br />
cpattributeID1, cpattributeID2...<br />
--cpType=change package type specifies to display details for change package attributes<br />
of specified change package type.<br />
--[no]showHistory specifies if to display the history of changes to the change package<br />
attribute.<br />
cpattributeID1, cpattributeID2... specifies the IDs of the change package attributes you<br />
want to view details for.<br />
Creating Change Package Attributes<br />
To create a change package attribute in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im createcpattribute<br />
--dataType=[integer|stringlist|float|logical|date|string|user|cpid]<br />
--maxLength=value<br />
--cpType=change package type<br />
--decimalPlaces=value<br />
--displayFormat=[truefalse|tf|yesno|yn]<br />
--displayName=value<br />
--[no]mandatory<br />
--strings=value<br />
--description=value<br />
--name=value<br />
--position=[first|last|before:|after:]<br />
--dataType=[integer|stringlist|float|logical|date|string|user|cpid]<br />
specifies the attribute data type.<br />
--maxLength=value specifies the maximum length of value for the attribute. This option<br />
is valid for data types string, stringlist, and cpid.<br />
--cpType=change package type specifies the name of change package type the attribute is<br />
being created for.<br />
--decimalPlaces=value specifies the number of decimal places in the value the<br />
attribute takes. This option is valid for data type float.
<strong>MKS</strong> <strong>Integrity</strong> Change Packages<br />
--displayFormat=[true|false|t|f|yes|no|y|n] specifies if to display the format<br />
of the change package attribute value. This option is valid for data type logical.<br />
--displayName=value specifies if to display name of the change package attribute.<br />
--[no]mandatory specifies if the change package attribute value is mandatory.<br />
--strings=value specifies string values for the attribute. This option is valid for data<br />
type stringlist.<br />
--description=value specifies a short description for the attribute.<br />
--name=value specifies the name for the attribute being created.<br />
--position=[first|last|before:|after:] specifies the position of<br />
the attribute you are creating in the attribute order.<br />
Editing Change Package Attributes<br />
To edit a change package attribute in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im editcpattribute<br />
--cpType=change package type<br />
--decimalPlaces=value<br />
--displayFormat=[truefalse|tf|yesno|yn]<br />
--displayName=value<br />
--[no]mandatory<br />
--strings=value<br />
--description=value<br />
--position=[first|last|before:|after:]<br />
cpattributeID<br />
--cpType=change package type specifies the name of change package type the attribute is<br />
being created for.<br />
--decimalPlaces=value specifies the number of decimal places in the value the<br />
attribute takes. This option is valid for data type float.<br />
--displayFormat=[true|false|t|f|yes|no|y|n] specifies if to display the format<br />
of change package attribute value. This option is valid for data type logical.<br />
--displayName=value specifies if to display the name of the change package attribute.<br />
--[no]mandatory specifies if the change package attribute value is mandatory.<br />
--strings=value specifies string values for the attribute. This option is valid for data<br />
type stringlist.<br />
--description=value specifies a short description for the attribute.<br />
335
Chapter 8: Change Packages<br />
336<br />
--position=[first|last|before:|after:] specifies the position of<br />
the attribute you are creating in the attribute order.<br />
cpattributeID specifies the ID for the change package attribute you are editing.<br />
Deleting Change Package Attributes<br />
You cannot undo the im deletecpattribute operation, and you cannot restore deleted<br />
change package attributes.<br />
To delete a change package attribute in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im deletecpattribute<br />
--cpType=change package type<br />
--[no]confirm<br />
cpattributeID1, cpattributeID2...<br />
--cpType=change package type specifies the change package type to delete the change<br />
package attribute from.<br />
--[no]confirm specifies if to confirm the change package attribute deletion. The<br />
default is to confirm.<br />
cpattributeID1, cpattributeID2... specifies the IDs of the change package attributes you<br />
want to delete.<br />
Modifying Change Package Entry Attributes<br />
The CLI command documentation is provided in this section with specific options. For<br />
information on general options for CLI commands, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI Reference<br />
<strong>Guide</strong> for Workflows and Documents or man pages. The commands are also available through<br />
the <strong>MKS</strong> API. For information on using the <strong>MKS</strong> API, see <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Integrations<br />
Builder <strong>Guide</strong>.<br />
Viewing Change Package Entry Attributes<br />
To view change package entry attributes in the CLI<br />
From the CLI, type the following command:<br />
im cpentryattributes<br />
--cpType=change package type<br />
--fields=field1[:width1],field2[:width2]...<br />
--fieldsDelim=value<br />
cpattributeID1, cpattributeID2...
where:<br />
<strong>MKS</strong> <strong>Integrity</strong> Change Packages<br />
--cpType=change package type specifies the change package type for the change package<br />
entry attribute.<br />
--fields=field1[:width1],field2[:width2]... specifies the fields to display, where fieldn<br />
can be any of the following: decimalPlaces, description, displayFormat,<br />
displayName, id, isMandatory, isReadOnly, maxLength, name, position, strings,<br />
type.<br />
--fieldsDelim=value specifies the string to be used as a delimiter between fields.<br />
cpattributeID1, cpattributeID2... specifies the IDs of the change package attributes you<br />
want to view. If no IDs are specified, all change package attribute IDs are displayed.<br />
Viewing Change Package Entry Attribute Details<br />
To view change package entry attribute details in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im viewcpentryattribute<br />
--cpType=change package type<br />
--[no]showHistory<br />
cpattributeID1, cpattributeID2...<br />
--cpType=change package type specifies the change package type for the change package<br />
entry attribute.<br />
--[no]showHistory specifies if to display the history of changes to the change package<br />
entry attribute.<br />
cpattributeID1, cpattributeID2... specifies the IDs of the change package attributes you<br />
want to view details for. If no IDs are specified, all change package attribute IDs are<br />
displayed.<br />
337
Chapter 8: Change Packages<br />
338<br />
Creating Change Package Entry Attributes<br />
To create a change package entry attribute in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im createcpentryattribute<br />
--dataType=[integer|stringlist|float|logical|date|string|user|cpid]<br />
--maxLength=value<br />
--cpType=change package type<br />
--decimalPlaces=value<br />
--displayFormat=[truefalse|tf|yesno|yn]<br />
--displayName=value<br />
--[no]mandatory<br />
--strings=value<br />
--description=value<br />
--name=value<br />
--position=[first|last|before:|after:]<br />
--dataType=[integer|stringlist|float|logical|date|string|user|cpid]<br />
specifies the attribute data type.<br />
--maxLength=value specifies the maximum length of value for the entry attribute. This<br />
option is valid for data types string, stringlist, and cpid.<br />
--cpType=change package type specifies the name of change package type the entry<br />
attribute is being created for.<br />
--decimalPlaces=value specifies the number of decimal places in the value the<br />
attribute takes. This option is valid for data type float.<br />
--displayFormat=[true|false|t|f|yes|no|y|n] specifies if to display the format<br />
of change package entry attribute value. This option is valid for data type logical.<br />
--displayName=value specifies if to display name of the change package entry attribute.<br />
--[no]mandatory specifies if the change package entry attribute value is mandatory.<br />
--strings=value specifies string values for the attribute. This option is valid for data<br />
type stringlist.<br />
--description=value specifies a short description for the attribute.<br />
--name=value specifies the name for the change package entry attribute being created.<br />
--position=[first|last|before:|after:] specifies the position of<br />
the change package entry attribute you are creating in the attribute order.
Editing Change Package Entry Attributes<br />
To edit a change package entry attribute in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im editcpentryattribute<br />
--cpType=change package type<br />
--decimalPlaces=value<br />
--displayFormat=[truefalse|tf|yesno|yn]<br />
--displayName=value<br />
--[no]mandatory<br />
--strings=value<br />
--description=value<br />
--position=[first|last|before:|after:]<br />
cpentryattributeID<br />
<strong>MKS</strong> <strong>Integrity</strong> Change Packages<br />
--cpType=change package type specifies the name of change package type the attribute is<br />
being created for.<br />
--decimalPlaces=value specifies the number of decimal places in the value the<br />
attribute takes. This option is valid for data type float.<br />
--displayFormat=[true|false|t|f|yes|no|y|n] specifies if to display the format<br />
of value. This option is valid for data type logical.<br />
--displayName=value specifies if to display the name of the change package entry<br />
attribute.<br />
--[no]mandatory specifies if the change package entry attribute value is mandatory.<br />
--strings=value specifies a string of values for the change package entry attribute. This<br />
option is valid for data type stringlist.<br />
--description=value specifies a short description for the change package entry<br />
attribute.<br />
--position=[first|last|before:|after:] specifies the position of<br />
the change package entry attribute you are creating in the attribute order.<br />
cpentryattributeID specifies the ID for the change package entry attribute you are editing.<br />
Deleting Change Package Entry Attributes<br />
You cannot undo an im deletecpentryattribute operation, and you cannot restore deleted<br />
change package attributes.<br />
339
Chapter 8: Change Packages<br />
340<br />
To delete a change package entry attribute in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im deletecpentryattribute<br />
--cpType=change package type<br />
--[no]confirm<br />
cpattributeID1, cpattributeID2...<br />
--cpType=change package type specifies the change package type for the change package<br />
entry attribute.<br />
--[no]confirm specifies if to confirm deleting the change package entry attribute. The<br />
default is to confirm.<br />
cpattributeID1, cpattributeID2... specifies the IDs of the change package attributes you<br />
want to delete.<br />
User Operations for Created Change Package Types<br />
This section contains commands available to perform user operations on change package<br />
types created for your system.<br />
The CLI command documentation is provided in this section with specific options. For<br />
information on general options for CLI commands, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI Reference<br />
<strong>Guide</strong> for Workflows and Documents or man pages. The commands are also available through<br />
the <strong>MKS</strong> API. For information on using the <strong>MKS</strong> API, see <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Integrations<br />
Builder <strong>Guide</strong>.<br />
TIP In addition to the commands in this section, you can also use commands<br />
im viewcp and im cps on change package types you have created. See the man<br />
pages for details on using those commands.<br />
Creating Change Packages<br />
To create a change package in the CLI<br />
From the CLI, type the following command:<br />
im createcp<br />
--attribute=value<br />
--issueID=value<br />
--type=change package type
where:<br />
<strong>MKS</strong> <strong>Integrity</strong> Change Packages<br />
--attribute=value specifies the attribute of the form name=value, where name is the<br />
attribute name and value is the new value of that attribute.<br />
NOTE You must enter using option --attribute=value any attribute that is<br />
mandatory for the change package type.<br />
--issueID=value specifies the item ID to create the change package for.<br />
--type=change package type specifies the type of the change package to be created.<br />
Editing Change Packages<br />
To edit a change package in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im editcp<br />
--attribute=value<br />
--filter=type:name<br />
cpid<br />
--attribute=value specifies the attribute of the form name=value, where name is the<br />
attribute name and value is the new value of that attribute.<br />
--filter=type:name specifies the filter used to refine change package selections.<br />
cpid specifies the change package you are editing.<br />
Deleting Change Packages<br />
You cannot undo an im deletecp operation, and you cannot restore deleted change<br />
packages.<br />
To delete a change package in the CLI<br />
where<br />
im deletecp<br />
--[no]confirm<br />
--[no|confirm]deleteEntries<br />
cpid1, cpid2...<br />
--[no]confirm specifies if to confirm each individual change package being deleted.<br />
--[no|confirm]deleteEntries specifies if to delete (or confirm deleting) the change<br />
package entries.<br />
cpid1, cpid2... specifies the change packages you are deleting.<br />
341
Chapter 8: Change Packages<br />
Modifying CP Entries for Created CP Types<br />
342<br />
The CLI command documentation is provided in this section with specific options. For<br />
information on general options for CLI commands, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> CLI Reference<br />
<strong>Guide</strong> for Workflows and Documents or man pages. The commands are also available through<br />
the <strong>MKS</strong> API. For information on using the <strong>MKS</strong> API, see <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Integrations<br />
Builder <strong>Guide</strong>.<br />
Creating Change Package Entries<br />
To create change package entries in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im createcpentry<br />
--attribute=value<br />
--changePackageID|--cpid=value<br />
--attribute=value specifies the value of a change package entry attribute (value is of<br />
the form attributeName=attributeValue).<br />
--changePackageID|--cpid=value specifies the ID of the associated change package.<br />
Editing Change Package Entries<br />
To edit change package entries in the CLI<br />
From the CLI, type the following command:<br />
im editcpentry<br />
--attribute=value<br />
--changePackageID|--cpid=value<br />
cpentry<br />
where:<br />
--attribute=value specifies the value of a change package entry attribute (value is of<br />
the form attributeName=attributeValue).<br />
--changePackageID|--cpid=value specifies the ID of the associated change package.<br />
cpentry specifies the name of the change package entry you editing. The format of cpentry<br />
is determined by the entry key for the change package type. For example, an<br />
Implementer change package entry is specified as member:objectcode.<br />
Deleting Change Package Entries<br />
You cannot undo an im deletecpentry operation, and you cannot restore deleted change<br />
package entries.
To delete change package entries in the CLI<br />
From the CLI, type the following command:<br />
where:<br />
im deletecpentry<br />
--[no]confirm<br />
--changePackageID|--cpid=value<br />
cpentry<br />
Configuration Management Change Packages<br />
--[no]confirm specifies if to confirm deleting the change package entry. The default is<br />
to confirm.<br />
--changePackageID|--cpid=value specifies the ID of the associated change package.<br />
cpentry specifies the name of the change package entry you deleting.<br />
Configuration Management Change Packages<br />
A change package is a group of changes made by a single user that can be considered a logical<br />
unit of work. Only the creator of a change package can add entries to that change package.<br />
Change package entries are added when you specify a change package while performing<br />
member operations.<br />
A change package acts as a log of both the changes to members and subprojects that have<br />
already been committed to the repository (server), and the changes that are only visible to the<br />
user on the desktop and not committed to the repository (deferred). When change package<br />
reviews are mandatory, a change package acts as a control placed on changes to the<br />
repository by making them pending before they are committed.<br />
A change package is open until you close it, which signifies that work on the change is<br />
completed. When reviews are mandatory, a change package has additional states before it is<br />
closed.<br />
The following rules apply when using change packages:<br />
Each change package has a unique change package ID (CP ID). The CP ID is a colon<br />
separated identifier of the form:<br />
:<br />
NOTE If the <strong>MKS</strong> <strong>Integrity</strong> integration is enabled, the item ID is used as the<br />
container ID.<br />
343
Chapter 8: Change Packages<br />
344<br />
Only the creator of a change package or a change package administrator can close a<br />
change package.<br />
Once a change package is closed, it can only be re-opened by a change package<br />
administrator. If a change package has been propagated through Apply CP or<br />
Resync CP, it cannot be reopened, even by a change package administrator.<br />
You can expand the capabilities of change packages by associating them with items to take<br />
advantage of <strong>MKS</strong> <strong>Integrity</strong>’s workflow and document management.<br />
For information on integrating workflow and document management with configuration<br />
management, and setting up configuration management change packages, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
Using Change Package Reviews<br />
A change package review is a review of changes by specified reviewers before the changes<br />
are committed to the server repository.<br />
If change package reviews are mandatory globally, then all change packages must progress<br />
through the change package review process.<br />
If change package reviews are mandatory at the project level only, then a change package<br />
only progresses through the review process if it contains at least one entry associated with a<br />
member in a project that requires a review. Change packages follow the review process<br />
before the changes are successfully committed to the server repository. All other change<br />
packages function as non-review change packages.<br />
A change package reviewer is a user specified by your administrator to review change packages<br />
containing members associated with specific projects. The reviewer may be individually<br />
specified or a member of a specified reviewer group. In the case of a reviewer group, any<br />
member of that group casts an accept or reject vote on behalf of the entire group.<br />
A change package watcher is a user specified by your administrator who is notified when a<br />
reviewed change package is closed after being successfully committed to the repository.<br />
Change package watchers may be individually specified or a member of a specified watcher<br />
group.<br />
A super reviewer is a user with permission to vote on change packages, but who is not<br />
required to be a listed reviewer for the change package. Voting as a super reviewer overrides<br />
all other votes. For example, casting an accept vote as a super reviewer is sufficient for<br />
accepting the change package.<br />
For more information on setting up change package reviewers and watchers, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.
How Change Package Review Works<br />
Configuration Management Change Packages<br />
The following summarizes how the change package review process works:<br />
1 The review starts when a developer (change package creator) submits a change package<br />
containing deferred and member lock entries and subproject entries (or any combination<br />
of deferred, pending, or committed entries).<br />
2 <strong>MKS</strong> <strong>Integrity</strong> creates a pending change package entry for each deferred and member<br />
lock entry, and, where necessary, pending revisions.<br />
3 Change package reviewers (possibly a mentor or a senior developer) accept or reject the<br />
change package.<br />
4 The change package entries are either committed to the database (accepted case), or the<br />
developer opens the change package and continues development (rejected case).<br />
NOTE Although the review process describes submitting change packages with<br />
deferred entries thereby creating pending entries, if deferred operations are not<br />
mandatory you can create pending entries at the time the operation is completed by<br />
clearing the deferred option. You can then submit the change package containing<br />
the pending entries for review. Subproject operations are always created as pending<br />
entries in a change package when reviews are mandatory.<br />
Pending Entries<br />
and Revisions<br />
Reviewers<br />
Developer<br />
Submit Change<br />
Package<br />
Accept or Reject<br />
Accept<br />
Change Package review process<br />
Reject<br />
Committed<br />
Open and Work<br />
Repository<br />
Developer<br />
The <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong> gives full details of the change package review process.<br />
The change package review process is controlled through the use of policies and permissions.<br />
345
Chapter 8: Change Packages<br />
Review Benefits<br />
346<br />
For information on required policies and permissions, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
The benefits of using reviews are:<br />
Reviews provide a formal and enforceable review process.<br />
Reviews force changes to be reviewed before they are committed to the repository<br />
thereby providing control over what changes are accepted into a project by making<br />
operations pending. Unlike deferred operations, which are stored only client side,<br />
pending operations are stored server side and so are visible to all users. This can be<br />
useful near the end of a release cycle as a pre-commit review of changes before they are<br />
included in a release build.<br />
Pending revisions are not a part of the current state of the project until they have been<br />
reviewed (not at member revision); however, they remain in the member history and can<br />
be checked out (without a lock) by users (other than the creator) for review.<br />
If the project is one that users will be building from, reviews can remove the need for<br />
using a variant project to review changes manually.<br />
Reviews provide an alternative to manual post-commit review while recording all of the<br />
review information.<br />
Change Package Review E-mail Notification<br />
By default, e-mail notifications are sent to the change package creator, reviewers, and<br />
watchers when events occur in the review process. <strong>MKS</strong> <strong>Integrity</strong> uses a server-side event<br />
trigger to provide e-mail notifications. The events that trigger an e-mail notification are<br />
described as part of the review workflow in the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
If you are using e-mail notification for change package reviews, ensure that triggers are<br />
enabled in the si.properties file (see “Overview of Configuration Management Triggers”<br />
on page 374).<br />
If you are using LDAP, e-mail addresses are obtained from the realm. Otherwise, e-mail<br />
addresses take the following form (the domain must first be specified in the<br />
env.properties file):<br />
@domain<br />
For e-mail notifications, you can change the following:<br />
who receives e-mail (the reviewer, creator, or watcher)<br />
when users receive e-mail (what events trigger the script)<br />
subject and body content of the e-mail (what information the e-mail contains)
Configuration Management Change Packages<br />
You can modify the trigger events that cause an e-mail notification by editing the following<br />
file:<br />
installdir/data/triggers/events/global.events<br />
For more information on events, see “The syntax for an event is:” on page 375.<br />
You can modify the trigger script by editing the following file:<br />
installdir/data/triggers/scripts/samples/changePackageNotification.js<br />
For more information on scripts provided by <strong>MKS</strong>, see “Sample event triggers are provided<br />
in:” on page 390.<br />
347
Chapter 8: Change Packages<br />
348
C HAPTER NINE<br />
Event Triggers<br />
Using Scripts to Automate Tasks and Calculate Data<br />
9<br />
An event trigger is a block of code that the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> or <strong>MKS</strong> <strong>Integrity</strong> Client<br />
runs when a predefined event occurs. The block of code that runs is called a trigger script.<br />
For example, you could set up an event trigger that sends an e-mail notification to a user<br />
when a user’s lock is downgraded, or changes the assigned user when an item’s state<br />
changes.<br />
This chapter contains the following sections:<br />
“Event Categories” on page 350<br />
“About Trigger Scripts” on page 350<br />
“JavaBeans” on page 354<br />
“Overview of Workflow and Document Triggers” on page 355<br />
“Overview of Configuration Management Triggers” on page 374<br />
“Debugging Configuration Management Client-Side Environment Variables” on<br />
page 392<br />
“Using the <strong>MKS</strong> API in Event Triggers” on page 396<br />
“Running Custom Java Code” on page 397<br />
“Tips and Best Practices” on page 399<br />
349
Chapter 9: Event Triggers<br />
Event Categories<br />
350<br />
An event trigger is an association between a predefined event and the script that is to be<br />
executed when that event occurs. These scripts fall into two categories based on when they<br />
occur and if they modify entries in the database. The two categories are as follows:<br />
Pre-event triggers are executed before the event occurs, for example, they can modify an<br />
item being changed and prevent changes to an item.<br />
Pre-condition triggers are pre-events pertaining to items that exist under the<br />
document model, and operate under the same principles as pre-event triggers.<br />
Post-event triggers are executed after the event occurs, for example, returning<br />
information on items in the database and perform actions such as sending mail, but they<br />
cannot make modifications to items.<br />
About Trigger Scripts<br />
Event triggers are scripted using JavaScript (JavaScript is not the same as Java; however,<br />
trigger scripts do support Java code) and follow the standard established by the European<br />
Computer Manufacturers Association (ECMA) in ECMAScript. Additional information on<br />
ECMAScript is available at the ECMA Web site:<br />
http://www.ecma-international.org/<br />
NOTE Document Object Model (DOM) objects are unsupported in trigger scripts.<br />
JavaScript is used to access JavaBeans on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> to work with workflow<br />
and document data, and configuration management data. For more information on<br />
JavaBeans, see “JavaBeans” on page 354.<br />
CAUTION JavaScripts are expressive and allow scripts to perform most operations<br />
that could be programmed using Java. The scripts run under the permissions of the<br />
administrator. The administrator is responsible for ensuring trigger scripts do not<br />
perform any operations that could affect system or file security.
JavaScript Language Elements<br />
About Trigger Scripts<br />
The intent of this section is not to teach JavaScript, as <strong>MKS</strong> recommends that you already be<br />
familiar with JavaScript. This section outlines useful JavaScript language elements commonly<br />
used in trigger scripts.<br />
Variables<br />
JavaScript variables are type independent (integer, floating point, string, etc.) and can hold<br />
Java objects (sets, strings, etc.). Unlike Java, you do not have to declare the type for JavaScript<br />
variables and the type can be reset by simply assigning a different value.<br />
IMPORTANT JavaScript variables are case-sensitive, for example, the variable myvar<br />
is different from myVar. Case sensitivity can be the cause of some trigger file bugs.<br />
To declare a variable, use the following syntax:<br />
var = ;<br />
for example, the variable “i” can be reassigned to the following different types:<br />
var i = 0;<br />
var i = 1.5;<br />
var i = “This is a string”<br />
var i = Packages.com.mks.api.IntegrationPointFactory.getInstance()<br />
Operators<br />
NOTE Many <strong>MKS</strong> Beans return Java objects that can be stored in JavaScript<br />
variables.<br />
Most of the operators used in trigger scripts are similar to other programming languages;<br />
however, there are some slight differences. For example, there is a fundamental difference<br />
between the assignment operator “=“ and the comparison operator “==“. Be careful not to<br />
use “=“ to mean “equal to” in a comparison statement.<br />
TIP The string operator “+” is very useful for constructing error and log messages in<br />
trigger scripts.<br />
351
Chapter 9: Event Triggers<br />
352<br />
The following tables outlines operators used in script triggers:<br />
Arithmetic Operators Comparison Operators<br />
Addition: +<br />
Subtraction: -<br />
Multiplication: *<br />
Division: /<br />
Modulus: %<br />
Increment: ++<br />
Decrement: --<br />
Control Structures<br />
To execute code based on conditions, use the if…else statement, for example:<br />
if (condition) {<br />
// Code to be executed if condition is true<br />
} else {<br />
// Code to be executed if condition is not true<br />
}<br />
To execute code a specified number of times, use the for loop, for example:<br />
for (var=startvalue;var<br />
Greater than or equal to: >=<br />
Less than: <<br />
Less than or equal to:
Control Structures and Functions<br />
About Trigger Scripts<br />
To execute code a specified number of times while a condition is true, use the while loop, for<br />
example:<br />
while (var
Chapter 9: Event Triggers<br />
JavaBeans<br />
354<br />
Exception Handling<br />
To trap errors in trigger scripts, use the try…catch…finally control structure, for example:<br />
where:<br />
try {<br />
// Code to be executed<br />
} catch (error) {<br />
// Code to execute there is an error<br />
} finally {<br />
// Optional – always execute this code<br />
}<br />
The try block contains the code you want to run.<br />
The catch block contains the code you want to run if an error occurs.<br />
The finally block (optional) contains code that always runs before the control structure<br />
ends.<br />
TIP As a best practice, <strong>MKS</strong> recommends using try..catch whenever possible.<br />
A JavaBean is a reusable Java software component (conforming to Sun’s Enterprise JavaBean<br />
specification) used to pass information from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> to the trigger script.<br />
Beans are accessed through JavaScript using the lookupBean() function from the Bean<br />
Scripting Framework (BSF). For example:<br />
var envBean = bsf.lookupBean("siEnvironmentBean");<br />
There are different Beans for workflow and document management, and configuration<br />
management information. Deploy specific Beans are included with both types of Beans.<br />
The siEnvironmentBean is used by both types of Beans, even though it starts with “si”.
Overview of Workflow and Document Triggers<br />
Information on available <strong>MKS</strong> Beans is located in the Event Trigger Java Documentation on<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> homepage:<br />
http://localhost:port/documentation/javadocs/triggers/index.html<br />
When writing triggers, refer to the Event Trigger Java Documentation frequently to see what<br />
Beans and methods to use.<br />
Note the following about using the Event Trigger Java documentation:<br />
The lower left frame is a listing of all the available Beans.<br />
LocalTriggerManager Beans are for workflow and document management, and the<br />
rest are a mixture of workflow and document management; configuration management;<br />
and Deploy Beans.<br />
Search for names that contain the command or object you want to work with.<br />
To get the name of a Bean to use in a look up statement, review the documentation for<br />
the Bean’s getExposedName() method.<br />
The Index link at the top of the right frame lists all the methods alphabetically and is<br />
useful to search if you know the first part of a method you want to use.<br />
Overview of Workflow and Document Triggers<br />
Workflow and document event triggers execute in response to an action by the <strong>MKS</strong> <strong>Integrity</strong><br />
Client, and reside on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> where they are executed (client-side triggers<br />
are unsupported).<br />
<strong>Administration</strong> of workflow and document event triggers is performed in the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client; however, you can also create, edit, and run them from the CLI. For<br />
more information on managing workflow and document event triggers, see “Using<br />
Workflow and Document Event Triggers” on page 361.<br />
355
Chapter 9: Event Triggers<br />
Workflow and Document Event Categories<br />
356<br />
Workflow and document triggers fall into three categories of events:<br />
Rule based events run because of an action made by a user. The following are some of the<br />
ways you can use rule-based change triggers:<br />
When an item changes to a specified state, iterate over the change packages and<br />
then resync them into the reference tree.<br />
When an item is updated, change a field in a related item.<br />
If an item is in an open state and all of the reverse related items (items pointing to it)<br />
are in a final state, move the item into a final state as well.<br />
For more information on rule based triggers, see “Creating Rule Based Change Triggers”<br />
on page 363.<br />
Scheduled events run in isolation and do not require an action by a user. The following<br />
are some of the ways you can use scheduled triggers:<br />
If the item is in a state and unchanged for a specified length of time, send e-mails to<br />
assigned users and relevant managers.<br />
If the priority is at the maximum level, send an e-mail to the manager.<br />
If a critical item has been in a beginning state for a number of days, send an e-mail to<br />
the project manager.<br />
For more information on scheduled event triggers, see “Creating Scheduled Triggers” on<br />
page 367.<br />
Other events run when:<br />
time entry is changed by a user, for example, when a time entry is changed on an<br />
item, update the payroll system<br />
item tree is copied<br />
item is branched<br />
item is labeled<br />
test result is created, modified, or deleted<br />
For more information on other event triggers, see “Creating Other Triggers” on<br />
page 370.
Key Considerations<br />
Overview of Workflow and Document Triggers<br />
Triggers fire in their position order. If there are two rule-based triggers with the same<br />
rule, the higher position (lower number) trigger fires first. If there are two scheduled<br />
triggers set for the same date and time, the high position (lower number) trigger fires<br />
first.<br />
Triggers have administrator privileges and may override user permissions, but the<br />
history records the changes as having been performed by the user.<br />
If a pre-event trigger modifies or creates another item, the secondary item becomes part<br />
of the transaction. Either all of the modifications made to all of the items succeed or none<br />
do.<br />
To ensure a pre-event trigger does not run more than once, when it has completed, other<br />
secondary triggers are not permitted to obtain that item.<br />
Transactionality of Workflow and Document Event Triggers<br />
The event trigger operation occurs in the following sequence:<br />
Transaction occurs, and a commitment is made that the pre-event trigger will run.<br />
Pre-event trigger runs before any modifications have been made to the database. If an<br />
error occurs (or a trigger veto) in the pre-event trigger, no changes are made to the<br />
database, the transaction is rolled back, and the database is returned to its original state.<br />
All scripts, triggers, and assignments are stopped.<br />
Commit occurs where the change is made to the database.<br />
Post-event trigger runs only after all data has been committed to disk.<br />
357
Chapter 9: Event Triggers<br />
358<br />
Other items can only be modified by running a chain of pre-event triggers. When the server<br />
starts a transaction, the server runs in order: transaction, pre-event trigger chain, commit<br />
transaction, and post-event trigger chain.<br />
NOTE Chains of scheduled triggers run separately from chains of rule-based change<br />
triggers. For more information on rule-based triggers, see “Overview of Workflow<br />
and Document Triggers” on page 355.<br />
If a pre-event trigger attempts to modify another item or create another item, the secondary<br />
item is added to a list of items that become part of the current transaction.<br />
Either all of the modifications made to all of the items must succeed or none of them. This<br />
means any pre-event triggers for the secondary item must also run, and they are subject to<br />
the same rules as the triggers running for the primary item.<br />
To ensure a pre-event trigger does not run more than once, when the pre-event trigger has<br />
completed, other secondary triggers are not permitted to obtain that item again.<br />
All changes made by event triggers bypass the server permission checking. While the history<br />
records all changes as having been performed by the user, the trigger is not required to<br />
conform to the permissions for that end user.<br />
Planning Workflow and Document Triggers<br />
To avoid unpredictable event trigger behavior, plan your event triggers in the following way:<br />
1 Decide if you want to create a trigger that runs on a specific day and time, or a trigger<br />
that runs based on an action by a user.<br />
2 If it is a rule-based trigger decide if it is going to be a pre-event trigger or post-event<br />
trigger.<br />
3 Determine the base tasks the trigger needs to perform, and select the required scripts<br />
from the library.<br />
4 Determine what fields, if any, the trigger will change or what information the trigger<br />
collects from the database.<br />
5 Identify which user permissions are overridden by the trigger and how that affects<br />
security.<br />
6 Identify potential constraint based conflicts, such as mandatory fields for state changes<br />
or closed change package requirements.<br />
Script Library for Workflow and Document Triggers<br />
Workflow and document event triggers use pre-created scripts from a server-side library.<br />
You can modify existing scripts or add new ones to build the library over time.
Overview of Workflow and Document Triggers<br />
<strong>MKS</strong> <strong>Integrity</strong> provides pre-created scripts, which are available in the script library found in:<br />
installdir/data/triggers/scripts<br />
The list of pre-created scripts provided may vary depending on the server implementation of<br />
an organization. Some of the pre-created scripts available include:<br />
assignment.js automatically assigns an item based on a file-driven set of criteria.<br />
signatureRequired.js requires an electronic signature for changes to items. For more<br />
information, see “Setting Up Electronic Signatures” on page 241.<br />
sum.js computes simple metrics through a relationship tree. This trigger is<br />
automatically installed by the Rules panel when editing fields and when a Summation<br />
of Relationship Tree rule is installed.<br />
Coding Workflow and Document Triggers<br />
The following section provides an overview of workflow and document trigger coding. For<br />
detailed information about creating, editing, and managing workflow and document trigger<br />
scripts, see “Using Workflow and Document Event Triggers” on page 361.<br />
Script Description<br />
The initial comment text in a workflow and document trigger script displays on the<br />
Description tab in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client. HTML tags provide additional<br />
formatting.<br />
For example, the following script code:<br />
// <strong>MKS</strong> <strong>Integrity</strong> PRE-Event Trigger<br />
// <br />
// Enforce mandatory fields on a State Transition<br />
// <br />
// Base <strong>MKS</strong> <strong>Integrity</strong> has the notion of a mandatory field; however,<br />
this makes a field mandatory when it is given a state, no matter how<br />
it got into that state.<br />
displays as the following in the Description tab:<br />
<strong>MKS</strong> <strong>Integrity</strong> PRE-Event Trigger<br />
Enforce mandatory fields on a State Transition<br />
Base <strong>MKS</strong> <strong>Integrity</strong> has the notion of a mandatory field; however, this<br />
makes a field mandatory when it is given a state, no matter how it got<br />
into that state.<br />
359
Chapter 9: Event Triggers<br />
360<br />
Script Parameters<br />
Trigger scripts take parameters to promote script reuse, rather than limiting a script by hardcoding<br />
values in it.<br />
Parameter lines are placed after the description code block. Commented lines starting with<br />
@param define the script parameters. The first word after @param is the field type (String,<br />
Boolean, MultiString).<br />
After the field type, the remaining text is the name of the parameter. The parameter name<br />
appears on the Parameters tab in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client. Commented lines<br />
until the next @param or end of comments appear as tooltips for the parameter.<br />
For example, the following script code:<br />
// ¶m String Mandatory Fields<br />
// Name of the mandatory field, or fields. If a list, then each must<br />
// be separated by commas.<br />
where String is the field type and Mandatory Fields is the parameter name.<br />
displays as:<br />
Field Parameters<br />
To get a list of types, use @param Type:<br />
// @param Type New Type<br />
To get a list of states, use @param State:<br />
// @param State New State<br />
To get a list of fields, use @param Field::<br />
For example, to get a list of relationship fields type:<br />
// @param Field:relationship New Relationship<br />
This prevents introducing typographical errors into trigger parameters and having to look up<br />
type, state, and field names. The syntax for all field types is the field type name (all lowercase<br />
and no spaces), for example, Long Text is “longtext”.
Overview of Workflow and Document Triggers<br />
Referencing Workflow and Document Beans in Trigger Scripts<br />
First, you need to reference the applicable workflow and document Beans you want to use in<br />
your script. Refer to the Event Trigger Java Documentation off the server homepage. Beans<br />
prefaced with LocalTriggerManager are workflow and document Beans.<br />
TIP You can get the name of a Bean by looking at the GetExposedName() method<br />
in the Event Trigger Java Documentation.<br />
Once you know the Bean name, look up the Bean in the trigger script, for example:<br />
var params = bsf.lookupBean(“parametersBean”);<br />
Useful workflow and document Beans include:<br />
ScriptEnvironmentBean<br />
Contains information about the environment in which the script is running.<br />
ScriptParametersBean<br />
Contains any parameters passed to the script.<br />
LocalTriggerManager.Script<strong>Server</strong>Bean<br />
Contains <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> information (types, states, etc.).<br />
LocalTriggerManager.ScriptIssueDeltaBean<br />
Contains item information before a change and after.<br />
Example of a Workflow and Document Trigger<br />
Once you have referenced the necessary Beans, you can begin coding the rest of the trigger<br />
according to your needs. For example, to retrieve and set workflow and document data type<br />
the following:<br />
Save the trigger script to the trigger library installdir/data/triggers/scripts.<br />
Using Workflow and Document Event Triggers<br />
To use workflow and document event triggers, you need to know the following:<br />
361
Chapter 9: Event Triggers<br />
362<br />
“Managing Event Triggers” on page 362<br />
“Creating Event Triggers” on page 363<br />
“Viewing Event Triggers” on page 372<br />
“Editing Event Triggers” on page 372<br />
“Deleting Event Triggers” on page 373<br />
“Resolving Event Triggers” on page 373<br />
Managing Event Triggers<br />
You can manage event triggers from one convenient location. Managing event triggers is<br />
carried out through the Triggers view.<br />
To open the Triggers view, in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client under Workflows<br />
and Documents select Triggers. (For general information about the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client, see “Introduction” on page 10.) The Triggers view displays.<br />
By default, the data filter in the Triggers view displays all existing event triggers. You can<br />
search for a specific event trigger by typing in the text field. For more information, see<br />
“Filtering Data” on page 18.<br />
TIP To show the last run time for a trigger, you can also add a column for the Last<br />
Run Time. To add this column, right click the column header bar, and select Last<br />
Run Time.
You can perform the following tasks:<br />
create a new event trigger that runs:<br />
Overview of Workflow and Document Triggers<br />
by a set of rules (see “Creating Rule Based Change Triggers” on page 363)<br />
on a schedule (see “Creating Scheduled Triggers” on page 367)<br />
whenever a time entry is changed (“Creating Other Triggers” on page 370)<br />
whenever a test result is created, modified, or deleted (“Creating Other Triggers” on<br />
page 370)<br />
copy an event trigger (see “Copying Event Triggers” on page 371)<br />
run a scheduled event trigger (see “Running Scheduled Triggers” on page 371)<br />
edit an event trigger (see “Editing Event Triggers” on page 372)<br />
view an event trigger’s details (see “Viewing Event Triggers” on page 372)<br />
delete an event trigger (see “Deleting Event Triggers” on page 373)<br />
change the order of event trigger resolution (see “Resolving Event Triggers” on<br />
page 373)<br />
NOTE Chains of scheduled triggers run separately from chains of rule-based change<br />
triggers. Consider the order that scheduled triggers are listed in separately from the<br />
order rule-based change triggers are listed in.<br />
Any changes you make in the Triggers view have an immediate effect on your <strong>MKS</strong> <strong>Integrity</strong><br />
database.<br />
Creating Event Triggers<br />
You can create a rule-based event trigger, scheduled event trigger, or time entry event<br />
trigger. Each trigger requires a name and position in addition to the rule or schedule<br />
parameters.<br />
Creating Rule Based Change Triggers<br />
Rule-based change triggers run whenever an item is changed by a user in a manner matching<br />
a defined rule. Any modifications appear as if made by the original user who modified or<br />
created the item that caused the trigger to run.<br />
NOTE When using a trigger to prevent a user action, ensure the trigger displays an<br />
error message to the user and the user has a course of action available.<br />
The general steps required to create a rule-based change trigger are as follows:<br />
1 Select the rule-based change trigger type.<br />
363
Chapter 9: Event Triggers<br />
364<br />
2 Provide a description for the trigger.<br />
3 Define a rule for when the trigger runs.<br />
4 Select a script file from the library for the trigger to run. Then, if required, fill out the<br />
parameters for it.<br />
NOTE Backlashes (\) in parameters are truncated after you save and run the trigger,<br />
for example, in a directory path. To avoid this, use forward slashes (/).<br />
5 Assign values to the fields the trigger modifies when it runs (if the trigger is one that<br />
modifies field values in the database).<br />
Key Considerations<br />
Ensure each field the user is required to update is legally updateable by that user.<br />
If the state of an item is being changed, ensure the state transition is valid.<br />
If the state of an item is being changed and the new state is one that does not allow open<br />
change packages, ensure all of the change packages are closed before the state change is<br />
made.<br />
Ensure all fields that are mandatory for the final state in the workflow contain values.<br />
Validations are performed before any trigger code runs. The pre-event trigger only runs<br />
if all validations are successful. Be aware that the trigger has administrator privileges<br />
and may override the user permissions.<br />
If your rule contains only one condition, you do not need to use And and Or nodes.<br />
If no rule is defined for a rule-based change trigger, the trigger runs every time any user<br />
performs an action on any item in <strong>MKS</strong> <strong>Integrity</strong>.<br />
Pre- and post-options are not available for scheduled triggers.<br />
Scripts listed under the samples directory (for example, samples/<br />
breakLockNotification.js) are for configuration management and are not<br />
applicable to workflow and document management.<br />
To create a rule-based change trigger in the GUI<br />
1 In the Triggers view (see “Managing Event Triggers” on page 362), select Trigger ><br />
Create. The Create Trigger dialog box displays the Type panel.<br />
2 In the Name field, type a name for the new event trigger.<br />
3 Select Rule.<br />
4 To enter a description for the event trigger (optional), click the Description tab. The<br />
Description panel displays.<br />
5 Type a description in the field.
Overview of Workflow and Document Triggers<br />
6 To define a rule for the event trigger, click the Rule tab. The Rule panel displays.<br />
CAUTION If no rule is defined for a rule-based change trigger, the trigger runs every<br />
time any user performs an action on any item in <strong>MKS</strong> <strong>Integrity</strong>.<br />
a) If certain conditions are met, nodes specify if the trigger runs. Select a node option by<br />
clicking a button:<br />
And specifies that all of the conditions specified must be true for the trigger to<br />
run. For example, if an item’s assigned group = documentation and the<br />
project = editor, then the event trigger runs.<br />
Or specifies that one or more of the conditions must be true for the trigger to<br />
run. For example, if an item’s state = submitted or the priority is not equal<br />
to high, then the event trigger runs.<br />
Swap replaces the selected node with the opposite node. For example,<br />
swapping an Or node replaces it with an And node.<br />
Remove deletes the selected node.<br />
NOTE You do not need to use And and Or nodes if your rule contains only one<br />
condition.<br />
b) Under Condition, define the conditions this trigger should run under. For more<br />
information, see “Defining Rules” on page 43.<br />
For example, in a workflow with the states Development > Testing > Release,<br />
you can create a rule-based trigger to perform an action whenever an item is<br />
changed to the Testing state (State=Testing). Another example is to perform an<br />
action every time the assigned user of an item is changed to the specified user, such<br />
as in the following example:<br />
Assigned UserAssigned User<br />
Assigned User=mchang<br />
Using the same workflow of Development > Testing > Release, you could<br />
create a rule-based trigger to perform an action for all items existing in the Testing<br />
state (State=Testing). Another example is to perform an action for all items that<br />
are currently assigned to the specified user (such as, Assigned User=mchang).<br />
For specific use cases pertaining to the creation of pre-condition rules for triggers<br />
that operate on items under document model, see ALM Knowledge Base.<br />
c) To add the condition to the rule, click Add. To replace an existing rule with a new<br />
rule, select the rule in the rules list, then click Replace.<br />
d) To copy a rule from another trigger, under Copy do one of the following:<br />
365
Chapter 9: Event Triggers<br />
366<br />
Click Add to copy notification conditions. The copied conditions are appended<br />
to any existing rules.<br />
Click Replace to copy notification conditions and replace any existing rules.<br />
The Rule Selection dialog box displays.<br />
e) In the Objects with Rules list, select the trigger you want to copy a rule from. If the<br />
trigger has a rule, that trigger displays in the Preview area.<br />
Click OK. The rule displays in the Rule panel.<br />
Repeat as necessary to copy other rules.<br />
7 To select scripts for the new trigger, click the Trigger tab. The Trigger panel displays.<br />
a) To specify the script file or files the event trigger runs when scheduled, do one of the<br />
following:<br />
In the Script File field, enter the name of the JavaScript file. For more than one<br />
file, place a comma between file names.<br />
Click Browse, select a script file from the list in the viewer, and click OK.<br />
Selected scripts display in the Trigger panel.<br />
TIP Press CTRL to multi-select scripts or clear a selection. Multi-selected scripts<br />
appear in the Script field on the Triggers panel delimited by commas.<br />
For information on pre-created JavaScript files see the “Workflow and<br />
document event triggers use pre-created scripts from a server-side library. You<br />
can modify existing scripts or add new ones to build the library over time.” on<br />
page 358.<br />
b) If the trigger is a pre- or post-event, or both, enable the option or options<br />
accordingly.<br />
c) Enter trigger parameters, if any, in the relevant Parameters fields. Point to the field<br />
name to view a tooltip containing more information about the parameter. For<br />
information on the JavaScript files provided with <strong>MKS</strong> <strong>Integrity</strong>, see “Workflow<br />
and document event triggers use pre-created scripts from a server-side library. You<br />
can modify existing scripts or add new ones to build the library over time.” on<br />
page 358.<br />
NOTE Backlashes (\) in parameters are truncated after you save and run the trigger,<br />
for example, in a directory path. To avoid this, use forward slashes (/).
Overview of Workflow and Document Triggers<br />
8 To assign values to specific fields when the event trigger is run, click the Assignment tab.<br />
Depending on the scripts they run, some triggers may not require assignments (for<br />
example, if the assignments are coded in the scripts). The Assignment panel displays.<br />
You can create a list of assignments that occur when the rule matches by specifying a<br />
field and the value the trigger enters in that field when it runs. Standard fields, which are<br />
not writable (such as ID, Type, Created Date, Created By, Modified Date, and Modified By)<br />
and item backed picklist fields with rule-based relationships are not available for<br />
assignments.<br />
NOTE A field can only have one assignment. The last assignment you add to the<br />
Assignment panel is the one that the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> uses. Configuration<br />
management project fields cannot be assigned.<br />
When you select the Assigned User or Assigned Group fields, you can click the<br />
Select button to choose from a full list of users or groups, including inactive ones.<br />
a) From the Field list, select the field name.<br />
b) From the Value list, select a value for the selected field. For detailed information on<br />
choosing values for user or project fields, see “Filtering Data” on page 18.<br />
c) To add the assignment to the list, click Add.<br />
Repeat steps a) and b) for additional assignments. To replace an assignment with a<br />
new one, in the list select the assignment to be replaced, and click Replace.<br />
d) To remove an assignment, select the assignment in the list, and click Delete.<br />
NOTE Assignments made on the Assignments panel occur after any assignments<br />
made by code in the script file are performed.<br />
9 To set the trigger, click OK.<br />
Creating Scheduled Triggers<br />
Scheduled triggers run on a specified schedule against all items matching the specified query.<br />
Any modifications appear as if the user selected in the Run As list made them.<br />
The general steps required to create a scheduled event trigger are as follows:<br />
1 Select the schedule trigger type, and assign a user to be recorded as performing the script<br />
the trigger runs.<br />
2 Provide a description for the trigger.<br />
3 Specify the schedule the trigger runs on.<br />
367
Chapter 9: Event Triggers<br />
368<br />
4 Select an existing query to specify which items the query runs on.<br />
NOTE Because scheduled triggers are based on queries, triggers are subject to<br />
visibility rules. Visibility rules restrict access to specific information based on project<br />
or item type. For more information, see “Setting Workflow and Document Project<br />
Visibility” on page 250 and “Setting Field Visibility for Types” on page 120.<br />
5 Select a script file from the library for the trigger to run, and fill out the parameters for it.<br />
NOTE<br />
Scripts listed under the samples directory (for example, samples/<br />
breakLockNotification.js) are for configuration management and are not<br />
applicable to workflow and document management.<br />
Backlashes (\) in parameters are truncated after you save and run the trigger, for<br />
example, in a directory path. To avoid this, use forward slashes (/).<br />
6 Assign the values to the fields the trigger modifies when it is run (if the trigger is one<br />
that modifies field values in the database).<br />
Key Considerations<br />
All triggers run sequentially. This prevents an increase in the use of server resources<br />
each time a new trigger is added.<br />
Scheduled event triggers are evaluated on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>’s time zone.<br />
Schedules are recomputed after any given run, at system startup, and when the triggers<br />
are changed. If a set of triggers takes longer to run than the next scheduled trigger is set<br />
to run at, the next schedule run of the trigger is missed.<br />
All modified items from a single scheduled trigger are part of one single transaction. If<br />
the trigger fails, no items are modified. Unlike rule-based triggers, since each trigger<br />
operates independently of its own batch of items, each trigger commits the change to the<br />
database independently.<br />
When the server is shut down or the service is stopped, the server does not reschedule<br />
triggers that were not able to run to during that time.<br />
To create a scheduled event trigger in the GUI<br />
1 In the Triggers view (see “Managing Event Triggers” on page 362), select Trigger ><br />
Create. The Create Trigger dialog box displays the Type panel.<br />
2 In the Name field, type a name for the new event trigger.<br />
3 Enable Schedule.
Overview of Workflow and Document Triggers<br />
4 From the Run As list, select the user <strong>MKS</strong> <strong>Integrity</strong> records as performing the action. For<br />
detailed information on selecting users, see “Filtering Data” on page 18.<br />
NOTE You must specify a user in the Run As list or you cannot save the trigger.<br />
5 To enter a description for the event trigger (optional), click the Description tab. The<br />
Description panel displays.<br />
6 Type a description in the field.<br />
7 To define the schedule the trigger runs on, click the Schedule tab. The Schedule panel<br />
displays.<br />
8 Under Frequency, select the frequency the trigger runs on:<br />
Manual disables scheduling of the trigger and can be used with the CLI scheduling.<br />
Use this option to disable a scheduled trigger instead of deleting it.<br />
Hourly runs trigger at a specified point within an hour. In the Start Time field, type<br />
the number of minutes past the hour you want the trigger to run. From the Hourly<br />
On list, select the hour(s) you want the trigger to run. The Hourly On list represents<br />
time in the 24 hour format.<br />
Daily runs the trigger at specified time on selected day(s). Enter a time in the 24 hour<br />
format in the Start Time field. From the Daily On list, select which day(s) you want<br />
the trigger to run on.<br />
Monthly runs the trigger at a specified time and day on selected month(s). Enter a<br />
time in the 24 hour format in the Start Time field. From the Monthly On list, select<br />
which month(s) you want the trigger to run on. From the Day Of Month list, select<br />
the day you want the trigger to run on.<br />
The Last Run Time field displays the date and time the trigger last successfully ran.<br />
9 To specify the items the trigger runs on, click the Query tab. The Query panel displays.<br />
10 Select a query from the list. You cannot save a trigger without selecting a query.<br />
NOTE If you select a query that contains the Me symbolic filter on a user field, the<br />
filter fails and does not match any items.<br />
11 To select scripts for the new event trigger, click the Trigger tab. The Trigger panel<br />
displays.<br />
12 To assign values to specific fields when the event trigger is run, click the Assignment tab.<br />
Depending on the scripts they run, some triggers may not require assignments (for<br />
example, if the assignments are coded in the scripts). The Assignment panel displays.<br />
13 Click OK to finish and save the event trigger.<br />
369
Chapter 9: Event Triggers<br />
370<br />
Creating Other Triggers<br />
In addition to schedule- and rule-based triggers, you can create triggers that run when one of<br />
the following actions occur:<br />
time entry is changed<br />
item tree is copied<br />
item is branched<br />
item is labeled<br />
test result is created, modified or deleted<br />
TIP The triggers for item actions are currently used in the <strong>MKS</strong> Requirements<br />
solution, and are useful for document management. The trigger for test results is<br />
useful for test management.<br />
The general steps required to create another trigger are as follows:<br />
1 Select the other trigger type.<br />
2 Provide a description for the trigger.<br />
3 Select a script file from the library for the trigger to run, and fill out the parameters for it.<br />
NOTE<br />
Scripts listed under the samples directory (for example, samples/<br />
breakLockNotification.js) are for configuration management and are not<br />
applicable to workflow and document management.<br />
Backlashes (\) in parameters are truncated after you save and run the trigger, for<br />
example, in a directory path. To avoid this, use forward slashes (/).<br />
Key Considerations<br />
The Rule, Schedule, Query, and Assignment tabs are not meaningful to other triggers,<br />
and are therefore disabled in the Create Trigger dialog box.<br />
For non-batch processing of time entry triggers, a single time entry PRE event is fired<br />
before each operation, then the operation is performed and committed to the database,<br />
and finally the POST event is fired. In this way, the method used for non-batch<br />
processing of time entries triggers is consistent with the method used for batch<br />
processing.<br />
All operations are available to you in the POST event. For example, if you submit 200<br />
time entry edits, there will be 200 PRE triggers, then the 200 operations will process, and<br />
finally there will be a single POST trigger that references all 200 operations.
Overview of Workflow and Document Triggers<br />
The test results trigger will fire before and after each batch of test result creates, edits,<br />
and deletes. If the test result is modified by the tm setresults command, any creates<br />
(if they exist) will fire a trigger, and any edits (if they exist) will fire another trigger.<br />
To create an other trigger<br />
1 In the Triggers view (see “Managing Event Triggers” on page 362), select Trigger ><br />
Create. The Create Trigger dialog box displays the Type panel.<br />
2 In the Name field, type a name for the new event trigger.<br />
3 Enable Other.<br />
4 From the Run triggers whenever list, select an option.<br />
5 To enter a description for the event trigger (optional), click the Description tab. The<br />
Description panel displays.<br />
6 Type a description in the field.<br />
7 To select scripts for the new trigger, click the Trigger tab. The Trigger panel displays.<br />
8 Click OK to finish and save the event trigger.<br />
Copying Event Triggers<br />
You can copy an event trigger to create a new event trigger. Copying an event trigger is<br />
useful for quickly creating a new event trigger that shares common details with an existing<br />
event trigger.<br />
When naming a copied event trigger, you cannot use a name that already exists.<br />
To copy an event trigger in the GUI<br />
1 In the Triggers view (see “Managing Event Triggers” on page 362), select Trigger > Copy.<br />
The Copy Trigger dialog box displays the Type panel (if you are copying a non scheduled<br />
trigger) or the Schedule panel (if you are copying a scheduled trigger).<br />
2 In the Name field, type a new name for the event trigger.<br />
3 Edit the trigger as required. For more information see the following:<br />
“Creating Rule Based Change Triggers” on page 363<br />
“Creating Scheduled Triggers” on page 367<br />
“Creating Other Triggers” on page 370<br />
4 To save your changes, click OK.<br />
Running Scheduled Triggers<br />
Once you have created a scheduled trigger, you can run it. You can only run scheduled<br />
triggers manually by this method.<br />
371
Chapter 9: Event Triggers<br />
372<br />
To run a scheduled trigger in the GUI<br />
1 From the Triggers view, select the event trigger(s) you want to run. For more<br />
information on the Triggers view, see “Managing Event Triggers” on page 362.<br />
2 Select Trigger > Run, the scheduled trigger runs.<br />
Viewing Event Triggers<br />
You can view the details of an event trigger without making the trigger editable. The details<br />
of the event trigger can be viewed through the Triggers view. When in view mode, you<br />
cannot change any of the information for the selected trigger.<br />
NOTE If the trigger you are viewing is based on a query that is invisible to you, the<br />
query does appear in the Query list. However, this query is not available when you<br />
are creating a trigger.<br />
To view an event trigger in the GUI<br />
1 From the Triggers view, select the event trigger you want to view. For more information<br />
on the Triggers view, see “Managing Event Triggers” on page 362.<br />
2 Select Trigger > View Definition. The View Trigger dialog box displays.<br />
3 Click a tab to view its contents.<br />
4 To finish, click Close.<br />
Editing Event Triggers<br />
You can edit the details of a workflow and document event trigger through the Triggers<br />
view.<br />
NOTE<br />
If the trigger you are editing is based on a query that is a non-favorite, the query<br />
appears in the Query list. However, this query is not available when you are<br />
creating a trigger.<br />
Inactive values are not accepted in trigger assignments. If you specify inactive<br />
values for a trigger assignment containing existing user, group, or project field<br />
values, the existing values are cleared. For multi-valued user and group fields,<br />
the entire trigger assignment definition is cleared even if you specified one<br />
inactive value.<br />
To edit an event trigger in the GUI<br />
1 From the Triggers view, select the event trigger you want to edit. For more information<br />
on the Triggers view, see “Managing Event Triggers” on page 362.<br />
2 Select Trigger > Edit. The Edit Trigger dialog box displays.
Overview of Workflow and Document Triggers<br />
3 Select a tab to edit its contents. For more information, see “Creating Rule Based Change<br />
Triggers” on page 363 and see “Creating Scheduled Triggers” on page 367.<br />
4 To determine all objects that reference the field, click the References tab. For information<br />
on the contents of the tab, see “To manage admin provided objects in the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Administration</strong> Client” on page 244.<br />
5 To finish and save the changes, click OK.<br />
Deleting Event Triggers<br />
When a workflow and document event trigger is no longer needed, you can delete it in the<br />
Triggers view.<br />
IMPORTANT If you delete a relationship field used in a rule-based trigger, the field<br />
associated with the relationship field and rule trigger are automatically deleted.<br />
To delete an event trigger in the GUI<br />
1 From the Triggers view, select the event trigger you want to delete. For more<br />
information on the Triggers view, see “Managing Event Triggers” on page 362.<br />
2 Select Trigger > Delete. The Confirm Trigger Deletion dialog box displays.<br />
CAUTION You cannot undo deletion of an event trigger.<br />
3 To delete the event trigger, click Yes.<br />
Resolving Event Triggers<br />
You can change the order of event trigger resolution, that is, which event triggers run first, by<br />
changing the order they appear in the list.<br />
NOTE All pre-event triggers must complete first before any post-event triggers can<br />
run.<br />
To change the resolution order of event triggers in the GUI<br />
1 From the Triggers view, select Trigger > Reposition. The Reposition Triggers dialog box<br />
displays.<br />
2 Do one of the following:<br />
To run the event trigger before other triggers, click Move Up the necessary number of<br />
times.<br />
To run the event trigger after other triggers, click Move Down the necessary number<br />
of times.<br />
373
Chapter 9: Event Triggers<br />
Overview of Configuration Management Triggers<br />
374<br />
A configuration management event trigger is an association between a pre-defined<br />
configuration management event and the script that is to be executed when that event occurs.<br />
Configuration management triggers run on the following:<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> (server-side)<br />
For more information on server-side triggers, see “Overview of Configuration<br />
Management <strong>Server</strong>-Side Triggers” on page 374.<br />
<strong>MKS</strong> <strong>Integrity</strong> Client (client-side)<br />
For more information on client-side triggers, “Overview of Configuration Management<br />
Client-Side Triggers” on page 383.<br />
Overview of Configuration Management <strong>Server</strong>-Side Triggers<br />
Configuration management server-side triggers execute in response to an action on the<br />
<strong>MKS</strong> <strong>Integrity</strong> Client, and reside on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> where they are executed.<br />
<strong>Server</strong>-side triggers are administered through the file system of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> and<br />
are enabled by default through Configuration Management > Configuration > Properties in the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client.<br />
Some uses for configuration management server-side triggers include:<br />
Send an e-mail to the change package creator, reviewer, or watcher if change package<br />
review is enabled<br />
Apply a label to a revision with the name of the user who checked in the revision<br />
Prevent users from adding members of a certain file type<br />
Ensure change package entries occur on the same development path for a change<br />
package<br />
Send an e-mail to the configuration management administrator when configuration<br />
management projects or subprojects are added or dropped<br />
Configuration Management Event Categories<br />
An event is a defined point in configuration management operation. The four categories of<br />
events connected with configuration management operations are:<br />
member<br />
configuration management project<br />
revision
Member Events<br />
server<br />
Overview of Configuration Management Triggers<br />
By default, the global.events definition file is contained in the following directory:<br />
installdir/data/triggers/events<br />
where installdir is the path to the directory where you installed the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
NOTE If the events directory contains more than one global.events definition<br />
file, all files are loaded. If the files contain identical events, the values in the last read<br />
file are used.<br />
You can change the directory by editing the following property under Configuration<br />
Management > Configuration > Properties in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong><br />
Client:<br />
mksis.si.triggers.events<br />
For more information on the events definition file, see “To update the global events definition<br />
template” on page 383.<br />
The syntax for an event is:<br />
..<br />
for example:<br />
Member.freeze.pre<br />
Project.importSubproject.post<br />
The following tables list the events in each category:<br />
freeze.pre freeze.post<br />
thaw.pre thaw.post<br />
setAttribute.pre setAttribute.post<br />
dropAttribute.pre dropAttribute.post<br />
lockRevision.pre lockRevision.post<br />
unlockRevision.pre unlockRevision.post<br />
checkIn.pre checkIn.post<br />
checkOut.pre checkOut.post<br />
setMemberRevision.pre setMemberRevision.post<br />
rename.pre rename.post<br />
setrule.pre setrule.post<br />
clearrule.pre clearrule.post<br />
375
Chapter 9: Event Triggers<br />
Project Events<br />
376<br />
checkpoint.pre checkpoint.post<br />
restore.pre restore.post<br />
addMember.pre addMember.post<br />
dropMember.pre dropMember.post<br />
moveMember.pre moveMember.post<br />
newSubproject.pre newSubproject.post<br />
importSubproject.pre importSubproject.post<br />
configureSubproject.pre configureSubproject.post<br />
dropSubproject.pre dropSubproject.post<br />
moveSubproject.pre moveSubproject.post<br />
newVariant.pre newVariant.post<br />
deleteVariant.pre deleteVariant.post<br />
setDescription.pre setDescription.post<br />
dropProjectAttribute.pre dropProjectAttribute.post<br />
setProjectAttribute.pre setProjectAttribute.post<br />
Revision Events<br />
promoteTo.pre promoteTo.post<br />
demoteTo.pre demoteTo.post<br />
addLabel.pre addLabel.post<br />
deleteLabel.pre deleteLabel.post<br />
appendToDescription.pre appendToDescription.post<br />
<strong>Server</strong> Events<br />
newProject.pre newProject.post<br />
importProject.pre importProject.post<br />
dropProject.pre dropProject.post<br />
submitChangePackage.pre submitChangePackage.post<br />
acceptChangePackage.pre acceptChangePackage.post<br />
rejectChangePackage.pre rejectChangePackage.post<br />
closeChangePackage.pre closeChangePackage.post
<strong>Server</strong> Events<br />
Overview of Configuration Management Triggers<br />
commitChangePackage.pre commitChangePackage.fail<br />
commitChangePackage.post<br />
discardChangePackage.pre discardChangePackage.post<br />
discardChangePackageEntry.pre discardChangePackageEntry.post<br />
moveChangePackageEntry.pre moveChangePackageEntry.post<br />
<strong>Server</strong>.archivemetric.manual<br />
<strong>Server</strong>.projectmetric.manual<br />
<strong>Server</strong>.setarchivemetric.manual<br />
<strong>Server</strong>.setprojectmetric.manual<br />
Deploy Events<br />
These events are only applicable if you are licensed to use Deploy. For more information, see the <strong>MKS</strong> Deploy <strong>2009</strong><br />
<strong>Administration</strong> <strong>Guide</strong>.<br />
Project.promoteChangePackage.pre Project.promoteChangePackage.fail<br />
Project.promoteChangePackage.post<br />
Project.deployChangePackage.pre Project.deployChangePackage.fail<br />
Project.deployChangePackage.post<br />
Project.undeployChangePackage.pre Project.undeployChangePackage.fail<br />
Project.undeployChangePackage.post<br />
Project.cancelDeployRequest.pre Project.cancelDeployRequest.post<br />
Project.deleteDeployRequest.pre Project.deleteDeployRequest.post<br />
Project.editDeployRequest.pre Project.editDeployRequest.post<br />
Project.startDeployRequest.pre Project.startDeployRequest.post<br />
Project.stopDeployRequest.pre Project.stopDeployRequest.post<br />
Project.initDeployTarget.pre Project.initDeployTarget.post<br />
Project.syncDeployTarget.pre Project.syncDeployTarget.post<br />
Project.restoreStage.pre Project.restoreStage.post<br />
Project.deployRequestStateChange.post<br />
Project.deployTargetConnectionStatusChange.post<br />
377
Chapter 9: Event Triggers<br />
378<br />
Configuration Management Commands<br />
The following tables list the available configuration management commands and their<br />
associated event identifiers under the four categories of events:<br />
Member Command Member Event Identifier<br />
si freeze Member.freeze<br />
si thaw Member.thaw<br />
si addmemberattr Member.setAttribute<br />
si dropmemberattr Member.dropAttribute<br />
si lock Member.lockRevision<br />
si unlock Member.unlockRevision<br />
si ci Member.checkIn<br />
si co Member.checkOut<br />
si updaterevision Member.setMemberRevision<br />
si rename Member.rename<br />
si setmemberrule Member.setrule<br />
Member.clearrule<br />
Project Command Project Event Identifier<br />
si checkpoint Project.checkpoint<br />
si restore Project.restore<br />
si add Project.addMember<br />
si drop Project.dropMember<br />
si move Project.moveMember<br />
si createsubproject Project.newSubproject<br />
si createsubproject Project.importSubproject<br />
si movesubproject Project.moveSubproject<br />
si drop Project.dropSubproject<br />
si createdevpath Project.newVariant<br />
si dropdevpath Project.deleteVariant<br />
si setprojectdescription Project.setDescription<br />
si dropprojectattr Project.dropProjectAttribute
Project Command Project Event Identifier<br />
Overview of Configuration Management Triggers<br />
si setprojectattr Project.setProjectAttribute<br />
si applycp various identifiers, depending on the required operations<br />
Revision Command Revision Event Identifier<br />
si promote --state= Revision.promoteTo<br />
si promote (no state specified) Revision.promoteFrom<br />
si demote --state= Revision.demoteTo<br />
si demote (no state specified) Revision.demoteFrom<br />
si addlabel Revision.addLabel<br />
si deletelabel Revision.deleteLabel<br />
si appendrevdesc Revision.appendToDescription<br />
<strong>Server</strong> Command <strong>Server</strong> Event Identifier<br />
si createproject <strong>Server</strong>.newProject<br />
si importproject <strong>Server</strong>.importProject<br />
si droppproject <strong>Server</strong>.dropProject<br />
si submitcp <strong>Server</strong>.submitChangePackage<br />
si acceptcp <strong>Server</strong>.acceptChangePackage<br />
si rejectcp <strong>Server</strong>.rejectChangePackage<br />
si closecp <strong>Server</strong>.closeChangePackage<br />
si discardcp <strong>Server</strong>.discardChangePackage<br />
Discard Change Package Entry <strong>Server</strong>.discardChangePackageEntry<br />
Move Change Package Entry <strong>Server</strong>.moveChangePackageEntry<br />
Transactionality of Configuration Management Event Triggers<br />
The operation of server-side triggers occurs in the following sequence:<br />
1 <strong>MKS</strong> <strong>Integrity</strong> Client initiates a command that will run on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
2 Before event begins, pre-event is posted.<br />
3 Event occurs.<br />
4 <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> polls its registry of events to determine if the event has an<br />
associated script.<br />
379
Chapter 9: Event Triggers<br />
380<br />
5 If script is found, the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> executes the resolved script.<br />
6 Command executes.<br />
7 If command succeeds, post-event is posted.<br />
An event trigger is executed either prior to an event or after the event. Pre-test event triggers<br />
are executed before the command is executed and are most useful for preventing transactions<br />
if particular conditions are not met. For example, a pre-test trigger could prevent state<br />
changes if no label has been added to the member.<br />
Post-test event triggers are executed after an event is successfully committed and are most<br />
useful for combining actions. For example, after the successful check in of a revision, a posttest<br />
event trigger could apply the label with the name of the user who checked in the revision.<br />
Event Trigger Contexts<br />
Configuration management has two contexts for event triggers: global and project.<br />
All server-side triggers are configured on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. Each context contains<br />
JavaScript elements that define the event triggers. Each type of event trigger can be created<br />
and maintained independent of the other. This means you can define different event triggers<br />
for the same events in different projects, or you can define event triggers that apply globally<br />
within your environment.<br />
Global Context<br />
NOTE When working with shared subprojects, <strong>MKS</strong> <strong>Integrity</strong> uses the actual name<br />
of the subproject in the file system rather than its relative name in the configuration<br />
management project hierarchy. This enhances the portability of change packages<br />
across different configuration management projects. Therefore, when returning<br />
query information resulting from a script, <strong>MKS</strong> <strong>Integrity</strong> uses the actual file system<br />
name of the shared subproject.<br />
Global event triggers are available and active for all configuration management operations.<br />
As administrator, you use the global context for any JavaScript elements used to define<br />
additional procedures for all configuration management users.<br />
Project Context<br />
Configuration management project event triggers are established within a project events file.<br />
The project context is generally used for project-specific configuration processes. Event<br />
triggers in this context generally add to, but do not override, event triggers defined in the<br />
global context. The project context is active when either the project or a Sandbox based on the<br />
project is active.<br />
NOTE Configuration management events not available in the project context are:<br />
New Project, Import Project, and Drop Project.
Subproject Event Triggers<br />
Overview of Configuration Management Triggers<br />
You can also set up event triggers to run within the context of a configuration management<br />
subproject. This allows you to run an event trigger only on a selected subproject, without<br />
requiring that the trigger also be defined for the master project.<br />
To configure event triggers to run on a subproject<br />
1 From the installdir/data/triggers directory, copy the project_template.events<br />
file to:<br />
installdir/data/triggers/events<br />
where installdir is the path to the directory where you installed the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
2 In the events folder, rename the project_template.events file to represent the<br />
target subproject, for example, Aurora_Frame_Sub.events.<br />
3 In that file, set the path of the subproject in variable event.projectPath, for example,<br />
event.projectPath=c:/Aurora/Frame/project.pj.<br />
4 Define the script to run on a specific event. For example,<br />
Project.checkpoint.pre=samples/echo.js<br />
sets echo.js to run on a project checkpoint pre-event.<br />
5 Save the revised .events file. The subproject trigger runs for the identified subproject.<br />
Trigger Resolution<br />
<strong>MKS</strong> <strong>Integrity</strong> resolves configuration management event triggers according to the resolution<br />
order configured through Configuration Management > Configuration ><br />
Properties in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client. For example, if the order is<br />
global,projects, the global events file is searched for scripts, followed by the projects<br />
event file. When <strong>MKS</strong> <strong>Integrity</strong> finds a script with a matching name, it runs the script.<br />
NOTE You can also leave out one or both of the global/project contexts. Leaving out<br />
one context means that the related events are never executed. Leaving out both<br />
contexts effectively disables event triggers.<br />
<strong>MKS</strong> <strong>Integrity</strong> is pre-configured to first resolve global event triggers followed by project<br />
event triggers. The property is:<br />
mksis.si.triggers.resolutionOrder=global;project<br />
The default setting can be reconfigured to suit your environment.<br />
381
Chapter 9: Event Triggers<br />
382<br />
Components of Event Triggers<br />
Creating a configuration management event trigger requires three primary components:<br />
Properties (mksis.si.triggers) in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client:<br />
Configuration Management > Configuration > Properties<br />
to configure <strong>MKS</strong> <strong>Integrity</strong> so that event triggers may take place. The properties define<br />
the directories for both the events definition files and event trigger scripts.<br />
Events definition files listing all events defined in <strong>MKS</strong> <strong>Integrity</strong> and mapping events to<br />
trigger scripts. The default directory for the events definition file is:<br />
installdir/data/triggers/events<br />
Event trigger scripts developed in JavaScript and, by default, located in:<br />
installdir/data/triggers/scripts<br />
Updating Events Definition File<br />
Events definition files are used to specify which scripts to run for a particular event or events.<br />
The events definition file essentially attaches the script to the event. The file follows the<br />
format of a Java properties file and includes configuration keys to indicate the context of the<br />
events, as well as a key for each event addressed by the specified context:<br />
In the global context, the required configuration key is:<br />
event.context=global<br />
where the event context is defined as global.<br />
In the configuration management project context, the required configuration keys are:<br />
event.context=project<br />
event.projectPath=/project.pj<br />
where the event context is project and the path to the specific project is also defined.<br />
Use forward slashes (/)when specifying a project path.<br />
For both global and project contexts, the event key is a comma-delimited list of scripts<br />
for each event addressed by the specified context. The syntax is:<br />
context.operation.pre/post=event.js,event.js<br />
where<br />
context is archive, member, project, revision, or server<br />
operation is the actual configuration management operation, for example, checkIn,<br />
checkOut, setAttribute, or checkpoint (for a complete list of configuration<br />
management events, see “The syntax for an event is:” on page 375)
Overview of Configuration Management Triggers<br />
pre/post indicates whether the script is run before or after the event<br />
An example of a completed event key is:<br />
Member.thaw.pre=projectEvent.js,ethawTest.js<br />
NOTE You cannot use configuration management events New Project,<br />
Import Project, and Drop Project in the project context.<br />
To update the global events definition template<br />
1 Open the default directory for the global events definition template:<br />
installdir/data/triggers/global_template.events<br />
2 Copy the global template file to:<br />
installdir/data/triggers/events<br />
3 Add the script names for the event triggers you want to run.<br />
To update the project events definition template<br />
1 For each project requiring event triggers, make a copy of the project template in:<br />
installdir/data/triggers/events<br />
2 Set .projectPath to the fully qualified path of the target project.<br />
3 Add the script names for the event triggers you want to run.<br />
Restarting <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
Once you have created the event triggers and updated the events definition file, you can<br />
restart the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> to have the triggers take effect immediately.<br />
For more information on running the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
Overview of Configuration Management Client-Side Triggers<br />
As an administrator, you can configure event triggers that run on the <strong>MKS</strong> <strong>Integrity</strong> Client<br />
rather than on the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. Client-side triggers are run only for members and<br />
for project level commands that operate on members. Client-side triggers do not run on<br />
383
Chapter 9: Event Triggers<br />
384<br />
commands that operate on directories, configuration management projects, Sandboxes, or<br />
change packages.<br />
IMPORTANT Client-side triggers run on the <strong>MKS</strong> <strong>Integrity</strong> Client and in the client’s<br />
environment; therefore, they are subject to the client’s control. For example, a user<br />
could adjust the PATH environment variable on the client such that when an<br />
external command runs it is not found. For consistent and secure results, <strong>MKS</strong><br />
recommends you use server-side triggers.<br />
Some of the uses for client-side triggers include:<br />
Display Sandbox information before adding a label<br />
Post a reminder to add a revision description when checking in a member<br />
Launch a text editor when a member is checked out<br />
Post a reminder to notify team members of significant changes are checked in<br />
Confirm that each .JAVA file has a corresponding .CLASS file in a user’s Sandbox<br />
Client-side triggers run only on member commands, therefore only project commands<br />
that operate on members can be used<br />
Pre and Post Processing in Client Sandbox<br />
Client-side event triggers allow for pre- and post-processing in the client Sandbox. This<br />
allows clients to run external commands within the client, both before and after each member<br />
of a selection is processed for a given command.<br />
NOTE If a pre-trigger has a non-zero exit status, the operation is canceled.<br />
Trigger Syntax<br />
To configure a client-side event trigger, properties are added to the Configuration<br />
Management policies in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client using the following syntax:<br />
si..pre=<br />
si..post=<br />
si.trigger..command=<br />
si.trigger..group=<br />
si.trigger..match=<br />
NOTE List elements can be delimited by spaces, commas, or semicolons.
Overview of Configuration Management Triggers<br />
The following is an example of the required properties for a pre- and post-trigger that works<br />
when a branch is merged:<br />
si.MergeBranch.pre=merge_pre<br />
si.trigger.merge_pre.command=sh -w -c 'echo After merging the branch,<br />
please update the MergedBranches.txt file with the date and reason<br />
for the merge.'<br />
si.MergeBranch.post=merge_post<br />
si.trigger.merge_post.command=sh -w -c 'vi c:/MergedBranches.txt'<br />
You can create triggers that apply only for members of a specific group. If the user running<br />
the command is not a member of one of the specified groups, the trigger cannot execute when<br />
the user runs the command. The specified group must be a valid group on your server<br />
system using the server realm. To specify groups, append the following property to the<br />
trigger properties:<br />
si.trigger..group=<br />
for example:<br />
si.trigger.merge_post.group=BuildTeam<br />
You can also create triggers for certain classes of files using matching. A list of one or more<br />
file name matching patterns can be set. If the member under consideration matches the<br />
pattern, the trigger runs. To specify glob patterns, append the following property to the<br />
trigger properties:<br />
si.trigger..match=<br />
for example:<br />
si.trigger.merge_post.match=*.c,*.java<br />
Target Commands<br />
Client-side triggers run only on commands that operate at the member level. The first table<br />
lists configuration management project commands that operate on members, including<br />
commands launched from the Configuration Management Web client. The second table lists<br />
the applicable member commands.<br />
NOTE The si echo command is available for echoing strings to the GUI.<br />
Configuration Management Project Commands for Members<br />
Project Command Command Expression<br />
si add AddMembers<br />
si dropproject DropProjectTypeElement<br />
si edit EditCurrentOrFormerProjectTypeElements<br />
si import ImportMembers<br />
385
Chapter 9: Event Triggers<br />
386<br />
Configuration Management Project Commands for Members<br />
Project Command Command Expression<br />
si mergebranch MergeBranch<br />
si add ProjectAddMembers<br />
si ci ProjectCheckInMembers<br />
si co ProjectCheckOutMembers<br />
si promote PromoteMembers<br />
si resync ResyncCurrentOrFormerProjectTypeElements<br />
si revert RevertCurrentOrFormerProjectTypeElements<br />
si submit SubmitCurrentOrFormerProjectTypeElements<br />
Member Commands<br />
Member Command Command Expression<br />
si addlabel AddLabel<br />
si addmemberattr AddMemberAttribute<br />
si archiveinfo ArchiveInformationView<br />
si print ArchivePrintView<br />
si report ArchiveReportView<br />
si appendrevdesc AppendRevisionDescription<br />
si ci CheckInMembers<br />
si co CheckOutMembers<br />
si deletelabel DeleteLabel<br />
si deleterevision DeleteRevisionsOfMembers<br />
si demote DemoteMembers<br />
si diff DiffMembers<br />
si dropmemberattr DropMemberAttribute<br />
si freeze FreezeMember<br />
si viewlabels LabelsView<br />
si lock LockRevisionOfMember<br />
si makewritable MakeWritable<br />
si memberinfo MemberInformationView<br />
si viewhistory MemberView
To add client-side trigger information to the si.policy file<br />
Overview of Configuration Management Triggers<br />
1 From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, open the Configuration Management<br />
directory tree, and highlight Policies. The Global Policies section displays in the right<br />
pane.<br />
2 Select Policies > Edit. The Global Policies editor displays.<br />
3 Click the Other tab and enter the client-side trigger information in the text box. For<br />
example, the following shows the information entered to post a notification reminder for<br />
the development group.<br />
4 To save the changes, click OK. The client-side trigger is set on the server.<br />
Environment Variables<br />
Member Commands<br />
Member Command Command Expression<br />
si rename RenameMember<br />
si viewrevision RevisionContentsView<br />
si revisioninfo RevisionInformationView<br />
si thaw ThawMember<br />
si unlock UnlockRevisionOfMember<br />
si updaterevision UpdateRevisionOfMembers<br />
si updatearchive UpdateArchiveAttributesOfMembers<br />
When configuring client-side triggers, you can also use certain environment variables to<br />
define the object the trigger is operating on. The environment variables used for client-side<br />
triggers are similar to those used for user toolbar commands.<br />
387
Chapter 9: Event Triggers<br />
388<br />
For client-side triggers, you can use the following environment variables to determine the<br />
object the trigger is operating on.<br />
Environment Variable Function<br />
<strong>MKS</strong>SI_COMMAND=si. <strong>MKS</strong>SI_COMMAND always set to command running. For<br />
example, for add member command environment<br />
variable is:<br />
<strong>MKS</strong>SI_COMMAND=si.AddMember<br />
<strong>MKS</strong>SI_WINDOW=trigger <strong>MKS</strong>SI_WINDOW=trigger always set to indicate<br />
operation runs from trigger.<br />
<strong>MKS</strong>SI_TRIGGER_TYPE=pre|post <strong>MKS</strong>SI_TRIGGER_TYPE= set to one or<br />
other keyword to indicate whether trigger running due to<br />
a pre- or post-event. For example:<br />
<strong>MKS</strong>SI_TRIGGER_TYPE=post<br />
indicates trigger running due to post event.<br />
<strong>MKS</strong>SI_UI=cli|gui|web <strong>MKS</strong>SI_UI set to one of keywords to indicate type of<br />
user interface. For example:<br />
<strong>MKS</strong>SI_UI=gui<br />
indicates GUI used.<br />
<strong>MKS</strong>SI_FILE=filepath-relative-to-project/<br />
sandbox-of-a-member<br />
<strong>MKS</strong>SI_WORKINGFILE=full-path-to-workingfile-for-a-member<br />
<strong>MKS</strong>SI_FILE set to file path of member relative to<br />
configuration management project or Sandbox for<br />
member, for example:<br />
<strong>MKS</strong>SI_FILE=baseframe.c<br />
<strong>MKS</strong>SI_WORKINGFILE set to full path of working file for<br />
member whenever operation occurs in Sandbox and<br />
working file exists, for example:<br />
<strong>MKS</strong>SI_WORKINGFILE=c:\auroraSB\sh\<br />
baseframe.c<br />
<strong>MKS</strong>SI_SANDBOX=full-path-to-sandbox <strong>MKS</strong>SI_SANDBOX set to full path of Sandbox whenever<br />
operation occurs in Sandbox. Sample output for<br />
operation running in Sandbox:<br />
<strong>MKS</strong>SI_SANDBOX=c:\auroraSB\sh\project.pj<br />
<strong>MKS</strong>SI_PROJECT=server-path-to-project <strong>MKS</strong>SI_PROJECT set to server path to configuration<br />
management project. Sample output for server path to<br />
project:<br />
<strong>MKS</strong>SI_PROJECT=c:/aurora/sh/project.pj<br />
<strong>MKS</strong>SI_VARIANT=project-variant-name <strong>MKS</strong>SI_VARIANT indicates operation runs for specific<br />
configuration management project variant. Sample<br />
output for operation running for Aurora_Variant project:<br />
<strong>MKS</strong>SI_VARIANT=Aurora_Variant<br />
<strong>MKS</strong>SI_BUILD=project-build-revision-<br />
number<br />
<strong>MKS</strong>SI_BUILD indicates operation runs for specific<br />
build revision number. Sample output for operation<br />
running for build revision number 1.5.1.1:<br />
<strong>MKS</strong>SI_BUILD=1.5.1.1
Environment Variable Function<br />
Sample Configuration Using Environment Variables<br />
Overview of Configuration Management Triggers<br />
<strong>MKS</strong>SI_PROJECT_TYPE=sandbox|project <strong>MKS</strong>SI_PROJECT_TYPE sets one or other keyword to<br />
indicate whether operation runs in Sandbox or<br />
configuration management project. Sample output for<br />
operation running in Sandbox:<br />
<strong>MKS</strong>SI_PROJECT_TYPE=sandbox<br />
<strong>MKS</strong>SI_PRESENTER=interface-presenter <strong>MKS</strong>SI_PRESENTER set to open presenter for<br />
command running, whether through the GUI or CLI.<br />
Value for <strong>MKS</strong>SI_PRESENTER only relevant to<br />
--presenter name option.<br />
The following example shows how you can use an environment variable with a client-side<br />
trigger. The example shows a trigger implemented on the Add Member command (si add).<br />
Each time a member is added to a configuration management project, the trigger opens the<br />
member working file in a vi text editor:<br />
si.AddMembers.post=AMpost<br />
si.trigger.AMpost.command=sh -c "vi $<strong>MKS</strong>SI_WORKINGFILE"<br />
Planning Configuration Management Triggers<br />
To avoid unpredictable event trigger behavior, plan your event triggers in the following way:<br />
1 First choose the scope of the event trigger<br />
a) Event triggers that you want to apply to all operations should be set in the global<br />
context.<br />
b) Event triggers that are related only to a specific configuration management project<br />
should be set in the project context.<br />
2 Decide whether your event triggers should occur as a pre-event or post-event.<br />
a) Pre-event triggers can return a code that indicates the operation should not proceed<br />
and are therefore most applicable for events that you want to prevent.<br />
b) Post-event triggers are more useful for logging information on a successful<br />
operation or for performing linked operations. The post-event trigger executes<br />
regardless of whether the event was successful, but the administrator has access to<br />
any logged information.<br />
NOTE Scripts provide significant flexibility in creating event triggers. You can use<br />
one script for more than one event. For the same event you can also point to a script<br />
in the global context and another script in the configuration management project<br />
context.<br />
389
Chapter 9: Event Triggers<br />
390<br />
3 Consider the following:<br />
Be aware of system security. JavaScript event triggers are expressive and run on the<br />
server under the permissions of the administrator. Event triggers therefore have the<br />
potential to affect file and system security.<br />
Limit event triggers to only those things you believe to be beneficial to your<br />
environment. Event triggers affect the duration of the command from the client’s<br />
perspective and therefore have the potential to degrade performance.<br />
NOTE The <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> can process commands in parallel—a feature that<br />
allows users to initiate a second command even if the first has not completed.<br />
Instead of having a script for each configuration management event, you could have<br />
a script for a group of configuration management events. Then in that script,<br />
execute different code depending on which event has fired (the event that fired the<br />
trigger can be retrieved from a Bean).<br />
Script Library for Configuration Management Triggers<br />
<strong>MKS</strong> <strong>Integrity</strong> provides some pre-created configuration management triggers scripts that can<br />
be used “out-of-the-box”.<br />
Sample event triggers are provided in:<br />
installdir/data/triggers/scripts/samples<br />
where installdir is the path to the directory where you installed the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
The list of pre-created scripts provided may vary depending on the server implementation of<br />
an organization. Some of the pre-created scripts available include:<br />
breakLockNotification.js – send an e-mail to a user if their lock has been removed<br />
or downgraded by another user.<br />
enforceRevisionDescription.js – enforce revision descriptions.<br />
metrics.js – calculate metrics for a configuration management project.<br />
Referencing Configuration Management Beans in Trigger Scripts<br />
First, you need to reference the applicable Beans you want to use in your script. Refer to the<br />
Event Trigger Java Documentation off the server homepage. Beans prefaced with si are<br />
configuration management Beans.<br />
TIP You can get the name of a Bean by looking at the GetExposedName() method<br />
in the Event Trigger Java Documentation.
Overview of Configuration Management Triggers<br />
Once you know the Bean name, look up the Bean in the trigger script, for example:<br />
var envBean = bsf.lookupBean(“siEnvironmentBean”);<br />
Useful configuration management Beans include:<br />
ScriptEnvironmentBean<br />
Contains information about the environment in which the script is running.<br />
Script<strong>Server</strong>Bean<br />
Contains information about the configuration management server.<br />
ScriptCheckInArgumentsBean<br />
Contains information about the member being checked in.<br />
ScriptMemberBean<br />
Contains information about a member.<br />
Coding Configuration Management Triggers<br />
Once you have referenced the necessary Beans, you can begin coding the rest of the trigger<br />
according to your needs.<br />
For example, to create a server-side script that checks for a member revision description type<br />
the following:<br />
Next, do the following:<br />
1 Save the trigger script to the trigger library:<br />
installdir/data/triggers/scripts<br />
2 Update events definition file.<br />
3 Restart <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
391
Chapter 9: Event Triggers<br />
392<br />
4 <strong>MKS</strong> <strong>Integrity</strong> runs the configuration management event trigger at the next applicable<br />
client action.<br />
NOTE You should restrict JavaScript triggers to a reasonable length. Although the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> can process commands in parallel, a long running script can<br />
affect the duration of that specific command from the client’s perspective.<br />
For example, the following client-side script—CIpre—runs a KornShell script that prompts<br />
the user to add a revision description for the member they are checking in.<br />
To configure the trigger, the following information is added to the si.policy file on the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>:<br />
si.CheckInMembers.pre=CIpre<br />
si.trigger.CIpre.command=sh -w -c 'echo Please provide a brief<br />
summary of changes you made in the Revision Description field.'<br />
Debugging Configuration Management Client-<br />
Side Environment Variables<br />
The simplest way to check whether an environment variable is set in the client event trigger’s<br />
runtime execution is to run the default shell’s environment display command.<br />
For example, on Windows:<br />
si.CheckOutMembers.post=COpost<br />
si.trigger.COpost.command=cmd /k set<br />
For example, on UNIX:<br />
si.CheckOutMembers.post=COpost<br />
si.trigger.COpost.command=sh –w –c env<br />
where<br />
cmd opens a command prompt.<br />
/k keeps the command prompt window open.<br />
set displays the machine environment variables.<br />
Error Handling Beans and Methods<br />
To retrieve error messages generated during server-side command calls, use the<br />
ScriptErrorMessageBean. The getMessage() method returns the error message, and the<br />
ScriptEnvironmentBean contains a stack of any errors that may have occurred during the<br />
execution of server-side commands.
Debugging Configuration Management Client-Side Environment Variables<br />
Useful error methods for using inside of a try...catch block include:<br />
emptyErrorMessageStack() - empties the error message stack.<br />
getErrorMessage() - the error message of the given index.<br />
numberOfErrorMessages() - the number of error messages in the error message stack.<br />
popErrorMessage() - pops an error message of the stack.<br />
pushErrorMessage() - pushes and error message on the stack.<br />
abortScript() Method<br />
DEBUG Logging<br />
To stop a trigger from executing when a script error occurs, the abortScript() method is<br />
available from the ScriptEnvironmentBean.<br />
This method is usually used in a pre-event trigger to display a message to the user to prevent<br />
them from doing something. In addition, it can be used to display error messages when<br />
debugging a trigger script, or to display trigger configuration errors.<br />
The abortScript() method takes two parameters:<br />
msg - The abort message.<br />
veto - If true, veto the operation. If false, do not.<br />
abortScript() example:<br />
Enabling DEBUG logging indicates if triggers are being executed, including other useful<br />
information. More specifically, DEBUG logging shows if your trigger is being considered,<br />
executed, and where in the trigger order it fires.<br />
Errors are logged to:<br />
installdir/log/server.log<br />
393
Chapter 9: Event Triggers<br />
394<br />
To enable DEBUG logging:<br />
1 Edit the logger.properties file on the server located in the<br />
installdir/config/properties directory.<br />
2 Uncomment the following line:<br />
mksis.logger.message.includeCategory.DEBUG=10<br />
3 Save the logger.properties file and restart the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Sample workflow and document management logging:<br />
Sample configuration management logging:<br />
Logging Trigger Scripts<br />
To assist in debugging trigger scripts, you can write from a trigger script to the server.log<br />
file. The output data from the trigger script may indicate where the problem is.<br />
To print to the log file, use the following syntax:<br />
Packages.mks.util.Logger.message("Category", level, "Text");
where<br />
Category - the logging category.<br />
Level - the logging level.<br />
Text - the text to be written out to the server log file.<br />
for example:<br />
Debugging Configuration Management Client-Side Environment Variables<br />
Packages.mks.util.Logger.message( "DEBUG", 5, "Debug message!" );<br />
Decide if you want to use the default DEBUG logging category, a custom category for each<br />
trigger script, or a custom category for all trigger scripts.<br />
To print to the server log, <strong>MKS</strong> recommends using a JavaScript function, for example:<br />
function print(msg, level) {<br />
if (level == null) level = 5;<br />
Packages.mks.util.Logger.message("MYTRIGGER", level, msg);<br />
}<br />
If you use a custom category, you need to update the logger.properties file with the new<br />
category, for example:<br />
Logging Commands<br />
mksis.logger.message.includeCategory.MYTRIGGER=10<br />
You can use logging commands to dynamically enable and disable server.log logging. For<br />
example:<br />
where<br />
si/im logging --category="Category" –on/off --level="Level" -target="Target"<br />
Category - name of logging category (DEBUG, or custom).<br />
on/off - turn logging on or off.<br />
Level - logging level.<br />
Target - server or client logging.<br />
TIP Disable logging after you finish debugging or server performance may be<br />
affected.<br />
395
Chapter 9: Event Triggers<br />
Using the <strong>MKS</strong> API in Event Triggers<br />
396<br />
The <strong>MKS</strong> Application Programming Interface (API) offers a direct way for custom<br />
applications to interact with workflow and document management, and configuration<br />
management. The <strong>MKS</strong> API can be used in triggers in a manner similar to the CLI; however,<br />
the API allows direct access to input and output without parsing.<br />
Using the <strong>MKS</strong> API in triggers is useful for performing CLI operations that are not covered<br />
by a Bean (like running a report), and running configuration management CLI commands<br />
from workflow and document events, and workflow and document commands from<br />
configuration management events.<br />
API Beans and Methods<br />
API Trigger Code<br />
NOTE The intent of this unit is not to get into how to use the <strong>MKS</strong> API, but to give<br />
examples of how it can be used in event triggers to get information Beans cannot.<br />
For more information on the <strong>MKS</strong> API, refer to the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Integrations<br />
Builder <strong>Guide</strong>.<br />
The following Beans interact with the API:<br />
ScriptEnvironmentBean<br />
The createAPISessionBean() method obtains an API session Bean.<br />
ScriptAPICommandRunnerBean<br />
Manages and executes an <strong>MKS</strong> API command. The addOption() method adds an<br />
option flag to the command.<br />
ScriptAPISessionBean<br />
Accesses and controls an <strong>MKS</strong> API session. The executeCmd() method executes a<br />
command.<br />
The following API trigger code performs the equivalent functionality of the<br />
si createcp --issueID=101 command:
Running Custom Java Code<br />
You can also use server-side event triggers to run custom Java code from a script.<br />
Running Custom Java Code<br />
Your custom Java code can be put into the installdir/data/java/classes directory as<br />
individual class files or packaged as one or more JAR files in the data/java/jars directory.<br />
You can use both directories at the same time if you want some classes packaged up and<br />
some exposed individually<br />
Example<br />
//<br />
// <strong>MKS</strong> <strong>Integrity</strong> sample script.<br />
//<br />
// This script runs a custom java code in com.abc.custom.<br />
//<br />
function run<br />
{<br />
Packages.com.abc.custom.CopyFile;<br />
}<br />
var eb = bsf.lookupBean("siEnvironmentBean");<br />
print("TRIGGER SCRIPT echo.js: Event Type: " + eb.getEventName() +<br />
", " + eb.getEventType() + ", " + eb.getEventContext());<br />
IMPORTANT Custom Java code runs inside the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> JVM and<br />
therefore can impact server performance. Code that runs computationally intensive<br />
activities can degrade server performance.<br />
397
Chapter 9: Event Triggers<br />
398<br />
Additional information on server-side event triggers is provided in the installed Javadocs in:<br />
installdir/data/documentation/javadocs/triggers/index.html<br />
You can also link the Javadocs from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> home page. To view the<br />
Javadocs, click the link for Event Trigger Java Documentation displayed under<br />
Documentation.<br />
The Javadocs provide API documentation that includes overview information, packages,<br />
classes, class hierarchies, deprecated APIs, and index information.<br />
Key Considerations<br />
JavaScript is not Java – what works in Java may not work in JavaScript. Note the following<br />
differences:<br />
JavaScript Java<br />
Not object-oriented Object-oriented language<br />
Not compiled, runs interpretively Is compiled<br />
Tries to continue running on errors Exceptions raised on errors<br />
Variable declaration is optional Variables must be declared<br />
Variables can change data type Variables cannot change data type<br />
Functions are used Methods are used<br />
Little encapsulation – only function variables are<br />
private<br />
Using Java Classes<br />
You can access Java classes in JavaScript. The following are examples for using JAVA classes:<br />
var myJAVAString = new java.lang.String(“JAVA_1.4_String”);<br />
var tokens = new java.util.StringTokenizer(myJAVAString, “_”);<br />
var myList = new java.util.LinkedList(); // creates an empty list<br />
// Add JAVA strings to the list<br />
myList.add( new java.lang.String(“List Element A”) );<br />
myList.add( new java.lang.String(“List Element B”) );<br />
myList.add( new java.lang.String(“List Element C”) );<br />
For a full list of available classes, refer to the appropriate Sun Java docs.<br />
Note the following:<br />
Full range of encapsulation (public, protected,<br />
private) for methods and variables
You can use server-side event triggers to run custom Java code from a script.<br />
Tips and Best Practices<br />
Custom individual class files go in the installdir/data/java/classes directory on the<br />
server.<br />
Custom JAR files go in the installdir/data/java/jars directory on the server.<br />
To use custom classes in JavaScript:<br />
var myApp = new Packages..;<br />
IMPORTANT Custom Java code runs in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> JVM and code that<br />
runs intensive activities can degrade server performance!<br />
Tips and Best Practices<br />
Check to see if there is a trigger script in the trigger library that already does what you<br />
need.<br />
As a starting point, modify an existing trigger script that is close to what you need.<br />
Build and test trigger scripts starting small, gradually adding more logic.<br />
Log script information to the server log as frequently as possible to help debug.<br />
Use an editor that supports JavaScript syntax highlighting to catch simple bugs.<br />
Keep system security in mind. Triggers run on the server under the permissions of the<br />
administrator and have the potential to affect file and system security.<br />
Try to limit the number of triggers. Triggers affect the duration of the command from the<br />
client’s perspective and can degrade performance. The more triggers on an event (or<br />
series of events) the longer the user has to wait for the event to complete.<br />
Trigger scripts that take a long time to run degrade server performance. <strong>MKS</strong><br />
recommends writing short trigger scripts.<br />
399
Chapter 9: Event Triggers<br />
400
A PPENDIX A<br />
Troubleshooting<br />
Diagnosing <strong>Server</strong> and Client Issues<br />
A<br />
<strong>MKS</strong> <strong>Integrity</strong> provides tools for monitoring and diagnosing issues that may arise when<br />
performing operations on the <strong>MKS</strong> <strong>Integrity</strong> Client and <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. When<br />
used with <strong>MKS</strong> Customer Care assistance, these tools improve resolution time of<br />
product issues.<br />
This appendix contains the following topics:<br />
“Gathering Important Information” on page 402<br />
“Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> as Application” on page 405<br />
“Differencing <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Properties Files” on page 406<br />
“<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Logs” on page 406<br />
“<strong>MKS</strong> <strong>Integrity</strong> Client Logs” on page 407<br />
“<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Logging Levels” on page 407<br />
“Miscellaneous Logging Properties” on page 409<br />
“FLEXnet Logs” on page 413<br />
“Dr. Watson Logs” on page 413<br />
“Creating Integrations Log” on page 413<br />
“Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Diagnostics” on page 414<br />
“runstacktrace” on page 422<br />
“mksis” on page 423<br />
“isutil” on page 424<br />
“Starting <strong>Server</strong> in Safe Mode” on page 426<br />
“Troubleshooting Database Repository” on page 427<br />
“Troubleshooting Kerberos and Kerberos Single Sign-On” on page 428<br />
“Troubleshooting Configuration Management Reporting” on page 430<br />
401
Appendix A: Troubleshooting<br />
Gathering Important Information<br />
402<br />
Environment Information<br />
When reporting an issue to <strong>MKS</strong> Customer Care, the following information is commonly<br />
requested:<br />
product serial number<br />
operating system, RAM, and CPU speed of the client machine<br />
operating system, RAM, and CPU speed of the server machine<br />
if using a Web interface, the Web browser version<br />
version of the <strong>MKS</strong> <strong>Integrity</strong> Client and <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, including service packs<br />
installed<br />
database type and version<br />
exact error message (a screen shot is helpful)<br />
steps to reproduce the problem<br />
properties and log files (for more information, see “Collecting Properties and Log Files”<br />
on page 421)<br />
Common Support Questions<br />
To identify the problem category, <strong>MKS</strong> Customer Care may ask the following questions:<br />
Are your platforms on the supported platforms list?<br />
To view this list, browse to:<br />
http://www.mks.com/support/platforms<br />
Does the problem happen for all users?<br />
If yes, then it is likely a server problem.<br />
Can you reproduce the problem on a different machine with the same configuration?<br />
If yes, then it is likely a client problem.<br />
Can another user only reproduce the problem on the same machine?<br />
If yes, then it is likely a machine problem.<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Serial Number<br />
To determine your <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> serial number, do one of the following:<br />
Browse to http://:. The serial number displays near the bottom of<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> home page.
Look for a sticker on the top of the product box.<br />
Look for the mksis.SerialNumber property in:<br />
<strong>Integrity</strong><strong>Server</strong>InstallDir/config/properties/is.properties<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Version<br />
To determine your <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> version, do one of the following:<br />
Gathering Important Information<br />
Browse to http://hostname:port. The version and build number appear at the bottom of<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> home page.<br />
Right click <strong>Integrity</strong><strong>Server</strong>InstallDir\server\mks\bin\neuron.exe, select Properties,<br />
and click Version.<br />
<strong>MKS</strong> <strong>Integrity</strong> Client Version<br />
To determine your <strong>MKS</strong> <strong>Integrity</strong> Client version, do one of the following:<br />
From a command line, type one of the following:<br />
si about (for configuration management)<br />
im about (for workflow and document management)<br />
integrity about (<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client)<br />
aa about (Authorization <strong>Administration</strong>)<br />
From the GUI or Web interfaces, select Help > About.<br />
<strong>MKS</strong> <strong>Integrity</strong> Client and <strong>Server</strong> Directory Listing<br />
If <strong>MKS</strong> Customer Care asks for a directory listing of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> and the<br />
<strong>MKS</strong> <strong>Integrity</strong> Client directories, change to the directory that the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> is<br />
installed in or the directory that the <strong>MKS</strong> <strong>Integrity</strong> Client is installed in.<br />
On Windows, use the following command to record the directory listing to a file that can be<br />
sent to <strong>MKS</strong> Customer Care:<br />
dir /b /s > listing.txt<br />
On UNIX, type:<br />
ls –R > listing.txt<br />
On Windows, the default is c:\Program<br />
Files\<strong>MKS</strong>\<strong>Integrity</strong><strong>Server</strong><strong>2009</strong> and the default is<br />
c:\Program Files\<strong>MKS</strong>\<strong>Integrity</strong>Client.<br />
Is <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Running?<br />
1 On the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, open:<br />
<strong>Integrity</strong><strong>Server</strong>InstallDir\log\server.log<br />
403
Appendix A: Troubleshooting<br />
404<br />
2 Look for lines of the following form:<br />
INFO [<strong>Integrity</strong><strong>Server</strong>] GENERAL(0): Listening on clear port<br />
portnumber<br />
INFO [<strong>Integrity</strong><strong>Server</strong>] ApplicationState(0): <strong>Integrity</strong> <strong>Server</strong><br />
(Build:, Service Pack: ) started<br />
where portnumber is your <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>’s port number.<br />
No lines should follow those lines that indicate a shutdown occurred.<br />
If you are using SSL, the following line is also in the log:<br />
INFO [<strong>Integrity</strong><strong>Server</strong>] GENERAL(0): Listening on secure port<br />
secureportnumber<br />
where secureportnumber is your <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>’s port used for secure SSL<br />
connections.<br />
What Time Zone Are You In?<br />
For data integrity purposes, <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> records what time zone it is in. If the time<br />
zone of the server differs from that of the database, the server does not start. View the<br />
server.log (see “<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Logs” on page 406) file to determine which time zone<br />
the server is expecting for each.<br />
Following is an example from the log of an error for two differing time zones:<br />
17:59:38,331 WARN [ServiceController] Problem starting service<br />
mks:name=<strong>Server</strong>TimeZone<br />
17:59:38,284 ERROR [Security] Starting failed mks:name=<strong>Server</strong>TimeZone<br />
java.lang.Exception: Timezones and/or daylight savings settings don't<br />
match. Database: America/New_York, server: America/Buenos_Aires<br />
Is FLEXnet <strong>Server</strong> Running?<br />
On Windows<br />
NOTE If FLEXnet is unavailable, <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> shuts down and displays an<br />
error message.<br />
1 To start the FLEXnet configuration utility, start:<br />
FLEXnetInstallDir\bin\lmtools.exe<br />
2 On the Service/License File tab, click Configuration using Services.<br />
3 If multiple services are listed, select the service associated with the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
By default, this is FlexNet Service 1.<br />
4 Click <strong>Server</strong> Status.
Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> as Application<br />
5 Click Perform Status Enquiry. If the FLEXnet server is running, a message notifies you<br />
that the server is running, and it displays the location of the license file and how many<br />
licenses are available.<br />
On UNIX<br />
1 From a command line, type:<br />
ps –ef | grep lmgrd<br />
This searches a complete listing of all processes running and displays the lmgrd process<br />
(the FLEXnet Manager daemon).<br />
2 To use the lmstat command line utility (in flexnet/bin) to perform a status inquiry,<br />
type:<br />
lmstat -a -c[license file]<br />
For more information on this utility, browse to http://www.acresso.com.<br />
Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> as Application<br />
Sometimes it is useful to run the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> as an application instead of as a<br />
service. If the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> does not start, different error messages may appear on<br />
the command line that can be recorded and sent to <strong>MKS</strong> Customer Care. Additionally, you<br />
can obtain a thread dump in instances where the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> experiences<br />
performance issues.<br />
To run the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> as an application<br />
1 Stop the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> service from a command line by changing to installdir/<br />
bin, and typing the following:<br />
mksis[.bat] stop<br />
2 If you are not using the default administrative user, ensure that the administrator<br />
belongs to the administrators group.<br />
3 If you are not logged in as this administrator, log out and log in as the administrator.<br />
4 From a command line, change to installdir/bin and type the following:<br />
mksis[.bat] console<br />
The command output is sent to the startup.log file. For more information on the<br />
command, see “mksis” on page 423.<br />
5 To display a thread dump, press CTRL+BREAK. This only displays what is happening at the<br />
exact moment. So you may have to press CTRL+BREAK several times to determine how<br />
threads change over time.<br />
6 Copy the thread dump information to a text file and send it to <strong>MKS</strong> Customer Care.<br />
405
Appendix A: Troubleshooting<br />
Differencing <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Properties<br />
Files<br />
Error Codes<br />
406<br />
If you change properties files containing properties not in the database and make backup<br />
copies, differencing changed properties files against the backup copies can be useful in<br />
diagnosing server problems.<br />
NOTE <strong>MKS</strong> recommends that you make backup copies of the properties files located<br />
in <strong>Integrity</strong><strong>Server</strong>InstallDir\config\properties.<br />
To difference properties files<br />
1 Start the <strong>MKS</strong> Visual Differencing tool.<br />
2 Select File > Compare.<br />
3 Browse for the two files that you want to compare. and click OK. The differences<br />
between the two files are highlighted.<br />
Errors displayed in the GUI, Web, CLI, API, and logs may contain an error code. The error<br />
code is of the form <strong>MKS</strong>000000, for example <strong>MKS</strong>004364. Use the error code to obtain more<br />
information on the error from the <strong>MKS</strong> Customer Community (or contact<br />
<strong>MKS</strong> Customer Care). Information may include the cause of the error, its resolution, or a<br />
workaround. If multiple errors occurred from the action, then multiple error codes are<br />
displayed.<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Logs<br />
The following <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> log files can be useful in diagnosing server errors:<br />
<strong>Integrity</strong>SereverInstallDir\log\server.log records server errors and events. By default,<br />
a new log is automatically started after the previous log reaches 10 MB. Versions of<br />
server.log are named incrementally, for example, server.1.log and<br />
server.2.log. By default, no more than 50 previous server.log versions are stored.<br />
To configure the size of the log file and the number of logs, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
<strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
<strong>Integrity</strong><strong>Server</strong>InstallDir\uninstall\.com.zerog.registry.xml records all the<br />
activities that occurred during the installation of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.
<strong>MKS</strong> <strong>Integrity</strong> Client Logs<br />
<strong>Integrity</strong><strong>Server</strong>InstallDir\log\dbmigration.log is created when a database is migrated,<br />
for example, during an <strong>MKS</strong> <strong>Integrity</strong> upgrade. The output displays database version<br />
information, error messages, and SQL statements run against the database as part of the<br />
migration process.<br />
<strong>Integrity</strong><strong>Server</strong>InstallDir\log\dbcreation.log is created when a new database is<br />
created during the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> install. The output displays database version<br />
information, error messages, and SQL statements run against the database as part of the<br />
database creation process.<br />
<strong>Integrity</strong><strong>Server</strong>InstallDir\hs_err_pid*.err typically appears if a Java error occurs,<br />
causing the server to stop running. These files are generated by the Java Virtual Machine<br />
(JVM) and consist of a stack trace at the time the server stops running.<br />
TIP To receive instant updates about <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> errors, you can configure<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> to e-mail <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> log error messages. For<br />
more information, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> 2007 Installation and Configuration<br />
<strong>Guide</strong>.<br />
<strong>MKS</strong> <strong>Integrity</strong> Client Logs<br />
<strong>Integrity</strong>ClientInstallDir\bin\<strong>Integrity</strong>Client.log is the main <strong>MKS</strong> <strong>Integrity</strong> Client<br />
log file. It logs information messages, warnings, and errors.<br />
<strong>Integrity</strong>ClientInstallDir\uninstall\.com.zerog.registry.xml records all activities<br />
that occurred during the <strong>MKS</strong> <strong>Integrity</strong> Client installation.<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Logging Levels<br />
To assist you in diagnosing server issues, you can record server messages and exceptions to<br />
the server.log.<br />
To adjust logging properties<br />
1 Edit the following file:<br />
<strong>Integrity</strong><strong>Server</strong>InstallDir\config\properties\logger.properties<br />
2 Uncomment the category of logging messages or exceptions to record. Generic<br />
categories include: DEBUG, DIAGNOSTIC, WARNING, GENERAL, ERROR, and FATAL.<br />
NOTE All lines containing the word DEBUG are commented out. This suppresses<br />
logging of debugging messages, which may help to increase performance. When<br />
necessary, these lines can be uncommented out for debugging.<br />
407
Appendix A: Troubleshooting<br />
408<br />
3 Set the level of logging information to record. Ten (10) is the highest level of logging,<br />
and zero (0) disables logging.<br />
For example, you can adjust the level of logging information for the ERROR category:<br />
mksis.logger.message.includeCategory.ERROR=10<br />
mksis.logger.exception.includeCategory.ERROR=10<br />
TIP You can receive e-mail notifications about specific server messages or<br />
exceptions that are recorded to server.log. For more information, see “<strong>MKS</strong><br />
<strong>Integrity</strong> <strong>Server</strong> Configuration Properties” on page 310.<br />
4 Save your changes.<br />
5 Restart the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Client Logging Levels<br />
To increase the level of logging on the <strong>MKS</strong> <strong>Integrity</strong> Client, uncomment the desired logging<br />
levels in <strong>Integrity</strong>ClientInstallDir\<strong>Integrity</strong>ClientSite.rc:<br />
# START #<br />
# Turn up logging.<br />
#<br />
<strong>Integrity</strong>Client.log.exception.includeCategory.WARNING=10<br />
#<strong>Integrity</strong>Client.log.exception.includeCategory.DEBUG=10<br />
<strong>Integrity</strong>Client.log.exception.includeCategory.ERROR=10<br />
<strong>Integrity</strong>Client.log.exception.includeCategory.GENERAL=10<br />
<strong>Integrity</strong>Client.log.message.includeCategory.WARNING=10<br />
#<strong>Integrity</strong>Client.log.message.includeCategory.DEBUG=10<br />
<strong>Integrity</strong>Client.log.message.includeCategory.ERROR=10<br />
<strong>Integrity</strong>Client.log.message.includeCategory.GENERAL=10<br />
#<strong>Integrity</strong>Client.log.message.includeCategory.CACHE=10<br />
#<strong>Integrity</strong>Client.log.exception.includeCategory.CACHE=10<br />
#<strong>Integrity</strong>Client.log.message.includeCategory.EVENT=10<br />
#<strong>Integrity</strong>Client.log.exception.includeCategory.EVENT=10<br />
# Changes Formatting<br />
#<strong>Integrity</strong>Client.log.message.defaultFormat={2}({3}) {5}\: {4}\n<br />
#<strong>Integrity</strong>Client.log.exception.defaultFormat={2} {4} {5}\: {6}\n
# END #<br />
Miscellaneous Logging Properties<br />
By default, client HTTP-related messages, such as socket termination messages after each<br />
command, do not appear in the log. For example, if a low-level HTTP protocol fails, you can<br />
turn on HTTP logging to assist in determining what the exact problem might be.<br />
To display all client HTTP-related messages that may appear when using the client Web<br />
interfaces, add the following lines to the <strong>Integrity</strong>ClientSite.rc file:<br />
<strong>Integrity</strong>Client.log.message.includeCategory.HTTP=10<br />
<strong>Integrity</strong>Client.log.exception.includeCategory.HTTP=10<br />
Logging output displays in the value logFileName, or in the<br />
\bin\<strong>Integrity</strong>Client.log file. You can adjust<br />
logging between 0 and 10. After you make changes to <strong>Integrity</strong>ClientSite.rc, save it,<br />
and restart the <strong>MKS</strong> <strong>Integrity</strong> Client.<br />
To display a timestamp with each log entry, add the following lines to the<br />
<strong>Integrity</strong>ClientSite.rc file:<br />
<strong>Integrity</strong>Client.log.message.defaultFormat={2}({3}) {5}\: {4}\n<br />
<strong>Integrity</strong>Client.log.exception.defaultFormat={2} {4} {5}\: {6}\n<br />
Miscellaneous Logging Properties<br />
To debug security realms<br />
1 To increase the amount of logging to server.log for the security realm, add properties<br />
to the /config/properties/logger.properties<br />
file.<br />
For verbose LDAP debugging, use:<br />
mksis.logger.message.includeCategory.LDAP=10<br />
Successful authentications are logged when you set:<br />
mksis.logger.message.includeCategory.AUTHENTICATOR=10<br />
2 If necessary, uncomment the line for the realm you want to debug.<br />
3 Save your changes.<br />
4 Restart the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
409
Appendix A: Troubleshooting<br />
410<br />
To debug solutions<br />
1 To debug installed solutions, add the following properties to the<br />
<strong>Integrity</strong><strong>Server</strong>InstallDir/config/properties/logger.properties file:<br />
server-side category that logs trigger operations<br />
mksis.logger.message.includeCategory.<strong>MKS</strong>RQ=10<br />
client and server-side category (can be set for both) that logs solution data model<br />
operations and configuration information<br />
mksis.logger.exception.includeCategory.IM-NOTIFICATION=5<br />
NOTE Due to heavy logging on the server, <strong>MKS</strong> recommends setting this category<br />
on the client only.<br />
server-side category that logs output when a solution command (rq) retrieves an<br />
item from the server<br />
mksis.logger.message.includeCategory.SDMCACHE=10<br />
2 Save your changes.<br />
3 Restart the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
si logging<br />
In addition to modifying the logger.properties file, you can use the si logging<br />
command to increase or decrease logging levels for several different categories (as outlined in<br />
the table next). You can run this command from a client or server machine. You can use any<br />
category included in the logger.properties file. Note the following:<br />
The client and server do not need to be restarted after making changes.<br />
Logging changes last only until the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> or <strong>MKS</strong> <strong>Integrity</strong> Client is<br />
restarted.<br />
You need the Debug<strong>Server</strong> permission in the mks:si ACL to run this command.<br />
server.log file logs information about this command when it runs.<br />
From a command line, type:<br />
where<br />
si logging --category=value --level=value<br />
--category=value specifies the category name (see the table next for category names)<br />
--debug is equivalent to --category=DEBUG<br />
--level=value specifies the log level (0 disables logging, 10 logs all messages)<br />
--off is equivalent to --level=-1 (no reporting in this category)
--on is equivalent to --level=10 (logs all messages in this category)<br />
Miscellaneous Logging Properties<br />
--target=value specifies the target debugging is enabled for. Valid values are client,<br />
server (default), and proxy.<br />
Acceptable values for --category=value are:<br />
Category Description<br />
DEBUG Logs debug messages.<br />
Note: Command overrides settings in logger.properties, but only until <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong> restarts. Additionally, option does not explicitly log debug exceptions. To log<br />
exceptions, open logger.properties, uncomment<br />
mksis.logger.exception.includeCategory.DEBUG, and set value to 10.<br />
SQL Logs all SQL commands to server.log. For example, if you view item, SELECT<br />
statement logged. When editing item, INSERT, UPDATE, and SELECT statements logged.<br />
--level=5 logs all SQL commands.<br />
--level=10 adds additional information such as Rollback time.<br />
CACHE Logs cache operation information. Levels 0–3 not verbose. Levels 4–15 verbose.<br />
SMTP Logs communication between <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> and SMTP server.<br />
IM-NOTIFICATION Logs <strong>MKS</strong> <strong>Integrity</strong> e-mail notification.<br />
ACL Logs permission checking to server.log. For example, add label command logs<br />
following:<br />
<strong>2009</strong>-08-16 13:45:17,140 INFO [mksis.<strong>Integrity</strong><strong>Server</strong>] ACL(5):<br />
Check user administrator for permission<br />
CreateProject against acl mks:si. Resolved ACL: mks:si<br />
Decision: GRANTED<br />
TRANSACTION Logs all transactions performed by specific user, for example,<br />
si logging --category=TRANSACTION-jdoe --on<br />
logs all transactions performed by jdoe.<br />
To log all cache transactions, type TRANSACTION-system<br />
SILIB Similar to TRANSACTION, option logs more information about single command performed<br />
by a user, for example,<br />
si logging --category=SILIB-jdoe --on<br />
SICI Provides communications between workflow and document management functionality<br />
and configuration management functionality, and communications between <strong>MKS</strong> <strong>Integrity</strong><br />
Client and <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
REALM Logs NT realm information.<br />
API Logs <strong>Integrity</strong> API information.<br />
HLL Logs <strong>Integrity</strong> HLL server information.<br />
LDAP Logs LDAP security scheme information.<br />
AGENT Logs RMIs from <strong>MKS</strong> <strong>Integrity</strong> Client to <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
SOLUTIONS Logs all solution data model operations and configuration information.<br />
411
Appendix A: Troubleshooting<br />
Category Description<br />
<strong>MKS</strong>ALM Logs all server side solution trigger operations.<br />
SDMCACHE Logs information when a solution command attempts to access an item from the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
<strong>MKS</strong>ALMAUDIT Logs all server-side information for document model auditing.<br />
FINDER Logs all information related to the operation of the Finder dialog box.<br />
412<br />
You can also use the si logging command to enable debug logging on the <strong>MKS</strong> <strong>Integrity</strong><br />
Client. To enable debug logging on the client, use:<br />
si logging --debug --on --target=client<br />
Valid values for --target are client, server (default), and proxy.<br />
im logging<br />
In addition to the si logging command, you can use the im logging command to increase<br />
or decrease logging levels for several different categories (as outlined in the preceding table).<br />
You can run this command from a client or server machine.<br />
From a command line, type:<br />
where<br />
im logging --category=value --level=value<br />
--category=value specifies the category name (see the table following for category<br />
names)<br />
--debug is equivalent to --category=DEBUG<br />
--level=value specifies the log level (0 disables logging, 10 logs all messages)<br />
--off is equivalent to --level=-1 (no reporting in this category)<br />
--on is equivalent to --level=10 (logs all messages in this category)<br />
--target=value specifies the target the debugging is enabled for (valid values are<br />
client, server (default), and proxy.<br />
Acceptable values for --category=value are as outlined for the si logging command on<br />
page 411.
FLEXnet Logs<br />
FLEXnet Logs<br />
You can direct the output from the license server (lmgrd) into a local log. If you are running<br />
FLEXnet as a service on Windows and it has been set up using Configure using Services in<br />
LMTOOLS, the name of this log can be specified in the Path to the debug log file field on the<br />
Config Services tab.<br />
If FLEXnet is not running, you can use a command line on UNIX or Windows, and type<br />
lmgrd –l to display the log. For more information on this log file, browse to:<br />
Dr. Watson Logs<br />
http://www.acresso.com/support/<br />
If the client or server quits on a Windows platform, useful information is typically logged to<br />
the machine’s Dr. Watson log. On Windows 2000, you can configure the location of the<br />
produced log file and dump by running C:\winnt\system32\drwtsn32.exe.<br />
Creating Integrations Log<br />
Logging can be set for IDE integrations, such as Sybase PowerBuilder.<br />
1 Add the following lines to the userprofile_dir\<strong>Integrity</strong>Client.rc file:<br />
integrations.debugLogFile=c\:\\installdir\\log\\mksapi.log<br />
integrations.debugLogLevel=5<br />
IMPORTANT You must use double slashes to escape slashes and colons.<br />
The debugLogLevel property can be set to any value between 0 and 10, where 0 does<br />
not display any information and 10 displays the most information. To reduce the<br />
amount of extraneous information, <strong>MKS</strong> recommends debugLogLevel=5.<br />
2 Restart the client.<br />
Sybase PowerBuilder 8.0<br />
In PowerBuilder 8.0, source control logging is set up on a per-workspace basis in the<br />
connection profile.<br />
To log source control activity in PowerBuilder 8.0<br />
1 Right click a workspace, and choose Properties.<br />
413
Appendix A: Troubleshooting<br />
414<br />
2 Click Source Control.<br />
3 To enable trace logging, select Log All Activity.<br />
NOTE The default log file name is pbscc80.log and is saved in the workspace<br />
directory, but you can change the name and location.<br />
If Overwrite Log File is selected for PowerBuilder 8.0, the log file is overwritten for each<br />
session. The default setting is Append To Log File.<br />
IBM Eclipse 2.0/Websphere Studio 5.0<br />
Websphere does not log version control activity specifically, but version control errors<br />
appear in Websphere’s general debug log located in \.metadata\.log.<br />
To display the debug log, system properties, and the list of plug-ins, select Help > About, and<br />
click Configuration Details.<br />
Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Diagnostics<br />
To monitor and diagnose issues that may arise when performing operations on the<br />
<strong>MKS</strong> <strong>Integrity</strong> Client and <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client,<br />
and the si diag and im diag commands offer several diagnostics you can run on the<br />
workflow and document management, and configuration management components.<br />
Note the following:<br />
To view the <strong>Server</strong> Diagnostics node in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, run<br />
server diagnostics, and create a support package, you must have the Admin<strong>Server</strong><br />
permission for <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>; configuration management; or workflow and<br />
document management. If the permission is denied, the <strong>Server</strong> Diagnostics node does<br />
not appear.<br />
<strong>Server</strong> metrics and certain diagnostics may take a long time to run, impacting server<br />
performance. <strong>MKS</strong> recommends running these metrics and diagnostics during non-peak<br />
usage.<br />
To run server diagnostics in the GUI<br />
1 In the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, select the Workflows and Documents or<br />
Configuration Management node, and then open the <strong>Server</strong> Diagnostics node.
2 Select one of the following server diagnostics:<br />
Diagnostic Description<br />
Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Diagnostics<br />
Change Logging Levels Changes logging levels for the server.<br />
In the available fields, choose the category and logging level. Available<br />
logging categories include: ACL, AGENT, API, CACHE, DEBUG, ERROR,<br />
GENERAL, IM-NOTIFICATION, LDAP, REALM, SD, SMTP, SQL, TM, and<br />
WARNING. By default, DEBUG is selected.<br />
To permanently save your changes, select true. By default, false is<br />
selected.<br />
For more information on logging, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong><br />
Installation and Configuration <strong>Guide</strong>.<br />
Change Package <strong>Server</strong>s Displays a list of configuration management servers which have change<br />
packages tracked by items on this <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Client Connections Displays list of all clients connected to the server. List includes user name,<br />
host name, port, and time connection established.<br />
<strong>Server</strong> Errors Displays the most recent 50 lines from the server log at or above the ERROR<br />
level.<br />
<strong>Server</strong> Log Displays the most recent 500 lines from the server log.<br />
Collect Support Package Collects client/server logs, statistics, and properties into compressed ZIP file<br />
(called support package). When support package assembled, you can e-mail<br />
to <strong>MKS</strong> Customer Care for further diagnosis.<br />
For more information, see “Collecting Properties and Log Files” on page 421.<br />
415
Appendix A: Troubleshooting<br />
Diagnostic Description<br />
416<br />
Connected Source <strong>Server</strong>s Displays a list of configuration management servers connected to the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Database Connections Displays list of all open database connections.<br />
Each open database connection shows where (via a stacktrace) the<br />
connection was requested from the JDBC connection pool, the name of the<br />
thread that requested the JDBC connection, and the timestamp when the<br />
connection was pulled out of the JDBC connection pool.<br />
JVM Memory Usage Performs garbage collection and displays memory in use, free memory, and<br />
total memory in bytes.<br />
License Usage Displays each type of license (workflow and document management,<br />
configuration management, seat, float) and user that has license currently<br />
checked out.<br />
Note: Users on multiple <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>s show license checked out for<br />
each server. If multiple <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>s connected to same license<br />
server, license information may not reflect actual number of licenses currently<br />
checked out.<br />
If license monitoring is enabled, this diagnostic also displays the appropriate<br />
stats categories. For more information on FLEXnet license monitoring, see<br />
the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> <strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
Metrics Displays server metrics, such as the maximum change package entries per<br />
change package, and the average time entries per user.<br />
Running Displays a list of charts, dashboards, queries, and reports that are currently<br />
running.<br />
Stacktrace Collects server stacktrace.<br />
Statistics Displays server statistics. By default, the previous week’s statistics are stored<br />
in a support package. Each statistic is stored separately in the ZIP file as a<br />
separate file, with the statistics under a directory named Stats. Each file<br />
under the Stats directory is in the format yyyy.MM.dd-HH.mm.ss.<br />
Verbose Garbage<br />
Collection<br />
Enables or displays verbose garbage collection for the server JVM.<br />
To diagnose garbage collection issues, the server retains the 10 most recent<br />
garbage collection logs if verbose garbage collection is enabled. A new<br />
garbage collection log (gc.out) is automatically started after the server<br />
restarts. Versions of gc.out are named incrementally, for example,<br />
gc.out.1 and gc.out.2.<br />
Note: Verbose garbage collection slows down server performance. <strong>MKS</strong><br />
recommends disabling this option as soon as you complete your analysis.<br />
3 To run the selected diagnostic, click Run Diagnostic at the top of the diagnostic view. The<br />
results display in the diagnostic view.<br />
4 To perform a text search on the results, click anywhere in the diagnostic view and press<br />
CTRL+F. A search bar displays at the bottom of the diagnostic panel. As you type in the<br />
Find field, the results become more specific.
Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Diagnostics<br />
5 For some diagnostics, you can save the information to a file by clicking Save Output. A<br />
standard save dialog box appears, allowing you to save the information as a text file on<br />
the server’s file system.<br />
To run server diagnostics in the CLI<br />
From the command line, type one of the following commands:<br />
<strong>Server</strong> diagnostics on the configuration management component:<br />
si diag --diag=value --target=server<br />
<strong>Server</strong> diagnostics on the workflow and document management component:<br />
im diag --diag=value --target=server<br />
where im diag specifies the workflow and document management component and si diag<br />
specifies the configuration management component, value specifies the diagnostic name, and<br />
server specifies the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> to run the diagnostics on. Acceptable diagnostics for<br />
value are as follows:<br />
Diagnostic Description<br />
backupdatabasea Backs up Derby database to installdir/data/derby.db/backup.<br />
connections Displays list of all server connections. List includes user name, host name,<br />
port, and time connection established.<br />
collectsupportpackagea Collects client/server logs and properties into compressed ZIP file (called<br />
support package). When support package assembled, you can e-mail to <strong>MKS</strong><br />
Customer Care for further diagnosis.<br />
For more information, see “Collecting Properties and Log Files” on page 421.<br />
cpservers Displays a list of configuration management servers which have change<br />
packages tracked by items on this <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
dumpstacks Collects server stacktrace.<br />
getNextCheckpointDate Displays the timestamp of the earliest conflicting transaction. If there are no<br />
conflicting transactions, none is displayed.<br />
heap Performs garbage collection and displays memory in use, free memory, and<br />
total memory in bytes.<br />
isproperties Displays list of server properties not specific to workflow and document<br />
management, or configuration management. To configure statistics collection,<br />
purging, and license monitoring properties, use the setispolicy<br />
diagnostic.<br />
licenses a<br />
Displays each type of license (workflow and document management;<br />
configuration management; seat; float) and user that has license currently<br />
checked out.<br />
Note: Users on multiple <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>s show license checked out for<br />
each server. If multiple <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>s connected to same license<br />
server, license information may not reflect actual number of licenses currently<br />
checked out.<br />
417
Appendix A: Troubleshooting<br />
Diagnostic Description<br />
418<br />
listopendbconnections Displays list of all open database connections.<br />
Each open database connection shows where (via a stacktrace) the<br />
connection was requested from the JDBC connection pool, the name of the<br />
thread that requested the JDBC connection, and the timestamp when the<br />
connection was pulled out of the JDBC connection pool.<br />
listOpenSITransactions Displays the current open DB backend transactions that could potentially<br />
conflict with a checkpoint operation; along with their stacktrace, transaction<br />
time, and thread name. This diag is useful for diagnosing checkpointing<br />
issues.<br />
log Displays recent server log output.<br />
To display the most recent 500 lines from the server log, use the appender<br />
MEMORY, for example, for example, --diag=log MEMORY.<br />
To display the most recent 50 lines from the server log at or above the ERROR<br />
level, use the appender MEMORYERROR, for example, --diag=log MEMORY.<br />
Caution: This diagnostic uses the server’s memory.<br />
mem Performs garbage collection and displays memory in use, free memory, and<br />
total memory in bytes.<br />
metrics Displays server metrics, such as the maximum change package entries per<br />
change package, and the average time entries per user.<br />
policies Displays list of all workflow and document management policies.<br />
policy Displays list of all modified global policy settings. User preferences, default<br />
settings, and project settings not displayed.<br />
properties Displays list of all properties on server. Includes settings in si.properties,<br />
is.properties, im.properties, and logger.properties.<br />
reloadfunctions Reloads dialect-specific JAR files into the database during server startup.<br />
These JAR files add functions into the database that support complex<br />
computations. Restart the server after using this diag.<br />
reclaimprojectname Reclaims project name of the project path specified in param option. Path<br />
case sensitive. You need to reclaim dropped project in RCS style repository to<br />
completely remove it from repository. Enables you to create or import project<br />
using same repository location.<br />
You must stop and restart server after reclaiming project name before you can<br />
re-use repository location.<br />
Command can also be used for reclaiming subproject namespaces.<br />
refreshUserGroupCache Clears framework-level caches (subject, user name, group and LDAP). This is<br />
useful for updating user and group caches when your external directory<br />
service is updated.<br />
Note: If you specify this option with im diag, it has the additional effect of<br />
rebuilding the <strong>Integrity</strong>-level caches.<br />
running Displays list of charts, dashboards, queries, and reports that are currently<br />
running.
Diagnostic Description<br />
Running <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> Diagnostics<br />
sqllogging If SQL logging is enabled on the <strong>MKS</strong> <strong>Integrity</strong> (im/si logging command),<br />
you can set SQL logging levels for specific users. Setting the logging level can<br />
assist in isolating specific user commands and improving server performance.<br />
For example, if logging levels are high and server performance is impacted,<br />
reducing logging levels may improve performance.<br />
To set SQL logging levels for a user, type:<br />
im/si --diag=sqllogging username logginglevel<br />
where<br />
username is the user ID of the user whose commands you want to log.<br />
logginglevel is one of the following number or text values: high (0), medium<br />
(5), low (10), or off (-1).<br />
For example, typing:<br />
im diag --diag=sqllogging jriley high<br />
logs all workflow and document SQL commands for the user jriley to the<br />
category SQL-jriley.<br />
419
Appendix A: Troubleshooting<br />
Diagnostic Description<br />
420<br />
setispolicy Configures the following server policies:<br />
Name: mksis.statisticsInterval<br />
Int Value: 7200<br />
Default: 60<br />
Min: 30<br />
Max: 10000000<br />
Description: Controls the number of seconds between collecting statistics. To<br />
diagnose intermittent server performance issues, lower this number.<br />
Name: mksis.statisticsPurge<br />
Default: weekly<br />
Description: Purges stored statistics weekly or monthly. After the specified<br />
period, only one statistic per day is stored, while others are deleted. To<br />
manually purge statistics, specify none and use SQL statements to purge the<br />
data.<br />
Note: To prevent overloading the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> with statistics,<br />
especially if the interval is set low, one statistic per day is purged upon each<br />
server start.<br />
Name: mksis.serverLicenseInterval<br />
Int Value: 60<br />
Default: 60<br />
Min: 0<br />
Max: 10000000<br />
Description: Controls how frequently (in seconds) server license usage is<br />
polled and recorded in the server statistics. You can disable this policy by<br />
setting the value to 0. If collection is enabled, the minimum allowed value is<br />
60 seconds.<br />
Name: mksis.flexLicenseInterval<br />
Int Value: 0<br />
Default: 0<br />
Min: 0<br />
Max: 10000000<br />
Description: Controls how frequently (in seconds) FLEXnet license usage is<br />
polled and recorded in the server statistics. If multiple <strong>Integrity</strong> <strong>Server</strong>s are<br />
pointing at the same FLEXnet license server, <strong>MKS</strong> recommends enabling this<br />
policy on one <strong>Integrity</strong> <strong>Server</strong> only. You can disable this policy by setting the<br />
value to 0. If collection is enabled, the minimum allowed value is 300<br />
seconds.<br />
setpolicytodefault Restores the policy to the default value.<br />
showrepdir Displays list of projects, archives, and directories contained in database<br />
repository. Requires si.repositoryBrowsingEnabled property to be<br />
true in si.properties file.<br />
statistics Displays server statistics. By default, the previous week’s statistics are stored<br />
in a support package. Each statistic is stored separately in the ZIP file as a<br />
separate file, with the statistics under a directory named Stats. Each file<br />
under the Stats directory is in the format yyyy.MM.dd-HH.mm.ss.<br />
a Admin<strong>Server</strong> permission must be used. Admin permission not required.
Collecting Properties and Log Files<br />
Collecting Properties and Log Files<br />
If you are unable to diagnose a problem with the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> using the server<br />
diagnostics, you can collect client and server logs, server statistics, and properties into a<br />
compressed ZIP file (called a support package). When your support package is assembled, you<br />
can e-mail it to <strong>MKS</strong> Customer Care for further diagnosis.<br />
Note the following:<br />
If certain files do not exist on the <strong>MKS</strong> <strong>Integrity</strong> Client or <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, within<br />
the ZIP file each client and server’s manifest.txt file indicates which files are missing.<br />
Additionally, each manifest.txt file includes the date and time the files were<br />
collected, the target component (client, server, or proxy), the full path to each file, and<br />
the date and time each file was last modified.<br />
If the support package exceeds 5 MB, <strong>MKS</strong> recommends removing some of the older<br />
server.log (or for previous server versions, weblogic.log) files from the support<br />
package before e-mailing it to <strong>MKS</strong> Customer Care.<br />
In the support package, each server statistic is stored as a separate file in the Stats<br />
directory. Each file is in the format yyyy.MM.dd-HH.mm.ss.<br />
The five most recent license.log files are captured in the support package.<br />
For security reasons, the following sensitive information is not included in the support<br />
package:<br />
in si.properties:<br />
im.user=xxxx<br />
im.password=xxxx<br />
si.anonymousUser=xxxx<br />
si.anonymousPassword=xxxx<br />
in im.properties:<br />
mksis.im.prodPassword=xxxx<br />
mksis.im.prodUser=xxxx<br />
in is.properties:<br />
mksis.proxy.*.adminPassword=xxxx<br />
mks.dbUser=xxxx<br />
mks.dbPassword=xxxx<br />
mksis.privatekey.password=xxxx<br />
421
Appendix A: Troubleshooting<br />
422<br />
in security.properties:<br />
ldap.credential=xxxx<br />
ldap.principal=xxxx<br />
ldap.credential=xxxx<br />
ldap.principal=xxxx<br />
clear text passwords<br />
To create a support package in the GUI<br />
1 From the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client, connect to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> that<br />
you want to retrieve server files from.<br />
2 From the tree pane, select the Workflows and Documents or Configuration<br />
Management node, and then select <strong>Server</strong> Diagnostics > Collect Support Package.<br />
3 In the Target ZIP file for Support Package field, type a name for the ZIP file, for example,<br />
support.zip, or click Browse and locate an existing ZIP file to add the information to.<br />
4 Click Run Diagnostic. You are notified that the support package has been created.<br />
5 E-mail the support package to <strong>MKS</strong> Customer Care. For tips on what information to<br />
include when you contact <strong>MKS</strong> Customer Care, see “Environment Information” on<br />
page 402.<br />
To create a support package in the CLI when the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> is not running<br />
From a command line, go to installdir/bin and type one of the following commands:<br />
On Windows:<br />
NOTE This command collects server files only.<br />
collectSupportPackage.exe zipFilename<br />
On UNIX:<br />
runstacktrace<br />
collectSupportPackage zipFilename<br />
where, zipFilename specifies the name of the ZIP file, for example, support.zip.<br />
<strong>MKS</strong> provides a stack trace monitor for generating server stack traces in cases where the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> is unresponsive (hangs). The stack trace monitor does not rely on the<br />
si diag command. The command writes the stack trace and date/time information to a<br />
stacktrace file.
mksis<br />
To generate a stack trace, create a file called:<br />
installdir/data/runstacktrace<br />
where installdir is the path to the directory where you installed the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Once you create the runstacktrace file, the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> then automatically<br />
creates the installdir/bin/stacktrace file and writes all stack trace and date/time<br />
information to it.<br />
To stop generating stack traces, remove the runstacktrace file in the installdir/data<br />
directory.<br />
You can also set the interval for the stack trace monitor to poll for the runstacktrace file. To<br />
set the monitoring interval, set the following property in the installdir/data/<br />
is.properties file:<br />
mksis.monitorInterval=<br />
IMPORTANT By default, the monitoring interval is 30 seconds. Setting a monitoring<br />
interval of less than 10 seconds can have adverse effects on performance.<br />
The mksis.bat (mksis in UNIX) file provides some administrative functionality for the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. The file is located in the following directory:<br />
installdir/bin/mksis[.bat]<br />
where installdir is the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> installation directory.<br />
The following is the syntax for the command:<br />
mksis subcommand<br />
where subcommand is one of the following:<br />
console starts the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> in console mode as an application only without<br />
the service as specified in:<br />
installdir/config/<br />
install installs the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> as an Windows NT service<br />
remove removes the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> service<br />
restart restarts the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> service<br />
safemode restarts the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> in safemode (see “Starting <strong>Server</strong> in Safe<br />
Mode” on page 426)<br />
start starts the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> service (Windows) or daemon (UNIX)<br />
mksis<br />
423
Appendix A: Troubleshooting<br />
isutil<br />
424<br />
stop stops the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> service (Windows) or daemon (UNIX)<br />
To assist with managing the database repository, the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> includes a series<br />
of isutil commands. The isutil commands allow you to perform a variety of<br />
maintenance and configuration tasks related to the database repository while the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> is not running.<br />
If you experience cache corruption issues or are restoring your repository from a backup, a<br />
cold restart of the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> may be required. The isutil command allows you to<br />
flush and rebuild all or specific caches when you restart the server, resulting in a potentially<br />
lengthy downtime before users can access the server. To determine if you need to perform a<br />
cold restart, contact <strong>MKS</strong> support.<br />
The isutil utility is installed with the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> in the installdir/bin directory.<br />
CAUTION Certain isutil commands can permanently alter the database and<br />
cannot be undone. <strong>MKS</strong> recommends using these commands only with guidance<br />
from <strong>MKS</strong> Customer Care or <strong>MKS</strong> Professional Services.<br />
Command usage is:<br />
isutil -c command [-?] [-d] [command-arguments]<br />
where command is one of the following:<br />
aclcreate creates or resets the ACL table in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> database.<br />
acldestroy deletes the ACL table in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> database<br />
aclexists tests whether the ACL table exists in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> database.<br />
aclmigrate migrates the ACL entries table to the latest version (database schema). No<br />
action is taken if the tables are already at the current schema level.<br />
blobperf tests the performance of BLOB access in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> database.<br />
cmactiveon enables the maintenance of ArchiveShared and active-project properties.<br />
cmalterarchivebasename changes the archive base name.<br />
cmalterdirname changes the directory tree name.<br />
CAUTION The cmalterdirname command is not intended as a general purpose<br />
rename gesture. Several external references are not updated by the command.<br />
Contact <strong>MKS</strong> Customer Care for more information.<br />
cmalterprojectbasename changes the project base name.
cmdbcreate creates and initializes the configuration management database repository<br />
tables.<br />
cmdbmigrate migrates the configuration management database repository tables to the<br />
latest version (database schema). No action is taken if the tables are already at the<br />
current schema level.<br />
CAUTION The cmdbmigrate command cannot be reversed because there is no<br />
reverse migration tool. Because the new database schema does not operate with<br />
older versions of <strong>MKS</strong> <strong>Integrity</strong>, ensure that you have a backup of your database<br />
before running the command.<br />
cmlist lists the names of the requested object type from the database.<br />
dbinstall sets up the database similar to the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> installer.<br />
diag runs an <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> diagnostic. For a list of diagnostics, see “To run<br />
server diagnostics in the CLI” on page 417.<br />
imdbcreate creates and initializes the workflow and document database tables.<br />
imdbdestroy deletes the workflow and document database tables.<br />
imdbgetversion retrieves the current workflow and document database schema<br />
version.<br />
imdbmigrate migrates the workflow and document database tables to the current<br />
Schema.<br />
imdbrebuildtable rebuilds the specified database table. You can specify the location<br />
for the table to be stored, another location for its LOB data, and another location for its<br />
indexes (for example, isutil -c imdbrebuildtable <br />
[ [ []]]).<br />
metrics runs database metrics. For a list of metrics, see “To run server diagnostics in the<br />
CLI” on page 417.<br />
migrateserverconfig migrates your existing <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> configuration to a<br />
new <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> installation.<br />
sidbcreate creates and initializes the configuration management tables.<br />
An example of isutil command usage is as follows:<br />
C:\Program Files\<strong>MKS</strong>\<strong>Integrity</strong><strong>Server</strong><strong>2009</strong>\bin\isutil -c aclcreate<br />
isutil<br />
425
Appendix A: Troubleshooting<br />
Starting <strong>Server</strong> in Safe Mode<br />
426<br />
Starting the server in safe mode provides the application administrator with a way to<br />
perform configuration tasks while preventing all other users from accessing the system.<br />
While in safe mode, from either the GUI or the CLI, the administrator may configure global<br />
permissions and administer the <strong>MKS</strong> Domain.<br />
Note the following about using the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> in safe mode:<br />
Only one user may log in.<br />
All ACL permission verification is disabled for the user logged in.<br />
The administrator does not have access to workflow and document management, and<br />
configuration management functions.<br />
To start the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> in safemode from the CLI<br />
To start the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> in safe mode, use the mksis command (see “mksis” on<br />
page 423). The following is the command syntax for starting the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> in safe<br />
mode:<br />
where<br />
installdir/bin/mksis console safemode password<br />
installdir is the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> installation directory<br />
password creates a new password for this safemode session<br />
The user name for logging into the server in safe mode is safemode, and the password is the<br />
password specified on server start.<br />
You can script the server start in safemode by modifying the following file:<br />
installdir/config/<br />
The properties are:<br />
wrapper.java.additional.8=-Dmks.safemode=<br />
wrapper.java.additional.9=-Dmks.safemode.password=
Troubleshooting Database Repository<br />
Starting <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
Troubleshooting Database Repository<br />
To start the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>, follow the procedures outlined in the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
<strong>2009</strong> Installation and Configuration <strong>Guide</strong>.<br />
NOTE If the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> and database repository are on separate machines,<br />
and both machines are running with JVM, the machines must be set to the same<br />
locale or the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> may not start.<br />
Database Connections After Routine Backups<br />
When performing a routine backup of your database that requires the database to be<br />
disconnected, you should wait until the database is fully online before attempting to run any<br />
commands from the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. If the database is not fully online before running a<br />
command, an error message is posted.<br />
Archives for Dropped and Added Migrated Members<br />
When using the database repository option for configuration management, dropping a<br />
migrated project member and re-adding the member of the same name does not cause the<br />
member archive to branch. Instead, a new archive is created without the RCS directory. If you<br />
want to reuse the archive, add the member using the Add From Archive command (see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>).<br />
Controlling Bulk Data Storage in Oracle<br />
Where Oracle is used for the database repository, you can control the storage of bulk data by<br />
controlling the storage of the VALUE column in the CMARCHBULK table. Oracle Locator Object<br />
(LOBs) data is now supported for the database repository.<br />
DB2 and Transaction Log<br />
If you are using a DB2 database and you encounter a “not enough storage” error message in<br />
the transaction log, modify the app_ctl_heap_sz parameter by typing the following from<br />
the DB2 Command Line Processor on the DB2 server:<br />
db2=> update db cfg for DBname using app_ctl_heap_sz 1024<br />
where DBname is the name the local DB2 Client uses to reference the database. For large<br />
transactions, values in the order of 4096 may be required.<br />
Adding Large Files on MS SQL <strong>Server</strong> Database<br />
Adding large files (for example, files larger than 250 MB) is not supported on the MS SQL<br />
<strong>Server</strong> database and can cause a connection timeout to the database.<br />
427
Appendix A: Troubleshooting<br />
428<br />
MS SQL <strong>Server</strong> Database Uses Case-sensitive Collation<br />
If you are using MS SQL <strong>Server</strong> as the backing database for the repository, you must<br />
configure a case-sensitive collation when creating the database or the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
service will not start. A collation specifies the bit patterns that represent each character and<br />
the rules by which characters are sorted and compared.<br />
NOTE Case-sensitive collation is not addressed in the case sensitivity setting for<br />
configuration management project names.<br />
IMPORTANT If the installer cannot alter an existing <strong>MKS</strong> <strong>Integrity</strong> database due to<br />
case mismatches, workflow and document and configuration management<br />
functionality will have to run in separate, named databases on separate<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>s.<br />
Locale Mismatch When Installing With Database Repository Option<br />
When installing the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> with the database repository option, a mismatch<br />
can occur between the installer JVM and server JVM locales when setting the default case<br />
sensitivity for the SQL <strong>Server</strong> database. The mismatch does not occur when the case sensitive<br />
option is enabled for the database.<br />
To correct the locale mismatch problem, run the following SQL statement:<br />
update CMSCHEMAPROP set VALUE='en_US' where<br />
NAME='CMInsensitivityLocale'<br />
If you encounter any problems installing or using the database repository, contact<br />
<strong>MKS</strong> Customer Care.<br />
Troubleshooting Kerberos and Kerberos Single<br />
Sign-On<br />
The following error messages may appear in log files or debugging information if the<br />
Kerberos or Kerberos Single Sign-On has not been set up correctly.<br />
NOTE To turn debugging on, add mks.security.debug=true to<br />
security.properties.<br />
ERROR(0): No valid credentials provided (Mechanism level: <strong>Server</strong> not<br />
found in Kerberos database (7))<br />
If this error message appears in the client side log file, your<br />
mks.security.clientServiceName setting is not correct. Make sure it is set to be the<br />
name of the user the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> is running as.
Troubleshooting Kerberos and Kerberos Single Sign-On<br />
WARNING(0): The registry key required to support Kerberos Single-<br />
Sign-On is missing. You may wish to add them manually.<br />
WARNING(0): <strong>Integrity</strong> <strong>Server</strong> does not allow registry key to be<br />
automatically added. Either add the key manually or consult your<br />
<strong>Integrity</strong> <strong>Server</strong> administrator<br />
WARNING(0): On Windows <strong>Server</strong> 2000 and 2003 the key<br />
"allowtgtsessionkey" in HKEY_LOCAL_MACHINESystem\CurrentControlSet\<br />
Control\Lsa\Kerberos\Parameters with value 1 should be added (reboot<br />
may be required).<br />
If any of these error messages appear in the client side log file, the client side registry key<br />
is missing.<br />
ERROR(0): No valid credentials provided (Mechanism level: Failed to<br />
find any Kerberos Ticket)<br />
If this error appears in the client side log file, either the mks.security.<br />
kerberosRealmName or mks.security.kdcAddress setting is wrong, for example, the<br />
realm name is not entered in uppercase.<br />
15:52:35,661 INFO [<strong>Integrity</strong><strong>Server</strong>] DEBUG(10): Login exception<br />
encountered while attempting authentication of user kmorton via<br />
policy default-policy. Details of exception No valid credentials<br />
provided (Mechanism level: Failed to find any Kerberos Key)<br />
If this error message appears in the server side log file, the mks.security.SPN setting<br />
does not match the -princ option given in the ktpass command.<br />
17:37:03,208 INFO [STDOUT] error Message is Client not found in<br />
Kerberos database<br />
If this error message appears in the Kerberos debug information, there is a problem with<br />
the keytab file. It may contain an invalid principal name, or the mks.security.SPN<br />
setting may not match the -princ option given in the ktpass command.<br />
DEBUG(10): Login exception encountered while attempting<br />
authentication of user ldaprealmtest1 via policy default-policy.<br />
Details of exception Pre-authentication information was invalid (24)<br />
If this error message appears in the server log when trying to authenticate using either a<br />
windows_clear or windows_private security policy, the case is wrong in the<br />
mks.security.kerberosRealmName or mks.security.kdcAddress setting in<br />
security.properties.<br />
DEBUG(10): Login exception encountered while attempting<br />
authentication of user ldaprealmtest1 via policy default-policy.<br />
Details of exception Clock skew too great (37)<br />
If this error appears in the server log when trying to authenticate using either a<br />
windows_clear or windows_private security policy, the clock on the server is not<br />
synchronized with the clock on the client machines. For the Kerberos authentication<br />
429
Appendix A: Troubleshooting<br />
430<br />
domain to work, the server and client clocks must be synchronized (within a reasonable<br />
amount of time).<br />
For additional troubleshooting information, visit the following Web page:<br />
http://java.sun.com/j2se/1.4.2/docs/guide/security/jgss/tutorials/<br />
Troubleshooting.html<br />
Troubleshooting Configuration Management<br />
Reporting<br />
For clients to be able to run configuration management reports, you must specify Microsoft<br />
Access as the report application in the <strong>Integrity</strong>ClientInstallDir\<strong>Integrity</strong>ClientSite.rc<br />
file. This file is updated automatically if you select MS Access as the reporting application<br />
during the client installation. However, if MS Access is not installed at the time of the client<br />
installation, you will not be able to select it as your reporting application, and the client will<br />
not be able to run configuration management reports.<br />
If MS Access is installed on a client after <strong>MKS</strong> <strong>Integrity</strong> has been installed, you can manually<br />
set the si.databaseCommand property in the <strong>Integrity</strong>ClientSite.rc file to specify the<br />
path of MS Access and of the MS Access database, for example:<br />
si.databaseCommand="C:\\program files\\microsoft<br />
office\\office10\\msaccess.exe" "C:\\program<br />
files\\<strong>MKS</strong>\\bin\\sirept2000.mdb" /runtime /excl /cmd "{0}"
A PPENDIX B<br />
Glossary<br />
Definitions of Common Terms<br />
B<br />
This glossary provides a glossary of common terms and definitions for <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>Server</strong>, <strong>MKS</strong> <strong>Integrity</strong>, and <strong>MKS</strong> <strong>Integrity</strong>.<br />
author A value for the Reference Mode field which signifies that the user or group has<br />
full permissions to modify the document item. Modification of the document item will<br />
force a branch for all other Reuse references. Changes to the document made in Author<br />
reference mode do not result in a branch of the document.<br />
change orders Change orders are process items that control the authorization of change<br />
to a document or document item.<br />
change requests Change requests are process item that track the request to effect<br />
change to a document or document item. Change requests may or may not be related to<br />
document. When change requests are accepted, change orders are created to authorize<br />
the change.<br />
couplet A couplet is the architectural term for the node and shared item <strong>MKS</strong> <strong>Integrity</strong><br />
items. Together these create a document item and facilitate sharing and reuse use cases.<br />
data model The combination of <strong>MKS</strong> <strong>Integrity</strong> item types, fields, relationships and<br />
other administration objects that define a system and its basic behaviours.<br />
document A document is an <strong>MKS</strong> <strong>Integrity</strong> item type class that represents a container<br />
for grouping and managing document items at a high level.<br />
document class The term used in <strong>MKS</strong> <strong>Integrity</strong> to describe different types of<br />
documents (segment) and content (nodes) in the document model.<br />
document item A generic term for describing a node/shared item or a node/document<br />
pairing. Also substituted for content and couplet in certain instances.<br />
document model The term used to describe the inter-related components that make up<br />
and control the behavior of documents within <strong>MKS</strong> <strong>Integrity</strong>. The document model is<br />
defined and modified through various types within the <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong><br />
Client and controls how segments, nodes, and shared items, interact with each other for<br />
the purposes of versioning and reuse. To learn more about the individual document<br />
model components, see see the ALM section of the <strong>MKS</strong> Knowledge Base.<br />
431
Appendix B: Glossary<br />
432<br />
domains Generic term used for describing a discipline or body of work like requirements<br />
management or test management. Encompasses all gestures, actors, and artifacts related to<br />
that discipline.<br />
external relationships The <strong>MKS</strong> <strong>Integrity</strong> relationship fields that link artifacts within a<br />
domain to process items like Change Requests and Change Orders.<br />
meaningful A node or segment is defined as meaningful by editing the Shared Category<br />
FVA field. Artifacts are usefully marked as meaningful and non-meaningful for reporting<br />
purposes. See the field computation for details.<br />
node The internal <strong>MKS</strong> <strong>Integrity</strong> architectural term for content item or subdocument.<br />
non meaningful A node or segment is defined as nonmeaningful by editing the Shared<br />
Category FVA field. Artifacts are usefully marked as meaningful and non-meaningful for<br />
reporting purposes. See the field computation for details.<br />
reuse A value for the Reference Mode field which signifies that the content belongs to<br />
another document and is being referenced by the current document. Any user or group with<br />
the applicable permissions can modify the content and any modification will not affect any<br />
other reference to the same item. If a change is made, the system will branch the item and the<br />
branched item will then have a Share reference to it.<br />
segment The internal <strong>MKS</strong> <strong>Integrity</strong> architectural term for document. A segment is<br />
represented by the Document item type but is also referred to generically as document.<br />
Subsegments are subdocuments. Also Segment Roots.<br />
segment roots The internal <strong>MKS</strong> <strong>Integrity</strong> architectural term for top level document.<br />
Documents that are not included or referenced inside of other documents.<br />
share A value for the Reference Mode field which signifies that the user (or group) of a<br />
document is referencing a shared item. It cannot be edited directly and it will show all<br />
changes made by the Author to the shared item.<br />
shared item An <strong>MKS</strong> <strong>Integrity</strong> item type class that represents the shared or common<br />
content across all instances of a document item.<br />
significant fields The list of <strong>MKS</strong> <strong>Integrity</strong> fields within a document item that cause the<br />
system to version or branch that document item.<br />
solution template A pre-configured set of <strong>MKS</strong> <strong>Integrity</strong> item types, fields, triggers, queries,<br />
reports and other administrative objects used to demonstrate how the platform can be used<br />
to solve the challenges of a particular domain. <strong>MKS</strong> offers solution templates for Iterative,<br />
Waterfall, ITIL, Application Service Management, Test Management, Application Lifecycle<br />
Management (ALM), Re-use Enabled Requirements Management and other processes and<br />
disciplines.<br />
trace relationship The <strong>MKS</strong> <strong>Integrity</strong> relationship field(s) which link artifacts within a<br />
domain or between domains using the Verifies/Verified By relationship between<br />
requirements and tests.
A change package is a group of changes made by a single user that can be considered a<br />
logical unit of work. Only the creator of a change package can add entries to that change<br />
package. Change package entries are added when you specify a change package while<br />
performing member operations. 345<br />
A change package review is a review of changes by specified reviewers before the changes<br />
are committed to the server repository. 346<br />
A change package reviewer is a user specified by your administrator to review change<br />
packages containing members associated with specific projects. The reviewer may be<br />
individually specified or a member of a specified reviewer group. In the case of a reviewer<br />
group, any member of that group casts an accept or reject vote on behalf of the entire group.<br />
346<br />
A change package watcher is a user specified by your administrator who is notified when a<br />
reviewed change package is closed after being successfully committed to the repository.<br />
Change package watchers may be individually specified or a member of a specified watcher<br />
group. 346<br />
A dashboard is a static, user-definable view comprised of any combination of charts, reports,<br />
images, labels, and links to reports, queries and Web sites. 6<br />
A graphical user interface, or GUI, is a program interface that uses a number of visual<br />
components (such as icons, pointers, and pull-down menus) to execute commands. Working<br />
in a GUI allows the user to give instructions to the computer without having to learn a<br />
specific command language. The <strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client interface is a GUI<br />
designed for carrying out most administrative commands from a central location. 10<br />
A query is a request to select and list the items that meet specific selection criteria. The<br />
selection criteria are a logical expression of specific values, or ranges of values, of the<br />
standard and custom fields of the item type. 240<br />
A shared subproject is a subproject that is a member of more than one configuration<br />
management project. You can share a subproject between two or more projects by referencing<br />
the original subproject. A shared subproject allows you to access common members across<br />
many projects. Shared subprojects are not required to be located within the same directory<br />
structure or project hierarchy. 286<br />
A super reviewer is a user with permission to vote on change packages, but who is not<br />
required to be a listed reviewer for the change package. Voting as a super reviewer overrides<br />
all other votes. For example, casting an accept vote as a super reviewer is sufficient for<br />
accepting the change package. 346<br />
A user is anyone who needs to work with one or both of <strong>MKS</strong> <strong>Integrity</strong> components. Users<br />
are assigned user permissions by the administrator. Users are also assigned to groups that<br />
have specific <strong>MKS</strong> <strong>Integrity</strong> group permissions assigned by the administrator. 4<br />
A ViewSet is a collection of views in a specific configuration that persists each time the user<br />
opens and closes the <strong>MKS</strong> <strong>Integrity</strong> Client. As an administrator, you have the ability to<br />
control the configuration of ViewSets. Each ViewSet can be designed around one or more<br />
433
Appendix B: Glossary<br />
434<br />
tasks, often corresponding to a specific role, such as a developer or project manager. For<br />
example, a developer ViewSet might contain views and actions for items and queries, while a<br />
project manager ViewSet might contain views and actions for charts, reports, and<br />
dashboards. 50<br />
Admin provided objects are objects within the workflow and document object model that<br />
support solution definition and management, as well as workflow migration. 244<br />
Charts are graphs that present trends over time or distributions of the data in your project.<br />
Charts are based on the standard and custom fields of item types. You can display trend<br />
charts as line or bar graphs, and distribution charts as pie or bar graphs. You can also display<br />
data in tabular form. 240<br />
Importing a configuration management project registers it with the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>.<br />
Once a project is imported, <strong>MKS</strong> <strong>Integrity</strong> commands can be performed upon it. 268<br />
In workflow and document management, a project contains labels that help you sort and<br />
organize items in a hierarchical structure. 5<br />
<strong>MKS</strong> <strong>Integrity</strong> allows you to create large configuration management projects composed of<br />
smaller component projects. These smaller projects are known as subprojects. Subprojects<br />
behave in the same way as projects and can be accessed with most project and Sandbox<br />
commands. 284<br />
<strong>MKS</strong> <strong>Integrity</strong> project administrators are allowed to edit and view workflow and document<br />
projects. Project administrators can also manage all child projects of the project they are<br />
approved for. Project administrators cannot edit projects assigned to another project<br />
administrator, and they can only create and delete subprojects—they cannot create top level<br />
projects unless they have been granted the CreateProject permission. 262<br />
Presentation templates are customizable layouts for displaying items in <strong>MKS</strong> <strong>Integrity</strong>.<br />
<strong>MKS</strong> <strong>Integrity</strong>’s presentation template designer allows you to customize the layout and<br />
display of items in your <strong>MKS</strong> <strong>Integrity</strong> database. The template designer incorporates drag<br />
and drop functionality to help you create a custom layout for a selected item type. 191<br />
relevance Relevance is a set of field conditions that determine which fields are relevant to<br />
selected groups of users or to specified field values. Fields that do not meet the relevance<br />
rules are not visible to users. 134<br />
state In <strong>MKS</strong> <strong>Integrity</strong>, item types can each have their own set of states to advance through.<br />
They can also follow a state model defined by the project administrator, giving greater<br />
control over who has access to a specific item type at a given time, as well as who has<br />
responsibility for approving the advancement of the state. 77<br />
super administrator For <strong>MKS</strong> <strong>Integrity</strong>, the person who sets up and configures<br />
<strong>MKS</strong> <strong>Integrity</strong> is referred to as the super administrator. The super administrator can also<br />
delegate certain tasks related to projects for workflows and documents and types to a project<br />
administrator and type administrator. 74
The administrator installs and/or configures, workflows and documents; configuration<br />
management; and the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. For <strong>MKS</strong> <strong>Integrity</strong>, the administrator also<br />
installs the database on a network, defines and customizes item types and workflow, and<br />
creates additional user accounts, allowing users to access the program. 4<br />
The CLI is a program that allows a user to enter keywords as instructions to a computer or<br />
device to perform specific tasks. (The MS-DOS® command prompt is an example of a CLI.)<br />
Results are typically output as simple text to the user’s terminal. More specifically, the CLI<br />
provides the means for you to enter <strong>MKS</strong> commands through a text-based interface. The<br />
primary use of the CLI is for scripting. The CLI is also useful for environments where no GUI<br />
is available. 42<br />
To drop a configuration management project means that the project is no longer registered<br />
with the <strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong>. Dropped projects can still be accessed as read only from the<br />
Change Package and Locks views until the project is purged or reclaimed by your<br />
administrator. 272<br />
type administrator <strong>MKS</strong> <strong>Integrity</strong> type administrators are allowed to edit and view types.<br />
Type administrators are not allowed to assign themselves as administrators to any other<br />
types, or to edit types that are assigned to other type administrators. 95<br />
Workflow and document reports are summaries of the data in your project. Reports are<br />
based on the standard and custom fields of types. Reports can be customized to include<br />
images, fonts, and hyperlinks, and can be saved as HTML files for viewing on the Web.<br />
Configuration management reports provide an analysis of projects, members, or individual<br />
archives. Reports and graphs can be printed or viewed on screen. 221<br />
workflow Each item follows a workflow, the process established by your administrator to<br />
capture and track information during your software development cycle. Each item type can<br />
have its own set of states to advance through the development cycle. For example, a change<br />
request may go through states such as submitted, work started, tested, reviewed, and closed.<br />
Items and their current states provide change management information necessary to support<br />
business decisions. 153<br />
435
Appendix B: Glossary<br />
436
A PPENDIX C<br />
Options<br />
Views and Dialog Boxes<br />
This appendix includes detailed information about the available options in<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client views and dialog boxes.<br />
Workflows and Documents View Options<br />
Available Views Options<br />
View Item Display history shows the item history when viewing a single item.<br />
Display relationships shows the relationships when viewing a single item.<br />
C<br />
Display change packages shows associated change packages when viewing a single<br />
item.<br />
Display workflow shows the item type workflow when viewing a single item.<br />
Display attachments shows attachments when viewing a single item.<br />
Display time entries shows time entries when viewing a single item.<br />
History Order shows item history in ascending or descending order. Available options<br />
are: Most recent last and Most recent first.<br />
Display all attachment attributes shows all attachment attributes when viewing a<br />
single item.<br />
View Queries Created By shows the name of the user who created the query.<br />
Image shows any image, whether default or custom, associated with a query.<br />
Name shows the name of the query.<br />
Sort Field shows the field the query is sorted by.<br />
Description shows any information entered for the query description.<br />
Admin Provided shows whether or not the query is a shared administrative object.<br />
Shared With shows which groups and users the query is shared to.<br />
Fields shows the visible fields in the query.<br />
Last Modified shows the date the query was last modified.<br />
Sort Direction shows the direction the query is sorted by.<br />
The Toolbar allows you to customize the toolbar displayed on the interface when<br />
viewing users. For general procedures on customizing toolbars, see the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
437
Appendix C: Options<br />
Available Views Options<br />
View Reports Created By shows the name of the user who created the report.<br />
438<br />
Last Modified shows the date the report was last modified.<br />
Shared With shows which groups and users the report is shared to.<br />
Description shows any information entered for the report description.<br />
Name shows the name of the report.<br />
Admin Provided shows whether or not the report is a shared administrative object.<br />
Query shows the query the report is based on.<br />
The Toolbar allows you to customize the toolbar displayed on the interface when<br />
viewing users. For general procedures on customizing toolbars, see the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
View Charts Chart Type shows the type of chart (distribution, item fields, trend, or item fields trend).<br />
Graph Style shows the type of graph used to display the chart data.<br />
Name shows the name of the chart.<br />
Created By shows the name of the user who created the chart.<br />
Admin Provided shows whether or not the chart is a shared administrative object.<br />
Query shows the query the chart is based on.<br />
Description shows any information entered for the chart description.<br />
Last Modified shows the date the chart was last modified.<br />
Shared With shows which groups and users the chart is shared to.<br />
The Toolbar allows you to customize the toolbar displayed on the interface when<br />
viewing users. For general procedures on customizing toolbars, see the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
View Dashboards Created By shows the name of the user who created the dashboard.<br />
Last Modified shows the date the dashboard was last modified.<br />
Description shows any information entered for the dashboard description.<br />
Name shows the name of the dashboard.<br />
Admin Provided shows whether or not the dashboard is a shared administrative<br />
object.<br />
Shared With shows which groups and users the dashboard is shared to.<br />
The Toolbar allows you to customize the toolbar displayed on the interface when<br />
viewing users. For general procedures on customizing toolbars, see the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>2009</strong> Getting Started <strong>Guide</strong>.
Available Views Options<br />
View Users Description provides a column to display any information entered for the user<br />
description.<br />
Image shows any image, whether default or custom, associated a user.<br />
Name displays the column showing the name of the user.<br />
Email displays e-mail address information for users.<br />
Is Active displays the column showing whether the user is assigned active or inactive<br />
status.<br />
Notification Rule displays notification rules for users.<br />
Full Name displays the column showing the full name of the user.<br />
Is in Realm displays whether the user exists in the realm.<br />
The Toolbar allows you to customize the toolbar displayed on the interface when<br />
viewing users. For general procedures on customizing toolbars, see the <strong>MKS</strong> <strong>Integrity</strong><br />
<strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
View Groups Description provides a column to display any information entered for the group<br />
description.<br />
Is Active displays the column showing whether the group is assigned active or inactive<br />
status.<br />
Email displays e-mail address information for groups.<br />
Name displays the column showing the name of the group.<br />
Image shows any image, whether default or custom, associated a group.<br />
Query Timeout displays the query timeout setting, if set, for groups.<br />
The Toolbar allows you to customize the toolbar displayed on the interface when<br />
viewing groups. For general procedures on customizing toolbars, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
View Dynamic Groups Description provides a column to display any information entered for the dynamic<br />
group description.<br />
Image shows any image, whether default or custom, associated with a dynamic group.<br />
Name displays the column showing the name of the dynamic group.<br />
The Toolbar allows you to customize the toolbar displayed on the interface when<br />
viewing dynamic groups. For general procedures on customizing toolbars, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
View Projects Backing Item displays the ID of the item backing the project.<br />
Is Active displays whether or not the project is displayed in filtered project lists.<br />
Closed Image displays the image for closed projects.<br />
Name displays the column showing the name of the project.<br />
Description provides a column to display any information entered for the project<br />
description.<br />
Open Image displays the image for open projects.<br />
The Toolbar button allows you to customize the toolbar displayed on the interface<br />
when viewing projects. For general procedures on customizing toolbars, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
439
Appendix C: Options<br />
Available Views Options<br />
View Item States Description provides a column to display any information entered for the state<br />
description.<br />
Position displays the column showing the sequence of the state relative to other<br />
states.<br />
Image shows any image, whether default or custom, associated with a state.<br />
Name displays the column showing the name of the item state.<br />
The Toolbar button allows you to customize the toolbar displayed on the interface<br />
when viewing states. For general procedures on customizing toolbars, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
440
Available Views Options<br />
View Item Types Name displays the column showing the name of the item type.<br />
Attributes<br />
Show Workflow indicates whether the item type displays the workflow in items.<br />
Phase Field indicates the workflow phase field for the item.<br />
Time Tracking indicates whether the item type allows time tracking.<br />
Backs Project indicates whether the item type is used to back a project.<br />
Copy Tree indicates whether items of this type and all related items within the<br />
hierarchy to be copied.<br />
Branch indicates that items of this type can be branched by users who have<br />
applicable project visibility based on the branching rules set up for item types.<br />
Label indicates whether the items of this type can have labels applied.<br />
Delete Item indicates whether a type rule exists that specifies which users can<br />
delete items of the type.<br />
Image shows any image, whether default or custom, associated with an item type.<br />
Description provides a column to display any information entered for the type<br />
description.<br />
Change Packages indicates whether the item type can be associated with change<br />
packages.<br />
Document Model<br />
Document Class indicates the document class on a type: None, Segment, Node,<br />
Shared Item.<br />
Associated Type displays the associated type for segments and nodes. If the<br />
document class is Segment, the associated type is Node. If it is Node, the type is<br />
Shared Item.<br />
Associated State indicates the initial state to apply when a document is branched.<br />
Significant Edit Fields indicates whether or not to display the fields that are<br />
defined as significant; that is, that when they are changed, it results in an update to<br />
the revision.<br />
Group Document indicates whether items of this type are used to group test cases<br />
for test execution.<br />
Default Reference Mode applies the default reference mode to the type you are<br />
defining. Reference modes are Author, Share, Reference and are typically used in a<br />
document sharing scenario.<br />
Test Management displays the test role and settings for items that are part of test<br />
management.<br />
Permissions displays the groups that are allowed access to this type.<br />
Position displays the column showing the sequence of the item type relative to other<br />
types.<br />
Copy Fields indicates which fields are to be copied when items of this type are<br />
copied.<br />
The Toolbar button allows you to customize the toolbar displayed on the interface<br />
when viewing types. For general procedures on customizing toolbars, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
441
Appendix C: Options<br />
Available Views Options<br />
View Fields Allowed Types displays the types that the relationship fields can relate to. Valid only<br />
for fields of type relationship.<br />
Allowed Types are uneditable for the following relationship fields: Contains,<br />
Contained By, Referenced By, Shares, and Shared By.<br />
442<br />
The only Allowed Types on the References relationship field are those of type<br />
Segment.<br />
Display Location shows the display location of the field. Can be either the fields or<br />
relationship tab. Relevant only for fields of type relationship.<br />
Forward specifies whether the relationship field allows forward relationships. If<br />
cleared, it specifies a backward relationship field. Relevant only for fields of type<br />
relationship.<br />
Name displays the column showing the name of the field.<br />
Relationship Flags displays any relationship flags associated with the field. Only<br />
relevant for relationship fields.<br />
Cycle Detection specifies whether the system prevents relationship loops. Relevant<br />
only for fields of type relationship.<br />
Display Name shows the display name of the field, if any is assigned.<br />
Is Multi-Valued displays the column showing whether the field allows multiple values.<br />
Valid for pick, user, group, and relationship fields.<br />
Paired Field is the related backward/forward relationship field. Relevant only for fields<br />
of type relationship.<br />
Trace specifies whether the field is defined as a trace relationship.<br />
Description provides a column to display any information entered for the field<br />
description.<br />
Display Style shows the display style (table or CSV) of the field. Relevant only for fields<br />
of type relationship.<br />
Last Evaluation Time allows you to view the last time the static computed field (if<br />
enabled as this type of field) was computed.<br />
Position displays the column showing the sequence of the field relative to other fields.<br />
Type displays the type of field (for example, integer, pick, or long text, etc.).<br />
The Toolbar button allows you to customize the toolbar displayed on the interface<br />
when viewing fields. For general procedures on customizing toolbars, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
For more information on options, see “Creating Fields” on page 127.
Available Views Options<br />
View <strong>Server</strong> Triggers Assignments displays the column showing values assigned to specific fields when the<br />
trigger runs.<br />
Last Run Time allows you to view the last time the trigger was run.<br />
Position displays the column showing the sequence of the trigger relative to other<br />
triggers.<br />
Run As displays the column showing .<br />
Type displays the column showing the type of trigger (rule or scheduled).<br />
Attachment Fields: Values Tab<br />
Field Description<br />
Integer Fields: Values Tab<br />
Description provides a column to display any information entered for the trigger<br />
description.<br />
Name displays the column showing the name assigned to the trigger.<br />
Query displays the column showing the name of the query used in the trigger.<br />
Script displays the column showing the name of the script used in the trigger.<br />
Frequency displays the column showing the frequency at which the trigger runs.<br />
Parameters displays the column showing parameters assigned to the trigger.<br />
Rule Timing displays the column showing the timing of the trigger.<br />
The Toolbar button allows you to customize the toolbar displayed on the interface<br />
when viewing triggers. For general procedures on customizing toolbars, see the<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> Getting Started <strong>Guide</strong>.<br />
Display Style Display the attachment field in table format or comma separated values (CSV) forma.<br />
Table format allows you to sort the attachments and manipulate the columns that<br />
display in the table. CSV format displays comma separated links to the attachments.<br />
Display Rows The number of rows to display for the attachment field when editing the item.<br />
Field Description<br />
Set Default Value Default value (maximum of 9 digits)<br />
Set Minimum Value Minimum value (maximum of 9 digits)<br />
Set Maximum Value Maximum value (maximum of 9 digits)<br />
Display as Progress Bar Show the field’s current value graphically as a proportion of its maximum value<br />
Computation Values Configure the field as a computed field. For information on configuring the<br />
Computation Definition, Store to History Frequency, and How to Run Computations<br />
fields, see “Creating Computed Fields” on page 313.<br />
Note: Setting the Computation Values option disables the Set Default Value, Set<br />
Minimum Value, and Set Maximum Value options.<br />
Display Pattern Select or type a pattern to assign a format to integer field values. For more information<br />
on, see “Display Patterns” on page 28.<br />
443
Appendix C: Options<br />
444<br />
Item Backed Picklist Fields: Values Tab<br />
Field Description<br />
Display As Link Displays the value selected in the IBPL as a hyperlink to the backing item.<br />
Allow Multiple<br />
Values<br />
Allow users to select more than one item in the IBPL field.<br />
Backing Type Item type containing the short text field you want to reference<br />
Item Identifier The field or fields in the backing item type that you want to use as pick text.<br />
For a single field, select the field name from the dropdown list and click Insert Field to add it to<br />
the Item Identifier field.<br />
For multiple fields, type the field names in the Item Identifier field, surrounding each with "{" and<br />
"}". For example: {ID}:{Project}/{Summary}. Make sure you specify actual names of<br />
fields not their display names.<br />
You cannot specify the following types of field:<br />
computed fields<br />
field value attribute<br />
item backed picklist fields<br />
relationship fields<br />
attachment fields<br />
Active States States used to populate the IBPL with backing items. Populating an IBPL with backing items in<br />
specific states essentially allows you to deactivate entries in an IBPL. For example, if an<br />
Employee item contains an Active and Inactive state, and you select Active as the Active<br />
States, only Employee items in a state of Active display as pick text in the IBPL field.<br />
Filter Filter values from the backing items based on specific criteria. The filter is defined the same way<br />
as a query filter. For information on how to define a filter, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Note: This filter is applied in addition to the filtering provided by the Backing Type and Active<br />
States options.<br />
Field Value Attribute Fields: Values Tab<br />
Field Description<br />
Relationship The field containing the backing item for the FVA field. This field can be any of the<br />
following:<br />
a relationship field (must be single-valued)<br />
an item backed pick list field<br />
the project field (if backing projects are enabled for the item type)<br />
Field The field in the backing item type that contains the value to display in the FVA field.<br />
The field must be visible in the backing item.<br />
Note: Do not select a relationship field. Use of relationship fields for FVA fields is not<br />
supported.
Pick Fields: Values Tab<br />
Field Description<br />
Allow Multiple Values Allow users to select more than one value from the picklist. For example, if three<br />
company offices are defined in <strong>MKS</strong> <strong>Integrity</strong>, users could select one, two, or all three<br />
offices when submitting an item or creating a query.<br />
Set Default Value Type the default value for the pick field. The default value can be any text string.<br />
Add Add picklist values. See “Add Pick Dialog Options” on page 445.<br />
Edit Edit the selected picklist value.<br />
Move Up<br />
Move Down<br />
Add Pick Dialog Options<br />
Change the order of the selected picklist value in the list.<br />
Sort Alphabetically Sort the picklist values by alphabetical label.<br />
Remove Remove selected picklist value(s) from the list that have not yet been saved.<br />
Field Description<br />
Label Text string for the picklist value.<br />
Value Number for the picklist value.<br />
Active Make picklist value active. By default, picklist values are active. To deactivate the<br />
picklist value, clear the Active check box. For more information on deactivating picklist<br />
values, see “Deactivating Picklist Values” on page 141.<br />
Use Custom Image Browse for the image file. If you choose to use your own custom icon image, the image<br />
must be in GIF or JPEG format, and no larger than 24 (width) by 16 (height) pixels.<br />
No Image No image associated with the value.<br />
Floating Point Fields: Values Tab<br />
Field Description<br />
Set Default Value<br />
Set Minimum Value<br />
Set Maximum Value<br />
Set the default, minimum, or maximum value. You can enter a negative exponent using<br />
the E number notation, for example, -123.1E-3.<br />
Specify a maximum of 15 digits. When edited in the Web interface only 12 digits are<br />
simultaneously visible.<br />
Computation Values Configure as a computed field. For information on configuring the Computation<br />
Definition, Store to History Frequency, and How to Run Computations fields, see<br />
“Creating Computed Fields” on page 313.<br />
Note: Setting the Computation Values option disables the Set Default Value, Set<br />
Minimum Value, and Set Maximum Value options.<br />
Display Pattern Select or type a display pattern to assign a format to floating point field values. For<br />
more information on, see “Display Patterns” on page 28.<br />
445
Appendix C: Options<br />
446<br />
Logical Data Fields: Values Tab<br />
Field Description<br />
Set Default Value true or false<br />
Computation Values Configure the field as a computed field. For information on configuring the<br />
Computation Definition, Store to History Frequency, and How to Run Computations<br />
fields, see “Creating Computed Fields” on page 313.<br />
Note: Setting the Computation Values option disables the Set Default Value options.<br />
Date Fields: Values Tab<br />
Field Description<br />
Include time Include the time with the date. Time is specified from 00:00:00 to 23:59:59<br />
inclusive in 24 hour format; however, <strong>MKS</strong> <strong>Integrity</strong> displays the time in 12 hour format.<br />
For example, specifying 13:56:45 displays the time as 1:56:45 PM.<br />
Important:<br />
Once you include the time and save the date field, you cannot change the date field<br />
to display the date only.<br />
Displayed date fields do not change based on the time zone that a user is operating<br />
in; however, displayed date/time fields vary based on the time zone that a user is<br />
operating in.<br />
Set Default Value<br />
Set MInimum Value<br />
Set Maximum Value<br />
Specify default, minimum, and maximum values, by selecting one or more of these<br />
options and clicking Change<br />
Computation Values Configure the field as a computed field. For information on configuring the<br />
Computation Definition, Store to History Frequency, and How to Run Computations<br />
fields, see “Creating Computed Fields” on page 313.<br />
Note: Selecting the Computation Values option disables the Set Default Value, Set<br />
Minimum Value, and Set Maximum Value options.
Short Text Fields: Values Tab<br />
Field Description<br />
Set Default Value Type a default value<br />
Maximum Length Maximum length for the field. Note the following:<br />
Decreasing the value does not truncate existing data nor affect how data is<br />
displayed in the Items view.<br />
When editing an item with a field containing legacy data that exceeds the new<br />
maximum value, submitting the item is unaffected if the affected field contents are<br />
unaltered by the user.<br />
When editing legacy field data that exceeds the new maximum value, the user is<br />
bound by the new maximum value and must reduce the data in order to submit the<br />
item.<br />
If logging is enabled for the field prior to reducing the maximum value, the logging<br />
field effectively becomes read-only.<br />
Caution: Increasing the maximum number of characters for a field contributes to the<br />
portion of the maximum row width used in the database table. Ensure that the changes<br />
you make are sustainable for future table data in your database. For more information,<br />
consult the documentation provided by the vendor for the database used.<br />
This value is used for both the <strong>MKS</strong> <strong>Integrity</strong> Client and Web interface. However,<br />
when the user edits a field in the Web interface, only 70 characters are<br />
simultaneously visible in the editable box.<br />
Suggestions Suggestions are text that appear in the short text field and can be overwritten by the<br />
user. Use the buttons on the right side of the field to work with suggestions.<br />
Substitute Parameters If a user specifies a parameter in this field using the following format {{}}, then this parameter name is replaced with a parameter value when you view<br />
the item through a view or report that supports parameter substitution.<br />
Computation Values Configure the field as a computed field. For information on configuring the<br />
Computation Definition, Store to History Frequency, and How to Run Computations<br />
fields, see “Creating Computed Fields” on page 313.<br />
Note: Selecting the Computation Values option disables the Set Default Value option.<br />
Create a Text Search Index Queries against the field are treated as word searches. The field is searched by the<br />
All Fields text search query.<br />
447
Appendix C: Options<br />
448<br />
Long Text Fields: Values Tab<br />
When viewing a parameter or parameter value field, all the fields on the Values tab are<br />
hidden except for Maximum Length, Display Rows and Create a Text Search Index.<br />
Field Description<br />
Set Default Value Type a default value.<br />
Note: If you enable the Rich Content option, a toolbar displays, allowing you to apply<br />
rich content. For more information on applying rich content, see the <strong>MKS</strong> <strong>Integrity</strong><br />
2007 User <strong>Guide</strong>.<br />
Maximum Length Enter a maximum length for the field. Note the following:<br />
Decreasing the value does not truncate existing data nor affect how data is<br />
displayed in the Items view.<br />
When editing an item with a field containing legacy data that exceeds the new<br />
maximum value, submitting the item is unaffected if the affected field contents are<br />
unaltered by the user.<br />
When editing legacy field data that exceeds the new maximum value, the user is<br />
bound by the new maximum value and must reduce the data in order to submit the<br />
item.<br />
If logging is enabled for the field prior to reducing the maximum value, the logging<br />
field effectively becomes read-only.<br />
When you set the maximum field length for long text fields that are configured for<br />
rich text, keep in mind that some symbols, especially those used outside the USA,<br />
may require multiple characters worth of storage for their representation. Use the<br />
maximum field length as a general guideline rather than as an absolute number.<br />
Caution: Increasing the maximum number of characters for a field contributes to the<br />
portion of the maximum row width used in the database table. Ensure that the changes<br />
you make are sustainable for future table data in your database. For more information,<br />
consult the documentation provided by the vendor for the database used.<br />
Display Rows Number of rows to display in the Item Details. The maximum is 80 rows.<br />
Logging Specify if the field logs user entries. Logging text fields limit the user to making new<br />
entries in the field and, therefore, do not permit the user to edit data that was entered<br />
previous to the last time the item was saved.<br />
Each time the user saves an item after making an entry in a logging text field, the user<br />
ID, entry date, and entry time are logged and then displayed as a stamp above the<br />
entry. The stamp uses approximately 30 characters per entry and must be taken into<br />
account when setting the maximum field length.<br />
The following are the available options :<br />
None specifies that the field is not a logging field.<br />
Most Recent First specifies that the order of the data in the log is always<br />
ascending with the user’s editable area located above the log.<br />
Most Recent Last specifies that the order of the data in the log is always<br />
descending with the user’s editable area located below the log.
Field Description<br />
Rich Content Configure field as a rich content field. Rich content enhances the display of text in long<br />
text fields by adding formatted text, tables, background colors, images, and hyperlinks.<br />
This option is enabled by default and does not support logging text fields.<br />
User Fields: Values Tab<br />
Caution: You can convert rich content fields back to long text fields; however, any<br />
existing rich content is displayed as HTML tags and attributes.<br />
Because rich content is expressed using a limited set of HTML elements and<br />
attributes, you can define screen and printer Cascading Style Sheets (CSS) that<br />
ensure a consistent look when viewing and printing rich content field data in different<br />
Web browsers. For more information, see “Customizing Rich Content Fields” on<br />
page 216.<br />
Default Attachment Field The field that images are retrieved from in the item when images are inserted into a<br />
rich content field using an attachment field. The default is the default Attachment field.<br />
Substitute Parameters If a user specifies a parameter in this field using the following format {{}}, then this parameter name is replaced with a parameter value when you view<br />
the item through a view or report that supports parameter substitution.<br />
Create a Text Seach Index Queries against the field will be treated as word searches. The field will be searched<br />
by the All Fields text search query.<br />
Field Description<br />
Allow Multiple Values Allow multiple users to be selected in the user list. Allowing multiple values for a user<br />
field facilitates group development. For example, if you allowed multiple values for the<br />
Assigned User field, you could assign multiple users to an item, enabling them to work<br />
in parallel on the same item.<br />
Set Default Value Click the list, and select a default user from the selection panel that displays. If the field<br />
allows multiple values, you can select multiple default values. For information on<br />
selecting users, see “Filtering Data” on page 18.<br />
Note: If you change a multi-valued field to a single-valued field and multiple default<br />
values are selected, all selections are cleared except the first selection in the list.<br />
Note: The symbolic -me- is not available for custom user fields.<br />
449
Appendix C: Options<br />
450<br />
Group Fields: Values Tab<br />
Field Description<br />
Allow Multiple Values Allow multiple groups to be selected in the group list. Allowing multiple values for a<br />
group field facilitates group development. For example, if you allowed multiple values<br />
for the Assigned Group field, you could assign multiple groups to an item, enabling<br />
them to work in parallel on the same item.<br />
Set Default Value Click the list, and select a group from the selection panel that displays. If the field<br />
allows multiple values, you can select multiple default values. For information on<br />
selecting users, see “Filtering Data” on page 18.<br />
Note: If you change a multi-valued field to a single-valued field and multiple default<br />
values are selected, all selections are cleared except the first selection in the list.<br />
Note: The symbolic -me- is not available for custom user fields.<br />
Relationship Fields: Values Tab<br />
Field Description<br />
Types Item type that is to use the relationship field<br />
Allowed Types Item types that can be linked to using the relationship field.<br />
For example, to allow the field to be used to create relationships between<br />
documentation items and bugs, select Docs under Available Types and add Bugs to<br />
the Allowed Types. Then select Bugs under AvailableTypes, and add Docs to the<br />
Allowed Types.<br />
Allowed Types are uneditable for the following fields: Contains, Contained By,<br />
Referenced By, Shares, and Shared By.<br />
Repeat the selection process for additional item types.<br />
Note: You can create heterogeneous and homogenous segments using allowed types.<br />
To learn how to create homogeneous subsegments, see “Setting Up Documents” on<br />
page 97.<br />
To learn how to create heterogeneous subsegments, see the ALM Knowledge Base.<br />
Cycle Detection To prevent relationship loops from occurring. A relationship loop occurs when an item<br />
has both a forward and a backward relationship with another item within the same<br />
relationship hierarchy. For more information, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong> User <strong>Guide</strong>.<br />
Trace Sets the field as a trace relationship.Trace relationships are defined via field pairs are<br />
and presented to the user in domain-specific language, for example, Test and<br />
Requirements. To learn more about trace relationships, see the <strong>MKS</strong> <strong>Integrity</strong> <strong>2009</strong><br />
User <strong>Guide</strong>.<br />
Forward and Backward<br />
tabs<br />
The fields used for forward and backward relationships.<br />
For example, if you are defining a relationship field to track defects related to an item,<br />
the forward relationship field could be named Defects and the backward relationship<br />
field could be named Defects Of.<br />
Name Name of the relationship field. The name you enter is also used for the backward<br />
relationship field and prefixed with the word Backward. You can edit this name.<br />
Note: Once the field is created, changes to the name of the forward relationship field<br />
are not carried over to the backward relationship field name.
Field Description<br />
Multi Valued Allow links to multiple items. For example, a field used to track defects on an item<br />
would need to allow multiple linked items; a field used to identify the documentation<br />
item used for documenting the changes made by a change order item would only need<br />
to allow a single linked item.<br />
Note: If you want a single-valued relationship field to be able to be changed using<br />
drag-and-drop in the Relationships view, you must make it visible on the appropriate<br />
item types. For example, if you have Documented By and Documentation For as a set<br />
of relationship fields, and the Documented By field is single-valued, if you want users<br />
to be able to change the related documentation item for a change order item using<br />
drag-and-drop, the Documented By field must be visible on the change order item<br />
type.<br />
Set Default Browse Query Sets a default query to use when browsing for items to add to the relationship field.<br />
Use the data filter to select an Admin query as the default browse query. If there are no<br />
Admin queries, this option is unavailable. For more information on creating Admin<br />
queries, see “Admin Provided Objects” on page 242.<br />
Display Style Display the relationship field in table format or in a comma separated values (CSV)<br />
format. The table format allows you to sort the linked items and manipulate the<br />
columns that display in the table. The CSV format only displays the IDs and<br />
relationship flags of the linked items.<br />
Display Rows Number of rows to display for the relationship field when editing the item.<br />
Show Variable Height<br />
Rows<br />
Variable height rows allow you to view rows expanded to the height of the data<br />
contained in them.<br />
Relationship Flags Relationship flags are used to indicate when a related item has changed. To add<br />
relationship flags for the field click Add. For more information, see “Add Relationship<br />
Flag Dialog Box Options” on page 451.<br />
Notes:<br />
A user must be licensed for configuration management to be able to use relationship<br />
flags in an item.<br />
Relationship flags defined for relationship fields can be set automatically through a<br />
field rule. For more information on defining rules for fields, see “Setting Field Rules”<br />
on page 137.<br />
Add Relationship Flag Dialog Box Options<br />
Field Description<br />
Name Name of the relationship flag<br />
Character Single character to display when the flag is set on a relationship field using the CSV<br />
display style or when the relationship is viewed through the CLI. You cannot use<br />
numbers as relationship flag characters.<br />
Select Locate the image you want to use for this type of relationship flag in a relationship field<br />
using a table format. The image must be in a JPEG or GIF format and no larger than<br />
24 by 16 pixels.<br />
451
Appendix C: Options<br />
Field Description<br />
Suspect Allows you to define a suspect flag for items at the field level. When a there is a<br />
significant edit to a document item with a field pointing to it that is flagged as suspect,<br />
all related items using that field will be flagged as suspect.<br />
Enabled You are using this relationship flag<br />
452<br />
Phase Fields: Values Tab<br />
Field Description<br />
Add Add a phase to the Phases list. See “Add Phase Dialog Box Options” on page 452.<br />
Edit Edit the phase selected in the Phases list.<br />
Move Up<br />
Move Down<br />
Remove<br />
Remove All<br />
Note: You cannot edit the Out of Phase phase. This phase identifies the states that<br />
are not included in any user defined phase.<br />
Change the order of a selected phase in the list<br />
Remove one or more selected phases from the list, or remove all phases<br />
Add Phase Dialog Box Options<br />
Field Description<br />
Label Assign a text string to the phase<br />
Available States Select the states that are included in the phase, and add them to the Phase States.<br />
Note: No two phases can use the same state.<br />
Use Custom Image Assign an icon image to the phase. Browse for the image file. The image must be in<br />
GIF or JPEG format, and no larger than 24 (width) by 16 (height) pixels.<br />
No Image No image associated with the phase<br />
Query Backed Relationship Fields: Values Tab<br />
Field Description<br />
Query Select a query that determines what items are displayed in the field. Only administrator<br />
queries appear in the list.<br />
Field Correlation Correlate a field contained in the item with a field in the items returned by the query.<br />
This allows you to return even more specific query results.<br />
For example, if you create a query backed relationship field called Defects for the<br />
Feature type, and select Project as the Source Field and Project as the Target<br />
Field, the Defects field displays all Defect items that have the same project as the one<br />
specified in the Feature type’s Project field.<br />
This option is not mandatory; however, if it is not specified, the list of relationships<br />
returned does not change with different items.
Field Description<br />
Display Style Display the items in table format or in a comma separated values (CSV) format. The<br />
table format allows you to sort the items and manipulate the columns that display in the<br />
table. The CSV format only displays the IDs of the items.<br />
Display Rows The number of rows to display for the query backed relationship field when editing the<br />
item. You can specify from five to 80 rows.<br />
Show Variable Height<br />
Rows<br />
Range Fields: Values Tab<br />
Field Description<br />
Display variable height rows for the query backed relationship field when editing the<br />
item.<br />
Associated Field A numeric field to associate with the range field.<br />
You can associate a numeric field with any number of range fields.<br />
Add Add a range to the Ranges list. See “Add Range Dialog Box Options” on page 453.<br />
Move Up<br />
Move Down<br />
Remove<br />
Remove All<br />
Change the order of a selected range in the list.<br />
Remove one or more selected ranges from the list, or remove all ranges.<br />
Add Range Dialog Box Options<br />
Field Description<br />
Label Text string for the range category. Range labels can be up to 100 characters.<br />
Value Use the From and To lists to specify values for the lower and upper range limits.<br />
If a lower limit is not set, -Infinity is automatically entered in the From field. If an<br />
upper limit is not set, Infinity is automatically entered in the To field.<br />
A numeric value must be contained in one defined range; range intersections are<br />
invalid. For example, the following ranges are invalid: 0–5 and 4–8, or 0–5 and 5–10.<br />
For an integer field, an acceptable range would be 0–5 and 6–10. For a floating<br />
point field, an acceptable range would be 0–5 and 5.01–10.<br />
If a value is entered in the associated numeric field that is beyond the set range<br />
values, the range field displays Out of Range in the item. If no value is entered in<br />
the associated numeric field, the range field is empty.<br />
Use Custom Image Assign an icon image to the range. Browse for the image file. The image must be in<br />
GIF or JPEG format, and no larger than 24 (width) by 16 (height) pixels.<br />
No Image No image associated with the range<br />
453
Appendix C: Options<br />
454
Index<br />
A<br />
access keys<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client 17<br />
admin migration<br />
copying database 168<br />
e-mail notification 167<br />
managing admin locks 169<br />
staging server startup 168<br />
testing configuration 169<br />
using admin locks 171<br />
wizard 161–177<br />
using 171<br />
admin provided object<br />
converting to 243<br />
admin provided objects, described 242<br />
<strong>Administration</strong> Client<br />
application window 13<br />
command line interface 42<br />
connecting to an <strong>Integrity</strong> <strong>Server</strong> 29<br />
disconnecting from an <strong>Integrity</strong> <strong>Server</strong> 31<br />
opening the interface 10<br />
preferences<br />
setting 38<br />
shutting down the interface 12<br />
workflows and documents<br />
Change Package Types view 325<br />
Fields view 125<br />
Projects view 249<br />
States view 77<br />
Types view 83<br />
administrator<br />
assigning 74–77<br />
described 4<br />
<strong>MKS</strong> <strong>Integrity</strong><br />
project 74, 260<br />
super 74<br />
type 94<br />
project<br />
assigning 262<br />
super 4<br />
role 6<br />
super, described 74<br />
type<br />
assigning 96<br />
aggregated function<br />
described 297<br />
aggregation expression<br />
described 293<br />
alert messages 32<br />
allow<br />
branching 89<br />
labels 90<br />
project backing 89<br />
time entries 88<br />
arithmetic function<br />
described 297<br />
arithmetic operators<br />
computed expression 293<br />
assessing process 70<br />
attachment data type<br />
described 127<br />
attachment size<br />
configuring in <strong>MKS</strong> <strong>Integrity</strong> 237<br />
Authorization <strong>Administration</strong><br />
preferences, setting 41<br />
B<br />
boolean operators<br />
computed expression 294<br />
branching<br />
enabling 89<br />
building block<br />
<strong>MKS</strong> <strong>Integrity</strong><br />
deleting 179<br />
C<br />
calculate<br />
computed field<br />
dynamic 314<br />
static 315<br />
state metrics 319<br />
capabilities, state-based 79, 119<br />
455
Index<br />
categories<br />
defining 101<br />
cell properties, default 195<br />
change package<br />
allowing 79, 80, 85, 119<br />
described 324, 343<br />
review process<br />
how it works 345<br />
type 324<br />
customizing 327<br />
viewing 330<br />
Change Package Types view<br />
workflows and documents<br />
<strong>Administration</strong> Client 325<br />
changing<br />
configuration management event trigger<br />
resolution order 381<br />
order of states 81<br />
character sets<br />
controlling 181<br />
chart<br />
described 238<br />
historical trends using computed fields<br />
316<br />
checkmark, tab 210<br />
choose<br />
groups 22<br />
principals 22<br />
users 22<br />
workflow and document projects 22<br />
client<br />
<strong>Administration</strong> 10<br />
<strong>Administration</strong> window 13<br />
logging<br />
HTTP messages 409<br />
client-side<br />
event triggers, configuration management<br />
383<br />
environment variables 387<br />
closing<br />
client 11<br />
collecting<br />
properties and log files 421<br />
command<br />
im logging 412<br />
si createproject 266<br />
si dropproject 271<br />
si import 270<br />
si importproject 268<br />
si logging 410<br />
command line interface<br />
<strong>Administration</strong> Client 42<br />
456<br />
described 42<br />
common project<br />
potential problems 290<br />
components<br />
configuration management event trigger<br />
382<br />
subproject 282<br />
computed expression<br />
described 291<br />
function classes 296<br />
group fields 296<br />
rules 293<br />
types 292<br />
user fields 296<br />
computed field<br />
charting historical trends 316<br />
computation times<br />
scheduling 318<br />
creating 313<br />
performance 321<br />
scalability 321<br />
security 321<br />
state metrics<br />
calculating 319<br />
static<br />
calculating 315<br />
conditions<br />
defining 43<br />
configuration management 265<br />
change package<br />
allowing 79, 80, 85, 119<br />
client-side triggers<br />
environment variables 387<br />
event 375<br />
event trigger 350–399<br />
client-side 383<br />
member event 375<br />
planning 389, 390<br />
post-test 380<br />
pre-test 380<br />
project context 380<br />
project event 376<br />
properties file 382<br />
revision event 376<br />
sequence of operations 379<br />
server event 376, 377<br />
subproject 381<br />
type 380<br />
writing 383<br />
events definition file 382<br />
global event trigger 380<br />
project 265–271
eporting<br />
troubleshooting 430<br />
subproject 282<br />
configuring<br />
attachment size 237<br />
preferences 34<br />
query limit<br />
group timeout 239<br />
maximum item count 239<br />
query limit, workflows and documents<br />
238<br />
subproject 286<br />
text searching, workflows and documents<br />
240<br />
connecting<br />
to an <strong>Integrity</strong> <strong>Server</strong> 29<br />
content<br />
customizing in a document 101<br />
meaningful and non-meaningful 101<br />
context based text search<br />
workflows and documents 240<br />
converting<br />
user objects to admin provided 243<br />
copy<br />
item tree 89<br />
copying<br />
event triggers<br />
workflows and documents 371<br />
item presentation template 214<br />
type 92<br />
create<br />
computed field 313<br />
state metrics 319<br />
creating<br />
a support package 421<br />
event triggers<br />
workflows and documents 363<br />
field 127<br />
field relationships 146<br />
item presentation template 198<br />
project 252<br />
using CLI 266<br />
state 78<br />
type 84<br />
workflow 155<br />
custom reports<br />
workflows and documents 219<br />
images 221<br />
report tags 222<br />
template files 221<br />
customize<br />
rich content fields 216<br />
customizing item presentation 188<br />
cells 205<br />
designer 189<br />
grids 204<br />
images 212<br />
labels 206<br />
logos 212<br />
previewing 197<br />
properties 191<br />
default cell 195<br />
default grid 195<br />
default text style 194<br />
general 192<br />
text style 193<br />
setting template 201<br />
D<br />
dashboard<br />
described 6<br />
data<br />
filtering 18<br />
searching 18<br />
data conversion<br />
computed expression 296<br />
data type<br />
attachment<br />
described 127<br />
date<br />
described 127<br />
field value attribute<br />
described 127<br />
floating point<br />
described 127<br />
group<br />
described 127<br />
integer<br />
described 127<br />
item backed picklist<br />
described 127<br />
logical<br />
described 127<br />
long text<br />
described 127<br />
phase<br />
described 128<br />
pick<br />
described 127<br />
query backed relationship<br />
described 128<br />
range<br />
Index<br />
457
Index<br />
described 128<br />
short text<br />
described 127<br />
SI project<br />
described 131<br />
user<br />
described 127<br />
database<br />
copying for admin migration 168<br />
date data type<br />
described 127<br />
date operations<br />
computed expression 296<br />
day/time function<br />
described 297<br />
deactivating<br />
pick list values 141<br />
project 259<br />
test verdicts 237<br />
default cell properties 195<br />
default grid properties 195<br />
default text style properties 194<br />
defining logical conditions 43<br />
deleting<br />
building block 179<br />
field 142<br />
field relationships 152<br />
item 179<br />
item presentation template 215<br />
project 257<br />
state 81<br />
type 94<br />
designing<br />
custom presentation template 188<br />
project 289–290<br />
subproject 289<br />
diagnostics<br />
client logging level 408<br />
differencing files 406<br />
environment information 402<br />
FLEXnet logs 413<br />
IDE log 413<br />
log files 406<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
running 414<br />
running server as application 405<br />
dialog box<br />
option prompts 35<br />
directory tree 263<br />
hierarchical structures 264<br />
disconnecting<br />
from an <strong>Integrity</strong> <strong>Server</strong> 31<br />
458<br />
from server 11<br />
display<br />
type workflow 88<br />
display pane<br />
graphical user interface 16<br />
display pattern 28<br />
document domain<br />
create all three types 104<br />
creating 97<br />
document model<br />
high-level set up 103<br />
documents<br />
checklist for setting up 103<br />
content 101<br />
create domain 103<br />
creating pre-condition rules 46<br />
field relationships<br />
edit references field 110<br />
function classes 297<br />
print<br />
define report 111<br />
print format 111<br />
relationships<br />
relationships<br />
in document model 100<br />
set up tasks 103<br />
setting up 97<br />
terms and concepts 98<br />
triggers<br />
location for use cases 365<br />
understanding structure 98<br />
domain<br />
documents<br />
create 103<br />
Dr. Watson logs 413<br />
drop project, described 270<br />
E<br />
editing<br />
field 140<br />
field relationships 151<br />
item presentation template 203<br />
project 256<br />
state 80<br />
type 91<br />
electronic signatures 241<br />
customizing triggers 241<br />
e-mail<br />
controlling character sets 181<br />
notification 5
permission 181<br />
notification of admin lock break 167<br />
empty fields<br />
computed expression 294<br />
enable<br />
branching 89<br />
labels for items 90<br />
project backing 89<br />
time entries 88<br />
encrypted archives 267<br />
environment information, for diagnostics 402<br />
environment variables<br />
configuration management triggers 387<br />
event<br />
configuration management 375<br />
event trigger<br />
client-side 383<br />
configuration management 350–399<br />
changing resolution order 381<br />
client-side 383<br />
components 382<br />
event definition files 382<br />
event trigger scripts 382<br />
global context 380<br />
planning 389, 390<br />
post-test 380<br />
pre-test 380<br />
project context 380<br />
project event 376<br />
properties file 382<br />
revision event 376<br />
scripts 382<br />
sequence of operations 379<br />
server event 376, 377<br />
subproject 381<br />
type 380<br />
updating global events definition<br />
template 383<br />
writing 383<br />
described 349<br />
member event 375<br />
<strong>MKS</strong> <strong>Integrity</strong><br />
post-event 350<br />
pre-event 350<br />
workflows and document<br />
copying 371<br />
workflows and documents<br />
assigning field values 367<br />
creating 363<br />
creating rule based change trigger<br />
363<br />
creating scheduled trigger 367<br />
creating time entry trigger 370<br />
defining rule based change trigger<br />
365<br />
deleting 373<br />
disable scheduled 369<br />
editing 372<br />
how to use 356<br />
managing 362<br />
planning 358<br />
pre-created scripts 359<br />
resolution order 373<br />
rule based event 356<br />
running a scheduled trigger 371<br />
schedule event 356<br />
schedule frequency 369<br />
schedule query 369<br />
schedule running using CLI 369<br />
schedule running using GUI 372<br />
script library 358<br />
selecting scripts 366<br />
time entry event 356<br />
viewing 372<br />
external information function<br />
described 297<br />
F<br />
favorites<br />
selecting 27<br />
field<br />
computed<br />
creating 313<br />
creating 127<br />
deleting 142<br />
editing 140<br />
managing 121<br />
moving 143<br />
pick, multiple values 445<br />
rich content<br />
customizing 216<br />
setting field relevance 133<br />
shared category<br />
edit pick list 110<br />
viewing 141<br />
visibility 120<br />
field relationships<br />
creating 146<br />
default columns 133<br />
deleting 152<br />
editing 151<br />
managing 143<br />
Index<br />
459
Index<br />
field value attribute data type<br />
described 127<br />
Fields view<br />
workflows and documents<br />
<strong>Administration</strong> Client 125<br />
file<br />
importing 268<br />
importing using CLI 269, 270<br />
filter<br />
data 18<br />
groups 22<br />
principals 22<br />
users 22<br />
workflow and document projects 22<br />
finding<br />
properties and log files 421<br />
FLEXlm<br />
log files 413<br />
floating point data type<br />
described 127<br />
format<br />
numeric values 28<br />
function<br />
aggregate<br />
described 297<br />
arithmetic<br />
described 297<br />
day/time<br />
described 297<br />
external information<br />
described 297<br />
text<br />
described 297<br />
function classes<br />
computed expression 296<br />
FVA field<br />
described 127<br />
G<br />
general<br />
template properties 192<br />
graphical user interface<br />
described 10<br />
display pane 16<br />
menu bar 13<br />
shortcut menu 14<br />
status bar 16<br />
title bar 13<br />
toolbars 14<br />
tooltips 17<br />
460<br />
tree pane 14<br />
workspace 17<br />
grid properties, default 195<br />
group<br />
deleting 179<br />
project permission 250<br />
selecting 22<br />
group data type<br />
described 127<br />
group fields<br />
computed expression 296<br />
H<br />
hide<br />
data 18<br />
I<br />
IBPL field<br />
described 127<br />
im diag<br />
command 417<br />
im logging command 412<br />
im recomputehistory command 316<br />
image, saving workflow 161<br />
images for reports 221<br />
importing<br />
files 268<br />
project<br />
using CLI 268<br />
viewset 50<br />
integer data type<br />
described 127<br />
<strong>Integrity</strong> Client<br />
logging level 408<br />
logs 407<br />
preferences<br />
setting 35<br />
version number 403<br />
<strong>Integrity</strong> <strong>Server</strong><br />
connecting to 29<br />
disconnecting from 31<br />
logging levels 407<br />
version number 403<br />
intra-item expression<br />
described 292, 293<br />
is.properties file<br />
controlling character sets 181<br />
isutil<br />
command 424
item<br />
copying tree 89<br />
copying tree hierarchy 89<br />
deleting 179<br />
linking with a project 257<br />
item backed picklist data type<br />
described 127<br />
item presentation template 188, 189<br />
cells 205<br />
copying 214<br />
creating 198<br />
deleting 215<br />
editing 203<br />
grids 204<br />
images 212<br />
labels 206<br />
logos 212<br />
previewing 197<br />
properties 191<br />
default cell 195<br />
default grid 195<br />
default text style 194<br />
general 192<br />
text style 193<br />
setting 201<br />
tabs 209<br />
viewing 214<br />
K<br />
kerberos<br />
troubleshooting 428<br />
L<br />
labels<br />
enabling 90<br />
launching<br />
the <strong>Administration</strong> Client 10<br />
limit<br />
query<br />
group timeout 239<br />
maximum item count 239<br />
lock<br />
managing admin 169<br />
using admin 171<br />
log files<br />
collecting 421<br />
Dr. Watson 413<br />
FLEXnet server 413<br />
for diagnostics 406<br />
integrations 413<br />
<strong>Integrity</strong> Client 407<br />
logging<br />
configuration management 410<br />
HTTP messages 409<br />
levels<br />
<strong>Integrity</strong> Client 408<br />
<strong>Integrity</strong> <strong>Server</strong> 407<br />
workflows and documents 412<br />
logging on<br />
<strong>Administration</strong> Client 10<br />
logical conditions<br />
defining 43<br />
logical data type<br />
described 127<br />
logo<br />
adding to custom template 212<br />
long text data type<br />
described 127<br />
long text fields<br />
customizing 216<br />
M<br />
managing<br />
field 121<br />
creating 127<br />
editing 140<br />
moving 143<br />
viewing 141<br />
field relationships 143<br />
pick list values<br />
deactivating 141<br />
project 248<br />
creating 252<br />
deactivating 259<br />
deleting 257<br />
editing 256<br />
moving 257<br />
reparenting 257<br />
viewing 256<br />
project metadata 257<br />
state 77–81<br />
creating 78<br />
deleting 81<br />
editing 80<br />
metrics 82<br />
moving 81<br />
viewing 80<br />
type 82<br />
copying 92<br />
Index<br />
461
Index<br />
creating 84<br />
deleting 94<br />
editing 91<br />
moving 94<br />
repositioning 94<br />
viewing 93<br />
maximum item count, query timeout 239<br />
meaningful<br />
marking content as 110<br />
meaningful content<br />
non-meaningful content 101<br />
member<br />
event<br />
configuration management 375<br />
importing 268<br />
importing using CLI 270<br />
importing using GUI 269<br />
menu bar<br />
graphical user interface 13<br />
messages<br />
HTTP-related 409<br />
server 32<br />
metrics<br />
state 82<br />
creating 319<br />
tracking for projects 280<br />
migrate<br />
shared field 177<br />
state override 177<br />
<strong>MKS</strong> <strong>Integrity</strong><br />
e-mail notification 5<br />
event trigger<br />
described 349<br />
post-event 350<br />
pre-event 350<br />
printing views 31<br />
project administrator 74, 260<br />
setting up 4–8<br />
super administrator 74<br />
understanding 4–8<br />
using 4–8<br />
workflow 5<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
access keys 17<br />
ACLs 41<br />
shortcut keys 17<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong><br />
diagnostics<br />
running 414<br />
serial number 402<br />
mksis<br />
command 423<br />
462<br />
monitor<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Server</strong> 414<br />
moving<br />
field 143<br />
project 257<br />
state 81<br />
type 94<br />
multiple servers<br />
configuring 37<br />
multiple value<br />
pick field 445<br />
N<br />
node<br />
type<br />
create 106<br />
non-meaningful<br />
marking content as 110<br />
notification<br />
e-mail 5<br />
permission 181<br />
numeric values<br />
formatting 28<br />
O<br />
opening the <strong>Administration</strong> Client 10<br />
logging on 10<br />
organizing projects 263<br />
P<br />
performance<br />
computed fields 321<br />
permission<br />
e-mail notification 181<br />
phase data type<br />
described 128<br />
pick data type<br />
described 127<br />
pick field<br />
allowing multiple values 445<br />
pick list values<br />
deactivating 141<br />
planning configuration management event<br />
trigger<br />
performance 390<br />
pre- or post-event 389<br />
post-test configuration management event<br />
trigger 380
pre-conditions<br />
document<br />
use case location 149<br />
preferences<br />
<strong>Administration</strong> Client<br />
setting 38<br />
Authorization <strong>Administration</strong><br />
setting 41<br />
<strong>Integrity</strong> Client<br />
setting 35<br />
server<br />
setting 37<br />
setting 34<br />
toolbar<br />
setting 39<br />
presentation template 188<br />
cells 205<br />
copying 214<br />
creating 198, 203, 214, 215<br />
described 189<br />
designer 189<br />
grids 204<br />
images 212<br />
labels 206<br />
logos 212<br />
previewing 197<br />
properties 191<br />
default grid 195<br />
general 192, 194, 195<br />
text style 193<br />
setting 201<br />
tabs 209<br />
presentation templates<br />
reports 219<br />
pre-test configuration management event<br />
trigger 380<br />
principal<br />
selecting 22<br />
printing<br />
<strong>MKS</strong> <strong>Integrity</strong> views 31<br />
workflow 160<br />
process<br />
assessing 70<br />
production server<br />
installing and starting 166<br />
project 265–271, 280<br />
administrator<br />
assigning 262<br />
administrator, described 260<br />
administrator, <strong>MKS</strong> <strong>Integrity</strong> 260<br />
browsing configuration management<br />
projects 26<br />
common 289<br />
creating 252<br />
deactivating 259<br />
deleting 179, 257<br />
designing 289<br />
directory 263<br />
editing 256<br />
event<br />
configuration management 376<br />
linking with an item 257<br />
managing 248<br />
member<br />
sharing 287<br />
metadata<br />
managing 257<br />
moving 257<br />
organization 263<br />
permission 250<br />
reparenting 257<br />
restoring<br />
in CLI 273<br />
restoring to a previous checkpoint 271<br />
selecting configuration management<br />
projects 26<br />
selecting workflow and document 22<br />
sharing archive 287<br />
sharing member 287<br />
single directory 263<br />
viewing 256<br />
visibility 250<br />
project backing<br />
enabling 89<br />
Projects view<br />
workflows and documents<br />
<strong>Administration</strong> Client 249<br />
prompts<br />
dialog boxes 35<br />
properties<br />
collecting 421<br />
proxy server<br />
preferences<br />
setting 37<br />
Q<br />
quantify<br />
numeric values 28<br />
query<br />
described 238<br />
limit<br />
configuring in <strong>MKS</strong> <strong>Integrity</strong> 238<br />
Index<br />
463
Index<br />
group timeout 239<br />
maximum item count 239<br />
query backed relationship data type<br />
described 128<br />
quick access keys<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
access keys 17<br />
shortcut keys 17<br />
R<br />
range data type<br />
described 128<br />
RCS<br />
directory 264<br />
references field<br />
document types 110<br />
references, viewing 244<br />
relationship data type<br />
default columns 133<br />
relevance 133<br />
described 133<br />
reparenting<br />
project 257<br />
reports 219<br />
described 219<br />
document print format 111<br />
images 221<br />
tags 222<br />
template files 221<br />
repositioning<br />
type 94<br />
restoring project<br />
in CLI 273<br />
restoring project to a previous checkpoint 271<br />
result<br />
customizing test result 234<br />
review<br />
process<br />
change packages, how it works 345<br />
revision<br />
event<br />
configuration management 376<br />
rich content fields<br />
customizing 216<br />
role<br />
super administrator 6<br />
rule selection 47<br />
rules<br />
computed expressions 293<br />
documents<br />
464<br />
S<br />
creating preconditions 46<br />
selecting 47<br />
saving workflow, as image 161<br />
scalability<br />
computed fields 321<br />
schedule<br />
computed field computations times 318<br />
script library 358, 359<br />
search<br />
data 18<br />
groups 22<br />
principals 22<br />
users 22<br />
workflow and document projects 22<br />
searching<br />
context based 240<br />
secure sockets layer 7<br />
security<br />
computed fields 321<br />
realm<br />
debugging 409<br />
segment<br />
print format 111<br />
type<br />
create 108<br />
segments and nodes<br />
exposing to users<br />
FVA<br />
from shared item to nodes 100<br />
select<br />
favorites 27<br />
group 22<br />
user 22<br />
workflow and document projects 22<br />
selecting<br />
rules 47<br />
serial number<br />
locating 402<br />
server<br />
disconnecting 11<br />
event<br />
configuration management 376, 377<br />
preferences, setting 37<br />
session<br />
closing client 11<br />
shutting down client 12<br />
setting<br />
administrators 74–77
preferences 34<br />
setting up<br />
<strong>MKS</strong> <strong>Integrity</strong> 4–8<br />
shared category field<br />
defining categories on 101<br />
shared field<br />
migrating 177<br />
shared item<br />
type<br />
create 105<br />
shared subproject<br />
adding 284<br />
sharing<br />
archive<br />
with other project 287<br />
member 287<br />
file ownership 288<br />
solution 289<br />
update/compatibility concerns 288<br />
short text data type<br />
described 127<br />
shortcut<br />
keys<br />
<strong>MKS</strong> <strong>Integrity</strong> <strong>Administration</strong> Client<br />
17<br />
menu<br />
<strong>Administration</strong> Client 14<br />
show<br />
data 18<br />
shutting down<br />
<strong>Administration</strong> Client 12<br />
<strong>Integrity</strong> Client 12<br />
si command<br />
createproject 266<br />
dropproject 271<br />
import 270<br />
importproject 268<br />
logging 410<br />
si diag<br />
command 417<br />
SI project data type<br />
described 131<br />
signatures<br />
electronic 241<br />
customizing triggers 241<br />
significant fields<br />
explained 102<br />
SSL<br />
See secure sockets layer<br />
staging server<br />
installing and starting 166<br />
starting 168<br />
starting<br />
the <strong>Administration</strong> Client 10<br />
the <strong>Integrity</strong> <strong>Server</strong><br />
in Safemode 426<br />
using mksis 423<br />
state<br />
capabilities 79, 119<br />
creating 78<br />
deleting 81<br />
described<br />
workflows and documents 77<br />
edit workflow 160<br />
editing 80<br />
managing 77–81<br />
metrics 82<br />
moving 81<br />
transitions<br />
workflow 159<br />
viewing 80<br />
state metrics<br />
creating 319<br />
state override<br />
migrating 177<br />
States view<br />
workflows and documents<br />
<strong>Administration</strong> Client 77<br />
status bar<br />
graphical user interface 16<br />
subproject 282<br />
adding 283<br />
adding shared 284<br />
components 283<br />
configuring 286<br />
creating 283<br />
defined 282<br />
designing 289<br />
event triggers 381<br />
super administrator, described 74<br />
support package<br />
creating 421<br />
syntax<br />
computed expression 293<br />
system provided object<br />
references 244<br />
T<br />
tab<br />
checkmark 210<br />
item presentation template 209<br />
tags, for reports 222<br />
Index<br />
465
Index<br />
template<br />
designer<br />
cells 205<br />
grids 204<br />
images 212<br />
images, logo 212<br />
labels 206<br />
files, for reports 221<br />
item presentation<br />
copying 214<br />
creating 198<br />
deleting 215<br />
designer 189<br />
editing 203<br />
previewing 197<br />
properties 191<br />
tabs 209<br />
viewing 214<br />
test management<br />
types<br />
setting role for 112<br />
test result<br />
customizing 234<br />
test verdict<br />
creating 235<br />
customizing 234<br />
editing 236<br />
view 234<br />
test verdicts<br />
deactivating 237<br />
text fields<br />
customizing 216<br />
text function<br />
described 297<br />
text searching<br />
configuring in <strong>MKS</strong> <strong>Integrity</strong> 240<br />
text style properties 193<br />
time entry<br />
allowing 80, 119<br />
enabling 88<br />
timeout<br />
query<br />
group 239<br />
maximum item count 239<br />
timestamps<br />
computed expression 295<br />
title bar<br />
graphical user interface 13<br />
toolbar<br />
graphical user interface 14<br />
preferences<br />
setting 39<br />
466<br />
tooltips<br />
graphical user interface 17<br />
tracking metrics for 280<br />
tree pane<br />
graphical user interface 14<br />
troubleshooting<br />
client logging level 408<br />
configuration management<br />
reporting 430<br />
differencing files 406<br />
environment information 402<br />
FLEXnet logs 413<br />
IDE log 413<br />
kerberos 428<br />
log files 406<br />
running server as application 405<br />
type<br />
administrator<br />
assigning 96<br />
described 94<br />
administrator, <strong>MKS</strong> <strong>Integrity</strong> 94<br />
branching<br />
enabling for type 89<br />
change package 324<br />
customizing 327<br />
viewing 330<br />
copying 92<br />
creating 84<br />
deleting 94, 179<br />
editing 91<br />
field visibility 120<br />
labelling for items 90<br />
managing 82<br />
moving 94<br />
project backing<br />
enabling 89<br />
repositioning 94<br />
time entries<br />
enabling 88<br />
viewing 93<br />
workflow<br />
displaying 88<br />
type properties<br />
<strong>MKS</strong> Solution global type 103<br />
types<br />
document<br />
create 104<br />
edit field relationships 110<br />
node<br />
create 106<br />
segment<br />
create 108
shared item<br />
create 105<br />
test management<br />
setting role 112<br />
Types view<br />
workflows and documents<br />
<strong>Administration</strong> Client 83<br />
U<br />
understanding <strong>MKS</strong> <strong>Integrity</strong> 4–8<br />
updating configuration management global<br />
events<br />
definition template 383<br />
user<br />
deleting 179<br />
described 4<br />
group<br />
project permission 250<br />
selecting 22<br />
user data type<br />
described 127<br />
user fields<br />
computed expression 296<br />
user objects<br />
converting to admin provided 243<br />
using <strong>MKS</strong> <strong>Integrity</strong> 4–8<br />
V<br />
variables<br />
environment<br />
client-side triggers 387<br />
verdict<br />
creating 235<br />
customizing test verdict 234<br />
deactivating 237<br />
editing 236<br />
version number<br />
<strong>Integrity</strong> Client 403<br />
<strong>Integrity</strong> <strong>Server</strong> 403<br />
view<br />
test verdict view 234<br />
viewing<br />
change package types 330<br />
field 141<br />
item presentation template 214<br />
project 256<br />
state 80<br />
system provided object references 244<br />
type 93<br />
workflow 157<br />
views<br />
printing 31<br />
test verdict view 234<br />
viewset<br />
importing 50<br />
managing 50<br />
visibility 120, 250<br />
fields 120<br />
project 250<br />
W<br />
workflow 5, 153<br />
creating 155<br />
described 152<br />
edit<br />
state 160<br />
managing (editing) 158<br />
printing 161<br />
save as image 161<br />
state transitions 159<br />
type<br />
displaying 88<br />
view 153<br />
described 152<br />
viewing 157<br />
workflow migration 161–177<br />
coping database 168<br />
e-mail notification 167<br />
installing<br />
production server 166<br />
staging server 166<br />
managing admin locks 169<br />
shared fields 177<br />
staging server startup 168<br />
state overrides 177<br />
summary steps 164, 165<br />
testing configuration 169<br />
using admin locks 171<br />
using wizard 171<br />
workflows and documents<br />
admin provided objects 242<br />
attachment size 237<br />
custom reports 219<br />
images 221<br />
report tags 222<br />
template files 221<br />
event trigger<br />
assigning field values 367<br />
Index<br />
467
Index<br />
468<br />
creating rule based change trigger<br />
363<br />
creating scheduled trigger 367<br />
creating time entry trigger 370<br />
defining rule based change trigger<br />
365<br />
deleting 373<br />
disable scheduled 369<br />
editing 372<br />
how to use 356<br />
managing 362<br />
planning 358<br />
pre-created scripts 359<br />
resolution 373<br />
rule based event 356<br />
running a scheduled trigger 371<br />
schedule event 356<br />
schedule frequency 369<br />
schedule query 369<br />
schedule running using CLI 369<br />
schedule running using GUI 372<br />
script library 358<br />
selecting scripts 366<br />
time entry event 356<br />
viewing 372<br />
query limit 238<br />
group timeout 239<br />
maximum item count 239<br />
states<br />
described 77<br />
time entry<br />
allowing 80, 119<br />
type administrator 94<br />
workflow migration<br />
e-mail notification 167<br />
summary steps 164, 165<br />
workspace<br />
graphical user interface 17<br />
writing configuration management event<br />
triggers 383
Product Notices<br />
Copyright © 2001–<strong>2009</strong> <strong>MKS</strong> Software Inc.; in Canada copyright owned by <strong>MKS</strong> Inc. All rights reserved.<br />
U.S. Government Rights. The software and documentation (the<br />
“Software and Documentation”) are “commercial items”<br />
developed exclusively at private expense, consisting of<br />
“commercial computer software” and “commercial computer<br />
software documentation” as such terms are defined or used in the<br />
applicable U.S. acquisition regulations. If you are the U.S.<br />
Government or any agency or department thereof the Software<br />
and Documentation are licensed hereunder (i) only as a<br />
commercial item and (ii) with only those rights as are granted to<br />
all other end users pursuant to the terms and conditions of the<br />
Software License Agreement (“Agreement”) accompanying the<br />
Software. The Software or Documentation shall not be used,<br />
duplicated, or disclosed in any way not specifically permitted by<br />
the terms of the Agreement. Nothing in the Agreement requires<br />
<strong>MKS</strong> to produce or furnish technical data for or to the U.S.<br />
Government or any agency or department thereof.<br />
This product contains Qooxdoo version 0.7.4. This library is free<br />
software; you can redistribute it and/or modify it under the<br />
terms of the GNU Lesser General Public License as published by<br />
the Free Software Foundation; either version 2.1 of the License, or<br />
(at your option) any later version. Copyright © 1991, 1999 Free<br />
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,<br />
MA 02110-1301 USA. This library is distributed in the hope that it<br />
will be useful, but WITHOUT ANY WARRANTY; without even<br />
the implied warranty of MERCHANTABILITY or FITNESS FOR<br />
A PARTICULAR PURPOSE. See the GNU Lesser General Public<br />
License for more details. You should have received a copy of the<br />
GNU Lesser General Public License along with this library; if not,<br />
write to the Free Software Foundation, Inc., 51 Franklin Street,<br />
Fifth Floor, Boston, MA 02110-1301 USA.<br />
This product contains JSON-RPC JavaScript client software v. 1.0.<br />
Copyright (c) 2003-2004 Jan-Klaas Kollhof. Copyright (c) 2005<br />
Michael Clark, Metaparadigm Pte. Ltd. This code is based on Jan-<br />
Klaas’ JavaScript lait library (jsolait). Licensed under the Apache<br />
License, Version 2.0 (the “License”); you may not use this file<br />
except in compliance with the License. You may obtain a copy of<br />
the License at http://www.apache.org/licenses/LICENSE-2.0.<br />
Unless required by applicable law or agreed to in writing,<br />
software distributed under the License is distributed on an “AS<br />
IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF<br />
ANY KIND, either express or implied. See the License for the<br />
specific language governing permissions and limitations under<br />
the License.<br />
This product contains JIDE stock icons. Copyright (c) 2002-2008<br />
JIDE Software, Inc. All rights reserved.<br />
This product contains Apache Derby v. 10.3.3 software developed<br />
by The Apache Software Foundation (http://www.apache.org/).<br />
Copyright 2004-2008 The Apache Software Foundation. Licensed<br />
under the Apache License, Version 2.0 (the “License”); you may<br />
not use this file except in compliance with the License. You may<br />
obtain a copy of the License at http://www.apache.org/licenses/<br />
LICENSE-2.0. Unless required by applicable law or agreed to in<br />
writing, software distributed under the License is distributed on<br />
an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS<br />
OF ANY KIND, either express or implied. See the License for the<br />
specific language governing permissions and limitations under<br />
the License.<br />
Portions of Derby were originally developed by International<br />
Business Machines Corporation and are licensed to the Apache<br />
Software Foundation under the “Software Grant and Corporate<br />
Contribution License Agreement",informally known as the<br />
“Derby CLA”. The following copyright notice(s) were affixed to<br />
portions of the code with which this file is now or was at one time<br />
distributed and are placed here unaltered. (C) Copyright<br />
1997,2004 International Business Machines Corporation. All<br />
rights reserved. (C) Copyright IBM Corp. 2003. The portion of the<br />
functionTests under ‘nist’ was originally developed by the<br />
National Institute of Standards and Technology (NIST), an<br />
agency of the United States Department of Commerce, and<br />
adapted byInternational Business Machines Corporation in<br />
accordance with the NIST Software Acknowledgment and<br />
Redistribution document at http://www.itl.nist.gov/div897/<br />
ctg/sql_form.htm.<br />
This product contains TreeTableModel.java,<br />
AbstractTreeTableModel.java, TreeTableModelAdapter.java,<br />
AbstractCellEditor.java and JTreeTable.java. Copyright 1997,<br />
1998 Sun Microsystems, Inc. All Rights Reserved. Redistribution<br />
and use in source and binary forms, with or without<br />
modification, are permitted provided that the following<br />
conditions are met: Redistributions of source code must retain the<br />
above copyright notice, this list of conditions and the following<br />
disclaimer. Redistribution in binary form must reproduce the<br />
above copyright notice, this list of conditions and the following<br />
disclaimer in the documentation and/or other materials provided<br />
with the distribution. Neither the name of Sun Microsystems, Inc.<br />
or the names of contributors may be used to endorse or promote<br />
products derived from this software without specific prior<br />
written permission. This software is provided “AS IS,” without a<br />
warranty of any kind. ALL EXPRESS OR IMPLIED<br />
CONDITIONS, REPRESENTATIONS AND WARRANTIES,<br />
INCLUDING ANY IMPLIED WARRANTY OF<br />
MERCHANTABILITY, FITNESS FOR A PARTICULAR<br />
PURPOSE OR NON-INFRINGEMENT, ARE HEREBY<br />
EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE<br />
LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY<br />
LICENSEE AS A RESULT OF OR RELATING TO USE,<br />
MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE OR<br />
ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS<br />
LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT<br />
OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,<br />
CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES,<br />
HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF<br />
LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO<br />
USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF<br />
THE POSSIBILITY OF SUCH DAMAGES.You acknowledge that<br />
this software is not designed, licensed or intended for use in the<br />
design, construction, operation or maintenance of any nuclear<br />
facility.<br />
This product contains Xinha which is licensed under the<br />
htmlArea License (based on BSD license). Copyright (c) 2002-<br />
2004, interactivetools.com, inc. Copyright (c) 2003-2004<br />
dynarch.com. All rights reserved. Redistribution and use in<br />
source and binary forms, with or without modification, are<br />
permitted provided that the following conditions are met: 1)<br />
Redistributions of source code must retain the above copyright<br />
notice, this list of conditions and the following disclaimer. 2)<br />
Redistributions in binary form must reproduce the above<br />
copyright notice, this list of conditions and the following<br />
disclaimer in the documentation and/or other materials provided<br />
with the distribution. 3) Neither the name of interactivetools.com,<br />
inc. nor the names of its contributors may be used to endorse or<br />
promote products derived from this software without specific<br />
prior written permission. THIS SOFTWARE IS PROVIDED BY<br />
THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS”<br />
AND ANY EXPRESS OR IMPLIED WARRANTIES,<br />
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED<br />
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A<br />
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT<br />
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE<br />
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,<br />
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF<br />
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR<br />
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER<br />
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER<br />
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
Product Notices<br />
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE<br />
POSSIBILITY OF SUCH DAMAGE.<br />
This product contains JGo software. Copyright (c) 1999-2004<br />
Northwoods Software Corporation. All rights reserved.<br />
This product contains NLog 1.0. Copyright (c) 2004-2006 Jaroslaw<br />
Kowalski (jaak@jkowalski.net). All rights reserved.<br />
Redistribution and use in source and binary forms, with or<br />
without modification, are permitted provided that the following<br />
conditions are met: Redistributions of source code must retain the<br />
above copyright notice, this list of conditions and the following<br />
disclaimer. Redistributions in binary form must reproduce the<br />
above copyright notice, this list of conditions and the following<br />
disclaimer in the documentation and/or other materials provided<br />
with the distribution. Neither the name of Jaroslaw Kowalski nor<br />
the names of its contributors may be used to endorse or promote<br />
products derived from this software without specific prior<br />
written permission. THIS SOFTWARE IS PROVIDED BY THE<br />
COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND<br />
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT<br />
NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />
MERCHANTABILITY AND FITNESS FOR A PARTICULAR<br />
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE<br />
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR<br />
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,<br />
EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF<br />
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR<br />
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER<br />
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER<br />
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT<br />
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE<br />
POSSIBILITY OF SUCH DAMAGE.<br />
This product contains Runtime Modules of IBM(R) 32-bit (or 64bit)<br />
SDK for AIX(TM), Java(TM) Technology Edition, Version 6<br />
(c) Copyright Sun Microsystems Inc, 1992, 2008<br />
(c) Copyright IBM Corporation, 1998 - 2008<br />
(c) Copyright The Apache Software Foundation, 1999-2007<br />
All Rights Reserved.<br />
This product contains Apache Jakarta Commons HttpClient<br />
software developed by The Apache Software Foundation (http://<br />
www.apache.org/). Licensed under the Apache License, Version<br />
2.0 (the “License”); you may not use this file except in compliance<br />
with the License. You may obtain a copy of the License at http://<br />
www.apache.org/licenses/LICENSE-2.0. Unless required by<br />
applicable law or agreed to in writing, software distributed under<br />
the License is distributed on an “AS IS” BASIS, WITHOUT<br />
WARRANTIES OR CONDITIONS OF ANY KIND, either express<br />
or implied. See the License for the specific language governing<br />
permissions and limitations under the License.<br />
This product contains Apache Tomcat v. 5.5.17 software<br />
developed by The Apache Software Foundation (http://<br />
www.apache.org/). Licensed under the Apache License, Version<br />
2.0 (the “License”); you may not use this file except in compliance<br />
with the License. You may obtain a copy of the License at http://<br />
www.apache.org/licenses/LICENSE-2.0. Unless required by<br />
applicable law or agreed to in writing, software distributed under<br />
the License is distributed on an “AS IS” BASIS, WITHOUT<br />
WARRANTIES OR CONDITIONS OF ANY KIND, either express<br />
or implied. See the License for the specific language governing<br />
permissions and limitations under the License.<br />
This product includes the Extreme! Computing XPP3-1.1.3.2.<br />
software developed by the Indiana University Extreme! Lab<br />
(http://www.extreme.indiana.edu/). Copyright (c) 2002<br />
Extreme! Lab, Indiana University. All rights reserved.<br />
Redistribution and use in source and binary forms, with or<br />
without modification, are permitted provided that the following<br />
conditions are met: 1. Redistributions of source code must retain<br />
the above copyright notice, this list of conditions and the<br />
following disclaimer. 2. Redistributions in binary form must<br />
reproduce the above copyright notice, this list of conditions and<br />
the following disclaimer in the documentation and/or other<br />
materials provided with the distribution. 3. The end-user<br />
documentation included with the redistribution, if any, must<br />
include the following acknowledgment: “This product includes<br />
software developed by the Indiana University Extreme! Lab<br />
(http://www.extreme.indiana.edu/).”; Alternately, this<br />
acknowledgment may appear in the software itself, if and<br />
wherever such third-party acknowledgments normally appear. 4.<br />
The names “Indiana University” and “Indiana University<br />
Extreme! Lab” must not be used to endorse or promote products<br />
derived from this software without prior written permission. For<br />
written permission, please contact http://<br />
www.extreme.indiana.edu/. 5. Products derived from this<br />
software may not use “Indiana Univeristy” name nor may<br />
“Indiana University” appear in their name, without prior written<br />
permission of the Indiana University. THIS SOFTWARE IS<br />
PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED<br />
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE<br />
IMPLIED WARRANTIES OF MERCHANTABILITY AND<br />
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.<br />
IN NO EVENT SHALL THE AUTHORS, COPYRIGHT<br />
HOLDERS OR ITS CONTRIBUTORS BE LIABLE FOR ANY<br />
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,<br />
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<br />
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br />
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br />
INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT<br />
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF<br />
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF<br />
SUCH DAMAGE.<br />
This product contains Glazed Lists software developed by<br />
publicobject.com and O’Dell Engineering. Copyright © 2003-2006,<br />
publicobject.com, O'Dell Engineering Ltd. This library is free<br />
software; you can redistribute it and/or modify it under the<br />
terms of the GNU Lesser General Public License as published by<br />
the Free Software Foundation; either version 2.1 of the License, or<br />
(at your option) any later version. Copyright © 1991, 1999 Free<br />
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,<br />
MA 02110-1301 USA.This library is distributed in the hope that it<br />
will be useful, but WITHOUT ANY WARRANTY; without even<br />
the implied warranty of MERCHANTABILITY or FITNESS FOR<br />
A PARTICULAR PURPOSE. See the GNU Lesser General Public<br />
License for more details. You should have received a copy of the<br />
GNU Lesser General Public License along with this library; if not,<br />
write to the Free Software Foundation, Inc., 51 Franklin Street,<br />
Fifth Floor, Boston, MA 02110-1301 USA.<br />
This product contains Bean Scripting Framework software<br />
version 2.2 developed by The Apache Software Foundation<br />
(http://www.apache.org/). Licensed under the Apache License,<br />
Version 2.0 (the “License”); you may not use this file except in<br />
compliance with the License. You may obtain a copy of the<br />
License at http://www.apache.org/licenses/LICENSE-2.0.<br />
Unless required by applicable law or agreed to in writing,<br />
software distributed under the License is distributed on an “AS<br />
IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF<br />
ANY KIND, either express or implied. See the License for the<br />
specific language governing permissions and limitations under<br />
the License.<br />
This product contains IBM Toolbox for Java – JT Open software.<br />
Copyright © up to and including <strong>2009</strong>, International Business<br />
Machines Corporation (“IBM”) and others. All Rights Reserved.<br />
Licensed under the IBM Public License Version 1.0 (the<br />
“License”); you may not use this file except in compliance with<br />
the License. See the License at http://www-128.ibm.com/<br />
developerworks/library/os-ipl.html for the specific language<br />
governing permissions and limitations under the License. THE<br />
SOFTWARE IS PROVIDED “AS IS", WITHOUT WARRANTY OF<br />
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT<br />
LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br />
FITNESS FOR A PARTICULAR PURPOSE AND NON-<br />
INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR<br />
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION<br />
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,<br />
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR<br />
THE USE OR OTHER DEALINGS IN THE SOFTWARE. IN NO<br />
EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY<br />
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,<br />
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<br />
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br />
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br />
INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT<br />
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF<br />
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF<br />
SUCH DAMAGE.<br />
This product contains ICU v. 1.8.1. Copyright © 1995-2008<br />
International Business Machines Corporation and others. All<br />
rights reserved. Permission is hereby granted, free of charge, to<br />
any person obtaining a copy of this software and associated<br />
documentation files (the “Software”), to deal in the Software<br />
without restriction, including without limitation the rights to use,<br />
copy, modify, merge, publish, distribute, and/or sell copies of the<br />
Software, and to permit persons to whom the Software is<br />
furnished to do so, provided that the above copyright notice(s)<br />
and this permission notice appear in all copies of the Software<br />
and that both the above copyright notice(s) and this permission<br />
notice appear in supporting documentation. THE SOFTWARE IS<br />
PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,<br />
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO<br />
THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A<br />
PARTICULAR PURPOSE AND NONINFRINGEMENT OF<br />
THIRD PARTY RIGHTS. IN NO EVENT SHALL THE<br />
COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS<br />
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL<br />
INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY<br />
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,<br />
DATA OR PROFITS, WHETHER IN AN ACTION OF<br />
CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,<br />
ARISING OUT OF OR IN CONNECTION WITH THE USE OR<br />
PERFORMANCE OF THIS SOFTWARE. Except as contained in<br />
this notice, the name of a copyright holder shall not be used in<br />
advertising or otherwise to promote the sale, use or other<br />
dealings in this Software without prior written authorization of<br />
the copyright holder.<br />
This product contains Java BEEP Core Version 0.9.08 developed<br />
by The Apache Software Foundation (http://www.apache.org/)<br />
licensed under the Apache License, Version 1.1. Copyright (c)<br />
1999-2001 The Apache Software Foundation. All rights reserved.<br />
Redistribution and use in source and binary forms, with or<br />
without modification, are permitted provided that the following<br />
conditions are met: 1. Redistributions of source code must retain<br />
the above copyright notice, this list of conditions and the<br />
following disclaimer. 2. Redistributions in binary form must<br />
reproduce the above copyright notice, this list of conditions and<br />
the following disclaimer in the documentation and/or other<br />
materials provided with the distribution. 3. The end-user<br />
documentation included with the redistribution, if any, must<br />
include the following acknowledgment: “This product includes<br />
software developed by the Apache Software Foundation (http://<br />
www.apache.org/).” Alternately, this acknowlegement may<br />
appear in the software itself, if and wherever such third-party<br />
acknowlegements normally appear 4. The names “The Jakarta<br />
Project”, “Commons” and “Apache Software Foundation” must<br />
not be used to endorse or promote products derived from this<br />
software without prior written permission. For written<br />
permission, please contact apache@apache.org. 5. Products<br />
derived from this software may not be called “Apache”, nor may<br />
“Apache” appear in their name, without prior written permission<br />
of the Apache Software Foundation. THIS SOFTWARE IS<br />
PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED<br />
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE<br />
IMPLIED WARRANTIES OF MERCHANTABILITY AND<br />
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.<br />
Product Notices<br />
IN NO EVENT SHALL THE APACHE SOFTWARE<br />
FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY<br />
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,<br />
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<br />
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br />
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br />
INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT<br />
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF<br />
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF<br />
SUCH DAMAGE.<br />
This product contains Java BEEP Core Version 0.9.08. Blocks<br />
Public License Copyright © 2000-2001, Invisible Worlds, Inc. All<br />
Rights Reserved. Redistribution and use in source and binary<br />
forms, with or without modification, are permitted provided that<br />
the following conditions are met: Redistributions of source code<br />
must retain the above copyright notice, this list of conditions and<br />
the following disclaimer. Redistributions in binary form must<br />
reproduce the above copyright notice, this list of conditions and<br />
the following disclaimer in the documentation and/or other<br />
materials provided with the distribution. Neither the name,<br />
trademarks, or trade names of Invisible Worlds, Inc., nor the<br />
names, trademarks, or trade names of its contributors may be<br />
used to endorse or promote products derived from this software<br />
without specific prior written permission. THIS SOFTWARE IS<br />
PROVIDED BY THE COPYRIGHT HOLDERS AND<br />
CONTRIBUTORS “AS IS” AND ANY EXPRESSED OR IMPLIED<br />
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE<br />
IMPLIED WARRANTIES OF MERCHANTABILITY AND<br />
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.<br />
IN NO EVENT SHALL INVISIBLE WORLDS OR ITS<br />
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,<br />
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL<br />
DAMAGES (INCLUDING, BUT NOT LIMITED TO,<br />
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;<br />
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br />
INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT<br />
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF<br />
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF<br />
SUCH DAMAGE.<br />
Cryptix General License Copyright © 1995, 1997, 1998, 2000. The<br />
Cryptix Foundation Limited. All rights reserved. Redistribution<br />
and use in source and binary forms, with or without<br />
modification, are permitted provided that the following<br />
conditions are met: Redistribution of source code must retain the<br />
above copyright notice, this list of conditions and the following<br />
disclaimer. Redistributions in binary form must reproduce the<br />
above copyright notice, this list of conditions and the following<br />
disclaimer in the documentation and/or other materials provided<br />
with the distribution. THIS SOFTWARE IS PROVIDED BY THE<br />
CRYPTIX FOUNDATION LIMITED AND CONTRIBUTORS “AS<br />
IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES,<br />
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED<br />
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A<br />
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT<br />
SHALL THE CRYPTIX FOUNDATION LIMITED OR ITS<br />
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,<br />
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL<br />
DAMAGES (INCLUDING, BUT NOT LIMITED TO,<br />
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;<br />
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br />
INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT<br />
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF<br />
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF<br />
SUCH DAMAGE.<br />
This package is a SSLv3/TLS implementation written by Eric<br />
Rescorla (ekr\@rtfm.com) and licensed by Claymore Systems,<br />
Inc. Redistribution and use in source and binary forms, with or
Product Notices<br />
without modification, are permitted provided that the following<br />
conditions are met: Redistributions of source code must retain the<br />
above copyright notice, this list of conditions and the following<br />
disclaimer. Redistributions in binary form must reproduce the<br />
above copyright notice, this list of conditions and the following<br />
disclaimer in the documentation and/or other materials provided<br />
with the distribution. All advertising materials mentioning<br />
features or use of this software must display the following<br />
acknowledgement: This product includes software developed by<br />
Claymore Systems, Inc. Neither the name or Claymore Systems,<br />
Inc. nor the name of Eric Rescorla may be used to endorse or<br />
promote products derived from this software without specific<br />
prior written permission. THIS SOFTWARE IS PROVIDED BY<br />
THE REGENTS AND CONTRIBUTORS “AS IS” AND ANY<br />
EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT<br />
NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />
MERCHANTABILITY AND FITNESS FOR A PARTICULAR<br />
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE<br />
REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,<br />
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR<br />
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<br />
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br />
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br />
INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT<br />
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF<br />
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF<br />
SUCH DAMAGE.<br />
This product contains Java Service Wrapper v.3.2.3 developed by<br />
Tanuki Software. Copyright © 1999, 2006 Tanuki Software Inc.<br />
Permission is hereby granted, free of charge, to any person<br />
obtaining a copy of the Java Service Wrapper and associated<br />
documentation files (the “Software”), to deal in the Software<br />
without restriction, including without limitation the rights to<br />
use, copy, modify, merge, publish, distribute, sub-license, and/or<br />
sell copies of the Software, and to permit persons to whom the<br />
Software is furnished to do so, subject to the following conditions:<br />
The above copyright notice and this permission notice shall be<br />
included in all copies or substantial portions of the Software. THE<br />
SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF<br />
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT<br />
LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br />
FITNESS FOR A PARTICULAR PURPOSE AND NON-<br />
INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR<br />
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,<br />
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION<br />
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT<br />
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE<br />
OR OTHER DEALINGS IN THE SOFTWARE. Portions of Java<br />
Service Wrapper have been derived from source code developed<br />
by Silver Egg Technology under the following license: Copyright<br />
© 2001 Silver Egg Technology. Permission is hereby granted, free<br />
of charge, to any person obtaining a copy of this software and<br />
associated documentation files (the “Software”), to deal in the<br />
Software without restriction, including without limitation the<br />
rights to use, copy, modify, merge, publish, distribute, sublicense,<br />
and/or sell copies of the Software, and to permit persons to<br />
whom the Software is furnished to do so, subject to the following<br />
conditions: The above copyright notice and this permission<br />
notice shall be included in all copies or substantial portions of the<br />
Software.<br />
This product contains JavaScript for Java which is subject to the<br />
Netscape Public License Version 1.1 (the “License”); you may not<br />
use this file except in compliance with the License. You may<br />
obtain a copy of the License at http://www.mozilla.org/NPL/.<br />
Software distributed under the License is distributed on an “AS<br />
IS” basis, WITHOUT WARRANTY OF ANY KIND, either express<br />
or implied. See the License for the specific language governing<br />
rights and limitations under the License. The Original Code is<br />
Rhino code, released May 6, 1999. The Initial Developer of the<br />
Original Code is Netscape Communications Corporation.<br />
Portions created by Netscape are Copyright (C) 1997-1999<br />
Netscape Communications Corporation. All Rights Reserved.<br />
Contributor(s): Norris Boyd<br />
This product contains JBoss Application <strong>Server</strong> version 4.2.0.,<br />
JBoss AOP version 1.5.5.GA and JBoss Web version 2.0.0.GA.<br />
Copyright © 2006, Red Hat Middleware LLC, and individual<br />
contributors as indicated by the @author tags. See the<br />
copyright.txt file in the distribution for a full listing of individual<br />
contributors This library is free software; you can redistribute it<br />
and/or modify it under the terms of the GNU Lesser General<br />
Public License as published by the Free Software Foundation;<br />
either version 2.1 of the License, or (at your option) any later<br />
version. Copyright © 1991, 1999 Free Software Foundation, Inc.,<br />
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. This<br />
library is distributed in the hope that it will be useful, but<br />
WITHOUT ANY WARRANTY; without even the implied<br />
warranty of MERCHANTABILITY or FITNESS FOR A<br />
PARTICULAR PURPOSE. See the GNU Lesser General Public<br />
License for more details. You should have received a copy of the<br />
GNU Lesser General Public License along with this library; if not,<br />
write to the Free Software Foundation, Inc., 51 Franklin Street,<br />
Fifth Floor, Boston, MA 02110-1301 USA.<br />
This product contains JFree Chart version 1.0.1. Copyright 2000-<br />
2006, by Object Refinery Limited and Contributors. This library is<br />
free software; you can redistribute it and/or modify it under the<br />
terms of the GNU Lesser General Public License as published by<br />
the Free Software Foundation; either version 2.1 of the License, or<br />
(at your option) any later version. Copyright © 1991, 1999 Free<br />
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,<br />
MA 02111-1307 USA. This library is distributed in the hope that it<br />
will be useful, but WITHOUT ANY WARRANTY; without even<br />
the implied warranty of MERCHANTABILITY or FITNESS FOR<br />
A PARTICULAR PURPOSE. See the GNU Lesser General Public<br />
License for more details. You should have received a copy of the<br />
GNU Lesser General Public License along with this library; if not,<br />
write to the Free Software Foundation, Inc., 51 Franklin Street,<br />
Fifth Floor, Boston, MA 02110-1301 USA.<br />
This product contains jTDS Drivers version 1.2.2 for MS SQL<br />
<strong>Server</strong>. This library is free software; you can redistribute it and/<br />
or modify it under the terms of the GNU Lesser General Public<br />
License as published by the Free Software Foundation; either<br />
version 2.1 of the License, or (at your option) any later version.<br />
Copyright © 1991, 1999 Free Software Foundation, Inc., 59<br />
Temple Place, Suite 330, Boston, MA 02111-1307 USA. This<br />
library is distributed in the hope that it will be useful, but<br />
WITHOUT ANY WARRANTY; without even the implied<br />
warranty of MERCHANTABILITY or FITNESS FOR A<br />
PARTICULAR PURPOSE. See the GNU Lesser General Public<br />
License for more details. You should have received a copy of the<br />
GNU Lesser General Public License along with this library; if not,<br />
write to the Free Software Foundation, Inc., 51 Franklin Street,<br />
Fifth Floor, Boston, MA 02110-1301 USA.<br />
This product contains software developed by JXML, Inc. and its<br />
contributors:http://www.jxml.com/mdsax/contributors.html<br />
Copyright (c) 1998, 1999, JXML, Inc. All rights reserved.<br />
Redistribution and use in source and binary forms, with or<br />
without modification, are permitted provided that the following<br />
conditions are met: Redistributions of source code must retain the<br />
above copyright notice, this list of conditions and the following<br />
disclaimer. Redistributions in binary form must reproduce the<br />
above copyright notice, this list of conditions and the following<br />
disclaimer in the documentation and/or other materials provided<br />
with the distribution. All product materials mentioning features<br />
or use of this software must display the following<br />
acknowledgement: This product includes software developed by<br />
JXML, Inc. and its contributors: http://www.jxml.com/mdsax/<br />
contributors.html. Neither name of JXML nor the names of its<br />
contributors may be used to endorse or promote products<br />
derived from this software without specific prior written<br />
permission. THIS SOFTWARE IS PROVIDED BY JXML, INC.<br />
AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR<br />
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,<br />
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND<br />
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL JXML OR CONTRIBUTORS BE LIABLE<br />
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,<br />
EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF<br />
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR<br />
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER<br />
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER<br />
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT<br />
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE<br />
POSSIBILITY OF SUCH DAMAGE.<br />
This product contains Log4J software v. 1.2.15 developed by The<br />
Apache Software Foundation (http://www.apache.org/).<br />
Licensed under the Apache License, Version 2.0 (the “License”);<br />
you may not use this file except in compliance with the License.<br />
You may obtain a copy of the License at http://<br />
www.apache.org/licenses/LICENSE-2.0. Unless required by<br />
applicable law or agreed to in writing, software distributed under<br />
the License is distributed on an “AS IS” BASIS, WITHOUT<br />
WARRANTIES OR CONDITIONS OF ANY KIND, either express<br />
or implied. See the License for the specific language governing<br />
permissions and limitations under the License.<br />
This product contains NSPR Library software. The contents of<br />
this file are subject to the Mozilla Public License Version 1.1 (the<br />
“License”); you may not use this file except in compliance with<br />
the License. You may obtain a copy of the License at http://<br />
www.mozilla.org/MPL/. Software distributed under the License<br />
is distributed on an “AS IS” basis, WITHOUT WARRANTY OF<br />
ANY KIND, either express or implied. See the License for the<br />
specific language governing rights and limitations under the<br />
License. The Original Code is the Netscape Portable Runtime<br />
(NSPR). The Initial Developer of the Original Code is Netscape<br />
Communications Corporation. Portions created by Netscape are<br />
Copyright (C) 1998-2000 Netscape Communications Corporation.<br />
All Rights Reserved.<br />
This product contains OpenSSL software and is licensed under<br />
the terms of the OpenSSL License and the SSLeay License.<br />
Copyright © 1998-2008 The OpenSSL Project. All rights reserved.<br />
Redistribution and use in source and binary forms, with or<br />
without modification, are permitted provided that the following<br />
conditions are met: 1. Redistributions of source code must retain<br />
the above copyright notice, this list of conditions and the<br />
following disclaimer. 2. Redistributions in binary form must<br />
reproduce the above copyright notice, this list of conditions and<br />
the following disclaimer in the documentation and/or other<br />
materials provided with the distribution. 3. All advertising<br />
materials mentioning features or use of this software must<br />
display the following acknowledgment: “This product includes<br />
software developed by the OpenSSL Project for use in the<br />
OpenSSL Toolkit. (http://www.openssl.org/)” 4. The names<br />
“OpenSSL Toolkit” and “OpenSSL Project” must not be used to<br />
endorse or promote products derived from this software without<br />
prior written permission. For written permission, please contact<br />
openssl-core@openssl.org. 5. Products derived from this software<br />
may not be called “OpenSSL” nor may “OpenSSL” appear in<br />
their names without prior written permission of the OpenSSL<br />
Project. 6. Redistributions of any form whatsoever must retain the<br />
following acknowledgment: “This product includes software<br />
developed by the OpenSSL Project for use in the OpenSSL Toolkit<br />
(http://www.openssl.org/)” THIS SOFTWARE IS PROVIDED<br />
BY THE OpenSSL PROJECT “AS IS” AND ANY EXPRESSED OR<br />
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,<br />
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND<br />
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.<br />
IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS<br />
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,<br />
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL<br />
DAMAGES (INCLUDING, BUT NOT LIMITED TO,<br />
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;<br />
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br />
INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT<br />
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />
Product Notices<br />
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF<br />
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF<br />
SUCH DAMAGE. This product includes cryptographic software<br />
written by Eric Young (eay@cryptsoft.com). This product<br />
includes software written by Tim Hudson (tjh@cryptsoft.com).<br />
Copyright © 1995-1998 Eric Young (eay@cryptsoft.com). All<br />
rights reserved. Original SSLeay License. Copyright © 1995-1998<br />
Eric Young (eay@cryptsoft.com). All rights reserved. This<br />
package is an SSL implementation written by Eric Young<br />
(eay@cryptsoft.com). Redistribution and use in source and binary<br />
forms, with or without modification, are permitted provided that<br />
the following conditions are met: 1. Redistributions of source<br />
code must retain the copyright notice, this list of conditions and<br />
the following disclaimer. 2. Redistributions in binary form must<br />
reproduce the above copyright notice, this list of conditions and<br />
the following disclaimer in the documentation and/or other<br />
materials provided with the distribution. 3. All advertising<br />
materials mentioning features or use of this software must<br />
display the following acknowledgement: “This product includes<br />
cryptographic software written by Eric Young<br />
(eay@cryptsoft.com)” The word 'cryptographic' can be left out if<br />
the routines from the library being used are not cryptographic<br />
related. 4. If you include any Windows specific code (or a<br />
derivative thereof) from the apps directory (application code) you<br />
must include an acknowledgement: “This product includes<br />
software written by Tim Hudson (tjh@cryptsoft.com)” THIS<br />
SOFTWARE IS PROVIDED BY ERIC YOUNG “AS IS” AND ANY<br />
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<br />
LIMITED TO, THE IMPLIED WARRANTIES OF<br />
MERCHANTABILITY AND FITNESS FOR A PARTICULAR<br />
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE<br />
AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,<br />
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR<br />
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<br />
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br />
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br />
INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT<br />
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF<br />
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF<br />
SUCH DAMAGE.<br />
This product includes Sapia Ubik software developed by Sapia<br />
Open Source Software. Copyright © 2002, 2003 Sapia Open<br />
Source Software (http://www.sapia-oss.org/). All rights<br />
reserved. Redistribution and use in source and binary forms, with<br />
or without modification, are permitted provided that the<br />
following conditions are met: Redistributions of source code must<br />
retain the above copyright notice, this list of conditions and the<br />
following disclaimer. Redistributions in binary form must<br />
reproduce the above copyright notice, this list of conditions and<br />
the following disclaimer in the documentation and/or other<br />
materials provided with the distribution. The end-user<br />
documentation included with the redistribution, if any, must<br />
include the following acknowledgment: “This product includes<br />
software developed by Sapia Open Source Software Organization<br />
(http://www.sapia-oss.org/).” Alternately, this<br />
acknowledgment may appear in the software itself, if and<br />
wherever such third-party acknowledgments normally appear.<br />
The names “Sapia", “Sapia Open Source Software” and “Sapia<br />
OSS” must not be used to endorse or promote products derived<br />
from this software without prior written permission. For written<br />
permission, please contact info@sapia-oss.org. Products derived<br />
from this software may not be called “Sapia”, nor may “Sapia”<br />
appear in their name, without prior written permission of Sapia<br />
OSS. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY<br />
EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT<br />
NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />
MERCHANTABILITY AND FITNESS FOR A PARTICULAR<br />
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE<br />
SAPIA OSS ORGANIZATION OR ITS CONTRIBUTORS BE<br />
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,<br />
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
Product Notices<br />
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR<br />
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER<br />
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER<br />
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT<br />
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE<br />
POSSIBILITY OF SUCH DAMAGE.<br />
This product contains software code that is Copyright 2007,<br />
Microsoft Corporation. All rights reserved.<br />
This product contains XML Parsing Library for C version 2.6.32.<br />
Copyright (C) 1998-2003 Daniel Veillard. All Rights Reserved.<br />
Permission is hereby granted, free of charge, to any person<br />
obtaining a copy of this software and associated documentation<br />
files (the “Software”), to deal in the Software without restriction,<br />
including without limitation the rights to use, copy, modify,<br />
merge, publish, distribute, sublicense, and/or sell copies of the<br />
Software, and to permit persons to whom the Software is<br />
furnished to do so, subject to the following conditions: The above<br />
copyright notice and this permission notice shall be included in<br />
all copies or substantial portions of the Software. THE<br />
SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF<br />
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT<br />
LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br />
FITNESS FOR A PARTICULAR PURPOSE AND<br />
NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL<br />
VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR<br />
OTHER LIABILITY, WHETHER IN AN ACTION OF<br />
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF<br />
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR<br />
OTHER DEALINGS IN THE SOFTWARE.