插件安装
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. 研究背景与现状 随着信息技术的快速发展,计算机辅助教学和远程教育变得越来越普遍,这为传统教学方式带来了变革。针对当前许多高校面临的作业管理难题,...
该项目可能包含从需求分析、系统设计、编码实现到测试部署的完整流程,为学习者提供了实际操作的机会,尤其适合学生进行毕业设计或期末大作业的实践。 Spring Boot是Spring框架的一个扩展,旨在简化Java Web应用的...
这一系统的设计与实现,不仅为学习者提供了一个实际操作的机会,还让其能够深入了解和掌握Spring Boot的应用开发流程。 该系统以疾病防控为核心,涵盖了疾病信息管理、防控措施管理、疫苗接种管理等多个模块,旨在...
该项目不仅提供了实践操作的机会,还包含了源码数据库和相关论文,使得学生能够通过分析源码和数据库结构来深化对软件开发流程的理解。 系统的开发基于Spring Boot框架,这是一款流行的开源Java框架,用于简化新...
随着信息技术的不断发展,基于Web的项目管理软件变得日益重要,尤其是在销售领域,一个能够整合销售流程、提高工作效率的系统对于企业来说至关重要。本项目即是一例,它是由Java语言开发,结合SpringBoot、Vue.js...
- 工作流:定义审批流程,自动流转任务。 - 通知公告:发布、查看各类通知和公告。 - 会议管理:预约、安排、记录会议信息。 - 事务管理:待办事项、日程安排、任务分配。 5. **开发工具与框架** 开发过程中...
Spring框架负责企业级开发中的业务对象管理,SpringMVC作为模型-视图-控制器的实现,处理Web层的交互,而MyBatis则简化了数据库操作,通过XML或注解的方式与数据库交互,是目前流行的轻量级持久层框架之一。...
开发此类系统的学生将能通过实践提升对Spring Boot框架的理解和应用,掌握前后端分离技术,学习数据库操作和安全机制的设计与实现。同时,这也有助于他们熟悉软件开发的完整流程,从需求分析、系统设计、编码实现到...
SSM驾校预约管理系统是一套为计算机相关专业的学生和学习者设计的软件项目,旨在帮助他们完成毕业设计、课程设计或期末大作业。该系统的核心是提供一个实用的驾校预约平台,便于学员安排和管理自己的学习进度,同时...
随着技术的不断进步和教育需求的不断变化,网络作业提交与批改系统的设计与实现是一个持续发展的过程。未来可以考虑加入更多智能化的元素,如智能批改、自动评分等,进一步提高系统的自动化和智能化水平,满足更加...
工作流管理则涉及到工作流程的设计与跟踪,如请假、审批、报销等;文档管理模块支持文档的上传、存储、分发和版本控制;会议管理模块则实现会议的安排、提醒、参与和记录功能。 系统的源码和数据库设计是本资料包的...
通过培训咨询微信小程序项目,学习者可以深入了解微信小程序的开发流程,掌握微信小程序与后端技术(如ssm即Spring、SpringMVC、MyBatis框架的整合应用)的交互方式,同时也会接触到数据库的设计与管理。因此,该...
6. 测试整合:创建简单的应用场景,验证SSH整合是否成功,如CRUD操作。 教程可能还会涉及工作流系统的实现,这通常需要结合Struts2的表单和动作,Spring的服务层以及Hibernate对数据的持久化处理。"作业.txt"可能...
SSH+quartz实现的可动态配置时间规则的定时任务是一个在IT行业中常见的需求,尤其是在企业级应用和服务中,为了实现自动化运维、数据处理或者业务触发等...这样的系统对于企业的日常运营和自动化工作流有着重要的价值。
它以其图形化的工作流设计和灵活的数据处理能力而受到广泛欢迎。"Job" 和 "Trans" 是Kettle中的两个核心概念。 **Job(工作流)** 是Kettle中的高层次工作单元,它定义了一组任务的执行顺序和逻辑。Job 主要用于...
该项目不仅适合用作毕业设计,同时也适用于课程设计和期末大作业,能够让使用者通过实际操作来加深对软件开发流程和技术应用的理解。 项目的核心功能是基于微信小程序的社区互助养老平台,用户可以在这个平台上进行...
论文部分则可能详述了开发背景、系统需求分析、系统设计与实现细节、功能测试以及项目总结等内容,是系统完整性和专业性的重要体现。 SSM物资物流系统是一个集成了多种现代Web技术和数据库管理思想的综合系统。它...
Activiti6是一款强大的工作流引擎,专为Java开发人员设计,尤其适合初学者。它提供了丰富的功能,包括流程定义、部署、执行以及监控等。本指南将深入介绍Activiti6的各项核心概念和操作。 1. **简介** - **执照**...
数据库的设计与实现是该项目中的关键部分,一个良好的数据库能够保证数据的完整性和一致性,同时也可以提高数据检索的效率。数据库的结构设计需要根据音乐播放器的具体功能来定制,可能包含音乐信息表、用户信息表、...