`
zhang_xzhi_xjtu
  • 浏览: 536445 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jbpm的教程的例子之一 HelloWorld.

阅读更多
重新改了一下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);
}
}
分享到:
评论
2 楼 zhang_xzhi_xjtu 2009-09-28  
elvishehai 写道
有没有源码.

有,但是没有办法上传。也没有办法发mail。
1 楼 elvishehai 2009-09-28  
有没有源码.

相关推荐

    JBPM_DEMO例子 Hello World

    【JBPM_DEMO例子 Hello World】是入门级的教程,主要展示了如何使用JBPM(Java Business Process Management)工作流引擎实现一个简单的“Hello World”流程。这个例子旨在帮助初学者理解JBPM的基本概念和操作流程。...

    Maven3+JBPM4.4+mysql helloworld例子

    本示例主要介绍如何使用Maven3与JBPM4.4集成,并在MySQL数据库环境下实现一个简单的 HelloWorld 应用。JBPM(Java Business Process Management)是一个开源的工作流和业务流程管理系统,它提供了完整的BPM解决方案...

    jbpm-7.18.0.Final-examples.zip

    1. **HelloWorld**:最基本的示例,演示如何创建和执行一个简单的流程。 2. **TaskService**:展示了如何使用 Task Service API 来管理和完成任务。 3. **HumanTasks**:涵盖与人类参与者交互的业务流程,例如审批...

    Jbpm4HelloWorld

    在"Jbpm4HelloWorld"中,你可能会看到一个简单的流程定义文件(.bpmn或.xml),其中包含任务节点、开始事件、结束事件等元素,它们构成了一个完整的流程图。 接下来,我们关注如何在项目中集成JBPM。由于这是个入门...

    JBPM工作流教程:3个电子书以及JBPM例子程序和源代码

    3个JBPM的经典电子教程: jBPM4.1中文用户手册.pdf jBPM详解_工作流管理系统.doc 深入浅出_jBPM_电子书.doc 以及一个JBPM的HelloWorld的例子

    JBPM4工作流应用开始指南.rar

    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 例程:设计一个“复杂的”业务流程 ...

    JBPM4.4 工作流 入门 例子

    2. **部署流程:** 将流程定义文件(如`helloworld.bpmn`)部署到JBPM服务器,生成对应的流程定义ID。 3. **启动流程:** 调用API启动流程实例,传入必要的参数(如发起人信息)。 4. **处理任务:** 用户登录工作台...

    jbpm例子.doc

    #### jBPM HelloWorld项目创建: 1. **项目创建**: 在Eclipse中选择"文件->新建->项目",选择"Process Project",命名项目为"myjbpm"。 2. **项目结构**: 生成的项目包含src/java、test/java目录,分别用于存放源...

    jbpm4和spring整合例子

    近期网上有人介绍jBPM4与Spring整合的2种方式,但没有人贴出代码,闲着无聊写了个例子,源码见附件,在WEBLOGIC下运行正常,事务由spring控制http://ip:7001/Spring/helloWorld.do

    Activiti Workflow HelloWorld示例与测试环境搭建.

    保存工作流设计:保存后Activiti会自动生成BPMN2.0 XML文件,如HelloWorld.bpmn20.xml,该文件是工作流定义的核心。 4. Hello World工作流的设计: 文章通过一个简单的例子,介绍了如何创建一个包含开始事件、用户...

    jBPM实例开发 精品文档.docx

    《jBPM实例开发详解》 jBPM,全称为Java Business ...通过"Hello World"和数据库示例,我们可以逐步理解和掌握这些概念,并进一步探索jBPM在实际业务场景中的应用。在实践中不断试验和调整,是深入理解jBPM的关键。

    jbpm工作流帮助你更好的管理工作

    首先,jbpm4helloworld是jbpm入门的一个经典示例,通常用于引导初学者了解如何在实际项目中部署和运行一个简单的流程。在这个例子中,我们将学习到以下几个关键知识点: 1. **jbpm安装与环境配置**:要开始jbpm开发...

    JBPM4 示例文件

    "Hello, World"是学习任何新语言或技术的入门示例,jbpm4helloworld可能是一个简单的JBPM4流程示例。这个项目可能包含一个基础的工作流定义,展示了如何创建、部署和运行一个基本的工作流程。开发者可以通过这个例子...

    JBPM工作流开发指南v10-20070706.doc

    这部分将引导新手通过创建一个简单的“Hello World”流程来熟悉JBPM。这通常包括设置开发环境、导入必要的库、定义流程模型(使用JPDL,即JBPM Process Definition Language)以及运行和测试流程。开发者会学习如何...

    jbpm-bpel.pdf

    4. **服务调用**:BPEL的核心能力之一是能够调用外部Web服务。这不仅限于调用其他BPEL流程,还可以调用任何符合SOAP协议的服务。 5. **适用场景**:jBPM BPEL适合那些需要高度可配置性、灵活性以及与其他系统集成...

    中文文档JBPM

    例如,"Hello World"例子就是一个很好的起点。在开始前,你需要配置好开发环境,包括安装JBPM库、设置IDE(如Eclipse或IntelliJ IDEA)以及必要的插件。然后,你可以创建一个简单的流程定义,这通常是以JPDL(JBPM ...

    JBPM开发指南WORD文档

    作为初学者的第一个流程示例,通常会使用简单的HelloWorld示例来熟悉JBPM的流程定义方式。流程定义采用了XML格式,这在大多数工作流引擎中是一种常见实践。可以将XML定义嵌入到代码中,或者将其保存为独立的XML文件...

    JBPM工作流开发指南

    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...

    JBPM开发指南

    在开始使用JBPM之前,通常会通过一个简单的"Hello World"例子来快速上手。这个例子将展示如何创建一个基础的流程,包括定义流程、启动流程实例以及完成任务。首先,你需要设置开发环境,安装必要的库和工具,如JDK、...

Global site tag (gtag.js) - Google Analytics