45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:jbpm知识点大全

jbpm知识点大全

2016-08-31 14:27:48 来源:www.45fan.com 【

jbpm知识点大全

超状态是一组节点,超状态可以被递归嵌套。超状态可以被用来在流程定义中产生一些层次,例如,一个应用可能要把流程中的所有节点按阶段进行分组。动作可以与超状态事件关联,结果就是一个令牌在某个给定时间可以存在于多个嵌套的节点,这便于检查流程是否执行,比如,是否在启动阶段。在Jbpm模型中,你可以任意分组任何节点到一个超状态。在指定节点时用(/)隔开节点名称,用“..”指向上一层次。

<?xml version="1.0" encoding="UTF-8"?>

<process-definition xmlns="" name="yytest">

<event type='superstate-enter'>

<action name='Enter' class='com.jeffentest.JeffenActionHandler' />

</event>

<event type='superstate-leave'>

<action name='Leave' class='com.jeffentest.JeffenActionHandler' />

</event>

<start-state name='START' >

<transition name='done' to='SS_1/N1.1'/>

</start-state>

<super-state name="SS_1">

<node name='N1.1'>

<transition name='done' to='SS_1.2/N1.2'/>

</node>

<super-state name="SS_1.2">

<node name='N1.2'>

<transition name='done' to='SS_1.3/N1.3'/>

</node>

<super-state name="SS_1.3">

<node name='N1.3'>

<transition name='done' to='/N999'/>

</node>

</super-state>

</super-state>

</super-state>

<state name="N999">

<transition name='done' to='END'/>

</state>

<end-state name="END" />

</process-definition>

-------------------------------------------

package com.jeffentest;

import org.jbpm.graph.def.ActionHandler;

import org.jbpm.graph.exe.ExecutionContext;

import java.io.*;

public class JeffenActionHandler implements ActionHandler {

private static final long serialVersionUID = 1L;

public void execute(ExecutionContext executionContext) {

String msg = executionContext.getEvent().getEventType()+":"+executionContext.getEventSource().getName();

System.out.println(msg);

}

}

-------------------------------------------------

private static void run(){

JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();

try {

long processInstanceId =1;

processInstance = jbpmContext.loadProcessInstance(processInstanceId);

Token token = processInstance.getRootToken();

System.out.println(token.getNode());

token.signal();

System.out.println(token.getNode());

token.signal();

System.out.println(token.getNode());

token.signal();

System.out.println(token.getNode());

token.signal();

System.out.println(token.getNode());

token.signal();

System.out.println(token.getNode());

token.signal();

System.out.println(token.getNode());

jbpmContext.save(processInstance);

}finally {

jbpmContext.close();

}

}

---------------------------------------------------

运行结果:从进入、离开的顺序看得出嵌套的关系。

StartState(START)

superstate-enter:SS_1

superstate-enter:SS_1.2

superstate-enter:SS_1.3

superstate-leave:SS_1.3

superstate-leave:SS_1.2

superstate-leave:SS_1

State(N999)

EndState(END)

 

本文地址:http://www.45fan.com/a/question/70265.html
Tags: jBPM 知识点 Superstates
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部