您的位置:首页 > 数据库 > Oracle

Oracle-BPM(九)

2015-07-11 18:39 453 查看
代码下载: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;
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: