Migration Use Cases With The Migration Manager
Migration Use Cases With The Migration Manager
Bradley Downing Burak Bolek David A Gutierrez John Dibble Kylie Cameron Sampath Sriramadhesikan Scott Tyrrell Thadeu de Russo e Carmo Vasfi Gucer
ibm.com/redbooks
International Technical Support Organization Migration Use Cases with the Migration Manager January 2011
SG24-7906-00
Note: Before using this information and the product it supports, read the information in Notices on page ix.
First Edition (January 2011) This edition applies to IBM Tivoli Change and Configuration Management Database V7.2.0 and V7.2.1, IBM Tivoli Service Request Manager V7.2.0 and V7.2.1, and Tivolis process automation engine V7.1.1.6 and V7.1.1.7
Copyright International Business Machines Corporation 2011. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi The team who wrote this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Now you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . xv Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Stay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Chapter 1. Migration strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Choice of tools to support migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.1 Data loading tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 Sequence of data loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 Content strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.1 Dependencies among configuration content. . . . . . . . . . . . . . . . . . . . 8 1.3.2 Best practice content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.3 Integrity of configuration content . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3.4 Content validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3.5 Content and source control systems . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4 Migration approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.4.1 Snapshot mode characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.4.2 Change mode characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.4.3 Hybrid migration strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.5 Migration planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.5.1 Contents of the migration plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.5.2 Working with migration time frames . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.6 Migration Manager reference material . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Chapter 2. Migrating data dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.3 Configuration applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.6 Package definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.8 Deployment considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.8.1 Organization and clearing accounts . . . . . . . . . . . . . . . . . . . . . . . . . 48
iii
2.8.2 Crossover and table domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Chapter 3. Migrating security configuration data . . . . . . . . . . . . . . . . . . . 51 3.1 Migrating a new security group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.1.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.1.3 Configuration applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.1.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.1.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.1.6 Package definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.1.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.1.8 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.2 Migrating the conditional user interface. . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.2.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.2.3 Configuration applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.2.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.2.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.2.6 Package definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.2.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.2.8 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.3 Migrating global data restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.3.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.3.3 Configuration applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.3.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.3.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.3.6 Package definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.3.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.3.8 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.4 Migrating access definitions and LDAP information . . . . . . . . . . . . . . . . . 76 3.4.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.4.3 Configuration applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.4.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.4.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.4.6 Package definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 3.4.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.4.8 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.5 Considerations of security migrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Chapter 4. Migrating escalations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
iv
4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.3 Configuration applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.3.1 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.3.2 People . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.3.3 Person groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.3.4 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.3.5 Communication templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.3.6 Escalations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.3.7 Other applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.6 Package definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.6.1 Defining SQL criteria for an escalation with an action. . . . . . . . . . . . 92 4.6.2 Defining SQL criteria for an escalation with a notification . . . . . . . . . 95 4.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.7.1 Escalations and cron tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Chapter 5. Migrating applications and Start Centers. . . . . . . . . . . . . . . . 109 5.1 Basic application changes and signature options . . . . . . . . . . . . . . . . . . 110 5.1.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 5.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 5.1.3 Configuration applications used for this solution . . . . . . . . . . . . . . . 112 5.1.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 5.1.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 5.1.6 Package definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 5.1.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 5.1.8 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 5.2 Complex application changes, including menus, lookups, and global data restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.2.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.2.3 Configuration applications used for this solution . . . . . . . . . . . . . . . 119 5.2.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 5.2.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.2.6 Package definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.2.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.2.8 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 5.3 Migrating a Start Center and a query . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.3.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.3.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5.3.3 Configuration applications used for the solution . . . . . . . . . . . . . . . 132 5.3.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5.3.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Contents
5.3.6 Package definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 5.3.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 5.3.8 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Chapter 6. Migrating workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 6.1 Migrating specific workflow modifications . . . . . . . . . . . . . . . . . . . . . . . . 140 6.1.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 6.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 6.1.3 Configuration applications used for this solution . . . . . . . . . . . . . . . 141 6.1.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 6.1.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 6.1.6 Package definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 6.1.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.1.8 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 6.2 Migrating workflows and all their related content . . . . . . . . . . . . . . . . . . 147 6.2.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 6.2.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 6.2.3 Configuration applications used for this solution . . . . . . . . . . . . . . . 148 6.2.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 6.2.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.2.6 Package definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6.2.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 6.2.8 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Chapter 7. Migrating classifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 7.1 Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 7.1.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 7.1.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.2 Configuration applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.3 Object structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 7.4 Migration group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 7.5 Package definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 7.6 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 7.7 Deployment considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Chapter 8. Migrating service offering content . . . . . . . . . . . . . . . . . . . . . 163 8.1 Service offering scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 8.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 8.3 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 8.4 Configuration applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 8.5 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 8.5.1 PMSC_JOBPLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 8.5.2 PMSC_OFFERING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 8.5.3 PMSC_DOCINFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
vi
8.6 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 8.7 Package definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8.7.1 Defining the SQL definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 8.8 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 8.8.1 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Chapter 9. Migrating a service catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 9.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9.3 Configuration applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 9.3.1 Security groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 9.3.2 Catalogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 9.4 Object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 9.5 Migration groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 9.6 Package definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.6.1 PMSC72_OFFERING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 9.6.2 PMSC72_CATALOG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 9.7 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 9.7.1 Deployment considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Chapter 10. Common topics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 10.1 Comparing Integration Framework and Migration Manager . . . . . . . . . 198 10.1.1 Selecting Integration Framework or Migration Manager . . . . . . . . 199 10.2 Multiple language considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 10.3 Snapshot package versus Change package . . . . . . . . . . . . . . . . . . . . . 204 10.4 Embedded URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 10.5 Clustered environment considerations . . . . . . . . . . . . . . . . . . . . . . . . . 209 10.6 Change tracking and ad hoc reporting . . . . . . . . . . . . . . . . . . . . . . . . . 210 10.6.1 When to use Change packages . . . . . . . . . . . . . . . . . . . . . . . . . . 210 10.6.2 Using Change packages to track development activities . . . . . . . 211 10.6.3 Configuring change roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 10.6.4 Change package definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 10.6.5 Tracking change events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 10.6.6 Creating ad hoc reports of change events . . . . . . . . . . . . . . . . . . 216 10.7 Admin mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 10.8 Migrating hierarchical data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 10.9 Setting up logging for the Migration Manager . . . . . . . . . . . . . . . . . . . . 229 10.10 Start Center visibility into configurations . . . . . . . . . . . . . . . . . . . . . . . 235 Chapter 11. Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 11.1 Common migration package failures. . . . . . . . . . . . . . . . . . . . . . . . . . . 240 11.1.1 Package deployment fails due to installation differences . . . . . . . 240 11.1.2 Package deployment fails due to incorrect Source designation . . 243 11.1.3 Package deployment fails due to inconsistent manifest data with
Contents
vii
package file name. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 11.1.4 Package deployment fails due to improperly combined object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 11.1.5 Security configuration migration errors . . . . . . . . . . . . . . . . . . . . . 244 11.1.6 Security group and group reassign errors . . . . . . . . . . . . . . . . . . . 245 11.1.7 Impact of invalid or deprecated MAXVARS . . . . . . . . . . . . . . . . . 246 11.1.8 Attached documents and document types . . . . . . . . . . . . . . . . . . 247 11.2 Methods to solve migration package failures . . . . . . . . . . . . . . . . . . . . 248 11.2.1 Use of the Logging application . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 11.2.2 Modifying the migration package XML . . . . . . . . . . . . . . . . . . . . . 252 11.3 Techniques to prevent migration package failures . . . . . . . . . . . . . . . . 254 11.3.1 Start with identical environments . . . . . . . . . . . . . . . . . . . . . . . . . 254 11.3.2 Ensure that you understand migration group and object structure relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 11.3.3 Making separate packages work in a dependent fashion . . . . . . . 255 11.3.4 Making use of the SQL Where clause for package groups . . . . . . 255 Appendix A. Additional material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Locating the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Using the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 System requirements for downloading the Web material . . . . . . . . . . . . . 258 How to use the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 How to get IBM Redbooks publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
viii
Notices
This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrate programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs.
ix
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. These and other IBM trademarked terms are marked on their first occurrence in this information with the appropriate symbol ( or ), indicating US registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at http://www.ibm.com/legal/copytrade.shtml The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: Foundations Global Business Services IBM Maximo Redbooks Redbooks (logo) Service Request Manager Tivoli WebSphere
The following terms are trademarks of other companies: ITIL is a registered trademark, and a registered community trademark of the Office of Government Commerce, and is registered in the U.S. Patent and Trademark Office. IT Infrastructure Library is a registered trademark of the Central Computer and Telecommunications Agency which is now part of the Office of Government Commerce. Snapshot, and the NetApp logo are trademarks or registered trademarks of NetApp, Inc. in the U.S. and other countries. Java, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others.
Preface
The Migration Manager enables you to migrate configuration content from one production environment to another. The typical use is to migrate configuration content from a development environment to a test environment and then on to production for the Tivoli process automation engine and its applications, such as IBM Tivoli Change and Configuration Management Database (CCMDB) and IBM Tivoli Service Request Manager. The goal of migration is to ensure that your production environment fully meets the needs of your users. This IBM Redbooks publication covers the most common migration use cases with the Migration Manager. Of course, these use cases are only a small subset of the possible migration scenarios that can be performed by the Migration Manager, but they were chosen to be representative of the capabilities of the Migration Manager. In addition to these use cases, the book presents a migration strategy and a comprehensive chapter about troubleshooting possible migration problems when using the Migration Manager. We strongly suggest that you read Chapter 1, Migration strategy on page 1 first before reading the other chapters. This chapter will give you a good foundation for all of the migration scenarios covered in the book. This book will be a reference for IT Specialists and IT Architects working on migrating configuration content from one production environment to another using the Migration Manager.
xi
Bradley Downing currently works for IBM in the Tivoli Advanced Technology Group - ISM Lab Services. He began his career with the Maximo product 15 years ago with a small integrator in California. In 2001, he joined MRO Software, and came to IBM through an acquisition in 2006. During that time, he has specialized in working with clients in a variety of industries, with emphasis on reporting, Mobile Maximo, the use of the Integration Framework, and recently with the Migration Manager module. He holds an MBA in Business Management. Burak Bolek works in IS Bank as a lead developer and administrator. He has three years of experience with Maximo. He also has worked on various client implementations as a Java developer. He is certified in Tivolis process automation engine and the Information Technology Infrastructure Library (ITIL). David A Gutierrez is a technical consultant for IBM Global Business Services and an IBM-certified Deployment Professional in Maximo V7.x. He has six years of experience implementing, deploying, configuring, migrating, and administering package solutions, in both private and public sectors, inside and outside of IBM. David has been an IT professional for over 25 years, providing systems and networking technical support to clients. David graduated from the University of Lima, Peru, with a B.S. degree in Industrial Engineering, and he currently lives in San Diego, California. John Dibble joined IBM Tivoli from MRO, where he led the merger of the MainControl IT Asset Management product with Maximo Enterprise Asset Management (EAM), resulting in the Maximo 6 release. Following the IBM acquisition of MRO, he transferred to the IBM Global Technology Services group to apply the new technology. Currently, he performs as the lead architect for Tivolis process automation engine, CCMDB, Tivoli Service Request Manager, and Tivoli Asset Management for IT solutions.
xii
Kylie Cameron works for IBM Global Business Services as a client-facing Maximo Consultant based in Sydney, Australia. She has a Bachelor of Information and Communication Technology degree majoring in Business Information Systems and E-commerce. Kylie is a certified Maximo Consultant with over three years of project experience across the Utilities and Pharmaceutical industries with roles including Inventory Management and Procurement Lead, Environment Manager, Release Manager, and Training Lead. Sampath Sriramadhesikan is an architect in IBM Software Group, working at the IBM Littleton campus in Massachusetts. He is responsible for leading the design and development of the key components of Tivolis process automation engine and the Maximo product portfolio, with a specific focus on content management and promotion capabilities. He has over 17 years of experience in the software development industry in various roles including product development, product management, and teaching. He has an MS in computer science from Mysore University and an MBA from Northeastern University. Scott Tyrrell is a Maximo System Administrator at a Fortune 500 Corporation and currently supports day-to-day operational issues and application development for the product suite of Tivoli Service Request Manager, Tivoli Asset Manager for IT, and CCMDB with Service Provider. A former software developer, Scott is ITIL-certified and has worked for several years in ITIL process development and implementation. He has a BS in Electrical Engineering from Christian Brothers University and an MBA from the University of Arkansas at Little Rock.
Preface
xiii
Thadeu de Russo e Carmo works for the IBM Software Group as a Staff Software Engineer in the IBM Brazil Software Lab based in Sao Paulo, Brazil. He has a BS in Computer Science and is a graduate student at Universidade de Sao Paulo (USP) in the Distributed Systems area. He has four years of IBM Maximo Asset Management development and has been involved in the development of many add-ons and industry solutions, such as IBM Maximo for Nuclear Power Plants, IBM Maximo for Life Sciences, and IBM Maximo Mobile, as the lead developer. With over six years of experience in Java Enterprise development, he is a Java-certified developer and architect, and he also holds the Foundations of Tivoli process automation engine certification. Vasfi Gucer is a Project Leader at the International Technical Support Organization, Austin Center. He has been with the ITSO since January 1999. He has more than 12 years of experience in the areas of systems management, networking hardware, and software on mainframe and distributed platforms. He has worked on various IBM Tivoli client projects as a Systems Architect in the U.S. He writes extensively and teaches IBM classes worldwide on Tivoli software. Vasfi is also an IBM Certified Senior IT Specialist, PMP, and ITIL Expert. Thanks to the following people for their contributions to this project: Tamikia Barrow, David Bennin, Emma Jacobs, Stephen Smith, Margaret Ticknor, Debbie Willmschen International Technical Support Organization Scott Dickerson, Tom Ellingwood, Adel Fahmy, Stephen Ridgill IBM USA Marieli Alves de Lucena IBM Brazil Thomas Gehrke IBM Germany Andrzej Wieclaw Framsteg AB
xiv
Comments welcome
Your comments are important to us! We want our books to be as helpful as possible. Send us your comments about this book or other IBM Redbooks publications in one of the following ways: Use the online Contact us review Redbooks form found at: ibm.com/redbooks Send your comments in an email to: redbooks@us.ibm.com Mail your comments to: IBM Corporation, International Technical Support Organization Dept. HYTD Mail Station P099 2455 South Road Poughkeepsie, NY 12601-5400
Preface
xv
Look for us on LinkedIn: http://www.linkedin.com/groups?home=&gid=2130806 Explore new Redbooks publications, residencies, and workshops with the IBM Redbooks weekly newsletter: https://www.redbooks.ibm.com/Redbooks.nsf/subscribe?OpenForm Stay current on recent Redbooks publications with RSS Feeds: http://www.redbooks.ibm.com/rss.html
xvi
Chapter 1.
Migration strategy
In this chapter, we show how the Migration Manager works together with other tools to successfully migrate Tivoli system configurations across the clients environments. Typically, these environments are represented as: development (unit testing), test (integration testing), stage (final integration and performance testing), and production. The Migration Manager is a component of Tivolis process automation engine. It is a set of tools used to promote system configurations from a development environment to upper environments, such as state, user acceptance testing, and production. System configuration is a set of metadata that enables application functionality and controls application behavior in a production environment. For example, the user interface for the Service Request application is enabled and rendered through application presentation metadata. The Migration Manager is heavily used in migrating system configurations prior to the production environment going live. However, it is also used in migrating changes to system configurations after the production environment is live. We will discuss the role that the Migration Manager plays in both scenarios. A production environment that produces system configurations to be migrated is usually called a Source environment. A production environment that consumes system configurations is usually called a Target environment.
This chapter has the following sections: 1.1, Requirements on page 3 1.2, Choice of tools to support migration on page 3 1.3, Content strategy on page 7 1.4, Migration approach on page 15 1.5, Migration planning on page 18 1.6, Migration Manager reference material on page 26
1.1 Requirements
Clients typically have the following requirements for the migration of system configurations from development to production: Migration must be repeatable and efficient across environments that constitute the system landscape. Migration must be durable in that it can be exploited before the production environment goes live as well as after the production environment goes live. Migration must be stable in that all types of system configuration can be identified, collected, packaged, distributed, and deployed in the same manner. Migration must leave the Target environment usable and intact at all times. The integrity of the system configurations must not be compromised. Migration must minimize or eliminate the system downtime of the Target environments. Test data, such as data that is used to drive unit testing in a development environment, is not to be promoted. Source code in the form of Java sources or compiled Java class files can be managed separately using traditional source control systems.
However, the following criteria must be applied to determine whether such application content needs to be migrated using the Migration Manager: Is the application static? Static data never changes. It is set up one time and subsequently used in the same static form across all production environments. Will the application content be created in a development environment? Application content that is created in a development environment might require to be promoted. For example, a hierarchy of classifications might support the Job Plan application. Can the application content be characterized as master or transactional data? Examples of master data include person, item master, and company records. Examples of transactional data include service requests, incidents, purchase orders, and invoices. These types of data are not set up in a development environment except as test data. If application content is static, created in a development environment, and not master or transactional data, this content is a candidate to migrate to Target environments using the Migration Manager.
The choice of tool depends on the specific data loading requirement. Table 1-1 lists particular tools and their use.
Table 1-1 Tools and use cases Type of data loading Tivoli process automation engine Migration Manager No Tivoli process automation engine Integration Framework No Tivoli Integration Composer Tivoli Directory Integrator
Batch loading of data from discovery tools Batch loading of master and transactional data or existing data Messaging-based integration with external systems Promotion of system configurations between Tivolis process automation engine-based production environments
Yes
No
No
Yes
No
No
No
Yes
No
Yes
Yes
No
No
No
Based on the tools and their uses, it is clear that the Migration Manager is not the only tool that is used to load data into upper environments. Selecting the appropriate tool based on your data loading needs helps ensure success in meeting production go-live time frames. For a more in-depth discussion of data loading tools and capabilities, refer to the following best practices publication: http://www.ibm.com/developerworks/wikis/download/attachments/130515354/ TpaeEcosystemDataIntegrationBestPractices.pdf?version=2
The following steps show a more detailed description of the typical load/migration sequence: 1. Manually seed the organization names and currency. 2. Manually set up the GL account structure (segments). 3. Manually create the default chart of accounts for each defined organization. 4. Manually define the location system. 5. Using Integration Framework object structures, load the physical location hierarchy, including regions. 6. Run Integrity Checker, and look for any errors. 7. Correct the errors manually or by using Integrity Checker in repair mode.
8. After the manual steps have been executed, the enterprise LDAP directory server is synchronized into the product, if the client uses directories. Person, user, and security groups can be loaded. 9. If Lightweight Directory Access Protocol (LDAP) is not part of your environment, migrate person, person groups, and security groups configurations, including employee and supervisory (management reports) information. 10.Migrate the data dictionary, including the domains. 11.Migrate the crossover and table domains to complete the data dictionary migration. 12.If the production environment includes Tivoli Service Request Manager, run the service catalog object structure migration. At this point, the structural migration is complete. 13.Load the financial chart of accounts. 14.Load the currencies and exchange rates. 15.Migrate all of the application configurations, including menus and lookups. 16.Migrate application security configurations, including signature options. 17.Migrate the Start Centers and queries. 18.Migrate the Tivoli Service Request Manager service catalog templates. 19.Migrate the Tivoli Service Request Manager service catalog single service configuration. 20.Migrate the workflows and their associated roles, actions, and communication templates. 21.Run Integrity Checker, and look for, and correct, any errors. This sequence captures the essence of the data loading and migration steps. A number of tools are exploited when executing the steps in the sequence. Experience with these tools accelerates the preparation of the production environment. Documenting this sequence during the planning stage is vital to the success of the overall migration effort. Ad hoc tasks that are performed without prior knowledge of the tools, applications, and content slow down the migration effort and lead to a reduction in customer satisfaction.
product, and other content might have been created in the clients development environment. Visibility into and control of these configurations are extremely important to ensure the consequent migration effort. Figure 1-2 shows the interaction of configurations and migrations. Content is the underlying artifact that is being managed.
From the configuration perspective, configuration skills, configuration management, and the proper use of the configuration tool set are key to complete an efficient configuration in the clients development environment. Better configuration management practices lead to better migration planning. Consistent use of the Configuration applications and tools results in cleaner data that, in turn, accelerates the migration effort.
In Figure 1-3, a workflow process configuration depends on communication templates and roles. Application presentations rely on business objects whose attributes, in turn, are associated with value lists in the form of domains. Security groups are associated with signature options, which, in turn, might be conditionally applied to the security group based on conditional expressions. External systems that are identified using the Integration Framework are associated with Publish Channels, which, in turn, are supported by object structures and business objects. Given the deep dependencies among configurations, sequencing the migration is extremely critical.
Example: This example is usually part of the installation process and will therefore be on the Target, unless specifically dropped at the installation stage. Another example is the use of Intellectual Capital (iCAP) to provide best practice business process content (workflow-based) that adheres to ITIL guidelines. Because this iCAP is loaded at installation on all environments, it is only the subsequent client modifications that need to be promoted through the environment.
10
In Figure 1-4, the Error Message column reproduces the Integrity Checker error as retrieved from the Integrity Checker log file. The Reason for Error column reproduces the Integrity Checker product documentation by correlating the error message number with the Integrity Checker error tables. The Impacts Migration column makes a determination if the particular error will affect the Migration Manager activities. The TACTICAL FIX 1 column determines if the Migration Manager can be controlled to avoid migration failures due to the error. The TACTICAL FIX 2 column determines if the resolution is to fix the integrity error directly in the underlying database and then perform the migration. In most cases, it is necessary to fix the integrity error in the database and then perform the migration. To understand and use the Integrity Checker tool, refer to the detailed product documentation at this website: http://publib.boulder.ibm.com/infocenter/tivihelp/v32r1/topic/com.ibm.s rm.doc_721/reference/6_to_7_upgrade.pdf
11
In Figure 1-5, key validations are applied to the data dictionary configurations, the database configuration process, and all other configurations, such as person records, security group records, workflow processes, and so on. When validations fail, the Migration Manager reports a deployment error. A deployment error represents the inability of the Configuration application to successfully apply the data validation rules to the particular configuration being deployed. It is the responsibility of the Migration Manager to report deployment errors resulting from validation failures. The root cause of these validation errors can be one or a combination of the following reasons: Incomplete packaging of the configuration content Incorrect sequencing of migration Bad data in the Source production environment Limitation of the Migration Manager Defect in the product In each case, the appropriate remedial measures are taken to ensure recovery from the error and continuation of the migration effort.
12
Incorrect sequencing or incomplete packaging can be addressed by improving product skills. Bad data is typically the result of loading data directly into the database using database commands. This practice must be avoided at all costs. Bad data can also be the result of database scripts supplied with the product. Part of the bad data can be corrected through the use of Integrity Checker. If bad data was shipped with the product, IBM treats this situation as a defect. The Migration Manager limitations can be addressed by adopting other tools to load the configuration or the related data needed. Product defects are addressed by IBM using standard procedures. Understanding the nature of the deployment error helps immensely in resolving the error.
13
exported again and placed back into source control. Figure 1-6 illustrates this model.
Although cumbersome, implementing this model ensures that changes are traceable and that the authors of those changes are accountable during the implementation cycle. This approach of managing revisions of a configuration must be considered as part of the overall content strategy. This model is most commonly applied to shared Application Designer configurations, such as library.xml, lookups.xml, and menus.xml. These three configuration files are shared configurations that are accessed through and managed with the Application Designer.
14
We recommend flexibility with respect to this practice. The overall implementation time line and resource constraints must be taken into account before implementing this approach. The practice is more easily implemented with clients who already have an established process of distributing content through source control systems. Of the two source control models presented, the need to manage the versions of key configurations is more critical to the success of the development effort. Inability to successfully manage shared configurations can lead to a breakdown of the development effort.
15
16
When too many development efforts overlap and it is difficult to define non-overlapping packages, a single Change package is useful to be able to track the changes and define the migration requirements. This use is a hybrid use of Change mode where the Change package is used merely as a tracking device. The actual migration is performed using Snapshot packages. Most of the scenarios in this document are designed and implemented as Snapshot packages. For more details, refer to 10.6, Change tracking and ad hoc reporting on page 210.
17
Naming conventions: The concept of using naming conventions for structural and other configurations can also be used in conjunction with queries that look for and track the state of the configuration. For more details, refer to 10.6, Change tracking and ad hoc reporting on page 210.
18
The plan also enumerates manual activities that are performed outside of the Migration Manager functionality: Creation of configurations using the corresponding Configuration application (for example, organization) Execution of SQL scripts (for example, loading a set of person records) Execution of Integration Framework-based data loads (for example, loading a set of GL accounts or loading a set of company records from an existing system) Execution of build process for Java classes (for example, building the products deployable EAR file) The critical part of the plan is the sequence in which all of these tasks are performed and the unambiguous identification of task owners. The goal is to eliminate as many unknowns as possible and streamline the preparation and delivery of the upper environments to their users. The plan facilitates the migration prior to the production rollout, as well as periodic migrations after the production rollout has completed. Creating and maintaining a migration plan document offer the following benefits: Scope of migration clearly established Required tools and skills clearly identified Owners of tasks clearly identified Migration progress monitored Status updates provided to stakeholders This IBM Redbooks publication provides guidance to the content of a migration plan document, and you can also use the samples provided with this book. To download these samples, refer to Appendix A, Additional material on page 257.
19
The migration plan typically includes these areas: Tasks Task sequence Owners Tools Dates The following sections describe a reasonable and reusable spreadsheet-based migration plan. The spreadsheet contains the following worksheets: Migration plan revision history Migration environments, products, and versions Migration tasks
This worksheet provides these benefits: Provide an audit trail of changes to the plan Ensure accountability through review and approval information
20
SRM Problem Management 7.2.0.1 Build 20100316D2 DB Build V7201-01 SRM Incident Management 7.2.0.1 Build 20100316D2 DB Build V7201-01 SRM Service Request Management 7.2.0.1 Build 20100316D2 DB Build V7201-01 IBM Tivoli Common Process Components 7.2.0.01 Build 20100109D DB Build V7201-02 Base Services 7.1.1.6-LA20100312-093 7 Build 20091208-1415 DB Build V7116-173 HFDB Build HF7116-04
http://hostnam e:9999/maxim o
Development
FILE
This worksheet provides these benefits: Provides at-a-glance information about the IT environment to stakeholders Avoids confusion among implementers regarding Sources and Targets Saves time when gathering information regarding deployment issues Avoids process breakdown when transitioning implementation resources
Migration tasks
This worksheet is the most critical element of the plan. This worksheet records a number of facets pertaining to the migration effort: Manual data entry into the production environment Import of existing data into the production environment using Integration Framework Deployment of migration packages into the production environment using the Migration Manager Necessary application server restarts
21
Special situations where the standard order of migration has to be changed to accommodate dependent data Table 1-4 shows sample content for this worksheet, based on the recommended approach. The line items in the worksheet are representative only. Depending on the extent of configuration, the number of manual steps, the need to import data using Integration Framework, and the number of migration packages required to complete the migration, the effort can vary. The worksheet is extremely beneficial in reducing the uncertainty that is inherent in data migrations and accelerating the migration activities.
Table 1-4 Migration tasks Sequence 1 Summary Integrity Checker Description Run Integrity Checker on Target database in report mode; correct any errors Use Integrity Checker with repair mode or manually correct with SQL tools Back up the Target production database Build the product EAR file Deploy the product EAR and restart the application server Load currencies and exchange rates Seed the ORG names and currency Set up the GL account structure Create a chart of accounts for each organization Create a default chart of accounts for each organization Load additional accounts via Integration Framework Method Manual Owner Product implementer Product implementer DBA Product implementer Product implementer Product implementers Product implementer Product implementer Product implementer Product implementer Migration Manager
Correct Integrity Checker errors and warnings Database backup Prepare EAR Deploy EAR Currencies and exchange rates Org/currency GL structure Chart of accounts Default chart of accounts Chart of accounts
Manual
3 4 5 6 7 8 9 10 11
Manual Manual Manual Manual Manual Manual Manual Manual Integration Framework
22
12
System of locations Run Integrity Checker Correct Integrity Checker errors and warnings Data dictionary (Phase 1) Data dictionary (Phase 2) Data dictionary (Phase 3) Data dictionary (Phase 4) Applications Applications
Define and load systems and locations Run Integrity Checker against the development database in report mode; correct any errors Use Integrity Checker with repair mode or manually correct with SQL tools Migrate conditional expressions Migrate all domains except the table and crossover Migrate data dictionary configurations, including objects and attributes Migrate table and crossover domains Migrate Application Designer system XMLs Migrate all applications and menus except system XMLs; server restart needed if production environment is clustered If Lightweight Directory Access Protocol (LDAP) is synchronized for an LDAP-enabled client, go to Chapter 3, Migrating security configuration data on page 51 If LDAP is not enabled, migrate persons, users, and security groups See Chapter 3, Migrating security configuration data on page 51 Application Security package for signature options and queries
Product implementer Product implementer Product implementer, developers Migration Manager Migration Manager Migration Manager Migration Manager Application Designer Migration Manager
13
14
Manual
15 16 17
18 19 20
21
SYSTEM
Product implementer
14
Persons, users, and security groups Global data restrictions Application Security package
Package
17 18
Package Package
23
19
Start Center
Start Center and Queries package; each individual user must update their Start Center to apply changes Migrate integration object structures Migrate all other integration configurations Service Catalog Object Structure package BPM (workflow) package to migrate the workflows and their associated role, actions, and communication templates, except application actions that launch workflows Migrate application actions that launch workflows Activate communication templates and workflows Migrate classifications Service Catalog Templates package
Package
Migration Manager Migration Manager Migration Manager Migration Manager Migration Manager
20 21 22 23
Integrations (Phase 1) Integrations (Phase 2) Service Catalog Business process management (BPM) (Phase 1)
24 25 26 27
After a plan document has been created, we recommend a meeting among the stakeholders to walk through the plan. This meeting disseminates the critical information to all participants and identifies missing or incorrect information in the plan document. Subsequent periodic meetings provide the continuous monitoring of the migration process.
24
to complete and the production environment to be ready for user access. Client expectations of migration cannot be met when development and migration activities are separated. Best practice: In the pre-production phase of a project, the migration planning document must be complete at the same time that the development and configuration activities for the project complete. In the post-production phase, certain configuration and development activity is ongoing. This activity is the result of feedback from users or application managers. A smaller scale migration is undertaken to promote this maintenance or incremental configurations to the existing production environment. Most clients expect this migration to begin and complete within specific maintenance windows. The most commonly encountered maintenance windows are two, four, or six hours. The maintenance windows are typically opened at the onset of a weekend when user activity is minimal and can be stopped without impacting the business. It is critical that the maintenance activities complete within the maintenance window that is specified by the clients. Developing a maintenance window migration plan is extremely useful. This plan can be a simpler version of the pre-production plan that is outlined in earlier sections. A number of factors affect the duration of all types of migrations that might result in the implementation exceeding the expected migration time frames. The following factors will consume a considerable amount of time, not directly involving the Migration Manager or Integration Framework: Application server restarts Production environments typically use multiple Java virtual machines (JVMs) executing in clustered application servers. There might be additional JVMs outside of the cluster supporting cron tasks, integration, and reporting functions. Shutting down and restarting all of the JVMs can consume a significant amount of time that reduces the migration time frame. Post-migration tasks After a migration completes, manual tasks are typically performed, such as the activation of workflow processes, escalations, cron tasks, and so on. These tasks are done through the products application user interface (UI) and consume a certain portion of the migration time frame. Running tools, such as Integrity Checker Tools, including the Integrity Checker, might be executed periodically. Depending on the size of the production database, the tool can take a longer or shorter time to complete, yet consume a certain portion of the migration time frame.
25
Other factors DBAs might be required to review structural changes to the underlying production database and, if required, to make modifications to database objects, such as indexes, table spaces, and so on. The intent is to ensure the optimal performance of the database. These activities will consume a certain portion of the migration time frame. Figure 1-9 shows a breakdown of the various types of tasks as a percentage of the total migration effort. This chart helps to establish the fact that the Migration Manager is not the only tool that is used to achieve total migration.
Keeping these factors in mind, managing the migration effort is as much managing the clients expectations with multiple constraints as performing the actual migration tasks using the Migration Manager. Up-front discussion and agreement with the clients can go a long way in ensuring a successful and timely migration.
26
This document describes usability features that were introduced with Base Services V7.1.1.5. Migration Manager V7.1.1.5 ticket templates: http://www-01.ibm.com/support/docview.wss?rs=3214&context=SSLKT6&dc= DB560&dc=DB520&uid=swg21393063&loc=en_US&cs=utf-8&lang=en This document describes the support to migrate ticket templates. Migration Manager V7.1.1.5 classifications: http://www-01.ibm.com/support/docview.wss?rs=3214&context=SSLKT6&dc= DB560&dc=DB520&uid=swg21393048&loc=en_US&cs=utf-8&lang=en This document describes the support to migrate classifications. Log setup for the Migration Manager: http://www-01.ibm.com/support/docview.wss?uid=swg21397377 This document describes the steps to configure logging of the Migration Manager functions. Start Center migration: http://www-01.ibm.com/support/docview.wss?uid=swg21427580 This document provides additional information about Start Center migration. Change size limit when uploading large Migration Manager packages: http://www-01.ibm.com/support/docview.wss?uid=swg21408312 This document describes a technique to upload large package files. Migration Manager preview V7.1.1.6: http://www-01.ibm.com/support/docview.wss?uid=swg21414562 This document describes the Preview capability of the Migration Manager, which was introduced with Base Services 7.1.1.6. Run Integrity Checker before the Migration Manager: http://www-01.ibm.com/support/docview.wss?uid=swg21299691 This document describes the need to execute the Integrity Checker tool before performing migrations. Oracle length semantics affects the Migration Manager: http://www-01.ibm.com/support/docview.wss?uid=swg21411696 This document describes the impact of Oracles character length semantics on migration.
27
No support for IBM Maximo Enterprise Adapter (MEA) interface table migration: http://www-01.ibm.com/support/docview.wss?uid=swg21299697 This document describes the limitation of the Migration Manager related to migrating interface table definitions. Migrating conditions: http://www-01.ibm.com/support/docview.wss?uid=swg21389955 This document describes a technique of migrating conditional expressions.
28
Chapter 2.
29
2.1 Requirements
The data dictionary objects are defined in a development environment and subsequently migrated to a production environment. For this scenario, we use the preformatted Data Dictionary migration package. Not all of the migration objects in the package will be explicitly covered in this scenario, but we will describe the major objects. A good practice in any new development environment is to set up Change migration packages. The Change package can be used to migrate those changes made since its activation. Even if not used to migrate data, Change packages can be used to track environmental changes for those objects that are supported by the Migration Manager. Change packages were set up in this scenario prior to any new content creation to facilitate an accurate list of those configurations to migrate.
2.2 Solution
Multiple packages will be created to facilitate the migration of two sets of configurations. The first set of configurations consists of the addition of the typical components that are promoted when a new site is added to an existing organization. These objects are migrated in the following order: Currency Sets Site The second set of configurations consists of configurations that are typically migrated from the data dictionary to support adding a new tab with a table to an existing application and the conditions to filter the data based on existing values for particular records. We will migrate these objects in order: Lookup map Domains Objects Relationships Conditional expressions Domains
30
Domains are included twice in the lists. Due to the complexity of crossover and table domains, extra steps are needed to migrate them correctly. Refer to the 2.7, Deployment on page 47 for more information. Because the data dictionary package moves information that is needed by other packages, no external object dependencies need to be satisfied as part of the migration. However, other packages are dependent on configurations that are moved as part of the data dictionary migration. Proper planning needs to be taken to ensure that all migrations occur in the correct order.
31
The DMCURRENCY object structure supports currency migration (Figure 2-5 on page 33).
32
The DMSETS object structure supports item and company set migration (Figure 2-6).
The DMORGANIZATION object structure supports organization, address, and site migration (Figure 2-7).
The DMMAXVARS object structure supports the maxvars migration (Figure 2-8).
The DMMAXDOMAIN object structure supports domain migration (Figure 2-9 on page 34).
33
The DMMAXOBJECTCFG object structure supports table, view, column, attribute, and index migration (Figure 2-10).
The DMMAXRELATIONSHIP object structure supports relationship migration (Figure 2-12 on page 35).
34
The DMMAXINTOBJECT object structure supports integration object migration (Figure 2-13).
The DMCONDITION object structure supports conditional expression migration (Figure 2-14).
35
There are two methods for limiting the data that is brought over by the migration package. The first method is to duplicate the initial package and remove those object structures from the predefined package. The second method will be used in this scenario. We describe it in more detail in 2.6, Package definition on page 37. One of the features of the Migration Manager application is the ability to duplicate existing migration packages. This feature is helpful here, because multiple data dictionary packages will be used to migrate separate functionality. Because the Data Dictionary package has no dependencies, using the duplicate functionality and the modifications to the Where clause in the package saves time in the process. The order of the object structures within the migration group is shown in Figure 2-17 on page 37.
36
Easier viewing: Figure 2-17 on page 37 has been modified to show all 15 objects in the object structure instead of our creating three separate screenshots showing the usual five objects each.
37
Figure 2-18
The package is approved using the Change Status toolbar or Select Action menu item and is activated using the Activate Package Definition Select Action menu item. After the new package is active, the Change package will now track data dictionary changes. Accessing the Change package after building the configurations to migrate and selecting View Event Tracking Records shows the new configurations, as shown in Figure 2-19 on page 39.
38
At this point, it is possible to select the items to promote, build, and distribute the package. Three packages are built to migrate the data. The first package migrates the currency, organization, and sets. We separated this package from the other packages to illustrate that multiple users can build and migrate separate sections of the data dictionary as required by their individual projects. This package does not include the migration of a new organization or clearing account. We discuss the issues with migrating a a new organization or clearing account in 2.8, Deployment considerations on page 48. The second and third packages will be used to migrate the rest of the configurations. Two packages are required due to the inclusion of a crossover domain. Refer to 2.8, Deployment considerations on page 48 to review the discussion of the issue with Crossover/Table domain migration.
39
The first step is to create the packages. This creation follows the standard process that is defined in product documentation and is similar to the setup of the Change package with two exceptions: a package TYPE of SNAPSHOT and the definition of the SQL that is used to define the packages Where clauses. We discuss these exceptions in detail next: 1. In the first package, you can obtain the names of the organization to be updated and the sets and currency to be added in the event tracking of the initially created Change package or just documentation created for the project by the developer. These names are used in the SQL to define the CURRENCY, ORGANIZATION and SET values. All other objects not migrated were set to 1=2. Figure 2-20 through Figure 2-22 on page 41 illustrate the data that is migrated in this package.
Figure 2-21
40
Figure 2-22
2. The names are used in the SQL to define the CURRENCY, ORGANIZATION, and SET values. All other objects that are not migrated are set to 1=2. The column names that are used in the Where clause for each object can be found either in the Change Package Event Tracking or in the field help for each update in its application. See Figure 2-23.
3. After the SQL criteria have been updated and all of the fields have been defined, the package is saved.
41
4. The other packages can be created from the recently created Snapshot package by using the Duplicate Package Definition option in the Select Action menu. This option duplicates all of the information in the existing package with the exception of the Package Definition Name and description. You must enter this information manually. 5. The SQL in the Where clauses for the second package will be updated to migrate all of the other objects with the exception of the DOMAIN, as described in 2.8.2, Crossover and table domains on page 48. Prior to the second package deployment, the change to the object structure is made and it is reverted prior to the third package deployment. Figure 2-24 through Figure 2-31 on page 46 illustrate the objects that are migrated in this package.
Figure 2-24
42
43
44
Figure 2-30 New Join to EMPLOYEE object in existing PERSON report object structure
45
6. Now that the SQL criteria have been updated related to the second package, they can be saved. 7. After this package is saved, the third package is built from a duplicate of either the first or second package. Again, the Package Definition Name and description are not duplicated and must be entered manually. 8. The SQL criteria for the final package only contains the Where clause for the MAXOBJECTCFG. After the object structure exclusion is reverted, the linkage between the object and the domain is created, once deployed. All other objects will be set to 1=2 to exclude them from the migration. See Figure 2-32 on page 47.
46
9. Now that the SQL criteria for the final package have been updated, it can be saved.
2.7 Deployment
After the packages have been saved, they can be exported from the Source system. The crossover domain migration requires the extra steps that are defined in 2.8, Deployment considerations on page 48. Prior to the second package export, the DOMAINID must be excluded from the DMMAXOBJECTCFG object structure. And prior to the third package export, the DOMAINID must be included again in the DMMAXOBJECTCFG object structure. Any data dictionary packages that make structural changes to the database require Admin mode or a restart to complete the migration. In this example, structural changes are made. After Admin mode is activated, the packages can be imported. You can obtain the exact steps for deployment in the product documentation.
47
Tip: When significant structural changes are made to the database, a best practice is to make a backup prior to the import of the new migration packages.
48
Figure 2-33 shows the exclusion or inclusion that is required for crossover and table domain migration.
Figure 2-33 Exclusion or inclusion required for crossover and table domain migration
49
50
Chapter 3.
51
3.1.1 Requirements
The requirements for this migration consist of defining a new security group RBGROUP, with a new user RBUSER. This group has full access to all of the options of the Work Order Tracking application, but members of the group have a data restriction that blocks any changes in the work orders that are waiting on an approval status. All of the configurations that we mention are created in the development environment and subsequently promoted to the test and production environments.
3.1.2 Solution
We define an approach to migrate a new security group and its related data in a single Snapshot migration package.
52
From a content perspective, the migration of a security group in this scenario also implies the migration of the following configurations in order: Conditions Security groups Users Note: A security group might have a default Start Center template, a list of sites to which the group is authorized, and applications. It is not part of the requirements of this scenario to migrate sites, Start Center templates, and applications. We assume that these configurations have already been migrated or already exist in the Target environment. For more details, refer to 3.1.8, Deployment considerations on page 59.
53
Security groups
You can create and manage security groups by using the Security Groups application, which is accessible by clicking Go To Security Security Groups. For this scenario, we created a new group with the values that are shown in Table 3-2.
Table 3-2 New security group values Field Group Description Value RBGROUP IBM Redbooks Group
Under the Sites tab, the Authorize Group for All Sites check box is selected. Under the Data Restrictions tab, we created an object restriction for the WORKORDER object. This data restriction, when evaluating to true, changes the editability of waiting on approval work orders to read only. Table 3-3 shows the values of this new data restriction.
Table 3-3 New object restriction Field Object Type Condition Field WORKORDER READONLY RBOOKCOND
Important: You can use the same condition for multiple data restrictions. In this example, when you set the Object field to WORKORDER, you are creating this association. You can associate the same condition with other objects, if the condition can be applied to the other objects. Under the Applications tab, the group received access to all of the options of the Work Order Tracking application. Under the GL Components tab, we selected all of the component check boxes.
54
Users
You can create and manage users with the Users application, which is accessible by clicking Go To Security Users. For this scenario, we created a new user with the values that are shown in Table 3-4.
Table 3-4 New user values Field User User Name Type Value RBUSER1 RBUSER1 TYPE 1
Important: The Person field is required, and the system asks if you want to create a new PERSON. It is not part of this scenario to migrate data that is created in the People application. We assumed that the person that you choose already exists in the Target environment and that its status is ACTIVE. The product has a predefined migration group called RESOURCES, which has the DMPERSON object structure. The password field might be required. If so, you need to enter a valid value, depending on your system configuration. We assumed that you are able to create a new user with all of the required data. We discuss details about referenced data and password migration in 3.1.8, Deployment considerations on page 59.
55
Figure 3-2 shows the DMMAXUSER object structure in the APPSECURITY migration group supporting users.
Figure 3-3 shows the DMMAXGROUP object structure in the APPSECURITY migration group supporting the security groups.
Tip: You can duplicate the existing APPSECURITY group and remove all of the dependencies.
Table 3-5 on page 57 shows the values of the new migration group. All other fields have default values.
56
Table 3-5 New migration group Field Migration Group Description Value RBSECURITY01 IBM Redbooks Security 01
Figure 3-4 shows the object structures that are in the new group and their order.
57
Under the Migration Groups tab, we have added the RBSECURITY01 migration group.
The complete Where clause for the DMMAXUSER migration object is: status <> 'DELETED' and userid in(select userid from groupuser where groupname in ('RBGROUP')) Tip: Certain queries are defined as 1=2. You do not need to create a new migration group for other security migration-related scenarios. You only need to create other packages and define separate filters. If an incorrect SQL Where clause is entered, the Migration Manager application will report the BMXAA7010E error. You must correct the SQL Where clause before the package definition can be saved.
58
Best practice: You must always exclude users whose status is DELETED from your migration package. If those users are part of the migration package, the system will report the BMXAA3837E error when you try to deploy the package to the Target environment. You must also avoid migrating the MAXADMIN and MAXINTADM system users. If those users are part of the migration package, the system will report the BMXAA3829E error when you try to deploy the package to the Target environment.
3.1.7 Deployment
After you have saved and approved the package definition, you can proceed with the creation, distribution, and deployment.
Dependencies
The migration you have performed depends on data that must be in the Target environment: Admin mode needs to be on in the Target environment. You need to migrate new applications, new objects, and changes to existing objects prior to the deployment. Best practice: Apply the same license keys in the Target environment as in the Source environment. Using diverse licenses will enable or disable separate sets of applications, which will result in deployment errors. If you use a default Start Center template for your security groups, you need to migrate or create manually the Start Center in the Target environment prior to deployment. You can find information about Start Center template migration in Chapter 5, Migrating applications and Start Centers on page 109. You need to migrate or create manually the sites to which your group is authorized in the Target environment prior to deployment.
59
The group that we created in this example authorizes the use of GL account components. You need to migrate or create manually the GL account configuration in the Target environment prior to deployment. The user that we created in this example was related to an existing person. You need to migrate or create manually all related persons in the Target environment prior to deployment. You can find an approach to migrating person information in Chapter 4, Migrating escalations on page 83. Application options: It is not part of the migration requirements of this scenario to migrate application options (sigoptions). This configuration uses the DMSIGOPTION object structure, which is available in the product and part of the migration requirements that are described in 3.2, Migrating the conditional user interface on page 61.
Handling passwords
The Migration Manager application does not migrate passwords for security reasons. All migrated users have their password reset and receive an email message with a temporary new password, which expires after the first login. For this reason, an email server must be configured in the Target environment before the migration of the security package, and all migrated users need to have a valid email as part of their Person record. Note: In case the email server is not configured or users do not receive their temporary password, if your system is not configured with Lightweight Directory Access Protocol (LDAP) or an auto-generated password, a user with administrative privileges can define temporary passwords manually. For an LDAP scenario, refer to 3.4, Migrating access definitions and LDAP information on page 76.
Attribute restrictions
You can use conditions to define data restrictions not only for objects, but also for attributes. Attribute data restrictions are migrated in the same way that object restrictions are migrated. The difference is that the restrictions apply for an attribute and not for the whole object.
60
3.2.1 Requirements
For this scenario, our requirement is to hide the Actual Start and Actual Finish fields when the user who is accessing the work order is a member of RBGROUP1 and the work order is not completed. To configure this requirement, one approach is to define a new RBGROUP1 security group and a new option named RBOPTION1 for the Work Order Tracking application and to configure the conditional user interface to hide the fields using a condition based on the work order status. All of the configurations that we mention are created in development environment and subsequently promoted to the test and production environments.
3.2.2 Solution
We define an approach so that a set of new application options, the conditional user interface, the new group, and the related data is migrated in a single Snapshot migration package.
61
The migration of the conditional user interface that is described in this scenario implies the migration of the following configurations in order: Conditions Sigoptions Security groups Control security
Security groups
You can create and manage security groups using the Security Groups application, which is accessible by clicking Go To Security Security Groups. For this scenario, we created a new group with the values that are shown in Table 3-8 on page 63.
62
Table 3-8 New security group values Field Group Description Value RBGROUP1 IBM Redbooks Group 1
Under the Sites tab, we select the Authorize Group for All Sites check box. Authorizing sites: If you do not want to authorize all sites, make sure that you have already migrated the sites. See 3.1.8, Deployment considerations on page 59 for more details. Under the Applications tab, this group received access to all of the options of the Work Order Tracking application. Under the GL Components tab, we selected all of the component check boxes.
Application Designer
You can create and manage applications with the Application Designer application, which is accessible by clicking Go To System Configuration Platform Configuration Application Designer. After you open the application WOTRACK, you can create a new application option by clicking Select Action Add/Modify Signature Option. For this scenario, we created the application option in Table 3-9 for the Work Order Tracking application (WOTRACK).
Table 3-9 New sigoptions Option RBOPTION1 Description IBM Redbooks Opt1 Advanced signature options None
To configure a conditional property for an user interface control, you need to select the control first and then click Control Properties in the Application Designer toolbar, as shown in Figure 3-6 on page 64.
63
We needed to add conditional configuration to both the Actual Start and Actual Finish fields. Therefore, we selected the first field in the Work Order tab and clicked the Control Properties toolbar. You can control the conditional configuration by clicking Configure Conditional Properties in the dialog. The configuration that we created for this field is shown in Table 3-10.
Table 3-10 New control security condition for Actual Start field Field or table Signature Option Security Groups Conditions for security group RBGROUP1 Property values when condition is true Property values when condition is false Value RBOPTION1 RBGROUP1 RBOOKCOND1 display - true display - false
Then, we follow the same steps for the second field, using the same values that are shown in Table 3-10. We returned to the Security Groups application to grant access to RBOPTION1 to group RBGROUP1. The access definitions need to be migrated as described in the migration requirements.
64
The DMCTRLGROUP object structure in the APPSECURITY migration group supports control security, as shown in Figure 3-8.
Refer to 3.1.4, Object structures on page 55 for the DMCONDITION and DMMAXGROUP object structures, which are required by this scenario.
65
Under the Migration Groups tab, we have added the RBSECURITY01 migration group.
66
The complete Where clause for the migration object DMSIGOPTION is: app in (WOTRACK) and optionname in (RBOPTION1) The complete Where clause for the migration object DMCTRLGROUP is: app in (WOTRACK) and groupname in (RBGROUP1) and optionname in (RBOPTION1) Tip: Certain queries are defined as 1=2. You do not need to create a new migration group for other security migration-related scenarios. You only need to create other packages and define separate filters. If an incorrect SQL Where clause is entered, the Migration Manager application will report the BMXAA7010E error. The SQL Where clause must be corrected before the package definition can be saved. Be careful when trying to copy and paste the SQL Where clause of the examples. We prefer to type them manually to avoid any validation errors. Because we created new options for an existing application in this example, we must filter them to avoid deployment problems. If you create a new application or clone an existing application, and you want to migrate all of the options of that application, you do not need to filter them individually. Merely filter them using the application name: app in (MYNEWAPP1, MYNEWAPP2) It filters all of the options for both applications. For additional information, refer to 3.2.8, Deployment considerations on page 68.
DMSIGOPTION: For the DMSIGOPTION object structure query, in case you migrate the conditional user interface configuration of a new application, you can filter by the application name and group names: app in (MYNEWAPP1, MYNEWAPP2) and groupname in (MYGRP1, MYGRP2) It filters all of the control security for the groups and applications.
3.2.7 Deployment
After you have saved and approved the package definition, you can proceed with the creation, distribution, and deployment.
67
New applications
If you create sigoptions for new applications, make sure that the applications exist in the Target environment prior to this migration. It is possible to migrate the sigoptions of a new application in the same package as the application. For additional information, refer to Chapter 5, Migrating applications and Start Centers on page 109.
New users
Even though we did not add new users to this scenario, it is supported using, for example, the approach that is described in 3.1, Migrating a new security group on page 52.
68
3.3.1 Requirements
The requirements for this migration consist of defining a new global data restriction to filter out closed or canceled work orders from any list. The global data restriction uses a new condition, which is also part of this migration requirement. Global data restrictions and conditions are defined in a development environment and subsequently promoted to the test and production environments.
3.3.2 Solution
We define an approach so that a new global restriction and its related condition are migrated in two Snapshot migration packages. The migration of global data restrictions that is described in this scenario implies the migration of the object structure configurations in the first migration package. The migration of global data restrictions that is described in this scenario implies the migrations of the conditions and security restrictions configurations in the second migration package. Security restrictions: Security restrictions, when associated with a security group, are migrated along with the group, as detailed in 3.1, Migrating a new security group on page 52.
69
Table 3-12 RBOOKCOND2 Field Condition Description Type Object Name Expression Always Evaluate Value RBOOKCOND2 IBM Redbooks Condition 2 EXPRESSION WORKORDER :status = CLOSE or :status = CAN Selected
Security groups
You can create and manage global data restrictions using the Security Groups application, which is accessible by clicking Go To Security Security Groups and, then, by clicking Select Action Global Data Restriction. For this scenario, we created the object data restriction with the values that are shown in Table 3-13.
Table 3-13 Object data restriction Field Object Type Reevaluate Condition Value WORKORDER HIDDEN Selected RBOOKCOND2
Important: You can use the same condition for separate data restrictions. In this example, when you set the Object field with WORKORDER, you are creating this association. You can associate the same condition with other objects, if the condition can be applied to the other objects.
70
Under the Source Objects tab, we added the SECURITYRESTRICT object. Refer to 3.1.4, Object structures on page 55 for the DMCONDITION object structure that this scenario needs.
71
Table 3-15 RBGLOBALSE01 migration group Field Migration Group Description Value RBGLOBALSE01 IBM Redbooks Global Secur Obj Structure
This group contains only the DMMAXINTOBJECT migration object. Figure 3-10 shows the migration tree of this group.
Table 3-16 shows the values of the second migration group. All of the other fields have default values.
Table 3-16 RBGLOBALSE02 migration group Field Migration Group Description Value RBGLOBALSE02 IBM Redbooks Global Secur Data
This group contains the DMCONDITION and DMSECURITYRESTICT object structures, as shown in Figure 3-11.
72
Table 3-17 shows the values of the first package. All of the other fields have default values.
Table 3-17 RBGLOBALSEC01PKG migration package values Field Package Definition Name Description Type Processing Action Value RBGLOBALSEC01PKG IBM Redbooks Global Secur object structure SNAPSHOT AddChange
Under the Migration Groups tab, we have added the RBGLOBALSE01 migration group. Table 3-18 on page 74 shows the values of the second package. All of the other fields have default values.
73
Table 3-18 RBGLOBALSEC02PKG migration package values Field Package Definition Name Description Type Processing Action Value RBGLOBALSEC02PKG IBM Redbooks Global Secur Data SNAPSHOT AddChange
Under the Migration Groups tab, we have added the RBGLOBALSE02 migration group.
Figure 3-14 shows the queries that we have used to filter data for the RBGLOBALSEC02PKG package.
The complete query to filter the DMSECURITYRESTRICT object structure is: groupname is null and app is null and conditionnum in (RBOOKCOND2)
74
3.3.7 Deployment
After we have saved and approved the two package definitions, we can proceed with the creation, distribution, and deployment. We must migrate the packages separately and in this order: RBGLOBALSEC01PKG RBGLOBALSEC02PKG
Admin mode
To avoid side effects to the users that are connected to the system, you need to turn on the Admin mode in the Target environment prior to the package deployment.
75
3.4.1 Requirements
The requirements of this scenario consist of migrating only the access definitions for the application options. Access definitions are defined in a development environment and subsequently promoted to the test and production environments. Important: Security groups and users are not migrated using the Migration Manager application if LDAP synchronization is set up and application server security is enabled. This process uses external tools and is not part of the scope of this book.
3.4.2 Solution
We define an approach so that a set of new access definitions and related conditions are migrated in two Snapshot migration packages.
76
The migration of access definitions that is described in this scenario implies the migration of the object structure configurations in the first migration package and the migration of the authorizations configurations in the second migration package.
Security groups
For this scenario, we use the group that we created in Security groups on page 54, which, in this context, means a group that we loaded from the LDAP server directory. Important: We assume that this group exists in the Target environment and has no access definitions. For additional information, refer to 3.4.8, Deployment considerations on page 81. Under the Applications tab, the group received access to all of the options of the People application.
77
Table 3-19 DMAPPLICATIONAUTH object structure Field Object Structure Description Consumed by Value DMAPPLICATIONAUTH Authorizations MIGRATIONMGR
This group contains only the object structure DMMAXINTOBJECT. Figure 3-15 shows the migration tree of this group.
Table 3-21 on page 79 shows the values of the second migration group. All other fields have default values.
78
Table 3-21 RBAUTHORIZATIONS02 migration group Field Migration Group Description Value RBAUTHORIZATIONS02 IBM Redbooks Access Definitions Data
This group contains the object structure DMAPPLICATIONAUTH. Figure 3-16 shows the migration tree of this group.
79
Under the Migration Groups tab, we have added the migration group RBAUTHORIZATIONS01. Table 3-23 shows the values of the second package. All other fields have default values.
Table 3-23 RBAUTH02PKG migration package values Field Package Definition Name Description Type Processing Action Value RBAUTH02PKG IBM Redbooks Auth data SNAPSHOT AddChange
Under the Migration Groups tab, we have added the migration group RBAUTHORIZATIONS02.
Figure 3-18 shows the queries that we used to filter data for package RBAUTH02PKG.
The query that is used to filter the DMAPPLICATIONAUTH migration object is: app = PERSON and groupname in (RBGROUP)
80
3.4.7 Deployment
After you have saved and approved the two package definitions, you can proceed with the creation, distribution, and deployment. You must migrate the packages separately and in this order: RBAUTH01PKG RBAUTH02PKG
Admin mode
To avoid side effects to users that are connected to the system, you need to turn on the Admin mode in the Target environment prior to the package deployment.
Metadata assumptions
We assume that your product configuration has not modified the primary key of the APPLICATIONAUTH table or extended its object.
81
82
Chapter 4.
Migrating escalations
Escalations are server-side functions that automate actions and notifications in any Tivoli process automation engine-based product. Escalations are used extensively by clients and practitioners to automate many aspects of the business that are supported by Tivolis process automation engine-based products. For example, an escalation proactively monitors service desk compliance with the commitments of a service-level agreement (SLA). If the response time for a high priority service request (SR) is approaching the defined SLA threshold that is defined in a commitment, the escalation fires actions and notifications. The actions might increase the severity of the SR. The notifications might alert a service desk manager of approaching noncompliance.
This chapter describes the best practices in migrating escalations and has the following sections: 4.1, Requirements on page 84 4.2, Solution on page 84 4.3, Configuration applications on page 84 4.4, Object structures on page 87 4.5, Migration groups on page 89 4.6, Package definitions on page 92 4.7, Deployment on page 98 4.7.1, Escalations and cron tasks on page 99
83
4.1 Requirements
Escalations are defined in a development environment and subsequently promoted to test and production environments. A repeatable process is required to reliably (without any errors or failures) and accurately (without missing any required content) migrate escalation configurations and any related configurations.
4.2 Solution
We define an approach so that an escalation configuration and all related configurations are migrated in a single Snapshot migration package. From a content perspective, the migration of an escalation primarily implies the migration of the following configurations in order: Actions Action groups Person Person group Role Communication template Escalations
4.3.1 Actions
You can access actions and action groups from the appropriate product Start Center by clicking Go To System Configuration Platform Configuration Actions.
84
4.3.2 People
Whether or not a role or a communication template is associated with a person record, creation and management of the person record is done using the People application. You can access person records from the appropriate product Start Center by clicking Go To Administration Resources People.
4.3.4 Roles
When a communication template is associated with a role, the role is defined using the Roles application. You can access roles from the appropriate product Start Center by clicking Go To System Configuration Platform Configuration Roles A role can be built from a person or person group record.
4.3.6 Escalations
Escalations are created and managed using the Escalations application. You can access escalations from the appropriate product Start Center by clicking Go To System Configuration Platform Configuration Escalations.
85
An escalation executes one or more actions and notifications. Therefore, every escalation is associated with a corresponding set of actions or notifications.
86
The DMACTIONGROUP object structure, as part of the BPM migration group, supports action migration. Figure 4-3 on page 88 shows the contents of the DMACTIONGROUP object structure.
87
The DMPERSON object structure, as part of the RESOURCES migration group, supports person configuration migration. Figure 4-4 shows the contents of the DMPERSON object structure.
The DMPERSONGROUP object structure, as part of the RESOURCES migration group, supports person group migration. Figure 4-5 shows the contents of the DMPERSONGROUP object structure.
The DMROLE object structure, as part of the BPM migration group, supports role migration. Figure 4-6 shows the contents of the DMROLE object structure.
The DMCOMMTEMPLATE object structure, as part of the BPM migration group, supports the communication template migration. Figure 4-7 on page 89 shows the contents of the DMCOMMTEMPLATE object structure.
88
The DMESCALATION object structure, as part of the BPM migration group, supports the escalation migration. Figure 4-8 shows the contents of the DMESCALATION object structure.
89
Figure 4-10 shows the RESOURCES migration group and its dependencies as delivered with the product.
Using the BPM and RESOURCES migration groups is inefficient for the following reasons: Only a subset of the configurations is required to be migrated. Configurations pertaining to the dependencies listed with the two migration groups might have been already migrated. Consequently, Figure 4-11 shows the object structures and migration groups pertaining to BPM that are not required for the escalation migration scenario.
Note: The strike-through lines in Figure 4-11 on page 90 are only for explanatory purposes. The product does not provide a capability to remove object structures and migration groups in a strike-through manner. Figure 4-12 on page 91 shows the object structures and migration groups pertaining to RESOURCES that are not required for this migration scenario.
90
For the escalation migration scenario, create a new migration group containing only the required object structures. The new migration group can be easily constructed by duplicating the existing BPM migration group and modifying its contents. Figure 4-13 shows the new MYESCALATION migration group and its contents.
Figure 4-13 Object structures and migration group supporting escalation migration
Figure 4-14 shows the ordering of the object structures within this new migration group.
91
Note: Figure 4-14 on page 91 is used to depict the object structures and their ordering in the new migration group for explanatory purposes only. The product user interface might differ.
The INCCLOSE escalation has a single escalation point that runs an action, but no associated notifications. Figure 4-16 on page 93 shows the INCIDENT CLOSED action that is associated with the escalation.
92
This action is part of an action group. An action group enables multiple actions to be executed in sequence when an escalation runs. Escalation: An escalation is always associated with an action group that, in turn, contains one or more individual actions. Figure 4-17 shows the INCCLOSEGRP action group of which the INCIDENT CLOSED action is a member.
Figure 4-17 INCCLOSEGRP action group and INCIDENT CLOSED member action
The migration of the INCCLOSE escalation includes the migration of the associated action INCIDENT CLOSED and action group INCCLOSEGRP. Thus, SQL criteria can be set up for the object structures that are part of the migration package. Figure 4-18 on page 94 shows the specific SQL criteria setup for the escalation, action, and action group object structures.
93
The complete SQL Where clause for the DMACTION object structure is: action action action action in (select action from from ESCREFPOINT where in (select member from from escrefpoint where ACTIONGROUP where action in (select escalation in ('INCCLOSE') ) ) or actiongroup where action in (select escalation in ('INCCLOSE')))
Note: The SQL Where clause for the DMACTION object structure is designed to collect both the action groups and individual actions that are required for the escalation. The entries for action groups and individual actions both reside in the same ACTION table in the underlying production database. The complete SQL Where clause for the DMACTIONGROUP object structure is: action in (select action from ESCREFPOINT where escalation in ('INCCLOSE') ) The complete SQL Where clause for the DMESCALATION object structure is: escalation in ('INCCLOSE') Because no other related configuration is required to be collected for the migration of the INCCLOSE escalation, the other object structures in the migration package specify the SQL Where clause to be: 1=0 This SQL Where clause results in no configuration records being picked up for the DMPERSON, DMPERSONGROUP, DMROLE, and DMCOMMTEMPLATE object structures.
94
Note: Leaving the Where clause field empty implies all the configuration records of the primary business object of the object structure must be collected for migration. This result might not be the desired result. If no configuration record is to be extracted for an object structure, specify the SQL Where clause 1=0. The SQL Where clauses are constructed in a manner so that only the name of the specific escalation needs to be specified. If a separate escalation will be migrated, the same migration package definition can be reused by replacing the INCCLOSE escalation identifier with the identifier of the desired escalation. Tip: To the extent that the various object structures in a migration group are related to each other, specify the SQL clauses for these object structures in a manner so that they reference the primary object structure. Knowledge of the data models for the various applications is necessary to develop the SQL clauses. Save the package definition. The remainder of the migration steps can now be performed.
The SLAREVIEW escalation has three escalation points, each of which sends a notification, but no associated actions. All three escalation points send the same notification; however, each notification is sent out at a separate point in time. Figure 4-20 on page 96 shows the SLAREVIEW communication template that is associated with the escalation.
95
Use the Detail menu icon to the right of the Template field to open the SLAREVIEW communication template with the Communication Templates application. The Communication Template tab displays the content of the notification, such as the Subject and Message information. The Recipients tab lists a variety of recipient types. Opening the Roles section lists the roles to which this notification will be sent. Figure 4-21 shows the Roles section.
Use the Detail menu icon to the right of the Role field to open the SLACONTACT role with the Roles application. The Role tab displays the content of the role. This role does not depend on a person or person group configuration. Figure 4-22 on page 97 shows the SLACONTACT role.
96
The migration of the SLAREVIEW escalation includes the migration of the associated communication template SLAREVIEW and the role SLACONTACT. The SLAREVIEW escalation will be migrated with the same package definition that was defined earlier. There is no need to create a separate package definition. To reuse the existing package definition, simply alter the SQL criteria that are associated with the various object structures in the package definition. Alternatives: Before migrating the SLAREVIEW escalation, a physical package must be created before altering the SQL criteria to ensure that the configurations pertaining to the INCCLOSE escalation are extracted as desired. If a physical package has not been created yet and the SQL criteria are altered, it will no longer be possible to extract the configurations pertaining to the INCCLOSE escalation. Alternatively, SQL criteria can be combined to collect the configurations pertaining to both INCCLOSE and SLAREVIEW escalations. The choice is driven by implementation requirements. Thus, SQL criteria can be set up for the object structures that are part of the migration package. Figure 4-23 on page 98 shows the specific SQL criteria setup for the escalation, action, and action group object structures.
97
The complete SQL Where clause for the DMROLE object structure is: maxrole in (select sendtovalue from commtmpltsendto where templateid in (select distinct templateid from escnotification where escalation in ('SLAREVIEW'))) The complete SQL Where clause for the DMCOMMTEMPLATE object structure is: templateid in (select distinct templateid from escnotification where escalation in ('SLAREVIEW')) The complete SQL Where clause for the DMESCALATION object structure is: escalation in ('SLAREVIEW') Tip: If an incorrect SQL Where clause is entered, the Migration Manager will report the BMXAA7010E error. You must correct the SQL Where clause before the package definition can be saved. Save the package definition. The remainder of the migration steps can now be performed.
4.7 Deployment
Create, distribute, and deploy the package. The escalation configurations and their related configurations can be deployed into a live production environment. We discuss the deployment considerations in this section.
98
99
3. Define a migration package and associate the appropriate SQL criteria to the object structures in the migration group. 4. Approve, activate, and create the migration package. 5. Distribute the migration package to the Target production environment. 6. Deploy the migration package. 7. After the deployment is complete, open the migrated escalations in the Escalations application and activate each of them. Upon activation, the Escalation application determines a cron task instance is required and creates the instance and links it back into the escalation. The escalation is now in effect in the Target production environment. Updating an escalation: This approach is also valid for a migration scenario where the escalation is being updated rather than inserted. For an update migration scenario, the cron task instance is already associated with the escalation and this association is left intact during migration.
100
2. Reuse the existing migration package definition, which now reflects the addition of the DMCRONTASKDEF object structure. Figure 4-25 shows the SQL Where clause that is associated with the DMCRONTASKDEF object structure.
3. Perform the standard migration steps to create, distribute, and deploy the package.
101
Upon deployment, all cron task instances that are associated with the ESCALATION cron task are inserted or updated into the Target production database. A significant drawback of this approach is the inability to only take the specific cron task instance that is associated with the escalation being migrated. The Migration Manager provides the ability to specify SQL criteria only against the primary object of an object structure and not on subordinate objects. Important: If you do not intend to migrate any cron tasks, ensure that you do not collect any cron task configurations by specifying the SQL Where clause 1=0 for the DMCRONTASKDEF object structure.
Best practice: If a business application provides the capability to create or associate configurations automatically, you need to exploit this capability in support of migration. This capability can save time and resources.
102
Escalation 1001 is migrated to the Target production environment. Figure 4-27 shows the result of the migration.
In the Target production environment, a new escalation point is added to escalation 1001. Figure 4-28 shows the updated escalation.
In the Source production environment, a new escalation point is added to escalation 1001. Figure 4-29 on page 104 shows the updated escalation.
103
If escalation 1001 is now migrated from Source to Target with a processing action Replace, escalation point ESCPOINT3 in the Target will be deleted. The purpose of the Replace processing action is to completely replace the configuration in the Target production environment with the content from the migration package. Figure 4-30 shows the effect of the Replace processing action.
Figure 4-30 Modified escalation 1001 migrated with the Replace processing action
This effect is not the desired result. Changes made directly in a Target production environment, such as a production environment, need to be preserved. If escalation 1001 is migrated from the Source environment to the Target environment with processing action AddChange, escalation point ESCPOINT3 is preserved. The purpose of the AddChange processing action is to leave intact the elements of the configuration in the Target production environment. Figure 4-31 on page 105 shows the effect of the AddChange processing action.
104
Figure 4-31 Modified escalation 1001 migrated with the AddChange processing action
Best practice: If you deploy into a live production environment, specify the processing action AddChange for Snapshot migration packages.
105
For more information about object structure support for attached documents, review this document: http://www-01.ibm.com/support/docview.wss?uid=swg24027858 Best practice: During migration, exploit the ability to automatically collect an attached document for an object. Ensure that the attached document folder structure on the file system is the same in the Source and Target production environments. This approach is more efficient than organizing and collecting compiled sources for a migration package.
106
Figure 4-32 Error encountered when activating an escalation following the migration
The product log file or system console presents a Java stack trace: java.lang.NullPointerException at psdi.app.escalation.Escalation.activateCronTaskInstance(Escalation.ja va:140) at psdi.app.escalation.Escalation.actDeactEscalation(Escalation.java:104 ) at psdi.webclient.beans.escalation.EscalationAppBean.ADESC(EscalationApp Bean.java:48) This error occurs because the escalation configuration includes a reference to the cron task instance but the cron task itself has not been migrated. When the escalation is activated, the Escalation application attempts to activate this non-existent cron task instance. Following the best practice in migrating escalations avoids this pitfall.
107
108
Chapter 5.
109
5.1.1 Requirements
This use case covers the migration of the Work Order Tracking application changes. To be able to analyze the migration requirements, we first review the hypothetical business needs leading to the change requirements. For example, the application UI needed the following simple modifications: The Failure Reporting screen is not needed and needs to be removed. The Work Type field needs to be called Type. The Customer field is always required. The License field is not used and needs to be removed from the Work Order screen and from the More Search Fields in the Advanced Search menu. Add the Report Date in the list screen between the Description and Location, and make it sortable. Initially sort the searching results list by the Report Date field. The signature option for Apply SLA must not be visible to security. When clicking the Create KPI tool bar button when displaying a listing result, the system must warn that the action will affect all listed records. Make the Run Report menu option the first item in the Select Action menu. Disable the Change Status button in the list screen and make it available only in the Work Order screen. Remove the tool bar buttons for Initiate, Approve, Complete, and Close work order. Make the Where clause option first in the Advanced Search menu. To fulfill these needs, make the following changes to the application UI based on the business needs: 1. Using the Application Designer, search the application Work Order Tracking and open it for modifications. The name of the application is WOTRACK.
110
2. Using the workspace in Application Designer, we made the following changes to the WOTRACK application to meet the requirements: a. In the List tab screen, add a new table column control for the existing object attribute Report Date, between the Description and Location columns. You can change the layout of the control in the screen using editing techniques, such as click and drag, or cut and paste. b. Edit the properties of the Report Date control just added, clearing the Sortable? attribute and making the Input Mode attribute Read only. Note: The most commonly modified controls are text boxes, check boxes, sections, static text, help grid, table, and push buttons. c. Remove the unwanted control for the License field from the Main tab screen by deleting the control. d. Modify the signature option APPLYSLA advanced signature options, selecting the second option Warning appears when this action is selected. e. Modify the visibility of the key value APPLYSLA of the Select Action menu option, by clearing the Visible? option. f. Modify the visibility of the key value STATUS in the Toolbar Menu options, by making the tool bar button only available in the MAIN tab. g. Modify the position of the key value SEARCHWHER in the Search Menu options, by changing the value of sub position to a number lower than the first key value in the list. Note: This book does not cover the details of how to make the modifications for each solution, because it depends on the details of every specific requirement. For more information about how to use the Application Designer tool, see the IBM Maximo Asset Management 7.1, IBM Tivoli Asset Management for IT 7.1, IBM Tivoli Change and Configuration Management Database 7.1.1, and IBM Tivoli Service Request Manager 7.1 Application Developer Guide at this website: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm .tamit.doc_7.1/pdf/mam71_app_dev_guide.pdf These changes are considered minor in the sense that only the Application Designer tool, which is provided by the product, is used to fulfill the change requirements.
111
5.1.2 Solution
After reviewing the modifications to the Work Order Tracking application, an approach is identified so that all the related configuration content is migrated using a single Snapshot migration package. From a content perspective, the migration of the modified application requires the migration of the applications configuration.
112
Note: For more information about migration object structures, refer to the Migration Manager Guide at this website: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm .mam.doc_7.1/pdf/mam71_migration_mgr_guide.pdf
113
A new application migration group that includes the object structures needed to create a migration package for our use case scenario is necessary. The new group is based on the two groups mentioned previously and contains the highlighted object structures as illustrated in Figure 5-2 on page 113. Using the Migration Groups application, create a new Migration Group by duplicating the APPLICATION, removing the dependent migration groups. Now, we need to include the object structure that contains advanced signature option configuration in this new group. Add the object DMSIGOPTFLAG to the new group after the DMMAXLAUNCHENTRY object, and then, save. Figure 5-3 shows the new group.
Tip: Migration Groups are the shells that are used to define the specific content (or objects) to migrate, and they can be reused many times for multiple migration scenarios.
114
The next step is to define the SQL criteria within each of the object structures in the group to select the content. The Work Order Tracking applications name, WOTRACK, is used to create the criteria in the SQL conditions. Table 5-1 lists the Where clause SQL command statement conditions for each object. These conditions result in one or many records of configuration content for each migration object. Tip: A migration package might contain no records for a specific migration object. The Where clause of 1=2 will not generate an error and is commonly used when the object does not contain relevant configuration information in the specific object.
Table 5-1 Set Where clause definitions for the basic application package MIgration object DMMAXMODULES DMMAXAPPS DMMAXMENU DMSCTEMPLATE DMMAXLAUNCHENTRY DMSIGOPTFLAG Object MAXMODULES MAXAPPS MAXMENU SCTEMPLATE MAXLAUNCHENTRY SIGOPTFLAG Where clause 1=2 app in (WOTRACK) moduleapp in ('WOTRACK') 1=2 1=2 app in (WOTRACK)
In this case, we migrate only configuration content that is stored in the MAXAPPS, MAXMENU, and SIGOPTFLAG objects. Therefore, the conditions for each object generate the precise content to be stored in the package. Tip: When more than one application is changed and promoted for migration, you can add more application names separated by commas, as shown in the following example: app in (WOTRACK,CHANGE,JOBPLAN) The Where clauses for DMMAXMODULES, DMSCTEMPLATE, and DMLAUNCHENTRY are defined with a logical false statement (1=2), which generates no results. That is the intention in this particular case. Enter the SQL conditions by clicking the Set Where clause icon for the MYAPPLICATION migration group, as illustrated in Figure 5-4 on page 116.
115
5.1.7 Deployment
After the package definition is approved and activated, you can create and distribute the package. Then, deploy the package to the Target environment. Turn Admin mode on before deploying the package. The Migration Manager requires Admin mode when deploying a package that contains the object MAXAPPS. Resource: This document does not repeat the standard steps that are involved in deploying a package. For detailed information, refer to the Migration Manager Guide: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm .mam.doc_7.1/pdf/mam71_migration_mgr_guide.pdf
Language considerations
Language considerations are described in detail in 10.2, Multiple language considerations on page 201.
116
5.2 Complex application changes, including menus, lookups, and global data restrictions
In this new use case scenario, we describe the migration of more complicated configuration content that involves the use of other applications, before and after using the Application Designer tool. A new menu item is created, new library lookups are built, and security restrictions are applied to data attributes. This sequence of events in the configuration cycle causes migration dependencies that are analyzed during the migration requirements and solutions. Then, the migration dependencies are addressed during the migration package definition and deployment considerations.
5.2.1 Requirements
For this use case, we migrate modifications that have been made for the Assets application. To be able to analyze the migration requirements, we first review the hypothetical change requirements in which is a need to record test results for serialized assets, keep track of these tests and send notifications when a test failed: A new table is created with a one-to-many relationship from the assets table to this new Test Results table. This new table will store information, such as the test result, date, type of test, description of the test, and a defect code if the test failed, for any asset that is serialized. The test results are recorded using a new application UI that is available only to the testing team. The test type and results will be validated against predefined values, and the date field will default to current date. The test result cannot be deleted or duplicated. Searching and listing options are available in the List tab. All information is required with the exception of the defect code. A defect code is only required if the test failed. A new tab is added to the Asset application to display the test results associated to the asset, and it is accessible only to the test team.
117
To fulfill this need, we make the following minimum change configurations to accomplish the business needs under this scenario: 1. Using the Domains application, two new ALN domains are created to use for the validation values of the results and type of test. The names of these domains are MYTESTRESULT and MYTESTTYPE. 2. Using the Domains application, a new Table domain is created for looking up values in the linked asset field of the new table. The name of the domain is MYASSETTB. 3. Using the Database Configuration application, a new table object is created with all the attributes required, new domain associations, and a new relationship to the ASSET table, which is used to display the asset serial number and other object definitions. The name of the new table object is MYTESTS. 4. Using the Application Designer application, a new table ID reference to the table domain created in prior steps is created in the LOOKUPS system library XML. 5. Using the Application Designer application, a new application of type Power App is created with all of the configuration data that is required for the new table object. The name of the new application is MYTESTS. 6. Using the Application Designer application, the existing Assets application is configured with a new tab and controls needed to display the test results records linked to the asset. A new signature option is created to configure the security restrictions for this new tab. The name of the existing application is ASSET. 7. Using the Security Groups application, two new security groups are created for signature security access configuration to the new Test Results application and the new tab in the Assets application. The names of the two new security groups are TESTMGR and TESTTECH. 8. Using the Conditional Expression Manager application, a new condition is created that evaluates the test result attribute when the value is FAILED. The name of the new conditional expression is MYFAILED. 9. Using the Security Groups application, a new global data restriction is created to evaluate the test result field during data entry, based on the condition that was created in the previous step, and to dynamically change the input mode to Required of the test defect code field. The attribute restriction is for the application name MYTEST. The configuration content that is generated from at least five separate applications needs to be migrated, and the order in which the configuration is created is extremely important.
118
5.2.2 Solution
After reviewing the modifications for this case scenario, we identified an approach so that all the related configuration content is migrated using more than one Snapshot migration package. These packages are deployed on the Target environment in a specific sequence. From a content perspective, the migration of the modified application requires the migration of the following configurations in order: Domains Database table, sequence, and relationships Conditional expressions System library lookups Applications, menus, and signature options Global security restrictions Security groups
119
Global security restrictions To configure global security restrictions, click Go To System Configuration Security Groups, and select Select Action Global Data Restrictions. Security groups To launch the Security Groups application, click Go To System Configuration Security Groups. Object structures The Object Structures application can be accessed by clicking Go To System Configuration Migration Object Structures.
120
We cannot migrate this content using the standard object structure, because our use case configured a global data restriction, which is linked to an application name and not to a security group. DMMAAXGROUP: You can obtain more information about the standard migration object structure DMMAXGROUP in Chapter 3, Migrating security configuration data on page 51. Therefore, to migrate the global security restriction, you need to create a new migration object structure. The new object is a duplicate of the DMMAXAPPS object, and the table SECURITYRESTRICT is added to relate its content by application name. Create a new migration object structure by duplicating DMMAXAPPS with the following characteristics: Object structure Description MYMAXAPPS Application with data security restriction
Add a new source object at the end of the list of source objects for MYMAXAPPS with the following characteristics: Object Parent object Relationship Object order SECURITYRESTRICT MAXAPPS SECURITYRESTRICT 6 (or default)
Save the new object structure. Figure 5-5 shows the new MYMAXAPPS object structure list.
The new object structure created here requires the migration of its configuration content, and it is in the standard object structure DMMAXINTOBJECT.
121
Add a new source object at the end of the list of source objects for MYMAXPRESENTATION with the following characteristics, leaving all of the default values: Object Object order MAXPRESENTATION 1 (or default)
Save the new object structure. Figure 5-6 shows the new MYMAXPRESENTATION object structure.
The new object structure created here also requires the migration of its configuration content, which is migrated using the standard object structure DMMAXINTOBJECT.
122
DMCONDITION DMMAXMENU DMMAXGROUP MYMAXAPPS MYMAXPRESENTATION Note: For more information about migration object structures, refer to the Migration Manager Guide: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm .mam.doc_7.1/pdf/mam71_migration_mgr_guide.pdf
123
Application group
This new migration group is created from standard groups as it was in our basic changes scenario in 5.1.5, Migration groups on page 113. However, this situation differs in regard to the conditional expressions and the system lookups. The CONDITION table holds the conditional expressions, and in our scenario, we need to migrate a new expression that is built to evaluate the new table. The Migration Manager creates the new table using DMMAXOBJECTCFG, which is part of the first group, as shown in Figure 5-7. Also, DMCONDITION is part of that group, too; however, the groups migration order is reversed, meaning that, the new table is created after the condition. If we try to migrate the condition with that group, it will fail, because the new table has not been created when it processes the condition. Figure 5-8 on page 125 displays the migration object configuration and the object order.
124
To take care of the issue, we migrate the conditional expressions in the applications group and not in the data dictionary group. We also include the new object structure that was created for migrating the system lookups library with this new group. Create the new group by duplicating the standard APPLICATIONS group first, leaving all defaults, and then, follow these steps: 1. Remove all dependency groups. 2. Add the object structure DMCONDITION to the list of objects and rearrange the object order so that the added object is first, shifting the other objects one place. 3. Remove the object DMMAXAPPS. Take note of this object order before deleting it. 4. Add the object structure MYMAXAPPS that was created in 5.2.4, Object structures on page 120. Make the object order the same as it was for DMMAXAPPS. 5. Add the object structure MYMAXPRESENTATION to the list of objects. Leave it at the end of the list. 6. Save the group. Figure 5-9 on page 126 shows the newly created group object list and the order of the migration objects.
125
126
127
The conditions for each object generate the precise content for this package. The Where clauses for the objects that are defined with a logical false statement (1=2) do not generate any results, because there is no relevant content to migrate in this particular case. Click the Set Where Clause icon to enter the SQL conditions, as shown in the Table 5-2 on page 127, and then, save the package definition.
Application package
Now, create a new package definition that you can name MYTESTS-APP. This package is the Snapshot type and contains the new migration group MYNEWAPP, which was created for this scenario. The next step is to define the SQL criteria within each of the object structures in the group. Using the information that was gathered from 5.2.1, Requirements on page 117, we use the names of the objects (new or changed) to construct the SQL conditions. Table 5-3 lists the Where clause SQL command statement conditions for each object. These conditions result in one or many records of configuration content for each migration object.
Table 5-3 Where clause definitions for MYTESTS-APP package MIgration object DMCONDITION DMMAXMODULES MYMAXAPPS DMMAXMENU DMSCTEMPLATE DMMAXLAUNCHENTRY MYMAXPRESENTATION Object CONDITION MAXMODULES MAXAPPS MAXMENU SCTEMPLATE MAXLAUNCHENTRY MAXPRESENTATION Where clause conditionnum in ('MYFAILED') 1=2 app in ('MYTESTS', 'ASSET') moduleapp in ('MYTESTS') or keyvalue in ('MYTESTS') 1=2 1=2 app in ('LOOKUPS')
The conditions for each object generate the precise content for this package. The Where clauses for the objects that are defined with a logical false statement (1=2) do not generate any results, because there is no relevant content to migrate in this particular case. Click the Set Where Clause icon to enter the SQL conditions, as shown in Table 5-3 on page 128, and then, save the package definition.
128
Security package
Now, create a new package definition that you can name MYTESTS-SEC. This package is the Snapshot type and contains the new migration group MYAPPSECURITY, which was created for this scenario. The next step is to define the SQL criteria within each of the object structures in the group. Using the information that was gathered from 5.2.1, Requirements on page 117, we use the names of the objects (new or changed) to construct the SQL conditions. Table 5-4 lists the Where clause SQL command statement conditions for each object. These conditions result in one or many records of configuration content for each migration object.
Table 5-4 Where clause definitions for MYTESTS-SEC package MIgration object DMSIGOPTION DMMAXSERVSECURITY DMMAXGROUP DMMAXUSER DMSIGOPTFLAG DMCTRLGROUP Object SIGOPTION MAXSERVSECURITY MAXGROUP MAXUSER SIGOPTFLAG CTRLGROUP Where clause 1=2 1=2 groupname in ('TESTMGR', 'TESTTECH') 1=2 1=2 1=2
The conditions for each object generate the precise content for this package. The Where clauses for the objects defined with a logical false statement (1=2) do not generate any results, because there is no relevant content to migrate in this particular case. Click the Set Where Clause icon to enter the SQL conditions, as shown in Table 5-4, and then, save the package definition.
5.2.7 Deployment
After all of the package definitions are created, approved, and activated, create and distribute each package to the Target. After the packages are available from the Target environment, it is time to deploy them. For the purposes of this book, we assume that all of the required change and release protocols (if any) have been put in place. We also assume that the users
129
in the Target environment have been notified that the system will not be available during deployment time. For our use case scenario, follow these deployment steps: 1. Turn Admin mode on from the Migration Manager application. Because the configuration content modifies the data dictionary and touches the application presentations for the UI (the MAXAPPS object is in the package), the system requires this mode of operation during deployment. We also recommend that you have the minimum amount of application infrastructure traffic by having no users connected to the environment. 2. After verifying that the system is now in Admin mode operation, load and deploy the Data Dictionary package, MYTESTS-DD. If an error occurs, stop and follow troubleshooting procedures until the error has been corrected. Continue to the next step only if there are no errors. 3. After deploying the first package without any errors, verify that the content has been migrated, and do not proceed until the content has been verified. 4. Load and deploy the Application package, MYTESTS-APP. Again, if errors occur, stop and follow troubleshooting procedures. Continue to the next step only if there are no errors. 5. After deploying the second package without any errors, verify that the expected content has been migrated and do not proceed until the content has been verified. 6. Load and deploy the Security package, MYTESTS-SEC. Again, if errors occur, stop and follow the troubleshooting procedures. 7. After all of the content is validated, turn Admin mode off in the system to allow users to log in. Refer to Chapter 11, Troubleshooting on page 239 for more information about troubleshooting.
Admin mode
When deploying packages containing structural changes, such as in the data dictionary or application presentation, the system expects the Admin mode operation be turned on. In a single Java virtual machine (JVM) server environment, there is no problem; however, when working on a multiple server environment or a cluster, all of the servers in the cluster must switch to this mode.
130
During this mode, the application does not allow any users to log in without the administrators permission. Always remember to switch off this mode of operation after completing the deployment.
5.3.1 Requirements
Previously, we reviewed a case scenario where a new application for test results was created. As part of the same requirement, a new Start Center is requested to be migrated: A new test portal Start Center is created for test managers and technicians and is linked to the identified security groups for these roles. The Start Center contains a favorite application portlet with links to the new application Test Results and to the Assets application. The Start Center contains the usual bulletin board and task portlets. The Start Center contains a result set portlet that contains a new query that was created in the new application Test Results and that filters the test table to records with the result of Failed. The following minimum change configurations are made to fulfill the requirement: 1. Using the Test Results application that was created in 5.2, Complex application changes, including menus, lookups, and global data restrictions on page 117), create a new query to filter Failed results. The clause name for the query is identified as FAILEDTEST. 2. Using the Start Center application, create a new template with a Narrow-Wide layout with the Favorite Applications portlet on the left and the Bulletin Board, Inbox Assignment, and Result Set portlets on the right. The Result Set portlet needs to point to the new query in the Test Results application. The name of the template was identified as Template-20100927205646.
131
In this case scenario, we created the configuration using the query capabilities of existing applications and the Start Center template configuration. The sequence in which the configuration was created is extremely important to consider during migration.
5.3.2 Solution
After reviewing the changes in our scenario, our migration approach identifies the use of one package that uses the application group, as shown in the basic use case scenario in 5.1, Basic application changes and signature options on page 110. However, after carefully reviewing the configuration object content, we see the need to create a new migration object for the migration of the Query object. This object was not shipped with the product. Creating the new object structure will require its migration using the Data Dictionary migration group in a separate package.
Object Structures
You can access the Object Structures application by clicking Go To System Configuration Migration Object Structures.
132
Tip: Always try using the standard objects and groups that are shipped with the product, because they reflect the logical business object structures and associations that have been built by the developers.
Add a new Source object to the list of Source objects for MYQUERY with the following characteristics, leaving all of the default values: Object Object order QUERY 1 (or default)
Save the new object structure. Figure 5-10 shows the new MYQUERY object structure.
The new object structure that is created here also requires the migration of its configuration content, which is migrated using the standard object structure DMMAXINTOBJECT.
133
DMMAXINTOBJECT MYQUERY
Resource: For more information about migration object structures, refer to the Migration Manager Guide: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm .mam.doc_7.1/pdf/mam71_migration_mgr_guide.pdf
Application group
As we have seen in previous scenarios, we must modify the standard migration group to remove the dependency groups and to add a missing, but related in content, object structure. The Start Center template content is already in this standard group, in the DMSCTEMPLATE object structure. We are adding the query content in this group.
134
Using the Migration Object Structures application, create the new group by duplicating the standard APPLICATIONS group. The group name is MYAPPSC. We need to perform these configuration actions: 1. Remove all dependency groups. 2. Add the object structure MYQUERY, which was created in 5.3.4, Object structures on page 132. Leave this object at the end of the list. 3. Save the group. Figure 5-11 shows the newly created group object list and the order of the migration objects.
135
Table 5-5 Where clause definitions for MYSC-DD package MIgration object DMMAXSERVICE DMLANGUAGE DMMAXMESSAGES DMCURRENCY DMSETS DMORGANIZATION DMMAXVARS DMCONDITION DMMAXDOMAIN DMMAXOBJECTCFG DMMAXSEQUENCE DMMAXLOOKUPMAP DMMAXRELATIONSHIP DMMAXINTOBJECT DMGLCONFIGURE Object MAXSERVICE LANGUAGE MAXMESSAGES CURRENCY SETS ORGANIZATION MAXVARS CONDITION MAXDOMAIN MAXOBJECTCFG MAXSEQUENCE MAXLOOKUPMAP MAXRELATIONSHIP MAXINTOBJECT GLCONFIGURE Where clause 1=2 1=2 1=2 1=2 1=2 1=2 1=2 1=2 1=2 1=2 1=2 1=2 1=2 intobjectname in ('MYQUERY') 1=2
The conditions for each object generate the precise content for this package. The Where clauses for the objects defined with a logical false statement (1=2) do not generate any results, because there is no relevant content to migrate in this particular case. Click the Set Where Clause icon to enter the SQL conditions, as shown in the table Table 5-5, and then, save the package definition.
Application package
Next, we create a new Snapshot package definition that you can name MYSC-APP. This package contains the new migration group MYAPPSC, which we created for this scenario. Define the SQL criteria within each of the object structures in the group. Using the information that was gathered from 5.3.1, Requirements on page 131, we use the names of the objects to construct the SQL conditions.
136
Table 5-6 lists the Where clause SQL command statement conditions for each object. These conditions result in one or many records of configuration content for each migration object.
Table 5-6 Where clause definitions for MYSC-APP package MIgration object DMMAXMODULES MYMAXAPPS DMMAXMENU DMSCTEMPLATE DMMAXLAUNCHENTRY MYQUERY Object MAXMODULES MAXAPPS MAXMENU SCTEMPLATE MAXLAUNCHENTRY QUERY Where Clause 1=2 1=2 1=2 name in ('Template-20100927205646') 1=2 clausename='FAILEDTESTS' and app='MYTESTS'
The conditions for each object generate the precise content for this package. The Where clauses for the objects defined with a logical false statement (1=2) do not generate any results, because there is no relevant content to migrate in this particular case. Click the Set Where Clause icon to enter the SQL conditions, as shown in Table 5-6, and then save, the package definition.
5.3.7 Deployment
After the two package definitions are created, approved, and activated, you create and distribute each package to the Target. Make the packages available to the Target environment, and perform all of the change management preparation. It is now time to deploy. For our use case scenario, follow these deployment steps: 1. Turn Admin mode on from the Migration Manager application. This task is always a requirement when the deployment involves database configuration or screen presentation updates. 2. After verifying that the system is now in Admin mode operation, load and deploy the Data Dictionary package, MYSC-DD. If an error occurs, stop and follow troubleshooting procedures until the error has been corrected. Continue to the next step only if there are no errors.
137
3. After deploying the first package without errors, verify that the content has been migrated, and do not proceed until the content has been verified. 4. Load and deploy the Application package (MYSC-APP) next. Again, if errors occur, stop and follow troubleshooting procedures. Continue to the next step only if there are no errors. 5. After all of the content is validated, turn Admin mode off in the system to allow the users to log in. Refer to Chapter 11, Troubleshooting on page 239 for more information about troubleshooting.
138
Chapter 6.
Migrating workflows
Workflow represents a defined business process that is layered on a Maximo business object (MBO). It is used extensively to automate many aspects of the business. For example, you can use a workflow process to automate the approval routing of a user-submitted purchase requisition or change request. In its simplest form, a workflow process can consist of a conditional action, based on a submitted record criteria, requiring no user interaction. More complex workflow processes can be split into sub-processes and used to manage highly interactive change management approval processes, such as multiple assignments, actions (for example, status updates), and notifications via email or pager systems, using predefined communication templates. This chapter has the following sections: 6.1, Migrating specific workflow modifications on page 140 6.2, Migrating workflows and all their related content on page 147
139
6.1.1 Requirements
In this use case scenario, we use the Source workflow PRSTATUS. The requirement is to migrate a duplicate of this workflow with modifications to the action lines, including communication templates that advise the requestor of the status of the request.
6.1.2 Solution
The original workflow might already exist (PRSTATUS) in the Target environment, and a new workflow that is based on the existing workflow needs to be migrated. Therefore, only the new workflow process and the components that have been added will be migrated. Any existing component that has not been changed is not migrated. We defined an approach so that the workflow configuration and the related new configurations are migrated in a single Snapshot migration package. From a content perspective, the migration of a workflow also implies the migration of the workflow configurations in the following order: Actions Action groups (assumes Data Dictionary is migrated) Roles Communication templates Workflow process We use the standard business process management (BPM) workflow group as the base to define the content to migrate. This group also includes the INBOUNDCOMMCONFIG and ESCALATIONS object structures. These object structures are not required to support this focused migration use case. They will remain in the group definition, but they will be filtered out using SQL query filters. In addition, a workflow specifies interaction with the users by using assignments and communication templates that are targeted at persons or role players, which are defined as either a Person or Person Group. For the purpose of this document, we also assumed that these dependencies and other dependencies
140
have been migrated or loaded into the Target system, as described in Chapter 1, Migration strategy on page 1.
141
The notification will include the new communication template RB_REQ_APP, which is shown in Figure 6-2.
The naming convention with the prefix RB_ will be applied to support the selective migration process that we will describe later. This naming convention is extremely important and supports the selective migration process that is described further in this chapter. Notifications are managed using the Communication Templates application and can be accessed by navigating to Go To System Configuration Platform Configuration Communication Templates. A communication template can define one or more recipients in the form of email address, role, person, or person group. For this exercise, a communication template, RB_REQ_APP is added to the Action PR_APPR in the connector line between the two task nodes. In addition, a role will be related to the Purchase Requisition requestor. See Figure 6-3 on page 143.
142
When the communication template is associated with a role, the role has to be defined using the Roles application, which can be accessed by clicking Go To System Configuration Platform Configuration Roles. You can create the role based on a previously defined person or person group record or a role that is associated with a person record. For this example, the use of a record-related role player (PR.Requestedby) allows the use of the previously loaded PR records on a role-based basis. The requestor of the purchase requisition is the role player in this case, as shown in Figure 6-4.
143
144
Figure 6-6 shows the resulting migration group RB_BPM that includes only the object structures that are required to support this workflow migration.
145
The following example illustrates how an workflow must be reviewed to determine the appropriate SQL criteria: 1. The modified connectors action requires a communication template, RB_REQ_APP, which was added with the corresponding new role RB_REQUEST. 2. In the Workflow Designer application, the Workflow field specifies the process name of the workflow that was created called REDBOOK_WF, which will be included in the SQL clause. When specifying the workflow name, we also specify the status ACTIVE, because a workflow can have many revisions, but only one version is active. 3. The SQL criteria for the various object structures are specified using the Set Where Clause function of the Migration Manager application. The Where clauses specified identify the particular configuration records to export. Where no export is required, the clause 1=0 or 1=2 is specified. 4. You can now save the package definition, because you have entered the SQL criteria necessary to migrate the workflow, as shown in Figure 6-7.
6.1.7 Deployment
After the package definition has been saved and approved, the physical package can be created, distributed, and deployed using the Migration Manager application. The deployment of workflows and their associated configurations can be performed in a live environment without the need to restart the application server or turn on Admin mode.
146
Version
It is common practice to develop and test multiple versions of a workflow process. However, you will migrate the chosen active version, and the version will reset to 1 in the Target environment.
Activation
Although a manual activation step is necessary, this step also gives you the opportunity to verify the contents of the workflow and to only activate the workflow at the appropriate point in time in the Target environment.
6.2.1 Requirements
For this example, the main process ISMACCEPT and all of its sub-processes have been changed extensively. There have been many actions, roles, and communication templates changed and added to the process to meet the change requirements. However, there has been no documentation of what exactly was changed, and the Migration Manager Change package was not used to track these configuration changes. The only known fact is that the workflow process ISMACCEPT has been reconfigured and needs to be migrated. A repeatable process is required to reliably (without any errors or failures) and accurately (without missing any required content) migrate workflow process changes.
147
6.2.2 Solution
After reviewing the migration requirements for this case scenario, we identified an approach so that all the related configuration content is migrated using a Snapshot migration package. The package is configured to use the standard migration group for business process management (BPM), which is installed by Tivolis process automation engine. From a content perspective, the migration of modified workflow and related content requires the migration of the following configuration objects: Roles Actions Communication templates Workflow processes and sub-processes
148
DMCOMMTEMPLATE DMWFPROCESS Resource: For more information about migration object structures, refer to the Migration Manager Guide: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm .mam.doc_7.1/pdf/mam71_migration_mgr_guide.pdf
149
150
Table 6-1 Where clause conditions for MYTESTS-WF package MIgration object DMACTION Object ACTION Where clause action in (select action from ACTIONGROUP where action in (select action from WFACTION where processname in ('ISMACCEPT') or processname in (select subprocessname from wfsubprocess where processname in ('ISMACCEPT')))) or action in (select member from actiongroup where action in (select action from WFACTION where processname in ('ISMACCEPT') or processname in (select subprocessname from wfsubprocess where processname in ('ISMACCEPT')))) action in (select action from WFACTION where processname in ('ISMACCEPT') or processname in (select subprocessname from wfsubprocess where processname in ('ISMACCEPT'))) maxrole in (select sendtovalue from COMMTMPLTSENDTO where type='ROLE' and templateid in (select templateid from COMMTEMPLATE where templateid in (select templateid from WFNOTIFICATION where processname in ('ISMACCEPT') or processname in (select subprocessname from wfsubprocess where processname in ('ISMACCEPT'))) )) templateid in (select templateid from WFNOTIFICATION where processname in ('ISMACCEPT') or processname in (select subprocessname from wfsubprocess where processname in ('ISMACCEPT'))) 1=2 (processname in ('ISMACCEPT') and active=1) or processname in (select subprocessname from wfsubprocess where processname in ('ISMACCEPT')) 1=2
DMACTIONGROUP
ACTIONGROUP
DMROLE
MAXROLE
DMCOMMTEMPLATE
COMMTEMPLATE
DMESCALATION DMWFPROCESS
ESCALATION WFPROCESS
DMINBOUNDCOMMCFG
INBOUNDCOMMCFG
The conditions for each object generate the precise content for this package. The Where clauses for the objects defined with a logical false statement (1=2) will
151
generate no results, because escalation or inbound communication content will not be migrated in this particular case.
6.2.7 Deployment
After all package definitions are saved, approved, and activated, the next step is to create and distribute the package to the Target environment. After the package is available to the Target environment, it is time to deploy. Load and deploy the MYTESTS-WF package in the Target environment. The deployment does not require turning Admin Mode on; however, it is a good idea to turn Admin mode on as part of the change management process.
152
Chapter 7.
Migrating classifications
Business data grows daily. To ease reporting and understand data better, you must classify data according to your business needs. This chapter provides information about migrating classification data via Migration Manager, and it contains the following sections: 7.1, Scenario on page 154 7.2, Configuration applications on page 155 7.3, Object structure on page 157 7.4, Migration group on page 158 7.5, Package definition on page 159 7.6, Deployment on page 160 7.7, Deployment considerations on page 161
153
7.1 Scenario
Classifications are hierarchical data that allows you to group and classify data. Users can report and understand the problem distribution easier with classification data. You can use classifications in many applications. Also, you can define separate attributes for each classification. Attributes are the characteristics of the data. Attributes help improve data consistency and searching for data. For example, consider that there are two classifications. One classification is a service classification NET.NETWORKSERVICE, and the other classification is an application server classification named APP.J2EE.WEBSPHERE.WEBSPHERESERVER. You can see the examples of the classification attributes in Table 7-1.
Table 7-1 Example of classification attributes NET.NETWORKSERVICE classification attributes Service name Context IP Bidirectional (BIDI) flag APP.J2EE.WEBSPHERE.WEBSPHERE SERVER classification attributes Status Product name Product version
You can search configuration items (CIs) via their attributes. For example, you can search CIs with an Active status and Version 6.0.2.1, according to your classifications. There might be separate domains attached to these attributes to provide data consistency. You can refer to Chapter 2, Migrating data dictionary on page 29 for more information. You must create classifications to group data according to your grouping needs.
7.1.1 Requirements
Classification data is hierarchical data. Classifications can have a maximum of one parent, but they might have infinite child classifications. Classifications must be transferred from the development environment to the production environment sequentially. Classifications that will be promoted must be migrated without an interruption.
154
7.1.2 Solution
You cannot use the predefined DMCLASSIFICATION object structure to migrate classification data, because classification data has a child and parent hierarchy, and this object structure is not enough for a hierarchical data structure. Child data and parent data might have been created in random order in the Source environment, which can lead to the random export order of classifications. If the child classification is exported before the parent classification, it will cause an error, because the migration process is unable to find the parent classification in the database while processing the child classification. To prevent this situation, create a new object structure to migrate the data successfully. Make the new object structure recursive. It must begin from the top-level classification. When the Migration Manager processes the top level, it then processes the next level until there is no lower level of classification. Classification data can have an organization, site, or person as the owner group and a service group attached to itself. Migrate these groups before migrating classification data. Otherwise, you can have validation errors while migrating classifications.
155
Before migrating classifications, be sure to migrate organizations, person groups, domains, measure units, and service groups if you have used these objects in classification or attribute definitions. Figure 7-2 illustrates the supporting objects.
156
To duplicate the object structure, navigate to Go To System Configuration Migration Object Structures. Select the DMCLASSIFICATION object structure, and select Duplicate Object Structure in the Select Action menu, as shown in Figure 7-4.
Figure 7-4 Duplicate Object Structure option in the Select Action menu
When you duplicate the object structure, give it a name, such as MYCLASSIFICATION, and then, select the Self Reference option to make the object structure recursive, as shown in Figure 7-5.
157
When you select the check box, you see that the relationship field next to the first object in the object structure becomes editable. Type CHILDREN to the relationship field next to the first object, as shown in Figure 7-6.
Now, you have the correct object structure to create a migration group. Relationships: The child relationship is a relationship from the classstructure object to the same object. It is used to find the child records for a given classstructure. The Where clause of the relationship is parent=:classstructureid. Figure 7-7 shows the new object structure.
158
This migration group does not depend on other groups. You can directly migrate this group without any group order.
159
Warning: You must write the top-level classification to the SQL to migrate all classifications successfully. The Migration Manager will migrate the child classifications automatically. The Migration Manager validates the SQL statement. There will be an error message prior to saving the package if any SQL statement fails on validation. With this method, classification data will be migrated from the top level to the bottom level consecutively. The Migration Manager will get all of the classifications recursively. You can see the Where clause statement window in Figure 7-10.
7.6 Deployment
After creating the package, you must distribute the package to get it to the Target environment. You can distribute the package via file-type distribution or database-type distribution. For more information, refer to Chapter 10, Common topics on page 197. To migrate the data successfully, migrate the myclassification object structure to the Target environment.
160
Tip: When you migrate classifications, you do not need to switch Admin mode
After the deployment to the Target environment, users can start to use the promoted classifications in the new environment.
161
162
Chapter 8.
163
8.3, Solution on page 165 8.4, Configuration applications on page 168 8.5, Object structures on page 170 8.6, Migration groups on page 172 8.7, Package definitions on page 173 8.8, Deployment on page 176
164
8.2 Requirements
Migrate the additional and modified service offerings in a Tivoli Service Request Manager implementation using the sample migration packages that are provided as templates for the various service offerings that are provided or developed.
8.3 Solution
You can access the template migration package by navigating to the Migration Package application by selecting Go To System Configuration Migration Migration Manager, as depicted in Figure 8-1 on page 166.
165
For this scenario, we need the PMSC72_ServiceTemplate package. Because the name of this package can differ from your exact environment, you can search for it, as demonstrated in Figure 8-2 on page 167.
166
When you examine the Migration Groups structure, you can see that there are many things to consider about this scenario, as illustrated in Figure 8-3.
167
Job Plans
View Documents
Offerings
Actions Note: There are two Object Structures for this application.
168
Object structure
Workflow Designer
Ticket Templates
Service Groups
Automation Scripts
You can use the following navigation links to access these applications: Launch In Context: Select Go To System Configuration Platform Configuration Launch in Context. Job Plans: Select Go To Planning Job Plans.
169
View Documents: Select Go To Administration View Documents. Offerings: Select Go To Service Request Manager Catalog Offerings. Actions: Select Go To System Configuration Platform Configuration Actions. Classifications (or Classifications (SP)): Select Go To Administration Classifications. Workflow Designer: Select Go To System Configuration Platform Configuration Workflow Designer. Ticket Templates: Select Go To Service Desk Ticket Templates. Service Groups: Select Go To Service Request Manager Catalog Service Groups. Automation Scripts: Select Go To Script Management Automation Scripts.
8.5.1 PMSC_JOBPLAN
This object structure has classes for inbound and outbound processing that are unique to the service offering content. These classes are not used for other object structures or purposes. Figure 8-4 demonstrates the identified classes.
Figure 8-4 Custom Tivoli Service Request Manager classes for Job Plan migration
170
Additionally, IBM delivers a new relationship for the Tivoli Service Request Manager product offering to enable you to migrate the service offerings properly. Figure 8-5 shows this relationship.
We encourage you to review the definition separately using the Database Configuration application.
8.5.2 PMSC_OFFERING
The PMSC_Offering object structure requires that you understand that additional classes and relationships are used separately from the standard product. See Figure 8-6.
The relationships for this object structure are listed in Figure 8-7.
8.5.3 PMSC_DOCINFO
The Tivoli Service Request Manager Service Offering content provides you with the following Classes for the PMSC_DOCINFO object structure, as shown in Figure 8-8 on page 172.
171
These classes enable the product to properly process content-type data with the migration of configuration data. Important: This object structure is tightly coupled with the PMSCOFFERING object. If you try to use it for docinfo objects that are not owned by PMSCOFFERING, it will fail in the creation phase. The Where clause that is provided with the product is: docinfoid in (select docinfoid from doclinks where ownertable='PMSCOFFERING' and ownerid in (select itemid from pmscoffering where itemnum='SERVICENAME'))
172
Note that the order is important, but also that there are gaps in the numbering order to allow you to easily add any object structures that you require.
173
Figure 8-11 displays one of the SQL criteria statements for the various packages.
Figure 8-11 Set Where clause dialog box with MAXLAUNCHENTRY selected
174
launchentryname in (select value from sigoptflag where optionname in (select licaction from pmscoffering where (itemnum='SERVICENAME' and actiontype='LIC')) and flagname='LAUNCHENTRY') In this code, replace SERVICENAME with the individual itemnum values or another construct that satisfies your record selection criteria. The SQL syntax in Example 8-2 enables you to select several offerings to migrate.
Example 8-2 Sample caption
launchentryname in (select value from sigoptflag where optionname in (select licaction from pmscoffering where (itemnum in ('SERVICENAME1','SERVICENAME2','SERVICENAME3','SERVICENAME4') and actiontype='LIC')) and flagname='LAUNCHENTRY') In this fashion, you choose to migrate four service offerings. This criteria must match the other object structures criteria to ensure the correct migration. Example 8-3 demonstrates how to migrate all of the offerings for this specific migration object.
Example 8-3 Sample caption
launchentryname in (select value from sigoptflag where optionname in (select licaction from pmscoffering where (actiontype='LIC')) and flagname='LAUNCHENTRY') Criteria must match: We emphasize that the selection criteria must match from one object structure to another object structure to ensure that the correct record sets are migrated. The syntax of the SQL and the various artifacts that are used to create the record set might vary, but the criteria must be the same.
175
8.8 Deployment
After creating the package, you must distribute the package to get it to the Target environment. Use file distribution. The Migration Manager Guide explains this procedure. Migration: The migration of service offering does not require admin mode or server restart. After the deployment to the Target environment, users can start to use the service offering in the Target environment.
176
Chapter 9.
177
9.1 Requirements
Service catalogs are defined in a development environment and subsequently promoted to test and production environments. As standard, Tivoli Service Request Manager is delivered with the two migration groups that are required to migrate service catalogs. In Chapter 8, Migrating service offering content on page 163, we explored service offering migration. The service catalog consists of service offerings; therefore, we can use the same PMSC72_OFFERING migration group, in addition to the PMSC72_CATALOG migration group. The predefined packages migrate data that is relevant to the following concepts: Launch in context Signature options Actions (job plan) Job plans Commodities Workflow processes Ticket templates Offerings Document information Security groups Classifications Asset attributes Automated scripts Actions Action groups Security groups Service catalog
9.2 Solution
The PMSC72_CatalogTemplate Package Definition does not require any changes to the object structures or migration objects. You are required to configure to the predefined Where clauses that are associated with the object structures to specify the service catalog (CATALOGNAME) to migrate. Access the template Migration Package by navigating to the Migration Package application by selecting Go To System Configuration Migration Migration Package, as depicted in Figure 9-1 on page 179.
178
Use the migration package template that ships with the product, as depicted in Figure 9-2 on page 180, to migrate a service catalog.
179
The PMSC72_CatalogTemplate consists of the PMSC72_CATALOG and PMSC72_OFFERING migration groups, as illustrated in Figure 9-3.
180
Table 9-1 Configuration applications Application name Security Groups Object structure
Catalogs
9.3.2 Catalogs
The Catalogs application is accessed from the appropriate product Start Center by selecting Go To Service Request Manager Catalog Catalogs.
181
The PMSCCATALOG object structure, as part of the PMSC72_CATALOG migration group, supports the service catalog migration. Figure 9-5 shows the contents of the PMSCCATALOG object structure.
The DMMAXLAUNCHENTRY object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-6 shows the contents of the DMMAXLAUNCHENTRY object structure.
The DMSIGOPTION object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 7 shows the contents of the DMSIGOPTION object structure.
182
The DMSIGOPTFLAG object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-8 shows the contents of the DMSIGOPTFLAG object structure.
The PMSC_JPACTION object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-9 shows the contents of the PMSC_JPACTION object structure.
The PMSC_JOBPLAN object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-10 shows the contents of the PMSC_JOBPLAN object structure.
The PMSC_COMMODITIES object structure, as part of the PMSC72_OFFERING migration group, supports service catalog migration. Figure 9-11 on page 184 shows the contents of the PMSC_COMMODITIES object structure.
183
The DMWFPROCESS object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-12 shows the contents of the DMWFPROCESS object structure.
The DMTKTEMPLATE object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-13 shows the contents of the DMTKTEMPLATE object structure.
184
The PMSC_OFFERING object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-14 shows the contents of the PMSC_OFFERING object structure.
The PMSC_DOCINFO object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-15 shows the contents of the PMSC_DOCINFO object structure.
The DMMAXGROUP object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-16 shows the contents of the DMMAXGROUP object structure.
The DMCLASSIFICATION object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-17 on page 186 shows the contents of the DMCLASSIFICATION object structure.
185
The PMSC_ASSETATTRIBUTE object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-18 shows the contents of the PMSC_ASSETATTRIBUTE object structure.
The PMSC_AUTOSCRIPT object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-19 shows the contents of the PMSC_AUTOSCRIPT object structure.
The DMACTION object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-20 shows the contents of the DMACTION object structure.
The DMACTIONGROUP object structure, as part of the PMSC72_OFFERING migration group, supports the service catalog migration. Figure 9-21shows the contents of the DMACTIONGROUP object structure.
186
You are not required to create additional object structures or modify the existing object structures to migrate a service catalog. In the previous scenario, we explored the special features of the PMSC_OFFERING object structure. These features are also applicable to the service catalog migration scenario.
187
188
9.6.1 PMSC72_OFFERING
The PMSC72_OFFERING migration object has been delivered with standard Where clauses for each object structure in the migration object. You must edit these Where clauses to the specify the name of the catalog to migrate. You insert the Catalog Name, as it appears in the database, in each Where clause where CATALOGNAME appears. For example, to migrate the SERVICE CATALOG1 service catalog, Where clause A (Example 9-1) is replaced with Where clause B (Example 9-2).
Example 9-1 Where clause A
launchentryname in (select value from sigoptflag where optionname in (select licaction from pmscoffering where actiontype='LIC' and itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) and flagname='LAUNCHENTRY')
launchentryname in (select value from sigoptflag where optionname in (select licaction from pmscoffering where actiontype='LIC' and itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='SERVICE CATALOG1')) and flagname='LAUNCHENTRY')
Table 9-2 on page 190 lists the object structures that make up the PMSC72_OFFERING migration object and the associated Where clauses in the order in which they are migrated.
189
Table 9-2 Predefined PMSC72_OFFERING Where clauses Migration order Object structure DMMAXLAUNCH Where clause launchentryname in (select value from sigoptflag where optionname in (select licaction from pmscoffering where actiontype='LIC' and itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) and flagname='LAUNCHENTRY') optionname in (select licaction from pmscoffering where actiontype='LIC' and itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) optionname in (select licaction from pmscoffering where actiontype='LIC' and itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) and flagname='LAUNCHENTRY' autoscript in (select addtocartscript from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) or autoscript in (select offsubmitscript from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) or autoscript in (select prepopulationscript from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) or autoscript in (select validationattr from pmscoffdialog where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) assetattrid in (select assetattrid from pmscitemspec where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME'))
10
DMSIGOPTION
15
DMSIGOPTIONFLAG
20
PMSC_AUTOSCRIPT
25
PMSC_ASSETATTRIBUTE
190
Migration order 30
Where clause classstructureid in (select classstructureid from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) or classstructureid in (select classstructureid from pmsccatalogoffmap where itemnum='CATALOGNAME') or classstructureid in (select classstructureid from tktemplate where templateid in (select templateid from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME'))) or classstructureid in (select classstructureid from tktempltactivity where templateid in (select templateid from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME'))) or classstructureid in (select classstructureid from jobplan where jpnum in (select jpnum from tktempltactivity where templateid in (select templateid from tktemplate where templateid in (select templateid from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME'))))) or classstructureid in (select classstructureid from jobtask where jpnum in (select jpnum from tktempltactivity where templateid in (select templateid from tktemplate where templateid in (select templateid from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME'))))) action in (select flowaction from jobplan where jpnum in (select jpnum from tktempltactivity where templateid in (select templateid from tktemplate where templateid in (select templateid from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME'))))) or action in (select flowaction from jobtask where jpnum in (select jpnum from tktempltactivity where templateid in (select templateid from tktemplate where templateid in (select templateid from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME'))))) jpnum in (select jpnum from tktempltactivity where templateid in (select templateid from tktemplate where templateid in (select templateid from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME'))))
35
PMSC_JPACTION
40
PMSC_JOBPLAN
191
Migration order 45
Where clause commodity in (select commodity from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) or commodity in (select commoditygroup from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) action in (select action from wfaction where processname in ((select mgrapprprocess from pmscofferingext where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) union (select srapprprocess from pmscofferingext where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME'))))or action in (select member from actiongroup where action in (select action from wfaction where processname in ((select mgrapprprocess from pmscofferingext where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) union (select srapprprocess from pmscofferingext where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME'))))) action in (select action from wfaction where processname in ((select mgrapprprocess from pmscofferingext where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) union (select srapprprocess from pmscofferingext where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')))) processname in (select srapprprocess from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) or processname in (select mgrapprprocess from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) templateid in (select templateid from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) groupname in (select groupname from pmscofferingauth where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')) itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')
50
DMACTION
55
DMACTIONGROUP
60
DMWFPROCESS
65
DKTICKETTEMPLATE
70
DMMAXGROUP
75
PMSC_OFFERING
192
Migration order 80
Where clause docinfoid in (select docinfoid from doclinks where ownertable='PMSCOFFERING' and ownerid in (select itemid from pmscoffering where itemnum in (select offeringnum from pmsccatalogoffmap where itemnum='CATALOGNAME')))
Explanation: The migration order values increase in increments of five to allow for additional object structures to be added between the predefined object structures in the future.
9.6.2 PMSC72_CATALOG
The PMSC72_CATALOG migration object has been delivered with standard Where clauses for each object structure in the migration object. Similarly to the PMSC72_OFFERING migration group, you must edit these Where clauses to specify the name of the service catalog to migrate. Insert the catalog name, as it appears in the database, in each Where clause. Table 9-3 lists the object structures that make up the PMSC72_CATALOG migration object and the associated Where clause in the order in which they are migrated.
Table 9-3 Predefined PMSC72_CATALOG Where clauses Migration order Migration object DMMAXGROUP Where clause groupname in (select groupname from pmsccatalogauth where itemnum='CATALOGNAME') itemnum='CATALOGNAME'
10
PMSCCATALOG
9.7 Deployment
You need to understand the deployment considerations that are associated with this scenario prior to deploying the package to the Target environment, in particular, the migration prerequisites.
193
After the package definition is approved and activated, you can create and distribute the package. Then, deploy the package to the Target environment. Resource: This document does not repeat the standard steps that are involved in deploying a package. For detailed information, refer to the Migration Manager Guide: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm .mam.doc_7.1/pdf/mam71_migration_mgr_guide.pdf After deployment to the Target environment, the users can start to use the service catalog and its related service offerings in the Target environment.
Migration prerequisites
The PMSC72_CatalogTemplate migrates the additional records that are directly associated with the service catalog. The package definition that ships with the product is not an all encompassing package to migrate everything in Maximo. Therefore, it is important to ensure that the following objects are migrated manually or by using alternative migration packages: Job plans: The PMSC72_OFFERING migration object migrates the job plans in their entirety (with the exclusion of nested job plans); however, it does not create the referenced labor, items, services, and tools in their respective database objects in the Target environment. Nested job plans: Where a job plan has been specified against a job plan task (nested job plan), the nested job plan will not be migrated as part of the PMSC72_CatalogTemplate, only the job plan that is associated directly with the ticket template that is applied to the service catalog will be migrated in the package. The nested job plan must be migrated in advance. Metadata: Data dictionary objects are not included in the PMSC72_CatalogTemplate. Use the migration groups that ship with the product to migrate metadata prior to the service catalog migration. Response plans: Response plans are not included in the predefined service catalog migration package. Response plans that are associated with service groups and service offerings must be migrated prior to deploying the PMSC72_CatalogTemplate to the Target environment.
194
Parent classifications: The PMSC_OFFERING migration object migrates the individual classification that is referenced by a service offering; however, it does not migrate the entire classification hierarchy that is associated with the referenced classification. Parent classifications are required to be created prior to their associated child classifications. Circular relationships: A situation can occur where actions reference workflows, and workflows reference actions. The PMSC72_OFFERING will migrate the first level of actions that are associated with relevant workflows. You must first migrate workflows that are referenced by actions, and the actions that are referenced by workflows prior to migrating service catalogs.
195
Figure 9-23 Migration Group Order field in the Migration Groups application
196
10
Chapter 10.
Common topics
The Migration Manager has many built-in capabilities, most of which are used in almost every migration scenario. Also, there are certain considerations of which you must be aware. This chapter provides an overview of the following common topics: 10.1, Comparing Integration Framework and Migration Manager on page 198 10.2, Multiple language considerations on page 201 10.3, Snapshot package versus Change package on page 204 10.4, Embedded URLs on page 208 10.5, Clustered environment considerations on page 209 10.6, Change tracking and ad hoc reporting on page 210 10.7, Admin mode on page 221 10.8, Migrating hierarchical data on page 221 10.9, Setting up logging for the Migration Manager on page 229 10.10, Start Center visibility into configurations on page 235
197
Any business object can potentially be targeted for integration Transaction, file, or message (can be a single document or record) Practitioner or implementer with programming skills; experience with application integration; familiarity with ERP systems Integration Framework built from the ground up Extensive mapping and transformation capabilities that are based on Java, XSL, or rules Database event-based single transactions from a given application
Any business object can potentially be targeted for migration Package (multiple records) Practitioner or implementer with product configuration skills and familiarity with change management Migration framework built from the ground up; uses several integration constructs No mapping or transformation capabilities
Database event-based change tracking and aggregation across multiple applications (change package type)
198
Integration Framework Asynchronous processing using Java Message Service (JMS) queues Tivolis process automation engine-attached document can be extracted and processed with the parent record
Migration Manager No queues Tivolis process automation engine-attached document can be extracted and processed with the parent record; arbitrary attachments (Java class or image files) can be placed in a package Automation of database configuration during package deployment
Expose web services (Web Services Description Language (WSDL) or Representational State Transfer (REST)-based) Invoke web services Extensive error correction and resubmission capability at the transaction level (Message Reprocessing application) Single object structure processing (data exported for multiple files to be sequenced manually for import) Limited error correction capability at the package level (package might have to be recreated in the Source environment) Multiple object structures are grouped into a single migration group; every object structure in a group is sequenced, precluding the need for manual sequencing; migration groups are also sequenced Package contains multiple XML files, which are not intended to be edited; action attributes are automatically set up by the Migration Manager
XML file containing data can be edited and associated with action attributes that determine the action to be performed with the data elements
199
The Migration Manager is the tool of choice to package up workflow and related configuration data. A single package can contain your workflow, as well as any actions, roles, and communication templates together with any custom code that a client has to build into a Maximo EAR. Scenario 2: An existing ticket management application needs to be integrated with the Tivoli Service Request Manager product. Historical tickets need to be loaded into the Tivoli product. Also, the existing ticket management application will be in use until Tivoli Service Request Manager goes into production. Integration Framework (MEA) is the tool of choice. Existing data, such as tickets, can be loaded into Tivoli Service Request Manager using a number of methods, including flat files, interface tables, or XML. Periodically, data can be exported out of the existing tool in the form of a file and dropped into a designated folder that Integration Framework can automatically process into Tivoli Service Request Manager. Scenario 3: My client has implemented several SAP R/3 modules, including Materials Management. There is a requirement to integrate specific SAP modules to Maximo Asset Management to achieve the total integration of the purchasing and inventory processes. Integration Framework (MEA) and the SAP R/3 Adapter are the tools of choice. The SAP R/3 Adapter offers pre-built integration points to SAP R/3 from Maximo. In addition, custom integration points can be built. Scenario 4: The client has a development environment in which a team of developers configures the IBM Tivoli Change and Configuration Management Database (CCMDB) product. Configuration includes the addition of new objects (tables), attributes (columns), and domains. Also, the client wants to add new tabs and dialogs to the existing configuration item (CI) application. All of these configurations have to be migrated to a User-Acceptance Test (UAT) environment before being promoted into production. The Migration Manager is the tool of choice. It was designed specifically to cater to a controlled promotion of configurations to production from development through UAT. The tool also automates the structural changes to the underlying database that are required as a result of adding new objects and attributes and therefore provides a seamless deployment of a package containing variable content. Scenario 5: The client needs to migrate foundation data, which is also known as implementation data, from development to production to avoid having to re-enter data, such as locations and classifications, in the production environment. Typically, foundation data consists of discrete sets of data that do not have multiple or deep relationships with other data. The Migration Manager can be
200
used to migrate such foundation data. If an object structure does not exist that supports this type of data, the practitioner or implementer needs to put together an object structure and, if necessary, author Java-based processing code. This type of an object structure can be used from the Integration Framework, as well. With its queue-based processing, error correction, and resubmission capability, using the Integration Framework to load foundation data is more efficient than using the Migration Manager.
201
L_ Multi-language table Each Migration Manager object structure that is supplied with the product has been designed to include the multi-language table if the multi-language table was also shipped with the product. Figure 10-1 on page 202 shows the DMMAXAPPS object structure that contains both the LONGDESCRIPTION and the multi-language tables.
When configurations are migrated from production environments that have additional languages enabled, the base language content is extracted by the Migration Manager to be part of the base table and the additional language content is extracted as part of the L_ multi-language table. Thus, the Migration Manager automatically exports multi-language-enabled content when a package is created. Multi-language content: The Migration Manager will extract all of the available multi-language content from the L_ table. There is no capability to extract multi-language content for only certain languages. This approach to the Migration Manager object structures is especially important when migrating configurations that constitute the most visible parts of a business application. The various visible elements of an application are configured using the Application Designer. When application presentations are migrated, the localized content of various elements of the application presentation must also be migrated. Table 10-2 enumerates these presentation elements and the corresponding Migration Manager object structures that are enabled to capture multi-language content.
202
Table 10-2 Presentation elements and the corresponding Migration Manager object structures User interface element Presentation XML Labels All menus Signature options Conditional user interface Domains Migration Manager object structure DMMAXAPPS Part of DMMAXAPPS DMMAXMENU DMSIGOPTION DMCTRLGROUP DMMAXDOMAIN Migration Group APPLICATION APPLICATION APPLICATION APPSECURITY APPSECURITY DATADICTIONARY
Consider the following conditions before performing the migration: If additional languages were enabled in the Source environment, the information that is stored in the LANGUAGE table must be migrated to the Target environment using the DMLANGUAGE object structure before migrating any other configurations. The DMLANGUAGE object structure is part of the DATADICTIONARY migration group. If a migration is performed from a Source environment to a Target environment that has fewer or other languages enabled, the migration will fail. If a multi-language table was configured on-site, determine if there is a corresponding Migration Manager object structure that needs to be updated to include the multi-language table. The multi-language table must be added as a child of the base table for which it has been configured. If the long description capability was configured for a business object, determine if there is a corresponding Migration Manager object structure that needs to be updated to include the LONGDESCRIPTION table. The LONGDESCRIPTION table must be added as a child of the base table for which it has been configured. Important: If you modify an existing Migration Manager object structure to add a multi-language table in a Source environment, you must modify the object structure of the Target environment with the same change.
203
Tip: Use the 1=0 SQL statement to migrate no content in the selected migration group SQL.
To use Snapshot packages, the entire migration requirement must be clearly defined, identified, and documented, to the exact name of the content elements. The configuration of Snapshot packages requires a considerable amount of configuration on the Source environment.
204
Change migration packages usually contain less content data compared to the Snapshot packages. Change packages contain the configuration data that has been created since the package was activated. Figure 10-3 shows an example of a Change package definition.
Type: After you have defined the type field, it becomes read-only and cannot be changed. In Change package definitions, the Change Role field is editable. This field allows you to track a specific roles changes. Change packages are useful when there is already a Source environment and a Target environment that are in synch at the time that this type of package is activated. Separate Change packages must not overlap. For example, separate Change packages must not listen to the same objects. It is useful if each developer has its own Change package. Change packages: Change packages cannot track changes when Admin mode is turned on. Admin mode shuts off all of the event broadcasts. If a Change package is active, you will get a warning when you turn Admin mode on. Certain object structures, which are created to be used with a Snapshot package, cannot be used for Change packages. The Migration Manager cannot handle certain data in a Change package. For example, hierarchical data cannot be migrated with a Change package. The Change package has no way to know the hierarchical order, which causes validation errors. Classifications, locations, and assets are examples of hierarchical data. Overlapped packages, which have the same content, can cause an error for the same reason. Always preview the deployment changes before deployment to see if the content is valid.
205
DELETE statements: Snapshot packages cannot track DELETE statements, because they do not keep historical data. If you want to keep track of deleted configuration content, use a Change package instead of a Snapshot package. To see and manage the changes in a Change package, perform the following steps: 1. Navigate to the Migration Manager application via Go To System Configuration Migration Migration Manager. 2. Select the related Change package, and then, select View Event Tracking Records in the Select Action menu, as shown in Figure 10-4 on page 206.
3. Figure 10-5 shows the event tracking records for a Change package. The figure shows which objects and related objects are altered. If there are certain records that you do not want to migrate, click the Trash Can icon to the right of the line. Child event tracking records are deleted automatically.
206
4. If you want to delete all of the event tracking records, select Reset Event Tracking Records in the Select Action menu, as illustrated in Figure 10-6 on page 207.
5. When you select this option, a confirmation dialog is displayed. Click Yes if you are sure that you want to delete the tracked events.
207
URLs that are used in communication templates, endpoints, and launch-in-contexts generally differ in separate environments. You must correct these URLs manually after migrating these types of objects. Communication templates are INACTIVE after migration. Check the URLs in the communication templates, and then, change their status to ACTIVE. Other objects, such as launch-in-context and endpoints are stateless. Be careful before using these objects in the Target environment.
208
Warning: The first users that log in to each JVM will experience slow response time until the server has built its cache. Afterward, the performance improves.
209
210
and then, you reset the package and activate the package to continue further development.
211
group, and these IDs correspond to the user IDs of the two developers. In our example, the users are WILSON and LWAYNE.
Important: In Figure 10-8, if the broadcast flag is left unselected, the Migration Manager will not record the events triggered by all members of the group. Only the events of the designated default person of the group will be recorded.
You can use person type roles in Change packages, as well. The advantage of a person group is the ability to add or remove users in a dynamic environment. The two roles that are defined here are for two developers who will configure changes in applications that affect the data dictionary and the application framework. In this example, their work does not overlap. WILSON will change the objects in the data dictionary group, and LWAYNE will make the configuration changes on the application side. This scenario is merely an example of how you can organize
212
the development. Both developers can perform configurations in both groups. The important point here is to be able to track these events.
A second Change package definition is created to track changes to applications. A new migration group is used as a duplicate copy of the APPLICATIONS migration group. This new group is called MYAPPLICATION, and all dependent groups have been removed. This package is also associated with the DEVELOPER role, as shown in Figure 10-11 on page 214.
213
Tracking changes: Change tracking will be performed for every Maximo business object (MBO) for the migration group that is specified in the list. More groups can be added, as needed, as long as the package definition status is WAPPR.
214
After the developers have completed their configuration, we can now see the exact events from the Change package definitions, by clicking Select Action View Event Tracking Records (Figure 10-12 and Figure 10-13).
This example shows the events sample configurations that were created by the two developers. Each package definition provides the functionality to list these recorded events in the application. Single role Change package: Depending on the strategy, you can use a single role Change package to track change events. The single Change package must include all of the migration groups that have been identified as being configured. The Object and the Primary Keys columns are the most important. With this information, we can define the migration requirements for the Snapshot package.
215
For example, from the events that are shown in Figure 10-12 on page 215, we need the objects and SQL conditions that are shown in Table 10-3 for our package.
Table 10-3 Where clauses for data dictionary objects in a Snapshot package MIgration object DMMAXDOMAIN DMMAXOBJECTCFG Object MAXDOMAIN MAXOBJECTCFG Where clause domainid in ('MYRESULTS') objectname in ('ASSET')
From the events shown in Figure 10-13 on page 215, we can gather enough information to determine the objects and SQL conditions (as shown in Table 10-4) that are needed for a Snapshot package.
Table 10-4 Where clauses for application objects in a Snapshot package MIgration object DMMAXAPPS Object MAXAPPS Where clause app in ('ASSET')
In a multiple developer environment, with several configurations taking place at the same time, often developers must learn other tools or applications and focus on completing tasks. The use of Change package functionality provides essential information, which is sometimes not documented, to prepare and deploy Snapshot packages in an ongoing basis throughout the development cycle or as part of the daily operations and maintenance tasks. Keeping track of what is changed and by whom is a good practice and enables accountability and change process documentation. However, this tracking information is stored in the database, and the only documentation might be in the form of a tracking spreadsheet. Next, we will show how you can extract this information for documentation and Snapshot package preparation purposes.
216
This reporting object association to an application is new in Maximo Base Services Fix Pack 7.1.1.6, as illustrated in Figure 10-15 on page 218. In Fix Pack 7.1.1.5, this association is done in Application Designer.
217
After you complete this step, a new reporting icon is added to the Migration Manager application.
218
The first tab is the Style tab. Perform this configuration (Figure 10-17): 1. Specify a name for the ad hoc report (MM_ALL_EVENTS). 2. Make it public by selecting the Public? check box. 3. Select Save Report to enable the report design to be available to subsequent users and sessions. 4. Select Summary Report to display records in a simple row/column format.
5. On the Select tab, configure the selected fields list, as demonstrated in Figure 10-18.
219
6. Leaving the option Apply the Current Query and Filter from the Application? selected allows you to use the filtering of package definitions from the Migration Manager application List tab. In our example, the filtering was done on the package Type and Active fields, as shown in Figure 10-19.
220
221
4. Duplicate the object structure that was identified in step 2. 5. Migrate the object structure. 6. Migrate the data.
222
Now that we have identified the object structure, we can determine what the relationship needs to be to create the new object structure.
223
Follow these steps to set up a relationship: 1. First, click New Row. Enter a new relationship name. In the Child Object field, enter LOCATIONS (Figure 10-24 on page 225). Enter a new Where clause that will select all of the children for the current location, for example: location in (select location from lochierarchy where parent= :location and systemid = :systemid and siteid = :siteid 2. Enter remarks that define the purpose of the relationship. Relationships: Because the child table in the relationship is the same as the parent, for every record that is selected using the Outbound processing class, every child is also selected. As a result, the processing class recursively selects all children in the tree. Figure 10-24 on page 225 shows how we set this up.
224
225
Note that we selected the Self Reference? check box and that we used the relationship that we just created.
226
Figure 10-26 New migration package for moving the new object structure
In this example, you can see that the relationship and the object structure are the only migration objects in the group. Similarly, the groups are limited by the Where clause, as demonstrated in Figure 10-27 on page 228.
227
Figure 10-27 Setting the Where clause for several groups in a limited migration package
We find it easier to create new migration groups with limited object structures and simply set the SQL Where clause for the limited migration groups. This approach speeds up the package processing time.
228
229
To set up logging to provide optimal results, perform the following steps: Set up the root logger. Set up the root logging folder. Set up an appender for logging the Migration Manager output. Set the logging level for the Migration Manager service.
3. You can set the root logging level and change the main appender. Be aware that if nothing specific is set for any one service, all of the logging for the system is affected.
230
231
2. Click New Row and enter the name of the appender that you want to create. Add the description, and then, select the Appender Implementation Class. 3. Add the File Name that you want the appender to use, and then, click OK. An example is shown in Figure 10-28 on page 229 for your reference.
232
You can see that you can set the file size and the backup index, as well. We recommend using the defaults until your experience demonstrates a need for change.
233
2. Click the icon next to the Appender field, and select the appender that you created. Click the the small square before the appender DWDaily, and then, click OK. 3. As instructed in the IBM Maximo Asset Management, IBM Tivoli Asset Management for IT, and IBM Tivoli Service Request Manager System Administrator Guide, click the Save icon, and then, click Select Action Apply Settings. 4. Accept the dialog box responses, and then start to use the system.
234
Figure 10-35 shows the result of the previous process after processing a package with an error. Refer back to this graphic in Chapter 11, Troubleshooting on page 239 (shown in Figure 11-5 on page 249).
235
For example, to retrieve and display workflow processes that might be required to be migrated, this simple query can work: processname like 'RB%' and active = '1' This query can now be associated with a Start Center result set portlet that displays key workflow process information, such as: Process Description Object Process revision Enabled Active Changed by Changed date When the Start Center is saved and associated with the appropriate security groups, the key information is immediately visible to users when they log in to the production environment. Figure 10-36 on page 237 shows an example Start Center (for visibility, only part of the screen is shown) on which portlets provide visibility into business objects, workflow processes, and security groups.
236
Figure 10-36 Sample Start Center showing business objects, workflow processes, and security groups
237
238
11
Chapter 11.
Troubleshooting
This chapter discusses the approach for the practitioner to apply when the migration packages do not migrate as expected. We present the most common experiences we have experienced. We provide detailed techniques to help you determine the cause of the migration failure. We show the method for you to use to correct the package to reprocess it for successful migration. This chapter provides the following sections: 11.1, Common migration package failures on page 240 11.2, Methods to solve migration package failures on page 248 11.3, Techniques to prevent migration package failures on page 254
239
240
Next, review the components that are installed on the Source system and compare them to the Target system. Carefully review the information that is presented in Figure 11-2.
241
This example shows that many products are in the Source system. In certain cases, you might install several content packages and, after having done so, decide not to use several of the content packages. Subsequently, you decide not to install the content on the Target system. See Figure 11-3.
Note through careful examination between the Source and Target systems that the Target system does have the same installation packages as the Source system. When this situation occurs, you have an inherent problem with migration, because the first thing that the Migration Manager does is to check the package
242
manifest against the database (MAXVARS table) to make sure that the product installations are identical.
The XML tag Source contains the information that you need to validate against your Target system.
11.1.3 Package deployment fails due to inconsistent manifest data with package file name
When you download the migration package file from your Source server to your computer, the file name might change unexpectedly. This situation will create an inconsistency that causes the deployment to fail. The name of the file changes when the browser settings rename the downloaded file if the browser sees the file already in its downloaded location. This situation happens most often with metadata.
243
To determine if this is the case, navigate to the download location and make a note of the filename of the package. Now, open the package and extract the manifest. If the name of the package in the manifest does not match the name of the compressed file, simply rename the package compressed file to match the information in the manifest.
244
security group configuration in the current package. If this action is not done, the migration of the security group will fail with the following error: [ERROR] java.lang.NullPointerException at psdi.dm.procclass.DMMaxGroupProcess.setAdditionalData (DMMaxGroupProcess.java:114) During the deployment of the migration package containing the security group, the Migration Manager will attempt to establish the link between the security group and its associated Start Center. Because the Start Center does not exist in the Target production environment, the Migration Manager reports the deployment error. An alternative approach to the security group migration is to exclude the reference to the Start Center before performing the migration. Access the Object Structure application and display the DMMAXGROUP object structure. From the Select Action menu, you execute the Exclude/Include Fields action. In the pop-up dialog box that appears, you exclude the SCTEMPLATEID attribute from the MAXGROUP business object. Click OK to save the change, and close the dialog. This action will ensure that the Start Center template reference is not carried into the migration package in the Source environment. After the migration completes, you must manually establish the link between the security groups and the corresponding Start Centers. Consider this important trade-off part of the migration planning activities.
245
migration is an administrative user that has been granted requisite authorizations. Typically, to perform migrations, clients use the MAXADMIN user account or an account duplicated from MAXADMIN.
246
A preventive measure that clients can take is to execute the following SQL statement in both environments to determine that the number of MAXVARS entries matches: select count(*) from maxvars The following SQL statement ensures that there is at least one corresponding entry in the MAXVARTYPE table for an entry in the MAXVARS table: select count(*) from maxvars where exists (select * from maxvartype where maxvars.varname=maxvartype.varname) The number of records returned by the two SQL statements must match. Another consideration to successfully migrate MAXVARS is to track the changes that have been made in the development environment and only migrate those MAXVARs that were modified.
247
You can use the following preventive measures: Perform the initial migration of DOCTYPES before the production goes live. This step ensures that there are no living attached documents tied to an application record. Perform all Snapshot migrations with the AddModify processing action before and after production goes live. This option ensures that the Migration Manager will not attempt to delete DOCINFO records that are present in the Target database but not present in the XML document that is being processed during deployment.
248
[9/28/10 17:06:55:359 EDT] 00000092 SystemOut O 28 Sep 2010 17:06:55:359 [ERROR] Import fails for package Hierarchy_Example_ISM_MAXDB71_MAXIMO_20100928170057 with type CFGDATA and configuration data order 4. [9/28/10 17:06:55:390 EDT] 00000092 SystemOut O 28 Sep 2010 17:06:55:390 [ERROR] Could not deploy package Hierarchy_Example_ISM_MAXDB71_MAXIMO_20100928170057. Please check log entries for more information. Note the following information: First, the phrase Import fails for package will identify the section of the log that will alert you to the location of the error in the package. Second, the package file identify that will direct you to the offending file is in this statement (Figure 11-5).
Figure 11-5 Reading the log file and finding the error
249
So, as instructed in the log file, CFGDATA number 4 is where the error lies.
At this point, refer again to the original error, as shown in Example 11-2.
Example 11-2 Original error
BMXAA1281E - Object Structure MY_LOCATION does not exist. Note at the top of the XML file that the action is to the SYNC the Object Structure called MY_LOCATION.
250
When a synchronization action takes place, the system requires that the data is in the system or, at least, has a validation reference point. In this case, the validation failed because the Migration Manager did not yet process the Object Structure itself. Either the data was not part of the package, or the processing order was incorrect. In this case, the Object Structure definition was not included (Figure 11-8).
This situation occurs when new object structures are created and not migrated as part of the Data Dictionary migration. You can remedy this situation in one of two ways.
251
artifacts without requiring you to migrate the entire database. Doing so, however, will cause this same error, because the way in which the migration groups are processed does not include a re-fetch to the processed data, so the package will again fail. The solution is to create a separate package for only the DMMAXINTOBJ object structure. Create a migration group with this structure alone. Then, create a package with only that new group. After these steps are complete, you can then migrate the package separately prior to the migration of the solution package. Figure 11-9 shows how to create this package.
This approach demonstrates the flexibility and power of the Migration Manager and its use when troubleshooting various migration scenarios.
252
To work around this situation, perform these steps: 1. Modify the Data Dictionary SQL Where clause on the DMMAXVAR object structure and filter out the entry for the missing installation package. Repeat this process for all other object structures. 2. Go to the entry in the Manifest XML file, and remove the differing package entry. 3. Modify the various XML files that have limited information about content that does not filter out of the package through the SQL Where clause modification. 4. Repeat the process until all of the differing XML tag entries are removed.
The log file will next identify the XML file (as noted in Figure 11-5 on page 249). Open the XML file, and search for the key. Either fix the error or remove the entry, as required. Save the file, and replace it in the compressed file package.
253
Not all package metadata is readily identifiable. The data validation process is maintained by the Maximo Business Objects (MBOs). Therefore, you must be patient and take care to process the packages sequentially, until all of the packages process. Then, you will have a clean environment that you can move forward into production.
11.3.2 Ensure that you understand migration group and object structure relationships
The object structures presented to you with the product are thoroughly tested and work as designed. However, as the scenarios presented in this book demonstrate, often you will migrate portions of data and not all of the packages all at one time. Simply because IBM presents you with a complete package with an entire object structure that consists of all dependencies does not mean that you must process all packages with all dependencies. When you create your packages, do so with the understanding that dependent data can be migrated first in a separate package. When you do this (and the previously migrated configurations have not changed), there is no need to re-migrate that data, which is what occurs when you include that migration group as a dependency. Taking this view will not only help to prevent failures but will also greatly increase the speed of your migrations.
254
11.3.4 Making use of the SQL Where clause for package groups
When you have assembled all of the various packages that you require to migrate your configuration changes, the last step is to modify the SQL Where clause to limit the package content to only those configuration changes that you want to migrate. The proper use of the SQL Where clause will ensure that you migrate only the data that is required and will ensure that dependent data groups have the data that is required for proper validation (Figure 11-11).
255
256
Appendix A.
Additional material
This book refers to additional material that can be downloaded from the Internet as described below.
257
SG247906.zip
258
Related publications
The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this book.
Online resources
These websites are also relevant as further information sources: IBM Maximo Asset Management 7.1, IBM Tivoli Asset Management for IT 7.1, IBM Tivoli Change and Configuration Management Database 7.1.1, IBM Tivoli Service Request Manager 7.1 Application Developer Guide: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm .tamit.doc_7.1/pdf/mam71_app_dev_guide.pdf Migration Manager Guide: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm .mam.doc_7.1/pdf/mam71_migration_mgr_guide.pdf IBM Maximo Asset Management, IBM Tivoli Asset Management for IT, IBM Tivoli Service Request Manager System Administrator Guide: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm .tamit.doc_7.1/pdf/mam71_sys_admin_guide.pdf Best practices publication for data loading tools and capabilities: http://www.ibm.com/developerworks/wikis/download/attachments/1305153 54/TpaeEcosystemDataIntegrationBestPractices.pdf?version=2 Object structure support for attached documents: http://www-01.ibm.com/support/docview.wss?uid=swg24027858 Migration Manager V7.1.1.5 features: http://www-01.ibm.com/support/docview.wss?rs=3214&context=SSLKT6&dc= DB560&dc=DB520&uid=swg21393047&loc=en_US&cs=utf-8&lang=en Migration Manager V7.1.1.5 ticket templates: http://www-01.ibm.com/support/docview.wss?rs=3214&context=SSLKT6&dc= DB560&dc=DB520&uid=swg21393063&loc=en_US&cs=utf-8&lang=en
259
Migration Manager V7.1.1.5 classifications: http://www-01.ibm.com/support/docview.wss?rs=3214&context=SSLKT6&dc= DB560&dc=DB520&uid=swg21393048&loc=en_US&cs=utf-8&lang=en Log setup for Migration Manager: http://www-01.ibm.com/support/docview.wss?uid=swg21397377 Start Center migration: http://www-01.ibm.com/support/docview.wss?uid=swg21427580 Change size limit when uploading large Migration Manager packages: http://www-01.ibm.com/support/docview.wss?uid=swg21408312 Migration Manager preview V7.1.1.6: http://www-01.ibm.com/support/docview.wss?uid=swg21414562 Run Integrity Checker before Migration Manager: http://www-01.ibm.com/support/docview.wss?uid=swg21299691 Oracle length semantics affects Migration Manager: http://www-01.ibm.com/support/docview.wss?uid=swg21411696 No support for IBM Maximo Enterprise Adapter (MEA) interface table migration: http://www-01.ibm.com/support/docview.wss?uid=swg21299697 Migrating conditions: http://www-01.ibm.com/support/docview.wss?uid=swg21389955
260
Related publications
261
262
Index
A
A xii, 1, 29, 53, 84, 109, 140, 177, 199, 245 Actions 148, 170 Admin Mode On 137 Application Designer 63, 110, 112 APPLICATION migration groups 113 APPLICATIONAUTH object structure 78 APPLICATIONS group 135 APPLICATIONS migration group 213 applications, creating 63 APPLYSLA key value 111 APPSECURITY 56, 113, 203 duplicating 56 migration group 65 APPSECURITY group 126 APPSECURITY migration group 113 Automation Scripts 170 managing 69 configuration items (CIs) 154, 200 Configure Conditional Properties 64 Control Properties 63 Create New/Modify Template 132 Create Report 218 cron task 86, 99
D
Data Dictionary 23, 30, 130, 140, 194, 251 SQL 253 Data Dictionary content 134 Data Restrictions 54 DATADICTIONARY 55, 127, 203 group 134 migration group 123, 213 dependency groups 135 deprecated MAXVARS 246 DMACTION object structure 87, 94, 148, 186 DMACTIONGROUP object structure 87, 94, 148, 186 DMAPPLICATIONAUTH migration object 80 DMAPPLICATIONAUTH object structure 78 DMCLASSIFICATION 195 DMCLASSIFICATION object structure 155, 157, 185 DMCOMMTEMPLATE object structure 88, 98, 105, 149 DMCONDITION migration object 128 DMCONDITION object structure 55, 72 DMCRONTASKDEF object structure 100 DMCTRLGROUP 203 object structure 65, 67 DMCTRLGROUP migration object 129 DMCURRENCY object structure 32 DMDOCTYPES object structure 247 DMESCALATION object structure 89, 94, 9899 DMLANGUAGE object structure 203 DMMAXGROUP migration object 129 DMMAXGROUP object structure 56, 71, 120, 181, 185 DMMAXINTOBJECT migration object 72 DMMAXINTOBJECT object structure 78, 121, 133
B
BPM migration group 89
C
CATALOGNAME service catalog 178 Catalogs 181 CatalogTemplate 188 Change management 198 Change migration packages 205 Change package 210 change package 198 Change Package Event Tracking 41 Circular Relationships 195 classification data, migrating 158 Classifications 155, 170 communication template 96 Communication Templates 142, 148 communication templates, accessing 85 Condition Expression Manager 53 CONDITION table 124 Conditional Expression Manager 62 Conditional Expression Manager. 69 conditional expressions 53, 124 conditions 28, 30, 52, 115, 150, 176, 216, 260
263
DMMAXLAUNCHENTRY migration object 128 DMMAXLAUNCHENTRY object structure 182 DMMAXMENU migration object 128 DMMAXMODULES migration object 128 DMMAXSERVSECURITY migration object 129 DMMAXUSER migration object 129 DMMAXUSER object structure 56, 58, 245 DMPERSON object structure 55, 88 DMPKGEVENTS object structure 217 DMROLE object structure 88, 98, 148 DMSCTEMPLATE migration object 128 DMSECURITYRESTICT object structure 72 DMSECURITYRESTRICT object structure 71, 74 DMSIGOPTFLAG migration object 129 DMSIGOPTFLAG object structure 183 DMSIGOPTION migration object 129 DMSIGOPTION object structure 60, 65, 67, 182 DMTKTEMPLATE object structure 184 DMWFPROCESS object structure 149, 184 DOCINFO records 248 DOCINFO table 105 Duplicate Object Structure 225
migration 56
H
hierarchical data, migrating 221 HIERARCHYPATH 161 HIERARCHYPATH non-persistent field 161
I
Integration Framework (MEA) 199200 invalid MAXVARS 246 ISMACCEPT process 147
J
Java deployment Enterprise Archive (EAR) 106 Java Virtual Machines (JVM) 25 Job Plan Plans 194 Job Plans 169
L
L_ Multi-language table 202 LANGUAGE table 203 Lightweight Directory Access Protocol (LDAP) 76 log files, reading 248 Logging application 248 reading the log file 248 LONGDESCRIPTION table 203
E
E xiii EAR file, building 106 E-mail Account Creation service offering 177 embedded URLs 208 ESCALATION cron task 100, 102 escalationpoint 104 escalations, accessingl 85 Event Tracking Records, resetting 207 Event Tracking Records, viewing 215 Expression Builder 175
M
Manage Appenders 231 Maximo Asset Management 200 Maximo Business Objects (MBOs) 245, 254 Maximo EAR 200 MAXOBJECTCFG 46, 127, 216 MAXPRESENTATION table 122 MAXVARS table 243 MAXVARTYPE table 246 Meta Data 194 migration xi, 3, 29, 51, 84, 109, 140, 155, 165, 177, 197, 239, 248, 258 groups 56 Migration Groups 66, 80 Migration Manager 66, 73, 165, 173, 201, 206 migration object structure 133 Migration Object Structures application 135 migration of DOCTYPES 248 migration order values 193 Migration Package 178
F
Failure Reporting 61
G
GL Components 54 Global Data Restriction 70 global data restrictions 68 global security restrictions 76 migrating 121 groups xvi, 7, 35, 51, 84, 113, 140, 156, 165, 178, 199, 244 adding new groups 55
264
migration package failures 248 migration plan document 24 MIGRATIONMGR 133 multiple XML files 199 MXOPERLOC object structure 222 MYESCALATION migration group 91 MYMAXAPPS migration object 128 MYMAXPRESENTATION object structure 122 MYQUERY object structure 133
RBSECURITY01 57 SECURITYRESTRICT 71 standard 120, 132, 144 system lookups 122 Offerings 170 out-of-the-box migration package template 179
P
package deployment failing 244 packages 9, 30, 58, 105, 119, 163, 178, 201, 242 RBSECPKG01 57 Parent Classifications 195 person groups, accessing 85 person records, accessing 85 PMSC_ASSETATTRIBUTE object structure 186 PMSC_AUTOSCRIPT object structure 186 PMSC_COMMODITIES object structure 183 PMSC_DOCINFO 170 PMSC_DOCINFO object structure 171, 185 PMSC_JOBPLAN 170 PMSC_JOBPLAN object structure 170, 183 PMSC_JPACTION object structure 183 PMSC_OFFERING 170 PMSC_OFFERING migration group 172 PMSC_OFFERING object structure 185, 187 PMSC_Offering object structure 171 PMSC72_CATALOG migration group 178, 180, 187 PMSC72_CatalogOffering 194 PMSC72_CatalogTemplate 180, 195 PMSC72_CatalogTemplate Package Definition 178 PMSC72_OFFERING migration group 178, 180, 187 PMSCATALOG object structure 182
N
Nested Job Plans 194 new Snapshot package 136 Notifications 142
O
object structures 6, 31, 55, 87, 112, 140, 163, 178, 199, 244 accessing 132 APPLICATIONAUTH 78 creating 71, 77, 112, 121 DMACTION 87, 186 DMACTIONGROUP 87, 186 DMAPPLICATIONAUTH 78 DMCOMMTEMPLATE 88 DMCONDITION 55 DMCRONTASKDEF 100 DMCTRLGROUP 65, 67 DMESCALATION 89 DMMAXGROUP 56, 71, 120 DMMAXINTOBJECT 78, 121 DMMAXUSER 56, 58 DMPERSON 55, 88 DMROLE 88 DMSIGOPTION 60, 65, 67 DMWFPROCESS 184 duplicating 121, 157, 225 migrating 226 migration 122 Migration Manager 202 PMSC_ASSETATTRIBUTE 186 PMSC_AUTOSCRIPT 186 PMSC_COMMODITIES 183 PMSC_DOCINFO 171 PMSC_JOBPLAN 170, 183 PMSC_JPACTION 183 PMSC_Offering 171 PMSCATALOG 182
Q
queries, creating 132
R
R 200 RBAUTHORIZATIONS01 migration group 78 RBGLOBALSE01 migration group 73 RBSECPKG01 package 57 RBSECURITY01 object structure 57 Redbooks Web site 260
Index
265
Contact us xv Report Date 111 Reset Event Tracking Records 207 RESOURCES migration group 89 Response Plans 194 roles 143, 148 roles, accessing 85 root logger, accessing 234 root logger, managing 230 Run Reports 220
170
U
URLs, embedded 208 users, creating and managing 55
V
View Documents 170
W S
Save Query 132 Save Report 219 SCTEMPLATEID attribute 245 SEARCHWHER key value 111 security configuration migration errors 244 Security Groups 62, 181 creating 54 SECURITYRESTRICT object structure 71 SECURITYRESTRICT table 71, 120121 service catalog 177 Service Groups 170 service invocation 198 Set Logging Root Folder 231 Set Report Object Structure Security 218 Set Where Clause 136137, 146 Signature Option 64 adding or modifying 63 sigoptflag 190 Sigoptions 62 Snapshot migration package 204 Snapshot package 210 Source Objects 78 SQL Data Dictionary 253 SQL filter criteria 145 SQL Where clause 255 SQL Where clause commands 211 standard object structures 132, 144 Start Center 131 STATUS key value 111 system information screen 242 system lookups 122 web services 199 Work Order 64 Work Order Tracking 110 Workflow Designer 141, 148, 170 workflow modifications 140 WORKORDER object 54
T
Test Results 131 Ticket Templates 170 Tivoli Service Request Manager, object structures
266
Back cover
BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment.