示例的意思_实例

示例的意思_实例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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ArcGIS server 10.2安装教程详细版

    ArcGIS server 10.2安装教程详细版详细讲述arcgisserver10.2的安装教程。默认已经安装arcgisDesktop10.2。提供一个arcgisserver下载地址:链接:https://pan.baidu.com/s/1iXol6v3RiqjU2MLvbnwNFA提取码:7fzf(失效了请和我说)一、所需文件1.ArcgisServer10.2安装文件。2.ArcgisSer…

    2022年5月25日
    75
  • crontab定时任务不执行的原因

    crontab定时任务不执行的原因我在网上找的时候发现网上主要说了这5个原因:1crond服务未启动crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以停止。如果停止了就无法执行任何定时任务了,解决的方法是打开它:crond或servicecrondstart如果提示crond命令不存在,可能被误删除了,CentOS下可以通过这个命令重新安装:yum…

    2022年7月17日
    36
  • matlab求解时滞微分方程_matlab延迟环节传递函数

    matlab求解时滞微分方程_matlab延迟环节传递函数具有常时滞的DDERef:时滞微分方程—示例

    2022年9月27日
    2
  • 备份集中的数据库备份与现有的数据库不同解决方法

    备份集中的数据库备份与现有的数据库不同解决方法以前一直使用SQLServer2000,现在跟潮流都这么紧,而且制定要求使用SQLServer2005,就在现在的项目中使用它了。对于SQLServer2005,有几个地方是要注意的,比方在还原数据库时,不像2000里边将数据库和文件区分的很细,统一均为文件,这就使还原的数据库文件制定为.bak。那么想还原2000的数据库(备份数据库文件,无后缀名的),就需要自己手工选择。…

    2022年5月6日
    444
  • Datagrip2021.8.3激活码【中文破解版】[通俗易懂]

    (Datagrip2021.8.3激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS3…

    2022年3月25日
    90
  • Caffe2安装_caffe教程

    Caffe2安装_caffe教程一、依赖库的安装首先1.首先需要安装Ubuntu16.04与14.04都需要的依赖库。sudoaptupdatesudoaptinstall-y–no-install-recommends\build-essential\cmake\git\libgoogle-glog-dev\lib…

    2025年7月18日
    4

发表回复

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

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