JFlow工作流数据
工作流

流程运转模型(五)发散运转模型- 异或模型(隐式)
隐式和显式的区别不是太大. 存在分支A—C 和分支A— D 都满足条件,但最终也依 然只能有一个分支被激活. 至于哪一个分支被激活,这 可能是人为的操作,也可能 是某种随机的自动选择.但 必须只有一个分支被激活 应用非常少,而且大多数的 工作流引擎不支持这种模型, 仅支持显式XOR 模型.
流程运转模型(八)发散运转模型- 发散模型
发散和并行最大的区别就是,各个分支(branch)的流程状 态(或流程数据): 1)在并行模型中,分支状态大多数情况下是不相等的.由 任务A 执行后的状态进行一定条件下的"拆分",形成了两 个分支(或多个分支)流程.这多个分支流程,在最终需要 重新聚合成一个主流程,以确保流程信息的完整性(当然, 实际运行中,可能存在因为超时等特定原因而最终抛弃某个 子流程). 2)在发散模型中,分支状态是绝对相等的.因发散而 产生的多个分支流程,在最终未必聚合(可能因为种种原因, 聚合的时候会抛弃一个和多个分支流程)
任务与Block Activity
任务和Block Activity非 常相似,但并不一样 如图,task中的多个 action没有顺序关系, action Block Activity中,各个 activity应该顺序执行
流程起点模型(一)
任何一个工作流能够运行,需要条件-- "起点"来激活 起点也是一种任务节点.这个节点可能会进 行一定的操作,可能只涉及一些数据的改变. 导致一个流程被激活
三大主流
关于驰骋工作流引擎ccflow的评估中的一些问题答复

关于厦门的朋友对驰骋工作流引擎的评估若干问题答复1. 需要把代码集成,组织结构集成. 如何处理?RE:1.驰骋工作流引擎、流程快速开发平台可以支持多租户集团模式、支持集团单机版模式,支持中间件模式。
2.如果想把ccflow,jflow集成到您的开发框架里,需要两个步骤,代码集成与组织结构集成。
3.代码集成就是把ccflow,jflow的前台与后台分别合并到您的代码库里。
Ccflow,jflow的后台依赖较少,结构简单。
前台只有一个目录,代码都是开放的,直接合并就可以。
4.组织机构集成步骤的原理是,把ccflow,jflow的5个组织机构表删除掉,创建结构一样的视图就可以完成了。
详细信息请参考在线操作手册:5.组织机构的集成http://ccbpm.mydoc.io/?t=15928包括.net版本的ccflow java版本jflow.通用。
2. 一个流程跑到指定的节点,需要启动另外一个流程,如何启动的?如何配置?Re:1.在驰骋BPM中我们称为父子流程。
2.一个节点上可以启动多个流程模版,比如:在项目实施流程中的一个节点可以吊起催款流程,也可以吊起采购原材料流程。
3.父子流程分为两类,一类是一个流程只能启动多次的,比如:工程类的项目,催款流程,购买原材料流程。
实验室管理系统中的采样流程,分析流程,我们把这样的称为父子流程。
4.另外一类是只能启动一次的,比如:再一个集团应用中,每个子公司的一条报销流程运行到指定的节点后,根据一定的条件需要到集团财务部审批,子公司的流程我们称为父流程,集团的流程,我们称为子流程。
但是这个集团的子流程只能启动一次相对于这个流程实例来说,我们把这样的流程称为延续流程。
3. 表单两个字段用户大类,用户小类如何实现联动选择下拉框?RE:1.这个模式我们称为表单的级联下拉框。
2.我们的demo库里有这样的demo., 如下图:3.4.数据源的获取支持多种模式,如下图:5.6.你只要会sql,会使用js,就可以快速的配置实现这样的效果。
JFlow与activiti的对比

驰骋工作流引擎JFlow 与activiti对比分析报告目录前言 (4)工作流程引擎- 对比 (4)5 种基本控制流模式的对比 (5)4 种高级分支同步模式 (10)2 种结构化模式 (14)4 种包含多实例的模式 (16)3 种基于状态的模式 (19)2 种取消模式 (22)总结 (23)表单集成 (24)表单引擎与流程引擎的关系 (25)最简单的请假流程-根据表单的请假天数来判断流程的分支 (25)流程引擎操纵表单引擎的一个案例 (27)对多种表单的支持 (29)简洁明快的CCForm (29)Word 文档支持 (31)Excel 表单的支持 (31)表单树的支持 (32)符合中国特色个性化JFlow 功能 (32)流程属性 (33)多种接受人规则 (33)接受人员投递路径自动记忆 (34)发起前置导航 (35)节点属性 (35)方向条件可视化配置 (36)JFlow 对工业自动化的流程支持 (37)前言为了更好的说明activiti 与jflow 的两款工作流引擎的特点与区别,我们按照如下几个方面做一次全面的、客观的对比。
首先activiti 是国外的一款开源的工作流程引擎,在国际上影响比较深远与广泛,解决了BPM领域的很多问题,值得我们赞赏。
他的boss 是jbpm 的前身。
JFlow 是济南驰骋公司开放的一款工作流程引擎,JFlow 的前身是CCFlow ,ccflow 是国内开源的一款老牌的工作流程引擎,承担过很多大型项目,适应于复杂的国内应用环境。
Activity 相对简单,仅有流程引擎,没有表单引擎。
在BPM 的研究领域, 很多的学者,专家都是把流程引擎与表单引擎分开的,对于这个观点我们并不很赞同。
实现功能需要大量的代码开发。
JFlow 是JFlow 流程引擎+CCForm 的表单引擎的有机结合,内容相对复杂,配置程度较高,实施周期短,上手快。
工作流程引擎- 对比以国外流行的工作流activiti 的模式与当今中国开源的JFlow(ccflow 和jflow 的总称)流程引擎对照。
jflow工作流审批案例

jflow工作流审批案例
JFlow是一种工作流管理系统,用于优化和自动化组织内的业务流程。
审批是工作流中常见的场景之一,以下是一个简单的JFlow工作流审批案例的示例:
场景:请假申请审批
流程步骤:
1.请假申请发起:
•员工发起请假申请,填写请假单,包括请假开始时间、结束时间、请假事由等信息。
2.上级主管审批:
•请假申请提交后,流程自动发送给员工的上级主管。
•主管收到通知,可以在JFlow系统中查看请假申请,审批同意或拒绝。
3.人事部审批(可选步骤):
•如果需要,审批通过的请假申请会继续发送给人事部门进行审批。
•人事部可以对请假事宜进行进一步审批或处理。
4.最终审批:
•请假申请流程可能还需要经过其他部门或最终审批人的审批,具体根据组织内部流程而定。
5.通知员工:
•一旦所有审批环节完成,系统会自动通知员工请假申请的
审批结果。
6.记录审批历史:
•JFlow系统会记录每个审批步骤的详细信息,包括审批人、审批时间、审批意见等,形成审批历史记录。
特点和优势:
•自动化流程:JFlow系统通过自动化流程,减少了繁琐的手动操作,提高了审批效率。
•多级审批:可以根据组织的层级结构设置多级审批,确保适当的人员对请假申请进行审批。
•实时通知:系统会实时通知相关审批人,降低了信息沟通的时间延迟。
•审批历史记录:提供详细的审批历史记录,方便查阅和追溯。
•灵活配置:JFlow系统通常具有灵活的配置选项,可以根据组织的实际需求进行定制。
这只是一个简单的例子,实际的JFlow工作流审批案例会根据组织的业务需求和流程设计有所不同。
工作流数据库设计

1人为决策,2自动处理(直接执行execute_function),3等待外部响应(例如外部WS触发),4分支,5汇总6结束结点(此结点执行时候自动终止进程)
init_function
流程初始函数
run_function
流程运行函数
save_function
流程保存函数
transit_function
list_defination(){
}
init_process(defination_id){
global user;
取得$defination,得到业务的handler,例如WorkflowProposalHandler
建立$process行记录
}
start_process(){
调用WorkflowProposalHandler->start($process)//新建业务对象,并把业务类的参数例如proposal_id放到$process[‘context’]里面
transit_function ()执行流转
sendmail其它结点调用函数
workflow.php
switch(op)
case list_defination
参数:无
WorkflowService->list_defination();
case start_process :启动
参数:defination_id
6不把可视化设计流程的工作交给最终客户,而且由设计时完成,因此不考虑流程版本更新的问题
一、工作流数据表设计
tbl_workflow_defination:工作流定义表
defination_id
流程id
defination_naห้องสมุดไป่ตู้e
java工作流引擎Jflow流程事件和流程节点事件设置

java⼯作流引擎Jflow流程事件和流程节点事件设置
流程实例的引⼊和设置
关键词:
开源⼯作流引擎 Java⼯作流开发 .net开源⼯作流引擎流程事件⼯作流节点事件
应⽤场景:
在⼀些复杂的业务逻辑流程中需要在某个节点或者是流程结束后做⼀些业务逻辑的处理,这时候就需要⽤后台代码来处理这些复杂的业务逻辑,我们驰骋⼯作流引擎统称流程事件,我们在程序中为开发⼈员预留了接⼝,只要按着我们的配置就可以轻松的写⼊你⾃⼰的程序。
具体步骤
1. 在项⽬的BP.FlowEvent下⾯新建⼀个类
例如:F00.java 继承 FlowEventBase 类
重写流程标记,这个流程标记,这个流程标记就是你要写流程事件的流程编号
类建好之后重起服务器
1.2设置流程属性
填写流程标记
保存后检查流程
再打开流程属性,你会看到流程实体会⾃动引⼊之前建的流程实体类,这就说明流程实体设置成功
在这个流程实例⾥再写⼊流程事件或者是流程节点事件都可以。
JFlow工作流数据

int
10,0
0
13
SET_TOP
节点纵坐标
int
10,0
0
14
PLUGIN
转交调用插件
text
65535
15
PLUGIN_SAVE
保存调用插件
text
65535
16
PRCS_ITEM_AUTO
允许在不可写情况下自动赋值的宏控件
text
65535
17
PRCS_IN
转入条件组成的串(\n分隔)
精简后的表单设计信息
mediumtext
16777215
5
DEPT_ID
表单所属部门
int
10,0
0
6
SCRIPT
表单拓展脚本
text
65535
7
CSS
表单扩展样式
text
65535
8
ITEM_MAX
最大的项目编号
int
10,0
9
FORM_SORT
表单所属分类
int
10,0
0
3、
描述:设计表单版本库
td_oa.flow_run_hook10
td_oa.flow_run_log10
td_oa.flow_run_prcs11
td_oa.flow_sort12
td_oa.flow_timer12
td_oa.flow_type13
td_oa.flow_version15
td_oa.form_sort15
公共附件中的Office文档详细权限设置(逗号分隔):
1-新建权限;
2-编辑权限;
3-删除权限;
2021年15个国内优秀低代码开发平台对比分析

2021年15个国内优秀低代码开发平台对⽐分析“低代码开发”最早可追溯到20世纪90年代⾄21世纪初的编程语⾔和⼯具(百度百科)。
阿⾥云智能总裁张建锋在钉钉6.0发布会上也表⽰,“低代码开发”,将成为新⼀代的软件开发⽅式。
“钉钉宜搭低代码开发⼯具,让不懂代码的⽤户,也能快速开发新应⽤。
”⼀什么是“低代码开发平台”“低代码开发平台”,英⽂全称“Low-Code Development Platform”,简称LCDP,是通过少量代码或零代码就可以快速⽣成新应⽤的开发平台。
其实就是让不懂写代码的⽤户,或者技术⼈员,利⽤“可视化”窗⼝,通过“拖拽”等操作就能快速开发出适合企业⾃⾝实际业务场景的⼯作流程或应⽤程序。
⼆发展历程三国内低代码开发平台有哪些?低代码俨然已经成为了下⼀代的软件开发⽅向,国外市场蒸蒸⽇上,国内市场⼜是何种状态呢?随着搭载宜搭低代码开发⼯具的钉钉6.0的推出,2021年国内低代码应⽤市场⼜燃起了战⽕。
以下是本⼈通过最近的了解,⽐较了⼏⼗家低代码⼚商的产品或平台,觉得⽐较不错的有15家列出来供⼤家参考,欢迎不同意见的⽹友在评论区交流。
1 宜搭简介阿⾥钉钉出品的云钉低代码应⽤构建平台,于2019年3⽉上线,通过简单的拖拽、配置,即可完成业务应⽤的搭建。
旨在为⼴⼤中⼩企业提供⼀套低成本的企业应⽤搭建解决⽅案。
官⽹功能介绍1. 快速搭建、便捷试⽤,低成本变更,交付完全贴合业务需求的应⽤提供DDoS攻击防御,WEB应⽤防⽕墙接⼝,安全检测等安全服务。
2. 依托阿⾥云强⼤的技术及计算能⼒,默认提供⼤数据、⾼并发的解决⽅案,承诺99.999%⾼可⽤。
3. 助⼒企业快速实现,组织在线、沟通在线,协同在线、业务在线。
4. 应⽤/市场+云栖社区,多维⽣态,组件、页⾯、插件均可⾃定义,开发的应⽤和插件可发布到开放市场。
产品规格体验版:每⽤户最多创建 20 个应⽤,最⼤数据量 5000 条,附件存储 20G标准版:1988/年起尊享版:3988/年起2 氚云简介奥哲旗下低代码产品,阿⾥巴巴A+轮融资,全球领先的在线低代码开发平台,已上线钉钉市场。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mediumtext
16777215
5
DEPT_ID
表单所属部门
int
10,0
0
6
SCRIPT
表单拓展脚本
text
65535
7
CSS
表单扩展样式
text
65535
8
ITEM_MAX
最大的项目编号
int
10,0
9
FORM_SORT
表单所属分类
int
10,0
0
3、
描述:设计表单版本库
td_oa.flow_run_hook10
td_oa.flow_run_log10
td_oa.flow_run_prcs11
td_oa.flow_sort12
td_oa.flow_timer12
td_oa.flow_type13
td_oa.flow_version15
td_oa.form_sort15
int
10,0
2
FLOW_ID
流程ID
int
10,0
3
T_TYPE
模版类型(1-打印模版;2-手写呈批单)
char
1
4
T_NAME
打印模版名称
varchar
100
5
CONTENT
打印模版内容(base64的数据存储)
mediumtext
16777215
6
FLOW_PRCS
可使用该模版的步骤
text
65535
text
65535
22
AUTO_TYPE
自动选人规则:
1-自动选择流程发起人;
2-自动选择本部门主管;
3-指定自动选择默认人员;
4-自动选择上级主管领导;
5-自动选择一级部门主管;
6-自动选择上级分管领导;
7-按表单字段选择;
8-自动选择指定步骤主办人;
9-自动选择本部门助理;
10-自动选择本部门内符合条件所有人员;
4-自动选择上级主管领导;
6-自动选择上级分管领导;
9-自动选择本部门助理;
int
10,0
0
41
CONDITION_DESC
不符合条件公式时,给用户的文字描述
text
65535
42
RELATION_IN
父流程->子流程映射关系
text
65535
43
RELATION_OUT
子流程->父流程映射关系
text
10,0
5
TIME
操作时间
datetime
6
IP
操作用户的IP地址
varchar
20
7
TYPE
日志类型(1-增加;2-修改;3-删除;但实际1、2类型存的比较混乱。。。)
int
10,0
8
CONTENT
日志内容
text
65535
6、
描述:打印模版
序号
字段名称
字段描述
字段类型
长度
允许空
缺省值
1
T_ID
模版ID
text
65535
5
USER
授权范围(人员)
text
65535
6
DEPT
授权范围(部门)
text
65535
7
ROLE
授权范围(角色)
text
65535
8、
描述:流程步骤定义
序号
字段名称
字段描述
字段类型
长度
允许空
缺省值
1
ID
主键ID
int
10,0
2
FLOW_ID
流程ID
int
10,0
0
3
PRCS_ID
text
65535
18
PRCS_OUT
转出条件组成的串(\n分隔)
text
65535
19
FEEDBACK
是否允许会签(0-允许会签;1-禁止会签;2-强制会签)
varchar
20
0
20
PRCS_IN_SET
转入条件组成的逻辑表达式
text
65535
21
PRCS_OUT_SET
转出条件组成的逻辑表达式
描述
varchar
200
5
hmodule
模块
varchar
40
6
plugin
调用插件
varchar
100
7
status
状态(0-停用;1-必选;可选状态无效)
int
10,0
0
8
map
数据关系映射
text
65535
9
condition
条件列表
text
65535
10
condition_set
条件公式
text
65535
11
system
是否系统内置(0-否;1-是)
varchar
1
1
5、
描述:流程管理日志
序号
字段名称
字段描述
字段类型
长度
允许空
缺省值
1
ID
主键ID
int
10,0
2
FLOW_ID
流程ID
int
10,0
3
FLOW_NAME
流程名称
varchar
200
4
UID
操作用户唯一标识(用户表主键ID)
int
步骤ID
int
10,0
0
4
PRCS_TYPE
节点类型(0-步骤节点;1-自流程节点;2-外部流转节点)
tinyint
3,0
0
5
PRCS_NAME
步骤名称
varchar
200
6
PRCS_USER
经办人ID串(逗号分隔)
text
65535
√
7
PRCS_ITEM
可写字段串(逗号分隔)
text
65535
√
8
7、
描述:管理权限
序号
字段名称
字段描述
字段类型
长度
允许空
缺省值
1
ID
主键ID
int
10,0
2
FLOW_ID
流程ID
int
10,0
3
PRIV_TYPE
授权类型(1-管理;2-监控;3-查询;4-编辑;5-点评)
int
10,0
4
PRIV_SCOPE
管理范围(SELF_ORG-本机构;ALL_DEPT-所有部门;SELF_DEPT-本部门;部门ID串)
会签意见可见性:
0-总是可见;
1-本步骤经办人之间不可见;
2-针对其他步骤不可见;
char
1
0
30
TOP_DEFAULT
主办人相关选项:
0-明确指定主办人;
1-先接收者为主办人;
2-无主办人会签;
char
1
0
31
USER_LOCK
是否允许修改主办人相关选项及默认经办人:
0-不允许;
1-允许;
char
序号
字段名称
字段描述
字段类型
长度
允许空
缺省值
1
ID
主键ID
int
10,0
2
FORM_ID
表单ID
int
10,0
3
PRINT_MODEL
表单设计信息
mediumtext
16777215
4
PRINT_MODEL_SHORT
精简后的表单设计信息
mediumtext
16777215
5
SCRIPT
表单扩展脚本
HIDDEN_ITEM
保密字段串(逗号分隔)
text
65535
√
9
PRCS_DEPT
经办部门ID串(逗号分隔)
text
65535
√
10
PRCS_PRIV
经办角色ID串(逗号分隔)
text
65535
√
11
PRCS_TO
转交步骤ID串(逗号分隔;子流程为返回步骤ID)
text
65535
√
12
SET_LEFT
0-不允许;
1-允许;
(实际使用中未生效)
char
1
0
48
CONTROL_MODE
列表控件模式:
1-修改模式;
2-添加模式;
3-删除模式;
保存格式如下例:
列表控件1,列表控件2,|1`2`3,1`2,
text
65535
√
49
VIEW_PRIV
传阅设置:
0-不允许;
1-允许;
int
10,0
√
50
FILEUPLOAD_PRIV
65535
44
REMIND_FLAG
用途未知,程序中未用到
int
10,0
45
DISP_AIP
对应呈批单(0表示不启用呈批单)
int
10,0
0
46
TIME_OUT_TYPE
超时计算方法:
0-本步骤接收后开始计时;
1-上一步骤转交后开始计时;
char
1
0
47
ATTACH_EDIT_PRIV