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.

L'objet ECUserQuery prend en charge les tables suivantes :

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.