Oracle-BPM(八)

来源:互联网 发布:日历记事软件 编辑:程序博客网 时间:2024/05/18 09:14

代码下载: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;        }        }


0 0
原创粉丝点击