IBM Support

How to migrate user ids and preferences from Change 4.7 to Change 5.1

Question & Answer


Question

How do you migrate user ids and user preferences (queries and reports) from IBM Rational Change 4.7 to Rational Change 5.1?

Cause

The following facts:

  • Telelogic Directory Server (TDS) 4.3 is in Standalone mode.

  • Rational Change 5.1 is configured with TDS 4.3

  • Rational Change 4.7 is configured with an external LDAP and used for authentication purpose

  • TDS 3.0 will act as a repository for storing user preference whereas the external LDAP is only used to configure user profile

  • The user list appearing in the User’s tab of Rational Change 4.7 is governed by external LDAP

  • These user ids are not created in TDS 3.0, therefore migration process does not migrate the user ids to TDS 4.3

  • It only migrates the user preferences (queries and reports) that are stored in TDS 3.0 of Rational Change 4.7 installation

  • The only user that gets migrated is ‘ChangeAdmin’. This can be confirmed by running the PERL script DumpAUsersPreferences.pl for any user that earlier existed in Rational Change 4.7 installation

Answer

WARNING: Before proceeding with this procedure, please take note of the following scenario:

  1. Database is upgraded and accessible to Change users

  2. Database path has changed.

  3. PreferenceNameSubstitutionForAllUsers has not been run yet.

  4. One or many users create some preferences (reports or queries) in the the new database.

  5. Thereafter, if PreferenceNameSubstitutionForAllUsers is run, the following will happen:

    1. Preferences referring to the old database path will not be converted to the new database path.

    2. Those preferences referring to the old database path are deleted.

  6. To avoid this situation, run PreferenceNameSubstitutionForAllUsers before users have access to the new database path and have created any preferences.

The following steps will help migrate user ids and preferences from IBM Rational Change 4.7 to Rational Change 5.1:

  1. Disintegrated External LDAP with Rational Change 4.7.

  2. Create exact replica of users in Rational Change 4.7 that exist in the External LDAP.
    Note: You need not create users that were not intended to use Rational Change 4.7 or earlier.

  3. When logging in to Rational Change 4.7, the users will be able to view the queries that were initially created.

  4. On migration, these users will be migrated to Telelogic Directory Server 4.3.

  5. For the queries to appear in Rational Change 5.1, run the PERL script PreferenceNameSubstitutionForAUser.pl in order to update the correct database path.



    Once done, the queries will appear in Rational Change 5.1.


Steps to locate the script:


  1. Login to Change 5.1/5.2 with the role 'Admin'

  2. Click on Help - Perl API Help

  3. In the 'Index' column , click on 'csapi'

  4. Scroll down to locate the scripts 'DumpAUsersPreferences' and 'PreferenceNameSubstitutionForAllUsers' 



Here is an excerpt from Perl API Help of Change 4.7:

===========================================


PreferenceNameSubstitutionForAllUsers

Make a preference name substitution for all users with in a preference name. One of the most useful uses of this function is when a databases path changes, the database path in the user's config can be updated. It finds and replaces all occurrences of one string for another string. The return result is an instance of the apiData class.

Note: It is not possible to change or add user profile values. These values are the users first names, last names, email addresses, fax numbers, telephone numbers and addresses.

Parameters:
apiUser aUser : The current api user's login data.
scalar keyValue: The value to search for when doing a replacement.
scalar subValue: The replacement value, the value to be added.

Returns: apiData
the return message from the server.

Example:

my $csapi = new ChangeSynergy::csapi();
eval
{
$csapi->setUpConnection("http", "angler", 8600);
my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\angler\\ccmdb\\cm_database");
$tmpData = $csapi->PreferenceNameSubstitutionForAllUsers($aUser, "\\\\angler\\ccmdb\\cm_database", "\\\\angler\\cm_database");


print $tmpData->getResponseData();

};

if ($@)

{

print $@;

}

===========================================

Here

\\\\angler\\ccmdb\\cm_database = old database path

\\\\angler\\cm_database = new database path

===========================================

DumpAUsersPreferences

Get the entire contents of the user's preferences returned as a string. This string contains the name and value for everything found in a user's preference object. This is helpful for debugging purposes and ensuring the desired changes have taken effect. The return result is an instance of the apiData class.

Parameters:

apiUser aUser : The current api user's login data.

scalar username: The users preference data to get.

Returns: apiData

the return message from the server.

Example:

my $csapi = new ChangeSynergy::csapi();

eval

{

$csapi->setUpConnection("http", "angler", 8600);

my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\angler\\ccmdb\\cm_database");

my $tmpstr = $csapi->DumpAUsersPreferences($aUser, "u00001");

print $tmpstr->getResponseData();

};
if ($@)
{
print $@;
}

===========================================

The DumpAUsersPreferences script will not replace/update database path. It can only be run to view the existing preference on the database.

[{"Product":{"code":"SSYQQ2","label":"Rational Change"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Directory Server","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"4.7;5.1;5.3.1.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
13 November 2019

UID

swg21383359