Este enganche extrae nombres de inicio de sesión de usuario que son miembros de un grupo con acceso a esta base de datos y los carga en la lista de opciones para el campo.
Sub AssignedTo_ChoiceList(fieldname, choices)
' fieldname As String
' choices As Object
' entityDef = Defect
Dim sessionObj
Dim queryObj
Dim filterObj
Dim resultSetObj
Set sessionObj = GetSession()
' iniciar la compilación de una consulta de los usuarios
Set queryObj = sessionObj.BuildQuery("users")
' la consulta debe devolver el campo deseado del objeto User
queryObj.BuildField ("login_name")
' filtrar los miembros del grupo "MyGroup" (el grupo que se desea)
Set filterObj = queryObj.BuildFilterOperator(AD_BOOL_OP_AND)
filterObj.BuildFilter "groups", AD_COMP_OP_EQ, "MyGroup"
Set resultSetObj = sessionObj.BuildResultSet(queryObj)
' ejecutarlo
resultSetObj.Execute
' añadir cada valor de la columna devuelta a la lista de opciones
Do While resultSetObj.MoveNext = AD_SUCCESS
choices.AddItem resultSetObj.GetColumnValue(1)
Loop
End Sub
sub AssignedTo_ChoiceList {
my($fieldname) = @_;
my @choices;
# $fieldname as string scalar
# @choices as string array
# el nombre de tipo de registro es Defect
# el nombre de campo es myuser
# utilizar la operación de matriz para añadir elementos. Por ejemplo:
# push(@choices, "red", "green", "blue");
my $session = $entity->GetSession();
# iniciar la compilación de una consulta de los usuarios
my $queryDefObj = $session->BuildQuery("users");
# la consulta debe devolver el campo deseado del objeto User
$queryDefObj->BuildField("login_name");
# filtrar los miembros del grupo "MyGroup" (el grupo que se desea)
my $filterOp = $queryDefObj->BuildFilterOperator(
$CQPerlExt::CQ_BOOL_OP_AND);
my @array = ("MyGroup");
$filterOp->BuildFilter("groups", $CQPerlExt::CQ_COMP_OP_EQ, \@array);
my $resultSetObj = $session->BuildResultSet($queryDefObj);
# ejecutarlo
$resultSetObj->Execute();
# añadir cada valor de la columna devuelta a la lista de opciones
while ($resultSetObj->MoveNext() == $CQPerlExt::CQ_SUCCESS) {
push(@choices,$resultSetObj->GetColumnValue(1));
}
return @choices;
}