Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Stardust/Knowledge Base/API/ExamplesofAPIUsage/GeneratingRoleBasedAPI

< Stardust‎ | Knowledge Base
Revision as of 03:26, 19 March 2014 by Vikram.kodak.sungard.com (Talk | contribs) (Solution)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Purpose

This Example describes how to filter activity instances for every user role (grant) he is assigned to.

Solution

//Create user query (use attribute account which is equal to your CARNOT login name)
UserQuery userQuery = new UserQuery();
userQuery.getFilter().add(UserQuery.ACCOUNT.isEqual("torben"));
 
//Get user
Users users = queryService.getAllUsers(userQuery);
User user = (User) users.get(0);
 
//Get user grants
List grants = user.getAllGrants();
 
//Create activity query
ActivityInstanceQuery activityQuery = new ActivityInstanceQuery();
 
//Add OR filter to activity query
FilterOrTerm orFilter = activityQuery.getFilter().addOrTerm();
 
//Extract single roles and build STARDUST query
for (int x = 0; x < grants.size(); x++) {
	String grant = ((Grant) grants.get(x)).getId();
	PerformingParticipantFilter performerFilter = PerformingParticipantFilter.forModelParticipant(grant);
	orFilter.or(performerFilter);
}
 
//Find activities for user roles
ActivityInstances activeInstances = queryService.getAllActivityInstances(activityQuery);
 
//Get single activity informations
for (int y = 0; y < activeInstances.getSize(); y++) {
	ActivityInstance activity = (ActivityInstance) activeInstances.get(y);
	System.out.println(y +") Activity OID: "+ activity.getOID() +" / Performer: "+ activity.getPerformedByName());
}

OR

//Create query service
ServiceFactory serviceFactory = ServiceFactoryLocator.get("motu", "motu");
QueryService queryService = serviceFactory.getQueryService();
 
//Create activity query
ActivityInstanceQuery activityQuery = new ActivityInstanceQuery();
 
//Add OR filter to activity query
FilterOrTerm orFilter = activityQuery.getFilter().addOrTerm();
orFilter.add(PerformingParticipantFilter.ANY_FOR_USER);
orFilter.add(PerformingUserFilter.CURRENT_USER);
 
//Find activities for user roles
ActivityInstances activeInstances = queryService.getAllActivityInstances(activityQuery);
 
//Get single activity informations
for (int y = 0; y < activeInstances.getSize(); y++) {
	ActivityInstance activity = (ActivityInstance) activeInstances.get(y);
	System.out.println(y +") Activity OID: "+ activity.getOID() +" / Performer: "+ activity.getPerformedByName());
}

Back to the top