Enganche de lista de opciones para visualizar información de usuario

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.

VBScript

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 

Perl

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;

} 


Comentarios