En los ejemplos siguientes se utiliza el método UpgradeInfo (del objeto User) para optimizar el rendimiento al establecer las propiedades del usuario y actualizar las bases de datos a las que el usuario está suscrito.
En estos ejemplos se actualiza un perfil de usuario y se actualizan todas las bases de datos a las que el usuario está suscrito. También se verifica la actualización al intentar iniciar la sesión en cada una de las bases de datos a las que se puede acceder.
Para obtener más información, consulte el apartado UpgradeInfo.
Dim dbset
Dim adminUser
Dim adminPasswd
Dim userName
Dim pssswd
Dim adminSession
Dim userList
Dim userObj
Dim email
Dim phone
Dim fullname
Dim failed_dbs
Dim session
Dim dbdescs
Dim db
Dim dbname
dbset = "2003.06.00"
adminUser = "admin"
adminPasswd = ""
' Crear una sesión de administración de Rational ClearQuest
set adminSession = CreateObject("CLEARQUEST.ADMINSESSION")
If (adminSession.Logon (adminUser, adminPasswd, dbset)) Then
MsgBox "Could not get Admin session login"
End If
' el usuario cuyo perfil de usuario se desea cambiar
userName = "QE1"
passwd = "secret"
'Obtener el usuario
set userObj = adminSession.GetUser(userName)
If userObj is Nothing Then
'NO utilizar MsgBox si se utiliza un servidor de ClearQuest Web
MsgBox "Error: Failed lookup for user" & userName
End If
email = "qe@example.com"
phone = "123456789"
fullname = "Best Quality Engineer"
userObj.Password(passwd)
userObj.EMail(email)
userObj.Phone(phone)
userObj.FullName(fullname)
' Actualizar todas las bases de datos a las que el usuario está suscrito
MsgBox "Upgrade user profile for userName"
failed_dbs = userObj.UpgradeInfo
if (failed_dbs > 0) then
MsgBox "Set password failed in database(s)" & failed_dbs
end if
' verificar la nueva contraseña iniciando la sesión en las bases de datos
set session = CreateObject("ClearQuest.Session")
dbdescs = session.GetAccessibleDatabases("MASTR", userName, dbset)
for each db in dbdescs
dbname = db.GetDatabaseName
session.UserLogon userName, passwd, dbname, AD_PRIVATE_SESSION, dbset
If session is Nothing then
MsgBox "Could not get session login to db" & dbname
End If
MsgBox "Checking user info in db" & dbname & ":"
' verificar el nuevo correo electrónico, nombre completo y teléfono
if (email <> session.GetUserEmail) then
MsgBox "Email is not upgraded in" & dbname
end if
if (fullname <> session.GetUserFullName) then
MsgBox "Full name is not upgraded in" & dbname
end if
if (phone <> session.GetUserPhone) then
MsgBox "Phone is not upgraded in" & dbname
end if
next
use CQPerlExt;
use Time::Local;
$dbset = "2003.06.00";
$adminUser = "admin";
$adminPasswd = "";
# Crear una sesión de administración de Rational ClearQuest
my $adminSession= CQAdminSession::Build();
if ($adminSession->Logon( $adminUser, $adminPasswd, $dbset )) {
print "Could not get Admin session login\n";
exit 1;
}
# el usuario cuyo perfil de usuario se desea cambiar
my ($userName, $passwd) = ("testuser", "password");
# Obtener el objeto User para el usuario que se desea actualizar.
my $userObj = $adminSession->GetUser($userName);
unless ($userObj) {
print "$0: Error: Failed lookup for user \"$userName\"\n";
exit 1;
}
$email="qe\@example.com";
$phone="123456789";
$fullname="Best Engineer";
$userObj->SetPassword($passwd);
$userObj->SetEmail($email);
$userObj->SetPhone($phone);
$userObj->SetFullName($fullname);
# Actualizar todas las bases de datos a las que el usuario está suscrito
print "Upgrade user profile for $userName\n";
$failed_dbs = $userObj->UpgradeInfo();
@temp = @$failed_dbs;
if ($#temp > -1)
{
printf "fail dbs: %s.\n", join(',', @temp);
}
# verificar la nueva contraseña iniciando la sesión en las bases de datos
$session = CQSession::Build();
$dbdescs = $session->GetAccessibleDatabases("MASTR", $userName, $dbset);
foreach $i (0 .. $dbdescs->Count()-1)
{
$dbname = $dbdescs->Item($i)->GetDatabaseName();
$session->UserLogon($userName, $passwd, $dbname, $dbset);
unless (defined $session)
{
print LOG "Could not get session login to db $dbname\n";
exit 1;
}
print "Checking user info in db $dbname:\n";
# verificar el nuevo correo electrónico, nombre completo y teléfono
if ($email ne $session->GetUserEmail()) {
print "Email is not upgraded in $dbname\n";
}
if ($fullname ne $session->GetUserFullName()) {
print "Full name is not upgraded in $dbname\n";
}
if ($phone ne $session->GetUserPhone()) {
print "Phone is not upgraded in $dbname\n";
}
else {
print "User information verified.\n";
}
}