重新改了一下jbpm的教程的第一个例子,希望对刚接触jbpm的人有帮助。
HelloWorldProcess.xml
<process-definition name='helloProcess'>
<event type="node-enter">
<script>
System.out.println("this script is entering node "+node);
</script>
</event>
<start-state >
<transition to='start' />
</start-state>
<state name='start'>
<transition to='end' />
</state>
<end-state name='end' />
</process-definition>
TestHelloWorldProcess.java
public class TestHelloWorldProcess {
private static Log log = LogFactory.getLog(TestHelloWorldProcess.class);
/**
* pd's name.
*/
private static String pdName = "helloProcess";
/**
* pd's definition xml's file path.
*/
private static String filePath = "HelloWorldProcess.xml";
/**
* One JbpmConfiguration can have many JbpmContexts.
*/
private static JbpmConfiguration jbpmConfiguration = JbpmConfiguration
.getInstance();
private static JbpmContext getJbpmContext() {
JbpmContext context = jbpmConfiguration.getCurrentJbpmContext();
if (context == null)
context = jbpmConfiguration.createJbpmContext();
return context;
}
/**
* Deploy ProcessDefinition.
*/
private static long deployProcessDefinition() {
JbpmContext jbpmContext = getJbpmContext();
try {
// parse ProcessDefinition from .xml file.
ProcessDefinition processDefinition = ProcessDefinition
.parseXmlResource(filePath);
// deploy ProcessDefinition to db.
jbpmContext.deployProcessDefinition(processDefinition);
return processDefinition.getId();
} finally {
jbpmContext.close();
}
}
/**
* Create new ProcessInstance.
*/
private static long createProcessInstance() {
JbpmContext jbpmContext = getJbpmContext();
try {
GraphSession gSession = jbpmContext.getGraphSession();
ProcessDefinition pd = gSession.findLatestProcessDefinition(pdName);
ProcessInstance processInstance = new ProcessInstance(pd);
jbpmContext.save(processInstance);
return processInstance.getId();
} finally {
jbpmContext.close();
}
}
private static void triggerProcess1(long piId) {
JbpmContext jbpmContext = getJbpmContext();
try {
ProcessInstance processInstance = jbpmContext
.getProcessInstance(piId);
// After construction, the process execution has one main path
// of execution (=the root token).
Token token = processInstance.getRootToken();
// Let's start the process execution, leaving the start-state
// over its default transition.
// The signal method will block until the process execution
// enters a wait state.
token.signal();
jbpmContext.save(token);
jbpmContext.save(processInstance);
} finally {
jbpmContext.close();
}
}
private static void triggerProcess2(long piId) {
JbpmContext jbpmContext = getJbpmContext();
try {
ProcessInstance processInstance = jbpmContext
.getProcessInstance(piId);
Token token = processInstance.getRootToken();
token.signal();
jbpmContext.save(token);
jbpmContext.save(processInstance);
} finally {
jbpmContext.close();
}
}
private static void deleteProcessDefinition(long pdId) {
JbpmContext jbpmContext = getJbpmContext();
try {
GraphSession gSession = jbpmContext.getGraphSession();
gSession.deleteProcessDefinition(pdId);
} finally {
jbpmContext.close();
}
}
public static void main(String[] args) {
DOMConfigurator.configure("config\\LogConfig.xml");
long pdId = deployProcessDefinition();
long piId = createProcessInstance();
triggerProcess1(piId);
triggerProcess2(piId);
deleteProcessDefinition(pdId);
}
}
分享到:
相关推荐
JBPM 例子 Hello World 例子 希望对大家有用
JBPM4.4的一个helloworld 例子,Junit测试通过
3个JBPM的经典电子教程: jBPM4.1中文用户手册.pdf jBPM详解_工作流管理系统.doc 深入浅出_jBPM_电子书.doc 以及一个JBPM的HelloWorld的例子
41 2.9.5 导入和使用范例 41 2.10 例程:jBPM HelloWorld 43 2.11 小结 45 第3章 使用jBPM图形化流程设计器(GPD)设计流程 46 3.1 创建一个新流程 47 3.2 编辑流程定义源 49 3.3 例程:设计一个“复杂的”业务流程 ...
jbpm入门的第一个例子 使用最少的jar包
JBPM4.4 工作流 入门 例子 HelloWorld
近期网上有人介绍jBPM4与Spring整合的2种方式,但没有人贴出代码,闲着无聊写了个例子,源码见附件,在WEBLOGIC下运行正常,事务由spring控制http://ip:7001/Spring/helloWorld.do
2.2 、Hello World 例子 6 三、学习JPDL 11 3.1 、简介 11 3.2 、流程版本(Version) 11 3.3 、流程定义 12 3.3.1 process-definition(流程定义) 12 3.3.2 node(自动节点) 13 3.3.3 start-state(开始状态) 13 3.3.4...
1、JBPM 安装 2、JBPM 部署 3、JBPM 实例 4、HELLO WORLD
1.2. 第一个例子:注册示例.............................................................................................................................................. 15 1.2.1. 了解代码.................