zoukankan      html  css  js  c++  java
  • jbpm5.1介绍(4)

    eclipse插件

    需求
    Eclipse的3.6更新版本

    Graphiti框架使用更新站点

    可以直接下载更新Graphiti

    http://download.eclipse.org/graphiti/updates/0.7.1/

    更新bpmn2.0插件

    http://codehoop.com/bpmn2

    也可以直接从网站上下载后到本地更新,下载地址

    https://github.com/droolsjbpm/bpmn2-eclipse-editor

    使用eclipse创建hellojbpm

    打开eclipse,新建jbpm project

    输入工程名,然后都是下一步

    最后完成,工程就创建完成了。

    修改流程定义

    加入两个Script Task,然后修改其属性,点击节点然后在下方面板中修改属性

    在Action加入要执行的代码,可以是java也可以是Mvel角本

    加完之后,可以看到流程如下图

    执行测试流程,流程将直接走到结束并且经过两个Script Task并且输出内容

    public class ProcessTest {
    
    	public static final void main(String[] args) {
    		try {
    			// load up the knowledge base
    			KnowledgeBase kbase = readKnowledgeBase();
    			StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
    			KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
    			// start a new process instance
    			ksession.startProcess("com.sample.bpmn.hello");
    			logger.close();
    		} catch (Throwable t) {
    			t.printStackTrace();
    		}
    	}
    
    	private static KnowledgeBase readKnowledgeBase() throws Exception {
    		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
    		kbuilder.add(ResourceFactory.newClassPathResource("sample.bpmn"), ResourceType.BPMN2);
    		return kbuilder.newKnowledgeBase();
    	}
    	
    }
    

    运行可看到结果

    Hello jbpm5
    自动化的流程向下走
    

    使用eclipse创建hellojbpm

    打开eclipse,将示例工程导入,示例工程路径jbpm-installer/sample/evaluation

    这是一个员工添写自我评价并且需要人力资源和项目经理审批的示例,中间有两个网关都是AND,就是表示必须是人力资源和项目经理全部评价完成流程才算结束。

    员工:krisv

    人力资源:mary

    项目经理:john

    看下图:

    首先运行工程中的示例,开始流程

    在view中选出Human task view

    流程开始的时候,krisv开始添写自我评价,这时到human task view中可以看到状态

    输入krisv并且刷新

    可以看到自己要处理的流程

    点击start,则流程进入到inprogress状态,点击complete,则流程结束

    完成之后进入一个分支节点,这个结点用的是AND就是只有当人事经理和项目经理全部审核通过后流程才算结束

    我们在human task view输入mary,则出现mary的待办列表

    流程处理状态同krisv,也可以输入john看一下,每个人都有对应的要处理的任务列表,比较直观的就能看到要处理的结果。

    只有当两个流程全部结束流程才算结束。

    通过上面的示例我们看到了使用人工结点,也可以在结束前或者流程中加入Script Task,以处理在不同的时刻状态的变化。

  • 相关阅读:
    Python自动化开发学习的第十周----Redis
    Python自动化开发学习的第九周----线程、进程、协程
    Python自动化开发学习的第八周----socket网络编程
    Python自动化开发学习的第七周---面向对象编程进阶
    Python自动化开发学习的第六周------面向对象学习
    Python自动化开发学习的第五周------模块介绍
    java保留两位有效数字
    java中对象的初始化顺序
    &和&&的区别
    关于Java中遍历map的四种方式
  • 原文地址:https://www.cnblogs.com/skyme/p/2240646.html
Copyright © 2011-2022 走看看