插件安装
a. link方式(快捷方式)
b. 复制方式(不是很好,插件很大)
3.配置插件
4.创建jbpm工程
src/test/java 用于测试包
src/main/java 写java代码的
src/main/config 配置文件的,如hibernate的配置..
src/main/jpdl 用于设计流程的(重点)
gpd.xml 没有多少用,设计时图片的座标
processimage.jpg 设计生成的图片,用处不大
processdefinition.xml 流程定义(最重要)
工作流插件功能说明:该插件安装了就会在重启后的Eclipse属性里面有个JBoss jBPM选项。
如何配置工作流。在JBoss jBPE选项里面有个Runtime Locations 选项 添加(Add)一个jBPM实例就ok了。
Add Location 选项框中的Location 框中若版本是jbpm-starters-kit-3.1.3请选择插件中目录文件夹:jbpm.3
确定就可以了。
构建与数据库交互的Test类:
public class Test extends TestCase {
// 得到实例,读取配置文件
private JbpmConfiguration cfg = JbpmConfiguration.getInstance();
// 得到上下文
private JbpmContext getContext() {
JbpmContext context = cfg.getCurrentJbpmContext();
if (context == null)
context = cfg.createJbpmContext();
return context;
}
// 创建表
public void _testCreateTable() {
cfg.createSchema();
}
//发布流程到数据库
public void _testDeployProcessDefindion(){
//查找流程
ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("simple/processdefinition.xml");
processDefinition.setName("我的流程");
//发布
getContext().deployProcessDefinition(processDefinition);
//提交
getContext().close();
}
//开启新的流程实例,哪个开启,哪个就可以写报销单
private void createProcessInstance(int pid,String name){
//根据流程编号查找流程对象
// getContext().getSession();
ProcessDefinition pd = getContext().getGraphSession().getProcessDefinition(pid);
//创建新的流程实例,停在start节点
ProcessInstance pi = pd.createProcessInstance();
//保存开启者到变量
pi.getContextInstance().setVariable("start", name);
//发信号
pi.signal();
//保存
getContext().close();
}
//调用上面方法,开启流程实例
public void _testStartInstance(){
createProcessInstance(1,"lgh");
}
//写报销单(哪个报,报多少,为什么报)
private void write(String name,float money,String msg){
//得到某某的待办列表
List<TaskInstance> list = getContext().getTaskList(name);
if (list!=null)
for (TaskInstance ti : list) {
if (ti.getName().equals("写报销单")){
ti.setVariable("money", money);
ti.setVariable("msg", msg);
ti.end();
break;
}
}
getContext().close();
}
public void _testWriter(){
write("lgh", 2000, "呷饭");
}
//领导审(要审核任务id,是否同意
private void agree(int taskid,boolean agree){
//根据任务id查找任务对象
TaskInstance ti = getContext().getTaskInstance(taskid);
//是否同意
String old = (String) ti.getVariable("status");
if (agree)
{
ti.end("同意");
ti.setVariable("status", old+"(同意)");
}
else
{
ti.end("不同意");
ti.setVariable("status", old+"(不同意)");
}
getContext().close();
}
public void _testManager(){
agree(3, true);
}
public static void main(String[] args) {
Test test = new Test();
//建表
//test._testCreateTable();
//发布
//test._testDeployProcessDefindion();
//开启
//test.createProcessInstance(1,"lxr");
//写报销单
//test.write("lxr", 800, "吃脚鱼");
//同意
test.agree(2, true);
}
}
分享到:
相关推荐
在J2EE(Java 2 Platform, Enterprise Edition)平台上,一个典型的工作流程系统常常采用STRUTS、SPRING、HIBERNATE和QUARTZ等技术栈构建,配合MYSQL作为数据库来存储和管理数据。现在我们详细探讨这些技术及其在...
### 基于Java的学生在线作业管理系统设计与实现 #### 1. 研究背景与现状 随着信息技术的快速发展,计算机辅助教学和远程教育变得越来越普遍,这为传统教学方式带来了变革。针对当前许多高校面临的作业管理难题,...
- 工作流:定义审批流程,自动流转任务。 - 通知公告:发布、查看各类通知和公告。 - 会议管理:预约、安排、记录会议信息。 - 事务管理:待办事项、日程安排、任务分配。 5. **开发工具与框架** 开发过程中...
6. 测试整合:创建简单的应用场景,验证SSH整合是否成功,如CRUD操作。 教程可能还会涉及工作流系统的实现,这通常需要结合Struts2的表单和动作,Spring的服务层以及Hibernate对数据的持久化处理。"作业.txt"可能...
它以其图形化的工作流设计和灵活的数据处理能力而受到广泛欢迎。"Job" 和 "Trans" 是Kettle中的两个核心概念。 **Job(工作流)** 是Kettle中的高层次工作单元,它定义了一组任务的执行顺序和逻辑。Job 主要用于...
Activiti6是一款强大的工作流引擎,专为Java开发人员设计,尤其适合初学者。它提供了丰富的功能,包括流程定义、部署、执行以及监控等。本指南将深入介绍Activiti6的各项核心概念和操作。 1. **简介** - **执照**...
该项目可能包含从需求分析、系统设计、编码实现到测试部署的完整流程,为学习者提供了实际操作的机会,尤其适合学生进行毕业设计或期末大作业的实践。 Spring Boot是Spring框架的一个扩展,旨在简化Java Web应用的...
学生学情预警系统通过整合各类学习数据,如考试成绩、出勤率、作业完成情况等,为教育者提供及时、全面的信息支持,以便于及时发现学生的学习困扰,实施个性化的教学干预。此外,系统还能减轻教师的工作负担,使他们...
### 基于Springboot的教学资源库系统设计与实现 #### 概述 随着社会进步与教育行业的快速发展,人们对于教育质量的要求不断提高。在互联网普及的今天,教学模式正在逐步向网络化转变,各大高校纷纷引入网络教学...
标题《基于物联网技术的农机作业参数采集器的设计与试验》表明本文的主旨是设计并测试一款新型的农机作业参数采集器。这项研究的目的是利用物联网技术改进农业机械化过程,进而促进中国农业的整体现代化。本文的重点...
本篇将详细探讨基于Python的医院信息系统的设计与实现,旨在提供一个全面的视角,帮助读者理解和掌握相关知识。 一、Python语言基础 Python以其简洁明了的语法和丰富的库支持,成为开发信息系统的首选语言之一。其...
广告公司管理软件通过整合工作流、财务流、物流和信息流,形成了一个统一的数据处理平台。 1. **工作流**:指因工作任务而产生的流程,如任务分配、进度跟踪等。 2. **财务流**:涵盖预算编制、成本核算、费用报销...
系统性质包括以信息处理为核心,人机协作,统一性,工作流自动化,智能性,以及开放性。电子政务系统规划需考虑综合性、系统性、变革性和可持续性,确保与政府发展战略一致。 系统设计时,应关注政府职能的合理体现...
Spoon是Kettle的主要图形用户界面(GUI),它为用户提供了一个直观的工作环境,用于设计、测试和调度数据转换和工作流。通过Spoon,用户无需编写一行代码就能完成复杂的数据处理任务,极大地降低了ETL工作的技术门槛...
Activiti是一个开源的业务流程管理(BPM)平台,它为业务流程和工作流自动化提供了强大的支持。Activiti 5是一个较早的版本,而提供的这份中文指南详细地介绍了如何使用Activiti 5,从而让用户快速地掌握这一工具。 ...
- **Job Flows**: 复杂的作业结构,由多个简单作业组成,支持工作流的管理。 - **Testing and Debugging**: 提供预览、调试和测试功能,确保数据质量。 **5. 数据源和目标** DataStage支持多种数据源,包括关系型...
【学生教务管理系统后台数据库设计】 本实验的目标是让学生深入理解...通过这样的课程设计,学生不仅可以巩固数据库理论知识,还能实际操作数据库管理系统,体验软件工程的设计过程,为未来从事相关工作打下坚实基础。
在大数据处理领域,Storm、Kafka以及JDBC的整合是一个常见的需求,用于实现实时数据流处理、消息队列和数据库交互。以下是对这个整合实例的详细解释。 首先,让我们来了解一下这三个组件: 1. **Apache Storm**:...
电子政务系统的设计与实施分为准备阶段(团队建立、调查研究、方案制定)、系统分析阶段(组织结构分析、工作流程分析、信息资源分析、信息流程分析)、系统设计阶段(体系设计、功能模块设计、数据库设计、界面设计...