El código siguiente de una aplicación externa ilustra algunos de los métodos de Session y DatabaseDesc. Para conectar a la base de datos se necesita un objeto Session. El objeto Session le permite obtener información sobre la base de datos (como, por ejemplo, la serie de conexión de SQL) y el usuario que ha iniciado la sesión actualmente. El proceso consta de tres pasos:
Para obtener más información, consulte los apartados Objeto Session y Objeto DatabaseDesc.
El código siguiente imprime la información almacenada en el objeto DatabaseDesc de Session, así como toda la información relacionada con el usuario. Esta subrutina utiliza otra rutina denominada StdOut, que imprime los argumentos en un recuadro de mensaje.
' Conectar a través de OLE a Rational ClearQuest
Set session = CreateObject("CLEARQUEST.SESSION")
' nombre_inicioSesión, contraseña y dbname son series
' que se han establecido en otra parte
session.UserLogon "joe","", dbname, AD_PRIVATE_SESSION, ""
Set dbDesc = session.GetSessionDatabase
StdOut "DB name = " & dbDesc.GetDatabaseName
StdOut "DB set name = " & dbDesc.GetDatabaseSetName
' Debe iniciar la sesión con el privilegio de superusuario o, de lo contrario,
' GetDatabaseConnectString genera un error
StdOut "DB connect string = " & dbDesc.GetDatabaseConnectString
StdOut "user login name = " & session.GetUserLoginName
StdOut "user full name = " & session.GetUserFullName
StdOut "user email = " & session.GetUserEmail
StdOut "user phone = " & session.GetUserPhone
StdOut "misc user info = " & session.GetUserMiscInfo
StdOut "user groups:"
Set userGroups = session.GetUserGroups
If IsArray(userGroups) Then
for each onename in userGroups
StdOut " group " & onename
next
End If
REM Inicio de Global Script StdOut
sub StdOut(Msg)
msgbox Msg
end sub
REM Fin de Global Script StdOut
use lib "E:\\Archivos de Programa\\Rational\\common\\lib";
use CQPerlExt;
$CQsession = CQSession::Build();
$CQsession->UserLogon("admin", "", "perl2", "");
$dbDesc = $CQsession->GetSessionDatabase();
print "DB name = ", $dbDesc->GetDatabaseName(), "\n";
print "DB set name = ", $dbDesc->GetDatabaseSetName(), "\n";
print "DB connect string = ", $dbDesc->GetDatabaseConnectString(), "\n";
print "User login name = ", $CQsession->GetUserLoginName(), "\n";
print "User full name = ", $CQsession->GetUserFullName(), "\n";
print "User email = ", $CQsession->GetUserEmail(), "\n";
print "User phone = ", $CQsession->GetUserPhone(), "\n";
print "Misc user info = ", $CQsession->GetUserMiscInfo(), "\n";
print "User groups: \n";
$userGroups = $CQsession->GetUserGroups();
if (!@$userGroups) {
#Código para manejar si no existe ningún grupo de usuarios
print "This user does not belong to any groups\n";
}
else {
# imprimir todos los grupos
foreach $groupname (@$userGroups) {
print "Group $groupname\n";
}
}
CQSession::Unbuild($CQsession);