Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > jbpm知识点——ProcessState2
【标  题】:jbpm知识点——ProcessState2
【关键字】:jbpm,ProcessState2
【来  源】:http://blog.csdn.net/jeffen2006/archive/2006/10/17/1337981.aspx

jbpm知识点——ProcessState2

Your Ad Here

通常,当一个子流程被启动,在离开开始状态的信号被发出之前,所有拥有“read”存取属性的变量都被从超流程载入新创建的子流程;当子流程结束时,所有拥有“write”存取属性的变量都被从子流程拷贝到超流程。variabled元素的mapped-name属性允许你指定在子流程中将使用的变量名称。
相对于上例改动如下
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="" name="yytest">
 <start-state name='yyteststart' >
    <transition  name='done' to="initial_subyytest" />
 </start-state>
 <process-state name="initial_subyytest">
    <sub-process name="subyytest" />
    <variable name="a" access="read,write" mapped-name="aa" />
    <variable name="b" access="read" mapped-name="bb" />

    <transition  name='done' to="yytestend" />
 </process-state>
 <end-state name="yytestend" />
</process-definition>

---------------------------------------
private static void run(){
  JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
  try {
   long processInstanceId =1;
   processInstance = jbpmContext.loadProcessInstance(processInstanceId);
   ContextInstance contextInstance = processInstance.getContextInstance();
      contextInstance.setVariable("a", "1");
      contextInstance.setVariable("b", "1");
      System.out.println("主流程变量a:"+contextInstance.getVariable("a"));
   System.out.println("主流程变量b:"+contextInstance.getVariable("b"));
   Token token = processInstance.getRootToken();
   System.out.println(token.getNode());
   token.signal();
   ProcessInstance subprocessInstance=token.getSubProcessInstance();
   /*取得subprocessInstance方法二
    long processInstanceId = processInstance.getId();
       long subProcessInstanceId = processInstance.getRootToken().getSubProcessInstance().getId();
       processInstance = jbpmContext.loadProcessInstance(processInstanceId);
       ProcessInstance subprocessInstance = jbpmContext.loadProcessInstance(subProcessInstanceId);
    */
   contextInstance = subprocessInstance.getContextInstance();
   System.out.println("子流程变量aa:"+contextInstance.getVariable("aa"));
   System.out.println("子流程变量bb:"+contextInstance.getVariable("bb"));
   contextInstance.setVariable("aa", "2");
      contextInstance.setVariable("bb", "2");
   Token subtoken = subprocessInstance.getRootToken();
   System.out.println(token.getNode());
   System.out.println(subtoken.getNode());
   subtoken.signal();
   contextInstance = processInstance.getContextInstance();
   System.out.println("主流程变量a:"+contextInstance.getVariable("a"));
   System.out.println("主流程变量b:"+contextInstance.getVariable("b"));
   System.out.println(subtoken.getNode());
   System.out.println(token.getNode());
   jbpmContext.save(processInstance);
   }finally {
     jbpmContext.close();
   }
 } 
------------------------------
运行结果:

主流程变量a:1
主流程变量b:1
StartState(yyteststart)
子流程变量aa:1
子流程变量bb:1
ProcessState(initial_subyytest)
State(subyyteststate1)
主流程变量a:2
主流程变量b:1
EndState(subyytestend)
EndState(yytestend)
 

jbpm知识点——异步继续:【上一篇】
jbpm知识点——ProcessState:【下一篇】
【相关文章】
  • jbpm知识点——异步继续
  • jbpm知识点——node2
  • 对Jbpm数据库应用的简单分析和在Mysql上实现的demo
  • jbpm知识点——decision
  • jbpm知识点——fork、join
  • jbpm知识点——node
  • jbpm知识点——Transitions
  • jbpm知识点——Actions
  • jbpm知识点——exception-handler
  • jbpm知识点——state
  • 【随机文章】
  • 8 小结
  • PHP+JPGRAPH 在图形方面的使用
  • 大内高手—共享内存与线程局部存储
  • C++异常学习笔记
  • 文件系统识别器 -----翻译自IFS KIT Documentation
  • 今天我做的一道经典动归题The Tower of Babylon
  • Python编程获取当前路径
  • 内存泄漏,走开 轻松搞定Java内存泄漏
  • 安装SQL Server 2000的错误及解决1(续)
  • 反病毒技术及其发展趋势(2)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.