传智播客OA我的课堂笔记~~建议大家学习我的做笔记的格式!Java┳ㄞ飞哥
来源:互联网 发布:js中的面向对象编程 编辑:程序博客网 时间:2024/06/05 04:15
========= OA工作流 ========
第一课、工作流实战_了解和认识工作流系统
a.什么是工作流?
以前咱大多做的是增删改查,添加完就没事了。而像报销事情就必须得员工申请、经理审批这过程.....
要素:参与者/活动/数据
b.JBPM基本概况
.JBPM中与工作流领域对应的概念
c.JBPM基本用法
.基本API的用法以及应用策略
d.什么是工作流?
WFMC定义:解决业务流的一种计算机形式。
解释定义
流程定义-----------》 工作流引擎 《---------》 持久化组件
+ |
| |
|产生 |
| 业务数据库
用户-----------》工作列表
第二课、工作流实战_工作流中的概念与JBPM相关API调用
a.工作流主要概念:
.流程定义: 预先定义的业务流转逻辑
.流程实例:业务的一次实际流转过程
.参与者:任务的执行者
.活动(任务):组成流程定义的节点
.活动实例:组成流程实例的元素
.流转:从一个节点到另一个节点这一行为
.工作列表:当前需要办理的任务集合
.工作流引擎:工作流的核心组件,对流程实例、任务实例以及其状态进行管理
b.工作流的切入点
.如何编写流程的定义
.如何部署流程
.如何加载流程
.如何启动流程
.如何执行任务
.如何完成任务
=============================我的课堂笔记========================
日期:2009-10-06
主题:jbpm二
【复习】
---名词解释---
工作流就是工作流程的计算机化
工作流系统
节点、任务节点、任务、参与者
流转
自己编写工作流定义:
<process-definition name="">
<start-state name="">
<task-node name="">
<task name="">
<assignment actor-id=""/>
</task>
<transition to=""/>
</task-node>
<end-state name=""/>
部署工作流 -- 执行工作流 - signal - start 任务- end
流程设计器、JbpmApi
====编码实现自己的工作流平台====
环境搭建:
jar包 + 配置文件(或注解)
开发:Api的使用
部署并且signal、启动任务、查看某人任务列表、完成任务
学习路线:
编写工作流定义
部署工作流
加载工作流
开启工作流
执行任务
完成任务
【上午】
[流程变量]
-如何设置变量?
pi.getContextInstance().setVariable()
a.简单数据类型的set
b.引用类型的set
==注意:当set的实体不是持久化实体,他会先session.save的在保存到变量作用域中
!!!表中保存都是long型,不支持int型的持久化实体
c.手动实现引用类型的set,需要保存className和id主键
RootToken
[节点]
========
为什么需要节点类型?
因为有不同的分析处理,像判定,输入等操作就需要不同的节点
每个流程定义都必须有开始节点和结束节点
========
===预定义节点====
a.不同的节点类型有不同的行为
b.起始节点 start-state
结束节点 end-state
任务节点 task-node
决策节点 decision
分支节点/合并节点 fork/join
state
---详细解析----
c.开始节点 start-state
==可以有且只能放一个任务,最好使用task-mode
==不能有任何节点流转到开始节点
==开始节点首先发送signal
d.结束节点 end-state
==没有transition元素节点
c.任务节点 task-node
==进入任务节点 - 创建任务实例 -然后进入等待状态
==任务实例全完成就会离开
==属性 create-tasks=""
===create-tasks 一般当创建不确定的任务实例时就设为false
==属性 signal="" last(默认)/first/never/unsynchronized/last-wait/first-wait
数据库能否存 --- 传过来是否是中文(连接编码)
[其他]
框架思想:把xml文件每个元素都映射为一个类
ctrl+shift+T 查找某类
===================================================
===================================================
【下午】
[节点继续]
---详细解析----
a.decision
==必须给流转起个名字
----------------
==通过DecisionHander接口的decide方法计算离开方向
==重要思想,当你在接口的处理时,你的传来的参数里的信息Contenxt
----------------
通过表达式计算
#{ 5 gt 3? 'to xx' : 'to jj' }
----------------
异常:org.jbpm.graph.def.DelegationException
一般原因:
1.空指针异常
2.在执行时出现需要ProcessClassLoader
解决办法-- 直接打包时添加class资源
b.fork/join
==成对出现,分支节点、合并节点
==一般当出现分支时就给流转起个名字,防止空指针异常
-------------------------------------------------------------------
====自定义节点=====
[Node节点]
a.一个node节点,里面action指向某类,该类进行操作
b.通过实现ActionHande接口定制node节点的行为
[Actionn动作]
属性:class、name、ref-name
[event事件]
事件类型:
a.一般节点有 node-enter、onde-leave 有两个特殊
b.transition有流转事件 taking a transition 因为只有一个事件所以直接配置action
c.task有四个事件 task-create、task-assignment、task-start、task-end
d.配置事件后要给事件赋予动作
e.某些节点不支持的事件,即使配置了也不会报错,也不会执行
f.除了节点里的action可以影响流程,
当事件里的action影响流程的执行,会报token is locked异常(一种机制)
===============================
[动态创建不确定数量的任务实例]
a.fet**是一种包含关系,当你在里面,才可以拿到外面的节点
[任务分配]
a.任务分配两种模式:推模式 + 拉模式
b.获取、重新分配、退回
简单:taskInstance.setAuthor(id); id 为null 退回
c.<assignment>的actor-id分配个人任务, pooled-actors
d.接口 AssignmentHandler -- 张三找她的经理,王五找她的经理
e.分配任务的方式:
1.
f.不管使用哪种分配方式,参与者的计算都是由业务层复制解释
【总结】
【问题】
a.一个人可以退回?
b.状态跟node多大区别?
[单词]: process - 流程
[单词]: definition - 定义
[单词]:task - 任务
[单词]:decision 1 决定, 决心, 判断 2 果断, 坚决 3 决议, 结果
[单词]:signal - 信号
[单词]:assignment 1 工作, 任务 2 分配, 指派
[单词]:delegation 代理
[单词]:auction 拍卖
[单词]:pool 池
[单词]:fork 分支
生活很苦也很甜!!
================================================
.*. /~ .~/ /~ ~/ /~ .~/ /~ ~/
*** ' `//' * ' `//' *
V ( .*)( . *)
//|// / . *./ / . *./
| `/ . . .*/' `/ . . .*/'
| `/ * .*. */' _ _ `/ * .*. */'
`/ * */' ( `//'*) `/ * */'
`//' / */' `//'
`//'
==================================================
author: 何骏飞Jeffe hjflbc1990@sina.com
- 传智播客OA我的课堂笔记~~建议大家学习我的做笔记的格式!Java┳ㄞ飞哥
- 我的java学习笔记
- 我的Java学习笔记
- 我的java学习笔记
- 我的JAVA学习笔记
- 我的JAVA学习笔记
- 我的Java学习笔记
- 抽象类和接口(我学习做的笔记供大家参考)
- 我的做题笔记
- 我做项目的笔记
- 字符串匹配的KMP算法(不建议大家看,这里是我的暂时笔记)
- 我的学习笔记
- 我的学习笔记
- 我的学习笔记
- 我的java笔记
- 我的java笔记
- 我的java笔记
- 我的java笔记
- 传智播客Ajax与Javascript基础知识总结上
- flash中DataGrid组件常用的属性和方法
- 传智播客Ajax与Javascript基础知识总结下~~~基础朋友一定要看哦
- 读黎老师在线支付视频--视频随笔~~~Java┳ㄞ飞哥传智播客
- 当青春只剩下日志
- 传智播客OA我的课堂笔记~~建议大家学习我的做笔记的格式!Java┳ㄞ飞哥
- 掌握哪些才是合格的软件工程师--传智播客总结
- CodeSmith实用技巧(六):使用XML 属性
- eclipse快捷键····
- 工业控制图像采集的好帮手!
- 传智播客小汤老师~~Eclipse的快捷键的设置或修改方法与需要修改的快捷键
- 你认为什么是LoVE?
- 我的技术博客之路
- 写给准备到培训机构学习的同学