fire workflow总结
一、Fire WorkFlow核心
1.IPersistenceService
存储服务。Fire Workflow 缺省情况下使用hibernate 进行数据库存取。如果你的系统不
是使用hibernate,则重新实现该类,然后通过修改FireflowContext.xml 配置,将你的存储服
务实现类注入到RuntimeContext 中。
2.IDefinitionService
流程定义服务。该服务负责根据流程ID和版本号获得流程定义对象WorkflowDefinition。从该对象可以获得WorkflowProcess,即真正的流程定义。
Fire Workflow 缺省提供两种实现,
一种实现是org.fireflow.engine.definition.DefinitionService4FileSystem。该实现类从文件系统中获得流程定义对象,在开发阶段使用该类比较方便。该类从class path 中读取流程定义文件,因此你在项目中设计流程时, 推荐将流程定义文件置于/src 或者其子目录中。DefinitionService4FileSystem 忽略流程的版本,直接读取当前的流程定义文件。
另一个实现是org.fireflow.engine.definition.DefinitionService4DBMS。该实现类从数据库
表T_FF_DF_WORKFLOWDEF 中获得流程定义文件。因为表T_FF_DF_WORKFLOWDEF中保存了流程的版本号,因此该类在产品真正运行时使用。
在FireflowContext.xml 修改相关的配置即可实现这两个类的切换。
3.ICalendarService
日历服务。日历服务负责获取系统时间和计算TaskInstance 的ExpiredDate。缺省实现中,
系统时间是返回new Date(),也只考虑了周六、周日作为节假日的情况。你可以扩展该类获
取数据库时间作为系统时间,增加节假日配置。
4.IConditionResolver
转移条件解析器,用于计算转移条件中的EL 表达式的值。
5.ITaskInstanceManager
任务管理器,负责创建任务实例,缺省实现是BasicTaskInstanceManager。
6.BeanFactory
在1.0 中,增加了一个新的服务: bean factory。该服务负责创建各种javabean,例如:
进行工作项分派的时候,需要获得AssignmentHandler 的实例;执行ToolTask 的时候,需要
获得ApplicationHandler 的实例,等等。这些实例都是由bean factory 创建的。在1.0 中,这
个bean factory 的缺省实现是spring ioc 容器,即,将创建bean 的工作委派给了spring 。
注意:Bean factory 在上述的Engine 结构图中没有画出来。Fire workflow1.0 的引擎实
际结构如下,增加了bean factory。
二、Fire workflow 嵌入J2EE系统的详细步骤
将Fire Workflow 嵌入J2EE 系统的的步骤和第2 章描述的差不多。
首先,给项目增加Fire Workflow 支持。即,将相关的Jar 包扔到你的项目的WEB_INF/lib
中去,并创建相关的表结构
然后,配置FireWorkflow,主要配置内容如下。
1、将Fire workflow Engine 的一些hibernate 映射文件注册到sessionFactory 中
2、打开FireflowContext.xml,配置PersistenceService 的sessionFactory 属性
3、打开FireflowContext.xml,给runtimeContext bean 选择适当的definitionService;如
果你使用definitionService4FileSystem,则需要将流程定义文件的classpath 路径注入进去。
最后,编码调用Fire Workflow。
fire workflow总结的更多相关文章
- Creating Node.js Command Line Utilities to Improve Your Workflow
转自:https://developer.telerik.com/featured/creating-node-js-command-line-utilities-improve-workflow/ ...
- Salesforce Integration 概览(三) Remote Process Invocation—Fire and Forget(远程进程调用-发后即弃)
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf 我们在上一篇讲了远 ...
- Mac 词典工具推荐:Youdao Alfred Workflow(可同步单词本)
想必大家都有用过 Mac 下常见的几款词典工具: 特性 系统 Dictionary 欧路词典 Mac 版 有道词典 Mac 版 在线搜索 ✗ ✔ ✔ 屏幕取词 ☆☆☆ ★★☆ ★☆☆ 划词搜索 ★★★ ...
- SharePoint 2013 create workflow by SharePoint Designer 2013
这篇文章主要基于上一篇http://www.cnblogs.com/qindy/p/6242714.html的基础上,create a sample workflow by SharePoint De ...
- Install and Configure SharePoint 2013 Workflow
这篇文章主要briefly introduce the Install and configure SharePoint 2013 Workflow. Microsoft 推出了新的Workflow ...
- Workflow笔记3——BookMark和持久化
BookMark 我们在平时的工作流使用中,并不是直接这样一气呵成将整个工作流直接走完的,通常一个流程到了某一个节点,该流程节点的操作人,可能并不会马上去处理该流程,而只有当处理人处理了该流程,流程才 ...
- Workflow笔记2——状态机工作流
状态机工作流 在上一节Workflow笔记1——工作流介绍中,介绍的是流程图工作流,后来微软又推出了状态机工作流,它比流程图功能更加强大. 状态机工作流:就是将工作流系统中的所有的工作节点都可以看做成 ...
- Workflow笔记1——工作流介绍
什么是工作流? 工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象.概括.描述.BPM:是Business Process Management的英文字母缩写.即业务流程管理,是 ...
- Rehosting the Workflow Designer
官方文档:https://msdn.microsoft.com/en-us/library/dd489451(v=vs.110).aspx The Windows Workflow Designer ...
随机推荐
- CDH 集群机器上部署 Jupyter notebook 使用 Pyspark 读取 Hive 数据库
开始直接在 CDH Pyspark 的环境里面运行 Ipython . spark = SparkSession \ .builder \ .master('yarn') \ .appName('md ...
- JAVA多线程-实现通讯
一.多线程之间如何实现通讯 1)什么是多线程之间通讯 多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同. 2)如何通讯 wait().notify().notifyAll()是三个 ...
- Tensorflow调试Bug解决办法记录
1.ascii' codec can't encode characters in position 0-4: ordinal not in range(128) 原因是python2.X默认的编码是 ...
- Linux 学习 (七) 挂载命令 & 用户登陆查看
Linux达人养成计划 I 学习笔记 挂载命令 mount:查询系统中已经挂载的设备 mount -a:根据配置文件 /etc/fstab 的内容,自动挂载 mount [-t 文件系统] [-o 特 ...
- 打印并输出 log/日志到文件(C++)
#include <stdarg.h> #define MAX_LEN 1024 bool debug_mode; // 使用方法同 printf void lprintf(const c ...
- vim命令编辑Host文件
用vim命令打开Host文件 [root@localhost /]# vim /etc/hosts 按"i"键,进入编辑模式按"Esc"键,退出编辑模式 按&q ...
- Maven 学习总结 (二) 之 生命周期与插件
五.生命周期与插件 1.Maven有三套独立的生命周期:clean.default和site. clean生命周期的目的是清理项目,default生命周期的目的是构建项目,site生命周期的目的是建立 ...
- spring boot本地调试服务器部署项目
项目本地测试然后发布到服务器上,各种BUG层出不穷.那么下面配置下,然后在本地调试部署在服务器上的程序吧 一.首先idea打开你的项目,服务器上传打包的程序.然后如下命令启动(linux),绿色参数为 ...
- Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降
网易公开课,监督学习应用.梯度下降 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 线性回归(Linear Regression) 先看个 ...
- 使用docker部署SqlServer
踩了很多坑,来记录一下 首先说sqlserver 1. 安装docker要使用centos 7以上版本,使用centos 6及以下版本会出现各种问题 2. docker CE安装过程 $ sudo y ...