代码下载:git
8、bpm api之taskQueryService【不分页__没有测试】
- package com.ui.bpm;
- import com.proxy.bpm.query.TaskQueryService;
- import com.proxy.bpm.query.TaskQueryService_Service;
- import com.proxy.bpm.query.WorkflowErrorMessage;
- import com.proxy.bpm.service.TaskServiceContextTaskBaseType;
- import com.proxy.bpm.service.TaskService_Service;
- import java.math.BigInteger;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import oracle.adf.share.logging.ADFLogger;
- import oracle.bpel.services.workflow.common.model.CredentialType;
- import oracle.bpel.services.workflow.common.model.WorkflowContextType;
- import oracle.bpel.services.workflow.query.model.AssignmentFilterEnum;
- import oracle.bpel.services.workflow.query.model.ClauseType;
- import oracle.bpel.services.workflow.query.model.ColumnType;
- import oracle.bpel.services.workflow.query.model.DisplayColumnType;
- import oracle.bpel.services.workflow.query.model.CountTasksRequestType;
- import oracle.bpel.services.workflow.query.model.DisplayColumnType;
- import oracle.bpel.services.workflow.query.model.OrderingClauseType;
- import oracle.bpel.services.workflow.query.model.PredicateClauseType;
- import oracle.bpel.services.workflow.query.model.PredicateOperationEnum;
- import oracle.bpel.services.workflow.query.model.PredicateType;
- import oracle.bpel.services.workflow.query.model.SortOrderEnum;
- import oracle.bpel.services.workflow.query.model.TaskDetailsByIdRequestType;
- import oracle.bpel.services.workflow.query.model.TaskListRequestType;
- import oracle.bpel.services.workflow.query.model.TaskListResponseType;
- import oracle.bpel.services.workflow.query.model.TaskOptionalInfoEnum;
- import oracle.bpel.services.workflow.query.model.TaskOptionalInfoType;
- import oracle.bpel.services.workflow.query.model.TaskOrderingType;
- import oracle.bpel.services.workflow.query.model.TaskPredicateQueryType;
- import oracle.bpel.services.workflow.query.model.TaskPredicateType;
- import oracle.bpel.services.workflow.query.model.ValueListType;
- import oracle.bpel.services.workflow.task.model.Task;
- public class Test3 {
- //日志
- private static ADFLogger logger=ADFLogger.createADFLogger(Test3.class);
- public Test3() {
- super();
- }
- //TaskQueryService【流程查询】
- //TaskService【流程更新】
- //bpm Human Task 的各种type【对照XML】
- /* <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:tas="http://xmlns.oracle.com/bpel/workflow/taskQueryService" xmlns:com=http://xmlns.oracle.com/bpel/workflow/common" xmlns:tas1="http://xmlns.oracle.com/bpel/workflow/taskQuery" xmlns:task="http://xmlns.oracle.com/bpel/workflow/task">
- <soapenv:Header/>
- <soapenv:Body>
- <tas:taskListRequest>
- <com:workflowContext>
- <com:credential>
- <com:login>weblogic</com:login>
- <com:password>weblogic1</com:password>
- </com:credential>
- </com:workflowContext>
- <tas1:taskPredicateQuery>
- <tas1:displayColumnList>
- <tas1:displayColumn>textAttribute1</tas1:displayColumn>
- <tas1:displayColumn>textAttribute2</tas1:displayColumn>
- <tas1:displayColumn>textAttribute3</tas1:displayColumn>
- </tas1:displayColumnList>
- <tas1:optionalInfoList>
- <tas1:taskOptionalInfo>Comments</tas1:taskOptionalInfo>
- <tas1:taskOptionalInfo>Attachments</tas1:taskOptionalInfo>
- <tas1:taskOptionalInfo>Payload</tas1:taskOptionalInfo>
- </tas1:optionalInfoList>
- <tas1:predicate>
- <tas1:assignmentFilter>My+Group</tas1:assignmentFilter>
- <tas1:predicate>
- <tas1:clause>
- <tas1:column tableName="WFTask">
- <tas1:columnName>state</tas1:columnName>
- </tas1:column>
- <tas1:operator>IN</tas1:operator>
- <tas1:valueList>
- <tas1:value>ASSIGNED</tas1:value>
- <tas1:value>INFO_REQUESTED</tas1:value>
- <tas1:value>OUTCOME_UPDATED</tas1:value>
- </tas1:valueList>
- </tas1:clause>
- </tas1:predicate>
- </tas1:predicate>
- <tas1:ordering>
- <tas1:clause>
- <tas1:column>priority</tas1:column>
- <tas1:table>WFTask</tas1:table>
- <tas1:sortOrder>ASCENDING</tas1:sortOrder>
- <tas1:nullFirst>false</tas1:nullFirst>
- </tas1:clause>
- <tas1:clause>
- <tas1:column>taskNumber</tas1:column>
- <tas1:table>WFTask</tas1:table>
- <tas1:sortOrder>DESCENDING</tas1:sortOrder>
- <tas1:nullFirst>false</tas1:nullFirst>
- </tas1:clause>
- </tas1:ordering>
- </tas1:taskPredicateQuery>
- </tas:taskListRequest>
- </soapenv:Body>
- </soapenv:Envelope>
- */
- public static List<Task> queryTestNoPages() throws WorkflowErrorMessage {//该函数使用TaskQueryService,查询功能
- //新建一个task查询服务
- TaskQueryService_Service taskQueryService_Service = new TaskQueryService_Service();
- TaskQueryService taskQueryService = taskQueryService_Service.getTaskQueryServicePort();
- //1、登录验证
- WorkflowContextType workflowContextType = new WorkflowContextType();
- CredentialType credentialType = new CredentialType();
- credentialType.setLogin("weblogic");
- credentialType.setPassword("xxxxx");
- workflowContextType = taskQueryService.authenticate(credentialType);//try{}catch(){}WorkflowErrorMessage
- //成功登陆验证之后,获取可操作的环境workflowContextType
- //
- //2、开始准备各种需要查询的task属性
- TaskListRequestType taskListRequestType = new TaskListRequestType();
- TaskPredicateQueryType taskPredicateQueryType = new TaskPredicateQueryType();
- //DisplayColumnType【2级】
- DisplayColumnType displayColumnType = new DisplayColumnType();
- //查询属性少的时候,使用这种
- //displayColumnType.getDisplayColumn().add("textAttribute1");
- //displayColumnType.getDisplayColumn().add("textAttribute2");
- //displayColumnType.getDisplayColumn().add("textAttribute3");
- //查询属性很多时,用List
- List<String> DisplayColumn = displayColumnType.getDisplayColumn();
- DisplayColumn.add("textAttribute1");
- DisplayColumn.add("textAttribute2");
- DisplayColumn.add("textAttribute3");
- //TaskOptionalInfoType【方法和以上一样】【2级】
- TaskOptionalInfoType taskOptionalInfoType = new TaskOptionalInfoType();
- taskOptionalInfoType.getTaskOptionalInfo().add(TaskOptionalInfoEnum.COMMENTS);
- taskOptionalInfoType.getTaskOptionalInfo().add(TaskOptionalInfoEnum.ATTACHMENTS);
- taskOptionalInfoType.getTaskOptionalInfo().add(TaskOptionalInfoEnum.PAYLOAD);
- //TaskPredicateType【3级】
- TaskPredicateType taskPredicateType = new TaskPredicateType();
- taskPredicateType.setAssignmentFilter(AssignmentFilterEnum.MY_GROUP);
- //PredicateType
- PredicateType predicateType = new PredicateType();
- taskPredicateType.setPredicate(predicateType);
- //PredicateClauseType【这个type比较坑爹,没用上,改用ClauseType】
- //PredicateClauseType predicateClauseType = new PredicateClauseType();
- ClauseType clauseType = new ClauseType();
- //ColumnType
- ColumnType columnType = new ColumnType();
- columnType.setTableName("WFTask");
- columnType.setColumnName("state");
- clauseType.setColumn(columnType);
- clauseType.setOperator(PredicateOperationEnum.IN);
- //ValueListType
- ValueListType valueListType = new ValueListType();
- valueListType.getValue().add("ASSIGNED");
- valueListType.getValue().add("INFO_REQUESTED");
- valueListType.getValue().add("OUTCOME_UPDATED");
- clauseType.setValueList(valueListType);
- predicateType.getClause().add(clauseType);
- //TaskOrderingType
- TaskOrderingType taskOrderingType = new TaskOrderingType();
- //OrderingClauseType
- OrderingClauseType orderingClauseType1 =new OrderingClauseType();
- orderingClauseType1.setColumn("priority");
- orderingClauseType1.setTable("WFTask");
- orderingClauseType1.setSortOrder(SortOrderEnum.ASCENDING);
- orderingClauseType1.setNullFirst(false);
- taskOrderingType.getClause().add(orderingClauseType1);
- //OrderingClauseType
- OrderingClauseType orderingClauseType2 = new OrderingClauseType();
- orderingClauseType2.setColumn("taskNumber");
- orderingClauseType2.setTable("WFTask");
- orderingClauseType2.setSortOrder(SortOrderEnum.DESCENDING);
- orderingClauseType2.setNullFirst(false);
- taskOrderingType.getClause().add(orderingClauseType2);
- //setXXX
- taskPredicateQueryType.setDisplayColumnList(displayColumnType);
- taskPredicateQueryType.setOptionalInfoList(taskOptionalInfoType);
- taskPredicateQueryType.setPredicate(taskPredicateType);
- taskPredicateQueryType.setOrdering(taskOrderingType);
- //实施查询
- taskListRequestType.setTaskPredicateQuery(taskPredicateQueryType);
- taskListRequestType.setWorkflowContext(workflowContextType);
- //查出来之后,response
- TaskListResponseType taskListResponseType =taskQueryService.queryTasks(taskListRequestType);
- List<Task> list= taskListResponseType.getTask();
- return list;
- }
- }