Requisito Utente
La necessità è quella di avere una procedura automatica di censimento NUOVI utenti in Quality Center, collegarli ad un Progetto e associar loro uno o più profili.
Soluzione Proposta
Creazione di una procedura esterna al WorkFlow Script Editor che faccia uso delle API SiteAdmin recuperando le informazioni da un file excel.
Tale procedura sarà un file .vbs (vbscript).
__________________________________________________________________________
Implementazione FUORI dal Prodotto
L'implementazione in realtà prevede non del codice scritto all'interno dello Script Editor ma, come indicato in Soluzione Proposta, un vbs esterno. Questa procedura effettuerà le seguenti operazioni:
Queste informazioni vengono recuperate da un file excel che avrà questo tracciato record:
Supponiamo che il file excel in questione si chiami myFile.xls e si trovi sotto la cartella "c:\temp".
Questo il codice:
'************************************************************
' CONSTANTS DECLARATION
'************************************************************
Const server = "http://QCAddress/qcbin"
Const user = "qcadmin"
Const psw = "xxxxxxx"
'************************************************************
'************************************************************
' VARIABLES DECLARATION
'************************************************************
Dim mySaApi, XLS, Wkb, Wks, xmlCheckUsr, myXMLString, arrRole, j, i
'************************************************************
'************************************************************
'************************************************************
'************************************************************
'Retrieve the SiteAdminApi Interface
set mySaApi = CreateObject("SAClient.SAapi")
'Login
mySaApi.login server, user, psw
'Create excel object to manage excel file
set XLS = CreateObject("Excel.Application")
XLS.Visible = False
'Open excel File (suppose the file is "C:\temp\myFile.xls")
Set Wkb = XLS.Workbooks.Open("C:\temp\myFile.xls")
Set Wks = Wkb.WorkSheets(1)
'Do a loop for each row of the excel file
i = 2
do while (wks.Cells(i,1).Value <> "")
'For each row create the new user and Add it to the Project
'Check if User already exists
on error resume next
err.clear
xmlCheckUsr = mySaApi.GetUser(wks.Cells(i,1).Value)
if err.number <> 0 then
'user does not exist. I create it.
myXMLString = ""
myXMLString = mySaApi.CreateUser(wks.Cells(i,1).Value, _
wks.Cells(i,2).Value, _
wks.Cells(i,3).Value, _
wks.Cells(i,4).Value, _
wks.Cells(i,5).Value, _
wks.Cells(i,6).Value)
end if
on error goto 0
'7. Add the role(s) to the user
'Firstable I link the user to the Project
mySaApi.AddUsersToProject wks.Cells(i,7).Value, _
wks.Cells(i,8).Value, _
wks.Cells(i,1).Value
'I analyze the 9th field, the Roles
if instr(wks.Cells(i,9).Value, ",") then
arrRole = split(wks.Cells(i,9).Value,",")
for j=0 to ubound(arrRole)
'add the role to the user
mySaApi.AddUsersToGroup wks.Cells(i,7).Value, _
wks.Cells(i,8).Value, _
arrRole(j), _
wks.Cells(i,1).Value
next
else
mySaApi.AddUsersToGroup wks.Cells(i,7).Value, _
wks.Cells(i,8).Value, _
wks.Cells(i,9).Value, _
wks.Cells(i,1).Value
end if
i = i + 1
loop
'Logout from SiteAdmin
mySaApi.Logout
'destroy SaApi object
set mySaApi = Nothing
'close excel file and quit excel application
wkb.close
XLS.Quit
'************************************************************
'************************************************************
'************************************************************