Objeto ECUserQuery

El objeto ECUserQuery, que se utiliza para realizar la búsqueda de miembros, se puede ampliar. Este objeto se utiliza para buscar usuarios en la base de datos de WebSphere Commerce.

El objeto ECUserQuery soporta las tablas siguientes:

Tabla de base de datos Descripción:
USERS Registro del usuario
USERREG Registro del registro del usuario
USERDEMO Datos estadísticos del usuario
USERPROF Información de perfil del usuario
ORGENTITY Organización padre del usuario
ADDRESS Dirección automática del usuario (la dirección de la organización padre del usuario)
BUSPROF Información de perfil de empresa del usuario
ACCOUNT Cuentas que son propiedad de la organización padre
MBRROLE Roles ejercidos por el usuario
MBRATTRVAL Atributos de miembro personalizados para el usuario
MBRREL Predecesores del usuario

Esto significa que puede realizar la búsqueda basándose en cualquier atributo numérico o de serie en cualquiera de estas tablas.

Ejemplo 1: Búsqueda por logonId

En este ejemplo, el objeto de consulta genera una consulta SQL para buscar todos los usuarios cuyo logonId es LIKE %myLogon%. La consulta solo tiene una condición, una condición de búsqueda de USERREG.LOGONID donde el tipo de búsqueda es case insensitive containing. La tabla USERREG se une automáticamente con la tabla USERS para la búsqueda.


ECUserQuery query = new ECUserQuery(); 

WhereClauseSearchCondition whereClause = 
  new WhereClauseSearchCondition(
  new TableField("USERREG", "LOGONID"),
  WhereClauseSearchCondition.SEARCHTYPE_CASEINSENSITIVE_CONTAINS,
  "myLogon"); 

query.setWhereClause(whereClause); 

Vector vecResults =
  (new UserSearchAccessBean())
  .executeCustomizeableMemberSearch(query);

Ejemplo 2: Buscar todos los usuarios con un logonId dado y con una organización padre específica

En este ejemplo se muestra la búsqueda por logonId y nombre de organización padre.


ECUserQuery query = new ECUserQuery(); 

WhereClauseSearchCondition whereClause = 
  new WhereClauseSearchCondition(
  new TableField("USERREG", "LOGONID"),
  WhereClauseSearchCondition.SEARCHTYPE_CASEINSENSITIVE_CONTAINS, 
  "myLogon");
whereClause.appendANDCondition(
  new WhereClauseSearchCondition(
  new TableField("ORGENTITY", "ORGENTITYNAME"),
  WhereClauseSearchCondition.SEARCHTYPE_CASESENSITIVE_STARTSWITH,
  "myParentOrgName")); 

query.setWhereClause(whereClause); 

Vector vecResults =
  (new UserSearchAccessBean())
  .executeCustomizeableMemberSearch(query);


En este ejemplo, dos cláusulas where se han combinado ahora con una condición AND. La condición JOIN de la tabla ORGENTITY estipula que debe realizar la búsqueda basándose en la organización padre.