Jbpm3.2 开发一个Hello World程序

2024-03-09 01:18

本文主要是介绍Jbpm3.2 开发一个Hello World程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


    这是一个超级简单的请假流程,只是为了学习,其他的我就不说了直接开始了。

1.定义 流程processdefinition.xml

    流程文件定义文件是 processdefinition.xml,这个是一个关键文件。具体内容如下:

 


 

 

 

 

processdefinition.xml文件相关标签说明:

说明:

    流程的名称改成了 helloworld 。(呵呵,也就是这里和 helloworld 有关了)

       <controller> 标签定义了三个数据:姓名、请假天数、说明。

       <transition> 标签定了 request 节点的一个流程转向,这里是转到 confirm 节点。

       <action> 标签定义了流程由一个节点转到另一个节点时,所要执行的动作,动作封装在一个              

       ActionHandler 类中。比如这里当 request confirm 结点时将执行 RequestAction 类的 execute 方法。

       RequestAction 下面还有一个 <reason> (请假理由),它对应于 FinshAction 的属性 String reason

    例如:

 

      

 

 流程文件对应的流程图如下:


 

     在processdefinition.xml中定义2个ActionHandler,分别是RequestAction和ConfirmAction,具体代码如下:

 

说明:

ExecutionContext 是一个贯通流程的容器,他是个大宝箱,里面啥玩意都有,后面将更深入的提到。这里的reasion就是processdefinition.xml中的我要请假。


 

 

 到了这里,后台的程序基本写完了,下面开始对流程进行部署,用前面提到的方法如下:

 

 

 

 

运行此程序看是否成功,在这里我的是可以的,我们继续了。


我慢来看看jbpm数据相关表:如下图

 

 

 

并由此简单判断出各表的作用,表中各字段的作用由字段名也能知晓一二。

jbpm_processdefinition : 一个流程定义文件对应一条记录,可记录多个流程定义文件,可记录一个流程定义文件的对个版本。
 
jbpm_action  : 记录 ActionHandler 的对象实例(以名称为标识)
 
jbpm_delegation : 记录了 ActionHandler 全类名,以便于用反射方式来加载
 
jbpm_envent : 它的 transition 引用了 Jbpm_transition 表的 id ,再看其它字段,估计此表是表示流程转向事件的一个实例,或者是一个各表之间的联接表。
 
jbpm_node : 流程结点
 
jbpm_transition  : 流程的转向定义
 
jbpm_variableaccess  :  流程中携带的变量。 ACCESS 字段是这些变量的读写权限
 

 

 

这篇关于Jbpm3.2 开发一个Hello World程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/789071

相关文章

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3