代码下载:git
9、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.query.model.LogicalOperatorEnumType;
- import oracle.bpel.services.workflow.query.model.PredicateOperationEnum;
- import oracle.bpel.services.workflow.query.model.PredicateJoinOperatorEnum;
- import oracle.bpel.services.workflow.task.model.Task;
- public class Test4 {
- //日志
- private static ADFLogger logger=ADFLogger.createADFLogger(Test3.class);
- public Test4() {
- super();
- }
- /**
- * 分页
- * */
- //参照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 startRow="1" endRow="10">
- <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:lhs>
- <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:lhs>
- <tas1:logicalOperator>AND</tas1:logicalOperator>
- <tas1:rhs>
- <tas1:lhs>
- <tas1:clause>
- <tas1:column tableName="WFTask">
- <tas1:columnName>textAttribute1</tas1:columnName>
- </tas1:column>
- <tas1:operator>EQ</tas1:operator>
- <tas1:value>MyTask</tas1:value>
- </tas1:clause>
- <tas1:clause joinOperator="AND">
- <tas1:column tableName="WFTask">
- <tas1:columnName>textAttribute2</tas1:columnName>
- </tas1:column>
- <tas1:operator>EQ</tas1:operator>
- <tas1:value>1234</tas1:value>
- </tas1:clause>
- </tas1:lhs>
- <tas1:logicalOperator>OR</tas1:logicalOperator>
- <tas1:rhs>
- <tas1:clause>
- <tas1:column tableName="WFTask">
- <tas1:columnName>textAttribute2</tas1:columnName>
- </tas1:column>
- <tas1:operator>EQ</tas1:operator>
- <tas1:value>123</tas1:value>
- </tas1:clause>
- </tas1:rhs>
- </tas1:rhs>
- </tas1:predicate>
- </tas1:predicate>
- </tas1:taskPredicateQuery>
- </tas:taskListRequest>
- </soapenv:Body>
- </soapenv:Envelope>
- */
- public static List<Task> queryTestWithPages(){
- //启动一个TaskQueryService服务
- TaskQueryService_Service taskQueryService_Service = new TaskQueryService_Service();
- TaskQueryService taskQueryService = taskQueryService_Service.getTaskQueryServicePort();
- //TaskListRequestType
- TaskListRequestType taskListRequestType = new TaskListRequestType();
- //操作者登录验证
- //WorkflowContextType
- WorkflowContextType workflowContextType = new WorkflowContextType();
- //CredentialType
- CredentialType credentialType = new CredentialType();
- credentialType.setLogin("weblogic");
- credentialType.setPassword("qw82232160");
- try{
- //验证
- workflowContextType = taskQueryService.authenticate(credentialType);
- }catch(WorkflowErrorMessage e){
- e.printStackTrace();
- return null;
- }
- //设置需要查询的属性
- //TaskPredicateQueryType
- TaskPredicateQueryType taskPredicateQueryType = new TaskPredicateQueryType();
- //设置页数(startRow, endRow): (1, 10) (11, 20) (21, 30)。。。
- int startRow = 1;
- int endRow = 10;
- taskPredicateQueryType.setStartRow(BigInteger.valueOf(startRow));
- taskPredicateQueryType.setEndRow(BigInteger.valueOf(endRow));
- //DisplayColumnType
- DisplayColumnType displayColumnType = new DisplayColumnType();
- displayColumnType.getDisplayColumn().add("textAttribute1");
- displayColumnType.getDisplayColumn().add("textAttribute2");
- displayColumnType.getDisplayColumn().add("textAttribute3");
- //TaskOptionalInfoType
- TaskOptionalInfoType taskOptionalInfoType = new TaskOptionalInfoType();
- taskOptionalInfoType.getTaskOptionalInfo().add(TaskOptionalInfoEnum.COMMENTS);
- taskOptionalInfoType.getTaskOptionalInfo().add(TaskOptionalInfoEnum.ATTACHMENTS);
- taskOptionalInfoType.getTaskOptionalInfo().add(TaskOptionalInfoEnum.PAYLOAD);
- //TaskPredicateType
- TaskPredicateType taskPredicateType = new TaskPredicateType();
- taskPredicateType.setAssignmentFilter(AssignmentFilterEnum.MY_GROUP);
- //PredicateType
- PredicateType predicateType1 = new PredicateType();//lhs
- PredicateType predicateType2 = new PredicateType();//注意这里的用法
- PredicateType predicateType3 = new PredicateType();
- PredicateType predicateType4 = new PredicateType();
- taskPredicateType.setPredicate(predicateType1);//
- predicateType1.setLhs(predicateType2);
- //PredicateClauseType
- //PredicateClauseType predicateClauseType = new PredicateClauseType();
- //ClauseType
- ClauseType clauseType1 = new ClauseType();
- //ColumnType
- ColumnType columnType1 = new ColumnType();
- columnType1.setTableName("WFTask");
- columnType1.setColumnName("state");
- clauseType1.setColumn(columnType1);
- clauseType1.setOperator(PredicateOperationEnum.IN);
- //ValueListType
- ValueListType valueListType = new ValueListType();
- valueListType.getValue().add("ASSIGNED");
- valueListType.getValue().add("INFO_REQUESTED");
- valueListType.getValue().add("OUTCOME_UPDATED");
- clauseType1.setValueList(valueListType);
- predicateType2.getClause().add(clauseType1);
- //PredicateJoinOperatorEnum
- predicateType1.setLogicalOperator(PredicateJoinOperatorEnum.AND);
- //rhs
- predicateType1.setRhs(predicateType3.getLhs());//这里不知道正不正确???
- //ClauseType
- ClauseType clauseType2 = new ClauseType();
- ColumnType columnType2 = new ColumnType();
- columnType2.setTableName("WFTask");
- columnType2.setColumnName("textAttribute1");
- clauseType2.setColumn(columnType2);
- clauseType2.setOperator(PredicateOperationEnum.EQ);
- clauseType2.setValue("MyTask");
- predicateType3.getClause().add(clauseType2);
- //ClauseType
- ClauseType clauseType3 = new ClauseType();
- clauseType3.setJoinOperator(PredicateJoinOperatorEnum.AND);
- ColumnType columnType3 = new ColumnType();
- columnType3.setTableName("WFTask");
- columnType3.setColumnName("textAttribute2");
- clauseType3.setColumn(columnType3);
- clauseType3.setOperator(PredicateOperationEnum.EQ);
- clauseType3.setValue("1234");
- predicateType3.getClause().add(clauseType3);
- //logicalOperator
- predicateType3.setLogicalOperator(PredicateJoinOperatorEnum.OR);
- predicateType3.setRhs(predicateType4);
- ClauseType clauseType4 = new ClauseType();
- ColumnType columnType4 = new ColumnType();
- columnType4.setTableName("WFTask");
- columnType4.setColumnName("textAttribute2");
- clauseType4.setColumn(columnType4);
- clauseType4.setOperator(PredicateOperationEnum.EQ);
- clauseType4.setValue("123");
- predicateType4.getClause().add(clauseType4);
- //插入查询的条件
- //taskPredicateQueryType.setStartRow(value);分页条件
- //taskPredicateQueryType.setEndRow(value);
- taskPredicateQueryType.setDisplayColumnList(displayColumnType);
- taskPredicateQueryType.setOptionalInfoList(taskOptionalInfoType);
- taskPredicateQueryType.setPredicate(taskPredicateType);
- //实施查询
- taskListRequestType.setTaskPredicateQuery(taskPredicateQueryType);//执行条件
- taskListRequestType.setWorkflowContext(workflowContextType);//执行环境
- //TaskListResponseType 应答
- TaskListResponseType taskListResponseType = new TaskListResponseType(); //
- try {
- taskListResponseType = taskQueryService.queryTasks(taskListRequestType);//调用taskQueryService来查询task
- List<Task> list = taskListResponseType.getTask();//
- return list;
- } catch (WorkflowErrorMessage e) {
- e.printStackTrace();
- return null;
- }
- }
- }