The following sample searches groups by given search criteria and returns the specified properties of the resulting group account records.
protected GroupAccountRepository groupAccountRepository;
private List<GroupAccount> test_readGroupAccountsByCriteria() throws
Exception {
// Criterion for group account searching
UserFieldCriterion fieldCriterion = new UserFieldCriterion();
fieldCriterion.setComparator(UserComparator.ONE_OF);
LegacySearchFieldPathExpression fieldPathExpression = new LegacySearchFieldPathExpression();
fieldPathExpression.setSearchKeyPath("createdBy");
fieldCriterion.setFieldPath(fieldPathExpression);
fieldCriterion.getValues().add("JohnDoe");
FieldSearchClause searchCriteria = new FieldSearchClause();
searchCriteria.setOperator(LogicOperator.AND);
searchCriteria.getCriteria().add(fieldCriterion);
groups = groupAccountRepository.readGroupAccountsByCriteria(searchCriteria, 100, getPropertiesToRead());
}
private List<String> getProperties() {
List<String> properties = new List<String>();
properties.add("uniqueName");
properties.add("displayName");
properties.add("description");
properties.add("createdBy");
properties.add("createdOn");
properties.add("modifiedBy");
properties.add("modifiedOn");
properties.add("users");
return properties;
}