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.
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.