public interface IAGQueryService
This class provides a programmatic means for retrieving AGDisplayInfo objects, which contain metadata info, instance info, and associated tasks for an AG instance. The AGDisplayInfo objects can then be used by the UI layer to construct the AG tree structure. A typical usage would be as follows: 1. Use an authentication method to authenticate a user and obtain a context 2. Use the context and an AGDisplayInfo list method to retrieve AG instances that match some filter criterion 3. Use the context and an AGDisplayInfo details method to retrieve a full blown AGDisplayInfo object, which contains instance info, metadata info, and associated tasks, for an AGInstance in the list A sample code fragment that shows the usage in the above pattern in shown below: import java.util.ArrayList; import java.util.Date; import java.util.List; import oracle.bpel.services.workflow.IWorkflowConstants; import oracle.bpel.services.workflow.client.IWorkflowServiceClient; import oracle.bpel.services.workflow.client.IWorkflowServiceClientConstants; import oracle.bpel.services.workflow.client.WorkflowServiceClientFactory; import oracle.bpel.services.workflow.repos.Ordering; import oracle.bpel.services.workflow.repos.Predicate; import oracle.bpel.services.workflow.repos.TableConstants; import oracle.bpel.services.workflow.task.model.Task; import oracle.bpel.services.workflow.verification.IWorkflowContext; import oracle.bpel.services.workflow.activityguide.query.model.AGDisplayInfo; import oracle.bpel.services.workflow.activityguide.query.model.MilestoneDisplayInfoType; //User whose AGDisplayInfo list needs to be queried String userid="jstein"; // Password for the user String password = "welcome1"; // Get workflow service client IWorkflowServiceClient wfSvcClient = WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.SOAP_CLIENT); // Get the workflow context IWorkflowContext wfCtx = wfSvcClient.getTaskQueryService().authenticate(userId, password, oracle.tip.pc.services.identity.config.ISConfiguration.getDefaultRealmName(), null); // Admin can authenticate on behalf of another user //IWorkflowContext adminCtx = wfSvcClient.getTaskQueryService().authenticate(adminUserId, pwd, // oracle.tip.pc.services.identity.config.ISConfiguration.getDefaultRealmName(), // userId); IAGQueryService agQuerySvc = wfSvcClient.getAGQueryService(); // Build the predicate Predicate datePredicate = new Predicate(TableConstants.WFTASK_CREATEDDATE_COLUMN, Predicate.OP_ON, new Date()); // Create the ordering Ordering ordering = new Ordering(TableConstants.WFTASK_COMPOSITEDN_COLUMN, true, true); // List of AG display columns // For those AG display columns that are not specified here, the queried AGDisplayInfo object will not // hold any value. // For example: If COMPOSITENAME is not specified, agDisplayInfo.getCompositeName() will return null // For the list of most comonly used columns, check the table below List agQueryColumns = new ArrayList(); agQueryColumns.add("CREATEDDATE"); agQueryColumns.add("UPDATEDDATE"); List agDisplayInfosList = agQuerySvc.queryAGDisplayInfos(wfCtx, agQueryColumns, IAGQueryService.AGAssignmentFilter.MY, datePredicate, ordering, 0,0); // No Paging // How to use paging: // 1. If you need to dynamically calculate paging size (or) to display/find // out the number of pages, the user has to scroll (Like page X of Y) // Call queryAGs to find out the number of AGDisplayInfos it returns. Using this // calculate your paging size (The number of AGDisplayInfos you want in a page) // Call queryAGs successively varing the startRow and endRow params. // For example: If the total number of AGDisplayInfos is 30 and your want a paging size // of 10, you can call with (startRow, endRow): (1, 10) (11, 20) (21, 30) // 2. If you have fixed paging size, just keep calling queryAGDisplayInfos successively with // the paging size (If your paging size is 10, you can call with (startRow, endRow): // (1, 10) (11, 20) (21, 30) (31, 40)..... until the number of agDisplayInfos returned is // less than your paging size (or) there are no more AGDisplayInfos returned if (agDisplayInfosList != null) { // There are AGDisplayInfos System.out.println("Total number of AGDisplayInfos: " + agDisplayInfosList.size()); System.out.println("AGDisplayInfo List: "); AGDisplayInfo agDisplayInfo = null; for(int i=0;i<agDisplayInfosList.size();i++) { agDisplayInfo = (AGDisplayInfo) agDisplayInfosList.get(i); System.out.println("AG CreationDate: " + agDisplayInfo.getCreatedDate()); System.out.println("AG UpdateDate: " + agDisplayInfo.getUpdatedDate()); System.out.println("AG CompositeName: " + agDisplayInfo.getCompositeName()); System.out.println("AG InstanceId: "+ agDisplayInfo.getInstanceId()); System.out.println("AG State: "+agDisplayInfo.getStatus() ); System.out.println(); } } // Now get the full blown AGDisplayInfo object for the first AGDisplayInfo in the list // Get the instanceId for the AG long instanceId = ((AGDisplayInfo) agDisplayInfosList.get(0)).getInstanceId(); // Define the task display columns for any tasks that are returned by the query // Since tasks have many columns and multiple tasks may be returned by this query, the column list is // needed to confine the result set to avoid unnecessary overhead. // For those columns that are not specified here, the queried Task object will not hold any value. // For example: If TITLE is not specified, task.getTitle() will return null // For the list of most comonly used task columns, refer to oracle.bpel.services.workflow.query.ITaskQueryService. // Note: TASKID is fetched by default. So there is no need to explicitly specity it. List taskQueryColumns = new ArrayList(); taskQueryColumns.add("TASKNUMBER"); taskQueryColumns.add("TITLE"); taskQueryColumns.add("PRIORITY"); taskQueryColumns.add("STATE"); // Query the full blown AGDisplayInfo object using the AG instanceId agDisplayInfo = getAGDisplayInfoDetailsById(wfCtx, instanceId, taskQueryColumns, IAGQueryService.AGASSIGNMENT_FILTER_MY); if (agDisplayInfo != null) { System.out.println("AG CreationDate : " + agDisplayInfo.getCreatedDate()); System.out.println("AG UpdateDate : " + agDisplayInfo.getUpdatedDate()); System.out.println("AG CompositeName : " + agDisplayInfo.getCompositeName()); System.out.println("AG InstanceId : "+ agDisplayInfo.getInstanceId()); System.out.println("AG Stage : "+agDisplayInfo.getStatus()); List milestoneDisplayInfoList = agDisplayInfo.getMilestoneDisplayInfo(); System.out.println("Total number of milestones: " + milestoneDisplayInfoList.size()); System.out.println("Milestone List: "); System.out.println("AG Stage : "+agDisplayInfo.getStatus()); MilestoneDisplayInfoType milestoneDisplayInfo = null; List taskList = null; Task task = null; for (int i = 0; i < milestoneDisplayInfoList.size(); i++) { milestoneDisplayInfo = (MilestoneDisplayInfoType) milestoneDisplayInfoList.get(i); System.out.println("Milestone title: " + milestoneDisplayInfo.getTitle()); System.out.println("Milestone Status: " + milestoneDisplayInfo.getStatus()); taskList = milestoneDisplayInfo.getTask(); System.out.println("Total number of tasks: " + taskList.size()); System.out.println("Task List: "); for (int j = 0; j < milestoneDisplayInfo.getTask().size(); j++) { task = (Task) taskList.get(j); System.out.println("Task Id: "+task.getSystemAttributes().getTaskId()); System.out.println("Title: "+task.getTitle()); System.out.println("State: "+task.getSystemAttributes().getState()); System.out.println(); } } } Beyond authentication, all methods require the worklist context as the first argument. The worklist context helps the worklist service determine the user requesting the action, whether the user has permission to perform the requested action on the agDisplayInfo and so forth. The context also contains information about the user's locale and timezone information.Following are all AG columns
Column | Description | Column Object | How to retrieve | |
INSTANCEID | Instance id | WFTASK_INSTANCEID_COLUMN | agDisplayInfo.getInstanceId() | True |
CREATEDDATE | Creation Date | WFTASK_CREATEDDATE_COLUMN | agDisplayInfo.getCreatedDate() | False |
UPDATEDDATE | Updation Date | WFTASK_UPDATEDDATE_COLUMN | agDisplayInfo.getUpdatedDate() | False |
COMPOSITEDN | Composite Name | WFTASK_COMPONENTDN_COLUMN | agDisplayInfo.getCompositeName() | True |
STATUS | State | WFTASK_STATE_COLUMN | agDisplayInfo.getStatus() | True |
Modifier and Type | Interface and Description |
---|---|
static class |
IAGQueryService.AGAssignmentFilter |
Modifier and Type | Field and Description |
---|---|
static Column[] |
AG_BPM_DEFAULT_COLUMNS |
static java.lang.String |
AG_PROCESS_TYPE_ANY
Deprecated.
Since 11.1.1.7.0. Use BPM mode instead
|
static java.lang.String |
AG_PROCESS_TYPE_BPEL
Deprecated.
Since 11.1.1.7.0. Use BPM mode instead
|
static java.lang.String |
AG_PROCESS_TYPE_BPM |
static java.lang.String |
AGASSIGNMENT_FILTER_ADMIN |
static java.lang.String |
AGASSIGNMENT_FILTER_CREATOR |
static java.lang.String |
AGASSIGNMENT_FILTER_MY |
static java.lang.String |
AGASSIGNMENT_FILTER_PREVIOUS |
static java.lang.String |
AGASSIGNMENT_FILTER_REPORTEES |
static java.lang.String |
FUTURE_TASK_NOT_STARTED |
Modifier and Type | Method and Description |
---|---|
AGDisplayInfo |
getAGDisplayInfoDetailsById(IWorkflowContext ctx, long instanceId, java.util.List taskDisplayColumns)
Deprecated.
as of release 11.1.1.2.7 Use
getAGDisplayInfoDetailsById API instead |
AGDisplayInfo |
getAGDisplayInfoDetailsById(IWorkflowContext ctx, long instanceId, java.util.List taskDisplayColumns, java.lang.String agAssignmentFilter)
getAGDisplayInfoDetailsById gets the details of an AGDisplayInfo object specified by instanceId The AGDisplayInfo objects returned contain the following information: 1.
|
AGDisplayInfo |
getAGDisplayInfoDetailsById(java.lang.String ag_process_mode, IWorkflowContext ctx, long instanceId, java.util.List taskDisplayColumns, java.lang.String agAssignmentFilter)
Deprecated.
Since 11.1.1.7.0. Use
queryAGDisplayInforDetailsById API instead |
MilestoneDisplayInfo |
getMilestoneDisplayInfo(IWorkflowContext ctx, long instanceId, java.lang.String milestoneName, java.util.List taskDisplayColumns, java.lang.String agAssignmentFilter)
getMilestoneDisplayInfo gets the MilestoneDisplayInfo object for the specified milestone in the specified AG This API is useful when the UI needs to retrieve and refresh only the milestone subtree instead of the entire AG tree.
|
MilestoneDisplayInfo |
getMilestoneDisplayInfo(java.lang.String ag_process_mode, IWorkflowContext ctx, long instanceId, java.lang.String milestoneName, java.util.List taskDisplayColumns, java.lang.String agAssignmentFilter)
Deprecated.
Since 11.1.1.7.0. Use
getMilestoneDisplayInfo API instead |
java.util.List |
queryAGDisplayInfos(IWorkflowContext ctx, java.util.List agDisplayColumns, IAGQueryService.AGAssignmentFilter agAssignmentFilter, Predicate predicate, Ordering ordering, int startRow, int endRow)
queryAGDisplayInfos returns a list of AGDisplayInfo objects.
|
java.util.List |
queryAGDisplayInfos(IWorkflowContext ctx, java.util.List agDisplayColumns, java.lang.String agAssignmentFilter, Predicate predicate, Ordering ordering, int startRow, int endRow)
queryAGDisplayInfos returns a list of AGDisplayInfo objects.
|
java.util.List |
queryAGDisplayInfos(java.lang.String ag_process_mode, IWorkflowContext ctx, java.util.List agDisplayColumns, IAGQueryService.AGAssignmentFilter agAssignmentFilter, Predicate predicate, Ordering ordering, int startRow, int endRow)
Deprecated.
Since 11.1.1.7.0. Use
queryAGDisplayInfos API instead |
java.util.List |
queryAGDisplayInfos(java.lang.String ag_process_mode, IWorkflowContext ctx, java.util.List agDisplayColumns, java.lang.String agAssignmentFilter, Predicate predicate, Ordering ordering, int startRow, int endRow)
Deprecated.
Since 11.1.1.7.0. Use
queryAGDisplayInfos API instead |
static final java.lang.String AGASSIGNMENT_FILTER_MY
static final java.lang.String AGASSIGNMENT_FILTER_REPORTEES
static final java.lang.String AGASSIGNMENT_FILTER_CREATOR
static final java.lang.String AGASSIGNMENT_FILTER_PREVIOUS
static final java.lang.String AGASSIGNMENT_FILTER_ADMIN
static final java.lang.String AG_PROCESS_TYPE_BPEL
static final java.lang.String AG_PROCESS_TYPE_BPM
static final java.lang.String AG_PROCESS_TYPE_ANY
static final java.lang.String FUTURE_TASK_NOT_STARTED
static final Column[] AG_BPM_DEFAULT_COLUMNS
java.util.List queryAGDisplayInfos(IWorkflowContext ctx, java.util.List agDisplayColumns, IAGQueryService.AGAssignmentFilter agAssignmentFilter, Predicate predicate, Ordering ordering, int startRow, int endRow) throws WorkflowException
ctx
- the workflow context (can contain valid token or credentials)agAssignmentFilter
- the assignment filter
For all possible values, check the assignment filters defined in this interface, like AGASSIGNMENT_FILTER_<Filter Name>
agDisplayColumns
- a list containing names of AG columns to be retrieved For those columns that are not specified here, the queried AGDisplayInfo object will not hold any value. For example: If CREATEDDATE is not specified, agDisplayInfo.getCreatedDate() will return null. The following AG columns will always be returned regardless of the agDisplayColumns setting
ColumnName | Column |
INSTANCEID | WFTASK_INSTANCEID |
COMPOSITEDN | WFTASK_COMPOSITEDN_COLUMN |
STATUS | WFTASK_STATE_COLUMN |
predicate
- the predicate for filtering the AGDisplayInfosordering
- the ordering criteria for sorting the AGDisplayInfosstartRow
- the rownum of the starting row for this query (set to 0 for no paging)endRow
- the rownum of the ending row for this query (set to 0 for no paging)WorkflowException
- if any runtime error occurs while querying AGDisplayInfosjava.util.List queryAGDisplayInfos(java.lang.String ag_process_mode, IWorkflowContext ctx, java.util.List agDisplayColumns, IAGQueryService.AGAssignmentFilter agAssignmentFilter, Predicate predicate, Ordering ordering, int startRow, int endRow) throws WorkflowException
queryAGDisplayInfos
API insteadWorkflowException
java.util.List queryAGDisplayInfos(IWorkflowContext ctx, java.util.List agDisplayColumns, java.lang.String agAssignmentFilter, Predicate predicate, Ordering ordering, int startRow, int endRow) throws WorkflowException
queryAGDisplayInfos
API, except that it takes a string assignment filter instead of an AGAssignmentFilter enum as input. This method is to be called by class AGQueryServiceWSIF only, which gets a string assignment filter from the XML input.WorkflowException
java.util.List queryAGDisplayInfos(java.lang.String ag_process_mode, IWorkflowContext ctx, java.util.List agDisplayColumns, java.lang.String agAssignmentFilter, Predicate predicate, Ordering ordering, int startRow, int endRow) throws WorkflowException
queryAGDisplayInfos
API insteadWorkflowException
AGDisplayInfo getAGDisplayInfoDetailsById(IWorkflowContext ctx, long instanceId, java.util.List taskDisplayColumns, java.lang.String agAssignmentFilter) throws WorkflowException
ctx
- the workflow context (can contain valid token or credentials)instanceId
- the instance id of the AGDisplayInfo whose details are neededtaskDisplayColumns
- a list containing names of task columns to be retrievedagAssignmentFilter
- the assignment filter
For all possible values, check the assignment filters defined in this interface, like AGASSIGNMENT_FILTER_<Filter Name>
For a list of common task columns, refer to oracle.bpel.services.workflow.query.ITaskQueryService. If taskDisplayColumns is null or has no elements, then the following columns will be returned by default:
Column |
WFTASK_TASKID_COLUMN |
WFTASK_VERSION_COLUMN |
WFTASK_TASKGROUPID_COLUMN |
WFTASK_TASKNUMBER_COLUMN |
WFTASK_TASKDEFINITIONID_COLUMN |
WFTASK_TASKGROUPINSTANCEID_COLUMN |
WFTASK_SUBTASKGROUPINSTANCEID_COLUMN |
WFTASK_ASSIGNEEUSERS_COLUMN |
WFTASK_ASSIGNEEUSERSDISPLAYNAME_COLUMN |
WFTASK_ASSIGNEEGROUPS_COLUMN |
WFTASK_ASSIGNEEGROUPSDISPLAYNAME_COLUMN |
WFTASK_ACQUIREDBY_COLUMN |
WFTASK_ASSIGNEES_COLUMN |
WFTASK_ORIGINALASSIGNEEUSER_COLUMN |
WFTASK_REVIEWERS_COLUMN |
WFTASK_CREATOR_COLUMN |
WFTASK_OWNERUSER_COLUMN |
WFTASK_OWNERGROUP_COLUMN |
WFTASK_OWNERROLE_COLUMN |
WFTASK_APPLICATIONCONTEXT_COLUMN |
WFTASK_DIGITALSIGNATUREREQUIRED_COLUMN |
WFTASK_EXPIRATIONDATE_COLUMN |
WFTASK_PRIORITY_COLUMN |
WFTASK_ASSIGNEDDATE_COLUMN |
WFTASK_CREATEDDATE_COLUMN |
WFTASK_ENDDATE_COLUMN |
WFTASK_STATE_COLUMN |
WFTASK_SUBSTATE_COLUMN |
WFTASK_UPDATEDBY_COLUMN |
WFTASK_UPDATEDDATE_COLUMN |
WFTASK_WORKFLOWPATTERN_COLUMN |
WFTASK_TITLE_COLUMN |
WFTASK_CATEGORY_COLUMN |
WFTASK_DUEDATE_COLUMN |
WFTASK_PERCENTAGECOMPLETE_COLUMN |
WFTASK_STARTDATE_COLUMN |
WFTASK_NUMBEROFTIMESMODIFIED_COLUMN |
WFTASK_TASKDISPLAYURL_COLUMN |
WFTASK_OUTCOME_COLUMN |
WFTASK_MDSLABEL_COLUMN |
WFTASK_PARTICIPANTNAME_COLUMN |
WFTASK_ORGANIZATIONALUNITID_COLUMN |
WFTASK_APPROVERS_COLUMN |
WFTASK_TENANTIDNUMBER_COLUMN |
WFTASK_TENANTID_COLUMN |
WFTASK_ACQUIREDBY_COLUMN |
WFTASK_ACTIVITYID_COLUMN |
WFTASK_INSTANCEID_COLUMN |
WFTASK_ASSIGNEES_COLUMN |
WFTASK_ASSIGNEEGROUPS_COLUMN |
WFTASK_ASSIGNEEUSERS_COLUMN |
WFTASK_REVIEWERS_COLUMN |
WFTASK_OWNERUSER_COLUMN |
WFTASK_OWNERGROUP_COLUMN |
WFTASK_ORIGINALASSIGNEEUSER_COLUMN |
WFTASK_PARTICIPANTNAME_COLUMN |
WFTASK_APPROVERS_COLUMN |
WFTASK_IDENTITYCONTEXT_COLUMN |
WFTASK_TASKDEFINITIONNAME_COLUMN |
WFTASK_COMPONENTNAME_COLUMN |
WFTASK_COMPOSITENAME_COLUMN |
WFTASK_CALLBACKID_COLUMN |
WFTASK_STATE_COLUMN |
WFTASK_SUBSTATE_COLUMN |
WFTASK_PROCESSID_COLUMN |
WorkflowException
- if any runtime error occurs while getting AGDisplayInfo detailsAGDisplayInfo getAGDisplayInfoDetailsById(java.lang.String ag_process_mode, IWorkflowContext ctx, long instanceId, java.util.List taskDisplayColumns, java.lang.String agAssignmentFilter) throws WorkflowException
queryAGDisplayInforDetailsById
API insteadWorkflowException
AGDisplayInfo getAGDisplayInfoDetailsById(IWorkflowContext ctx, long instanceId, java.util.List taskDisplayColumns) throws WorkflowException
getAGDisplayInfoDetailsById
API insteadWorkflowException
MilestoneDisplayInfo getMilestoneDisplayInfo(IWorkflowContext ctx, long instanceId, java.lang.String milestoneName, java.util.List taskDisplayColumns, java.lang.String agAssignmentFilter) throws WorkflowException
ctx
- the workflow context (can contain valid token or credentials)instanceId
- the instance id of the AG instancemilestoneName
- the name of the milestonetaskDisplayColumns
- a list containing names of task columns to be retrieved, which is the same as the one in getAGDisplayInfoDetailsById API aboveagAssignmentFilter
- - Allowable filters are AGASSIGNMENT_FILTER_MY AGASSIGNMENT_FILTER_REPORTEES AGASSIGNMENT_FILTER_PREVIOUSWorkflowException
- if any runtime error occurs while getting MilestoneDisplayInfoMilestoneDisplayInfo getMilestoneDisplayInfo(java.lang.String ag_process_mode, IWorkflowContext ctx, long instanceId, java.lang.String milestoneName, java.util.List taskDisplayColumns, java.lang.String agAssignmentFilter) throws WorkflowException
getMilestoneDisplayInfo
API insteadWorkflowException