示例的意思_实例

示例的意思_实例JBoss 系列三十八:jBPM5示例之 Reusable Sub-Process

大家好,又见面了,我是你们的朋友全栈君。

jBPM5中的Reusable Sub-Process是在主流程里面执行另为一个流程(子流程),当流程执行到Reusable Sub-Process节点时jBPM5流程执行引擎根据提供的流程(子流程)ID,Reusable Sub-Process示例流程如下(主流程和子流程):

示例的意思_实例

主流程

示例的意思_实例

子流程

Reusable Sub-Process示例流程运行时传入三条字符串message 1,message 2和message 3,在流程运行时主流程的Format tag节点中生成一个tag,在子流程Apply Tag中将生成的tsg添加到每一条消息的末尾,流程运行结束输出三条消息确认设定tag情况。主流程的Format tag节点为Service Task节点,运行时执行的Java代码如下:

System.out.println("Parent-process id = "+kcontext.getProcessInstance().getId()); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("mm-dd-yyyy"); kcontext.setVariable("tag", sdf.format(new java.util.Date(System.currentTimeMillis())));

子流程Apply Tag节点为Service Task节点,运行时执行的Java代码如下:

System.out.println("Child-process id = "+kcontext.getProcessInstance().getId()); java.util.List<String> taggedMessages = new java.util.ArrayList<String>(); for (Object message : internalMessages){ taggedMessages.add(((String)message)+" - "+internalTag); } kcontext.setVariable("internalMessages",taggedMessages);

运行org.jbpm.quickstarts.subprocess.ReusableSubProcessStart将会运行Reusable Sub-Process示例流程,ReusableSubProcessStart代码如下:

package org.jbpm.quickstarts.subprocess; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.drools.runtime.StatefulKnowledgeSession; import org.drools.runtime.process.ProcessInstance; import org.drools.runtime.process.WorkflowProcessInstance; import org.jbpm.quickstarts.QuickStartBase; public class ReusableSubProcessStart extends QuickStartBase { public static void main(String[] args) { new ReusableSubProcessStart().test(); } public void test() { StatefulKnowledgeSession ksession = createKnowledgeSession("quickstarts/reusableSubProcess-Parent.bpmn", "quickstarts/reusableSubProcess-Child.bpmn"); List<String> messages = new ArrayList<String>(); messages.add("message 1"); messages.add("message 2"); messages.add("message 3"); Map<String,Object> parameters = new HashMap<String, Object>(); parameters.put("messages", messages); //Start the process using its id ProcessInstance process = ksession.startProcess("org.jbpm.quickstarts.reusablesubprocessparent",parameters); messages = (List<String>) ((WorkflowProcessInstance)process).getVariable("messages"); for (String message : messages) { System.out.println("Message = "+message); } ksession.dispose(); } }

Reusable Sub-Process示例流程运行输出结果如下:

Parent-process id = 1 Child-process id = 2 Message = message 1 - 01-31-2013 Message = message 2 - 01-31-2013 Message = message 3 - 01-31-2013

如上01-31-2013为设定的tag。

转载于:https://my.oschina.net/iwuyang/blog/197189

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106778.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MODBUS协议规范-中文版(免费下载)

    MODBUS协议规范-中文版(免费下载)1.Modbus数据帧构成:地址域+功能码+数据+差错校验下面逐一解释各部分的具体含义:(1)地址域:即主站要访问的从站地址,其范围0~247(2)功能码:即主站想要从站执行什么动作。从大的方面看分为读(主站读取从站数据),写(主站向从站读取数据)(3)数据:如果主站的请求是读数据,那么该“数据”要包含的信息有:从哪里开始读数据+读多少数据。如果主站的请求是向从站写…

    2022年7月15日
    22
  • chromedriver怎么下载_chrome国内下载地址

    chromedriver怎么下载_chrome国内下载地址1、亲测能正常下载运用,具体地址如下:http://chromedriver.storage.proxy.ustclug.org/index.html选择对应版本,一定要与本地谷歌浏览器版本一致,要不在运行webdriver时会报错window10的环境,打开后选择win32的zip包应用就行,无论你是64位还是32位都选这个就ok:…

    2026年1月26日
    5
  • c++ pushback函数_push back from

    c++ pushback函数_push back from算法中里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。string中也有这个函数,作用是字符串之后插入一个字符。如果是指标准模板库(stl)中容器的一般pushback()操作函数,那么是指在容器尾端插入一项数据,比如vectora(10);a.pushback(10);那么a的尾端,同时也是唯…

    2025年8月4日
    6
  • ubuntu 7.04 ‘s sources list

    ubuntu 7.04 ‘s sources list

    2021年5月1日
    89
  • 二十种电容分类详解(附常用电子元件实物图片大全)

    二十种电容分类详解(附常用电子元件实物图片大全)转载—嘉峪检测网2020-04-2320:50以下为正文:一、瓷介电容器(CC)1.结构用陶瓷材料作介质,在陶瓷表面涂覆一层金属(银)薄膜,再经高温烧结后作为电极而成。瓷介电容器又分1类电介质(NPO、CCG);2类电介质(X7R、2X1)和3类电介质(Y5V、2F4)瓷介电容器。2.特点1类瓷介电容器具有温度系数小、稳定性高、损耗低、耐压高等优点。最大容量不超过1000pF,常用的有CC1、CC2、CC18A、CC11、CCG等系列。2、3.

    2022年8月22日
    7
  • 罗马字符发音_罗马字发音

    罗马字符发音_罗马字发音**1Ααalphaa:lf阿尔法2Ββbetabet贝塔3Γγgammaga:m伽马4Δδdeltadelt德尔塔5Εεepsilonepsilon伊普西龙6Ζζzetazat截塔7Ηηetaeit艾塔8Θθthetθit西塔9Ιιiotaiot约塔10

    2022年9月30日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号