Task Query Service Client Code
The code sample below provides an example of the task query service client code:
/** * WFClientSample */ package oracle.bpel.services.workflow.samples; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import oracle.bpel.services.workflow.IWorkflowConstants; import oracle.bpel.services.workflow.WorkflowException; import oracle.bpel.services.workflow.client.IWorkflowServiceClient; import oracle.bpel.services.workflow.client.WorkflowServiceClientFactory; import oracle.bpel.services.workflow.client.IWorkflowServiceClientConstants .CONNECTION_PROPERTY; import oracle.bpel.services.workflow.query.ITaskQueryService; import oracle.bpel.services.workflow.query.ITaskQueryService.AssignmentFilter; import oracle.bpel.services.workflow.query.ITaskQueryService.OptionalInfo; 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.verification.IWorkflowContext; public class WFClientSample { public static List runClient(String clientType) throws WorkflowException { try { IWorkflowServiceClient wfSvcClient = null; ITaskQueryService taskQuerySvc = null; IWorkflowContext wfCtx = null; // 1. this step is optional since configuration can be set in wf_client_ config.xml file Map<CONNECTION_PROPERTY, String> properties = new HashMap<CONNECTION_ PROPERTY, String>(); if (WorkflowServiceClientFactory.REMOTE_CLIENT.equals(clientType)) { properties.put(CONNECTION_PROPERTY.EJB_INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); properties.put(CONNECTION_PROPERTY.EJB_PROVIDER_URL, "t3://myhost.us.example.com:7001"); properties.put(CONNECTION_PROPERTY.EJB_SECURITY_CREDENTIALS, "weblogic"); properties.put(CONNECTION_PROPERTY.EJB_SECURITY_PRINCIPAL, "weblogic"); } else if (WorkflowServiceClientFactory.SOAP_CLIENT.equals(clientType)) { properties.put(CONNECTION_PROPERTY.SOAP_END_POINT_ROOT, "http://myhost:7001"); properties.put(CONNECTION_PROPERTY.SOAP_IDENTITY_ PROPAGATION,"non-saml"); // optional } // 2. gets IWorkflowServiceClient for specified client type wfSvcClient = WorkflowServiceClientFactory.getWorkflowServiceClient(clientType, properties, null); // 3. gets ITaskQueryService instance taskQuerySvc = wfSvcClient.getTaskQueryService(); // 4. gets IWorkflowContext instance wfCtx = taskQuerySvc.authenticate("jcooper", "welcome1".toCharArray(), "jazn.com"); // 5. creates displayColumns List<String> displayColumns = new ArrayList<String>(8); displayColumns.add("TASKID"); displayColumns.add("TASKNUMBER"); displayColumns.add("TITLE"); displayColumns.add("CATEGORY"); // 6. creates optionalInfo List<ITaskQueryService.OptionalInfo> optionalInfo = new ArrayList<ITaskQueryService.OptionalInfo>(); optionalInfo.add(ITaskQueryService.OptionalInfo.DISPLAY_INFO); // 7. creates assignmentFilter AssignmentFilter assignmentFilter = AssignmentFilter.MY_AND_GROUP; // 8. creates predicate List<String> stateList = new ArrayList<String>(); stateList.add(IWorkflowConstants.TASK_STATE_ASSIGNED); stateList.add(IWorkflowConstants.TASK_STATE_INFO_REQUESTED); Predicate predicate = new Predicate(TableConstants.WFTASK_STATE_COLUMN, Predicate.OP_IN, stateList); // 9. creates ordering Ordering ordering = new Ordering(TableConstants.WFTASK_DUEDATE_COLUMN, true, false); ordering.addClause(TableConstants.WFTASK_CREATEDDATE_COLUMN, true, false); // 10. calls service - query tasks List taskList = taskQuerySvc.queryTasks(wfCtx, (List<String>) displayColumns, (List<OptionalInfo>) optionalInfo, (AssignmentFilter) assignmentFilter, (String) null, // keywords is optional (see javadoc) // optional predicate, ordering, 0, // starting row 100); // ending row for paging, 0 if no paging // Enjoy result System.out.println("Successfuly get list of tasks for client type: " + clientType + ". The list size is " + taskList.size()); return taskList; } catch (WorkflowException e) { System.out.println("Error occurred"); e.printStackTrace(); throw e; } } public static void main(String args[]) throws Exception { runClient(WorkflowServiceClientFactory.REMOTE_CLIENT); runClient(WorkflowServiceClientFactory.SOAP_CLIENT); } }