开源的工作流很少有让人满意的,即便是国内用的比较多的jbpm,用起来也会觉得很便扭。再加上PHP中没有什么好用的工作流,于是干脆自己设计一个,设计的原则如下:
1 根据80/20原则,只使用wfmc模型中最符合自身应用的20%功能
2 充分吸收国内使用jbpm开发BOSS中遇到的问题,工作流引擎只负责参数的收集和流程的流转,具体和业务的控制,交给每个流程定制的控制类去实现。
3 表单采用简单的html+控制标签的方法实现
4 权限和模板引擎,以及其它辅助函数直接使用办公系统自带的框架
5 充分利用PHP语言的特点,流程设计是基于数据库的,程序上使用OO设计,但采用重对象的方法
6 不把可视化设计流程的工作交给最终客户,而且由设计时完成,因此不考虑流程版本更新的问题
一、工作流数据表设计
<o:p> </o:p>
tbl_workflow_defination:工作流定义表
defination_id
|
流程id
|
<o:p> </o:p>
|
defination_name
|
流程名称
|
<o:p> </o:p>
|
defination_handler
|
流程处理辅助文件,每个工作流一个文件
|
自定义处理文件,及其对象。例如workflow-proporsal-handler.php,其中定义对象proposal
|
<o:p> </o:p>
tbl_workflow_node:流程结点步骤表
node_id
|
结点id
|
<o:p> </o:p>
|
defination_id
|
流程id
|
<o:p> </o:p>
|
node_index
|
结点序号
|
结点的step
|
node_name
|
结点名称
|
<o:p> </o:p>
|
node_type
|
结点类型
|
1人为决策,2自动处理(直接执行execute_function),3等待外部响应(例如外部WS触发),4分支,5汇总 6结束结点(此结点执行时候自动终止进程)
|
init_function
|
流程初始函数
|
<o:p> </o:p>
|
run_function
|
流程运行函数
|
<o:p> </o:p>
|
save_function
|
流程保存函数
|
<o:p> </o:p>
|
transit_function
|
流程流转函数
|
<o:p> </o:p>
|
prev_node_index
|
前结点序号
|
例如1。开始结点没有
执行前,通过此来校验一下流程
|
next_node_index
|
后结点序号
|
例如[同意]3,[不同意]4。尾结点或要结束的结点没有,若没有,直接调用end
|
executor
|
执行角色,组,人
|
role[1,2] group[1,2] user[1,2],为空由运行时决定
|
execute_type
|
执行类型
|
0需所有人执行 1只需一人执行
|
remind
|
提醒
|
0不提醒 1邮件 2短信 3邮件和短信
|
field
|
可编辑的字段
|
name,content
|
max_day
|
最长时间(天)
|
<o:p> </o:p>
|
<o:p> </o:p>
tbl_workflow_process :流程执行进程表
process_id
|
进程id
|
<o:p> </o:p>
|
defination_id
|
流程id
|
<o:p> </o:p>
|
process_desc
|
进程描述
|
显示在我的工作台中
|
context
|
上下文
|
存放上下文变量,例如业务表的id
|
current_node_index
|
当前结点序号
|
<o:p> </o:p>
|
start_time
|
流程启动时间
|
如遇分支、汇合显示为:
1=》3,4=》3,5=》6
|
finish_time
|
流程完成时间
|
<o:p> </o:p>
|
state
|
状态
|
1运行 2结束
|
start_user
|
|
分享到:
相关推荐
总结来说,这个工作流设计参考提供了一种结合中国实际国情的PHP实现方案,它简化了工作流系统的设计,强调了业务逻辑的灵活性和适应性,并且通过合理的数据结构和PHP代码实现了流程的自动化管理。对于需要构建符合...
总结来说,CCFlow是一个功能强大、配置灵活、适合中国国情的一体化工作流引擎。它的表单引擎、流程引擎和权限控制系统为企业提供了强大的业务流程自动化能力,而优秀的集成性和配置灵活性则保证了系统的可扩展性和...
本文主要介绍了基于Python语言和ArcPy站点包开发的地理国情监测辅助工具集的设计与实现,该工具集...文章也提供了地理国情监测辅助工具集的设计思路和实现方法,为相关领域的开发者和研究人员提供了宝贵的参考资料。
在地理信息领域,全国基础性地理国情监测是一个重要的国情国力监测项目,对数据的准确性和时效性要求极高。随着监测项目的持续开展,对地理国情监测数据的自动化处理提出了更高的要求。本文提出了一种基于Python语言...
综上所述,基于Python的地理国情监测辅助工具集设计与实现,不仅提升了监测工作的效率,还降低了技术门槛,使得更多非专业人员也能参与到地理国情分析中来。随着Python生态的持续发展,未来此类工具集的功能将更加...
Java版的驰骋BPM(Business Process Management)系统是一款针对中国企业环境设计的高效工作流解决方案。该系统的核心组件包括表单引擎、流程引擎和权限控制系统,这些组件共同构成了一个全面的业务流程自动化平台。...
驰骋工作流引擎研发于2003年,具有.net与java两个版本,这两个版本代码结构、数据库结构、设计思想、功能组成、操作手册,完全相同。 导入导出的流程模版,表单模版两个版本完全通用。我们把驰骋工作流程引擎简称...
总的来说,“好看又符合国情的时间选择器”是一个兼顾视觉设计、功能实用和文化适应性的UI组件,它的设计和实现涉及到前端开发、用户体验设计以及对中国用户习惯的理解。通过不断优化和改进,这样的时间选择器能够...
通过上述分析,我们可以总结出,县域地理国情普查内业数据采集与外业核查工作是一个系统工程,需要综合运用多种技术和方法。通过先进高效的工作流程设计和关键技术的应用,能够确保普查工作的顺利进行,为国家地理...
最新我国国情知识竞赛参考试题及答案.pdf
通过以上设计与实现,我们成功开发了一个符合中国国情的日期插件。该插件不仅具备基本的日期选择功能,还能确保日期之间的逻辑关系正确,并且支持自定义日期格式。此外,还提供了丰富的配置选项和事件回调机制,方便...
该工作流平台是根据多年对企事业单位工作流应用经验总结而成,是一款符合于国情的工作流平台,特别适合于国内无标准,复杂多变的工作审批流转。拥有全浏览器兼容的可视化流程设计器、表单设计器、基于角色的权限管理...
地理国情普查作为国情国力调查的一个重要部分,主要由地理国情要素与地表覆盖组成。由于国情要素层包含了大量的数据对象,数据层中不同类型的数据对象统计非常繁杂,需要对多个要素层进行统计分析,这通常会导致工作...
* 成熟的工作流:多年业务积累,深谙流程业务,熟悉中国国情,客户遍天下。 * 安全的工作流:满足信息系统安全等级保护三级要求,内置与安全设备厂商的系统接口,适应分级保护要求。 * 稳定的工作流:单服务器单应用...
《基于Python的地理国情监测辅助工具集设计与实现》 在现代信息技术的推动下,地理国情监测已经成为国家管理和决策的重要支持。Python作为一种强大且易学的编程语言,因其丰富的库支持和灵活的数据处理能力,被广泛...
该工作流平台是根据多年对企事业单位工作流应用经验总结而成,是一款符合于国情的工作流平台,特别适合于国内无标准,复杂多变的工作审批流转。拥有全浏览器兼容的可视化流程设计器、表单设计器、基于角色的权限管理...
该工作流平台是根据多年对企事业单位工作流应用经验总结而成,是一款符合于国情的工作流平台,… 【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、...