`
Franciswmf
  • 浏览: 803004 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

task-node、decision和node

 
阅读更多
任务结点<task-node>
任务结点是一个需要人工参与的结点类型。当流程进入结点时,会生成相应的任务实例(TaskInstatnce),并通过委派接口AssignmentHandler或jBPM表达式将任务委派给一个或多个特定的角色或参与者。结点自身进入等待状态,直到任务被参与者完成或者跳过,流程继续。
判定结点<decision>
判定结点的设计目标是根据上下文环境和程序逻辑,判定流程转向。通过指定一个实现DecisionHandlder接口的Java委派类或jBPM表达式,来返回转向(transition)的字符窜类型的名称(可以是中文哦),来达到决定流程方向的功能。
普通结点<node>
普通结点也可以定义相应的处理任务,通过定义相应的ActioinHandler类。同任务结点不同的是,普通结点定义的任务是由流程自动执行的,无须人工干预。
三种结点都可定义结点事件(event):
node-enter,该事件在流程进入结点时触发
node-leave,该事件在流程离开节点是触发
可以在事件上挂接ActioinHandler接口的实现类来完成一些特定的功能。
三种节点都可以定义异步处理方式(async属性):
异步处理意味着每个结点的事务处理是通过消息机制分离的,不再同一线程中统一调用执行。而是由消息监听线程从消息队列中取得消息体来运行相应得程序。
此外我们定义了结点间的转向(transition),用来记录和处理状态的变迁。每个转向中,可以委派一个或多个的ActioinHandler接口实现类,负责处理节点变迁时的上下文状态变更及回调用户定义的处理程序。
流程的程序接口说明
动作处理接口(ActioinHandler)
接口方法:void execute( ExecutionContext executionContext ) throws Exception
该接口是jPDL中最常用的一个回调接口。从它的接口方法可以发现,它仅仅暴露了流程执行上下文变量ExecutionContext。用户程序通过ExecutionContext来了解流程的执行状态,并通过改变ExecutionContext中的属性值来影响流程的执行。
ActioinHandler接口可以在所有能包含事件(event)、动作(action)元素的地方被回调。
判定处理接口(DecisionHandlder)
接口方法:String decide(ExecutionContext executionContext) throws Exception
判定接口仅适用于判定节点(decision)中。从它的接口方法可以看出,方法要返回一个字符串型的结果,这个结果必须和判定节点拥有的转向(transition)集合中的一条转向名称相匹配。
在DecisionHandlder的接口方法中一样能访问到ExecutionContext变量,这为判定提供了执行上下文的根据。当然,如果有必要,用户也可以在该接口中改变ExecutionContext中的变量值。
委派处理接口(AssignmentHandler)
接口方法:void assign(Assignable assignable, ExecutionContext executionContext) throws Exception;
委派处理接口被用户任务元素(task)的委派(assignment)子元素中,它的职责很明确,就是将任务分配给指定的人员或角色。
在AssignmentHandler接口的方法中,Assignable变量通常指任务实例(TaskInstance)。通过将ExecutionContext和TaskInstance两个变量都暴露给接口方法,用户就可以根据流程上下文情况,来决定要将指定的任务分配个谁。
分享到:
评论

相关推荐

    jbpm安装及使用方法

    很典型的用法是,当进入这个节点时(通过绑定一个action到node-enter event),发送一条消息到外部的系统,然后流程就处于等待状态。外部系统完成一些操作后返回一条消息,这个消息触发一个signal 到token,然后流程...

    《jBPM学习笔记_框架设计简介》

    - **Task-Node**:代表某个具体任务的状态节点。 - **Assignment**:指定任务分配给哪个用户或角色。 - **Decision**:用于判断的节点,可以根据条件转向不同的分支。 通过以上内容,我们可以看出JPDL提供了一种...

    JBPM工作流

    例如分支(`fork`)、合并(`join`)、决策(`decision`)、转换(`transition`)、事件(`event`)、动作(`action`)、脚本(`script`)、表达式(`expression`)、变量(`variable`)、句柄(`handler`)、定时器(`timer`)、任务(`...

    深入浅出 jBPM 电子书, ,综合大量例子和资料

    深入浅出jBPM 电子文档,内容包括:面向图的程序设计,流程建模,节点——Node 职责,task-node节点,state节点类型,decision节点类型.等等,.还 综合大量例子和资料 , 是 学习 JBPM 必读首选! 希望这部书,大家能...

    jbpm3.2开发总结.pdf

    文档中提到了节点类型,如task-node(任务节点)、state-node(状态节点)、decision-node(决策节点)、fork(分叉节点)、join(合并节点),以及节点之间的转换(transitions)。 文档提到了 jbpm-designer 和 ...

    JBPM工作流介绍ppt

    &lt;task-node name="任务1"&gt; 决策1"/&gt; &lt;/task-node&gt; &lt;decision name="决策1"&gt; 条件1" to="任务2"/&gt; 条件2" to="任务3"/&gt; &lt;/decision&gt; &lt;!-- 更多节点定义... --&gt; &lt;end-state name="结束"/&gt; &lt;/process-...

    JBPM工作流开发指南

    3.3.6 task-node (任务节点) 15 3.3.7 fork(分支) 16 3.3.8 join(联合) 17 3.3.9 decision(决策) 18 3.3.10 transition(转换) 19 3.3.11 event(事件) 20 3.3.12 action(动作) 20 3.3.13 script(脚本) 22 3.3.14 ...

    jBPM2-流程图与JBPM API.ppt

    流程图由节点(nodes)和转换(transitions)组成,每个节点都有特定的类型,如状态节点(state-node)、任务节点(task-node)、决策节点(decision)等,它们定义了流程执行时的行为。 **流程定义**: - 是业务...

    基于工作流技术的挂号管理系统

    &lt;event type="node-enter"&gt; &lt;script&gt;print("开始挂号"); &lt;/start-state&gt; &lt;task-node name="挂号处人员分类"&gt; &lt;task name="分类"&gt; &lt;assignment actor-id="worker1"&gt; &lt;variable access="read" name="type"&gt;...

    JBPM中文表结构以及流程中文描述

    6. **事件表**:记录流程中发生的事件,如node-enter、node-leave等。 7. **动作表**:存储与事件关联的动作代码,如Java代码或脚本。 8. **定时器表**:设定定时触发的任务或事件,如due date和repeat频率。 9. **...

    jbpm教程(工作流引擎)

    - **task-node**: 包含用户交互的任务节点。 - **fork**: 分支节点,允许流程在多个路径上并行运行。 - **join**: 联合节点,用于等待所有分支完成。 - **decision**: 决策节点,根据条件决定流程走向。 - **...

    斯坦福特jbpm培训ppt

    每个节点还可能关联事件,如node-enter(进入节点)和node-leave(离开节点),以及异常处理器和定时器。 Start节点是流程的起点,所有流程实例从这里开始。它支持node-leave事件,用于触发流程实例的启动。End节点...

    JBPM 开发指南

    - **task-node**: 代表需要人工干预的任务节点。 - **fork/join**: 分支与合并操作。 - **decision**: 用于做出决策的节点。 - **transition**: 连接不同节点之间的路径。 - **event**: 代表流程中的事件。 - **...

    JBPM培训文档(非常详尽)

    5. **定义元素**:包括task-node(任务节点)、swimlane(泳道)、decision(决策节点)、fork(分支节点)、join(合并节点)、Transition(转移)和action(动作),它们共同构建了流程图的结构。 **四、流程部署...

    JBPM数据库表3.3.1.doc

    - CLASS_:定义节点的类型,如ProcessState、Decision、Task等。 - NAME_:节点的名称,方便识别。 - DESCRIPTION_:对节点的描述。 - SUBPROCNAME_:仅对ProcessState节点有效,表示嵌套流程的名称。 - ...

    jbpm一些资料

    `node`,包括了如决策(decision)、结束状态(EndState)、分支(Fork)、合并(Merge)、里程碑(Milestone)、交错开始(InterleaveStart)、交错结束(InterleaveEnd)、过程状态(ProcessState)和状态(State...

    jbpm4.3 请假流程实例示例

    2. **任务节点(Task Node)**:员工提交请假申请的任务,可能需要填写请假原因和天数。 3. **审批节点(User Task / Service Task)**:上级或HR进行审批,可以是人工处理(User Task)也可以是系统自动处理...

    JBPM数据表之间的关系

    - CLASS_:表示节点的类型,如ProcessState、Decision、Task等。 - NAME_:节点的名称。 - SUBPROCESSDEFINITION_:子流程模版ID,仅在节点类型为ProcessState时使用。 - ACTION_:关联JBPM_ACTION表,定义节点...

Global site tag (gtag.js) - Google Analytics