JBPM 4入門-6.プロセスインスタンスの作成と実行

4086 ワード

このブログでは、JBPM 4について簡単に説明します.詳細については、Googleリンクをご利用ください.
JBPM 4入門——1.jbpm概要
JBPM 4入門——2.eclipseにjbpmフローチャートを描くプラグインをインストールする
JBPM 4入門——3.JBPM 4開発環境の構築
JBPM 4入門——4.パッケージプロセス管理のツールクラス(JbpmUtil) 
JBPM 4入門——5.プロセス定義の発行、照会、削除
JBPM 4入門-6.プロセスインスタンスの作成と実行
JBPM 4入門——7.待機ノードの単線手動実行
JBPM 4入門——8.ノードのブランチ実行待ち
JBPM 4入門——9.自動ノード単線実行
package com.test.test;

import java.util.Iterator;
import java.util.List;

import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessDefinitionQuery;
import org.jbpm.api.ProcessInstance;

import com.test.util.JbpmUtil;

public class Test {

	/**
	 *        
	 * @param jpdlFileName         。  :hello.jpdl.xml
	 */
	public void deploy(String jpdlFileName){
		JbpmUtil.getRepositoryService()
		.createDeployment()
		.addResourceFromClasspath(jpdlFileName)
		.deploy();
	}
	
	/**
	 *        
	 */
	public void query(){
		ProcessDefinitionQuery query
		 = JbpmUtil.getRepositoryService().createProcessDefinitionQuery();
		List<ProcessDefinition> list = query.list();
		for (Iterator iterator = list.iterator(); iterator.hasNext();) {
			ProcessDefinition processDefinition = (ProcessDefinition) iterator
					.next();
			/**
			 * id:     id
			 * key:             、   key      id
			 * deploymentId:                           id
			 */
			System.out.println("id:"+processDefinition.getId());
			System.out.println("key:"+processDefinition.getKey());
			System.out.println("deploymentId:"+processDefinition.getDeploymentId());
		}
	}
	
	/**
	 *        
	 * @param deploymentId 
	 */
	public void del(String deploymentId){
		//deleteDeploymentCascade     :                 ..
		JbpmUtil.getRepositoryService().deleteDeploymentCascade(deploymentId);
	}
	
	/**
	 *       
	 * @param key	     key
	 * @return	         
	 */
	public ProcessInstance createInstance(String key){
		//        key  。  startProcessInstanceByKey  key                   、          
		return JbpmUtil.getExecutionService().startProcessInstanceByKey(key);
	}
	
	/**
	 *        :         
	 * @param processInstanceId
	 * @return
	 */
	public ProcessInstance execute(String processInstanceId){
		return JbpmUtil.getExecutionService().signalExecutionById(processInstanceId);
		
	}
	
	/**
	 *       2:  transition            (to state1  to state2 to end1......)
	 * @param processInstanceId
	 * @return
	 */
	public ProcessInstance execute(String processInstanceId,String transitionName){
		return JbpmUtil.getExecutionService().signalExecutionById(processInstanceId,transitionName);
		
	}
		
	public static void main(String[] args) {
		Test test = new Test();
//		test.deploy("hello.jpdl.xml");//       
		test.deploy("simple2.jpdl.xml");//       
//		test.query();//       
//		test.del("10001");//      
		test.createInstance("simple2");//      
//		test.execute("simple.70001");//      
//		test.execute("simple.70001","to end1");//      
		
	}
}