Oracle-BPM(七)

代码下载:git


7、bpm api之以taskNumber或taskId查询

语言:java

package test01;


import com.taskQuery.services.TaskQueryService;
import com.taskQuery.services.TaskQueryService_Service;
import com.taskQuery.services.WorkflowErrorMessage;
import java.math.BigInteger;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import oracle.bpel.services.workflow.common.model.CredentialType;
import oracle.bpel.services.workflow.common.model.WorkflowContextType;
import oracle.bpel.services.workflow.query.model.TaskDetailsByNumberRequestType;
import oracle.bpel.services.workflow.task.model.Task;
import org.w3c.dom.Node;



public class test1 {
    public test1() {
        super();
    }
    
    //结合XML结构分析
    //1、以taskNumber来查询
/*    <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">
       <soapenv:Header/>
       <soapenv:Body>
          <tas:taskDetailsByNumberRequest>
             <com:workflowContext>
                <com:credential>
                   <com:login>weblogic</com:login>
                   <com:password>weblogic1</com:password>
                </com:credential>
             </com:workflowContext>
             <tas:taskNumber>200000</tas:taskNumber>
          </tas:taskDetailsByNumberRequest>
       </soapenv:Body>
    </soapenv:Envelope>

    //2、以taskId来查询
    <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">
   <soapenv:Header/>
   <soapenv:Body>
      <tas:taskDetailsByIdRequest>
         <com:workflowContext>
            <com:credential>
               <com:login>weblogic</com:login>
               <com:password>weblogic1</com:password>
            </com:credential>
         </com:workflowContext>
         <tas:taskId>3fa4e9f7-5719-4efa-8215-ad2b47fcbace</tas:taskId>
      </tas:taskDetailsByIdRequest>
   </soapenv:Body>
  </soapenv:Envelope>

*/
    
    
    
    /*
     * function testAccess
     * 作用:human Task 登陆验证
     * 参数:无
     * return 无
     * 
     */
    public void testAccess(){
        try{
            //1、新建【启动】一个Task查询服务对象。
            TaskQueryService_Service taskQueryService_Service = new TaskQueryService_Service();
            //2、获得一个Task查询服务实例。
            TaskQueryService taskQueryService = taskQueryService_Service.getTaskQueryServicePort();
            
            //3、获取凭证【通过凭证登陆,才能通过验证】
            //新建一个CredentialType,存储各种凭证
            CredentialType credentialType = new CredentialType();
            credentialType.setLogin("weblogic");
            credentialType.setPassword("11111111");
            
            //4、通过凭证,登陆验证。【在有操作者的情况之下,human task才能成功被操作】
            System.out.println("Authenticating...");
            WorkflowContextType workflowContextType = taskQueryService.authenticate(credentialType);
            System.out.println("Authenticated to TaskQueryService");
            
            //5、成功登陆之后,通过task number、taskid等查询整个task【这里使用task number】
            //新建一个TaskDetailsByNumberRequestType,存储查询task时需要的task number
            TaskDetailsByNumberRequestType taskDetailsRequest = new TaskDetailsByNumberRequestType();
            taskDetailsRequest.setTaskNumber(new BigInteger("200029"));
            taskDetailsRequest.setWorkflowContext(workflowContextType);
            //6、查询task
            Task task = taskQueryService.getTaskDetailsByNumber(taskDetailsRequest);
            System.out.println("Task:" + task.getSystemAttributes().getTaskId());
            
        }catch(WorkflowErrorMessage e){
            Logger.getLogger(test1.class.getName()).log(Level.SEVERE, null, e);
            }
        
        }
    
    public static void main(String [] args){
            test1 test = new  test1();
            test.testAccess();
        }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值