Objet ECUserQuery
L'objet ECUserQuery, utilisé pour effectuer des recherches de membres, peut être étendu. Cet objet est utilisé pour trouver des utilisateurs dans la base de données de WebSphere Commerce.
| Table de base de données | Description |
|---|---|
| USERS | Enregistrement de l'utilisateur |
| USERREG | Enregistrement du registre de l'utilisateur |
| USERDEMO | Informations démographiques de l'utilisateur |
| USERPROF | Informations de profil de l'utilisateur |
| ORGENTITY | Organisation mère de l'utilisateur |
| ADDRESS | Adresse de l'utilisateur (l'adresse de l'organisation mère de l'utilisateur) |
| BUSPROF | Informations sur le profil d'entreprise de l'utilisateur |
| ACCOUNT | Comptes détenus par l'organisation mère |
| MBRROLE | Rôles joués par l'utilisateur |
| MBRATTRVAL | Attributs de membre personnalisés de l'utilisateur |
| MBRREL | Ancêtres de l'utilisateur |
Cela signifie que vous pouvez effectuer une recherche en fonction de n'importe quel attribut numérique ou de chaîne dans l'une de ces tables.
Exemple 1 : Recherche par logonId
Dans cet exemple, l'objet de requête génère une requête SQL pour rechercher tous les utilisateurs dont le logonId est LIKE %myLogon%. La requête n'a qu'une seule condition, une condition de recherche sur USERREG.LOGONID où le type de recherche est case insensitive containing. La table USERREG est automatiquement jointe à la table USERS pour la recherche.
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);
Exemple 2 : Recherchez tous les utilisateurs avec un logonId donné et une organisation mère donnée
Cet exemple montre la recherche par logonId et nom d'organisation mère.
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);
Dans cet exemple, deux clauses where ont désormais été associées à une condition AND. La condition JOIN de la table ORGENTITY stipule qu'elle doit effectuer une recherche en fonction de l'organisation mère.