精华内容
下载资源
问答
  • BPMN2.0

    2019-06-05 18:08:53
  • BPMN 2.0

    2017-02-07 14:37:00
    BPMN 2.0是什么呢? 业务流程模型注解Business Process Modeling Notation - BPMN)是 业务流程模型的一种标准图形注解,这个标准 是由对象管理组(Object Management Group - OMG)维护的。通过使用XML语言来指定...

    BPMN 2.0是什么呢?

      业务流程模型注解Business Process Modeling Notation - BPMN)是 业务流程模型的一种标准图形注解,这个标准 是由对象管理组(Object Management Group - OMG)维护的。通过使用XML语言来指定业务流程的可执行语法, BPMN规范已经演变为业务流程的语言, 可以执行在任何兼容BPMN2的流程引擎中, 同时依然可以使用强大的图形注解。

    一个BPMN 2.0 XML流程的根是definitions元素。 在命名状态,子元素会包含真正的业务流程定义。 每个process子元素 可以拥有一个id(必填)和 name(可选)

     

    <definitions id="myProcesses"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://schema.omg.org/spec/BPMN/2.0 BPMN20.xsd"
      xmlns="http://schema.omg.org/spec/BPMN/2.0"
      typeLanguage="http://www.w3.org/2001/XMLSchema"
      expressionLanguage="http://www.w3.org/1999/XPath"
      targetNamespace="http://jbpm.org/example/bpmn2">
    
      <process id="noneStartEndEvent" name="myBusinessProcess">
          <startEvent id="start" />
         <endEvent id="end" name="End" />
     
    ... </process> <definitions> 
    启动一个流程可以通过调用 ProcessInstance processInstance = executionService.startProcessInstanceByKey("noneStartEndEvent");

    转载于:https://www.cnblogs.com/Ruiwy/p/6373954.html

    展开全文
  • bpmn-server提供BPMN 2.0建模,执行和持久性,作为Node.js的开源工作流服务器 该软件包是专门为Node.js设计的,并且完全使用TypeScript开发 WebApp通过建模和开发工作流提供UI 目录 文献资料 流程建模者 基于包括一...
  • 这里讲解BPMN2.0的流程任务,它是工作流的核心元素,每个任务表示在流程中需要执行的工作。 在BPMN2.0中定义了许多任务,它有着各自的特定属性: 流程任务 属性 Service Task(服务任务) 可以用于调外部...

    这里讲解BPMN2.0的流程任务,它是工作流的核心元素,每个任务表示在流程中需要执行的工作。

    在BPMN2.0中定义了许多任务,它有着各自的特定属性:

    流程任务 属性
    Service Task(服务任务) 可以用于调外部服务或自动执行程序。
    Send Task(发送任务) 用于处理外部流程参与人发送消息的工作。eg:EmailTask。
    Receive Taks(接收任务) 等待外部流程参与者发送消息的任务。
    User Task(用户任务) 表示需要人参与的任务,可以配置候选人/组/代理人等。
    Script Task(脚本任务) 用于执行定义好的脚本程序,流程执行到这个结点自动执行脚本。

    这里我们着重讲解User Task用户任务。

    1、用户任务的流程图定义

    用户任务流程图如下:

    流程定义文件如下:

    	<process id="myProcess" name="My process" isExecutable="true">
    		<startEvent id="startEvent" name="Start" ></startEvent>
    		<userTask id="userTask" name="User Task" />
    		<sequenceFlow id="flow1" sourceRef="startEvent" targetRef="userTask" />
    		<endEvent id="endEvent" name="End"/>
    		<sequenceFlow id="flow2" sourceRef="userTask" targetRef="endEvent" />
    	</process>

    这里的UserTask定义的很简单,就定义了id与name。我们可以对UserTask进行更多的属性设置,比如候选人、候选组、指定的委托代理人和最后设定的指定时间。

     

    2、用户任务候选人/候选组配置

    bpmn2.0规范配置候选人/候选组:

    		<userTask id="theTask" name="important task">
    			<potentialOwner>
    				<resourceAssignmentExpression>
    					<formalExpression>user(jjf),group(student)</formalExpression>
    				</resourceAssignmentExpression>
    			</potentialOwner>
    		</userTask>

    可以看到做了一个相对比较复杂的嵌套结构,在 formalExpression 标签中设置了对应的user为“jjf”与group为“student”。这样的设置比较复杂,所提activiti给我们提供了一个更为简单的扩展方式。

    候选用户:

    <!-- activiti简洁的配置候选用户 -->
    <userTask id="theTask1" name="my task" activiti:candidateUsers="jjf, zzm"/>

    候选组:

    <!-- activiti简洁的配置候选用户组 -->
    <userTask id="theTask2" name="my task" activiti:candidateGroups="student, teacher"/>

     

    3、用户任务代理人配置

    比如有个用户任务需要候选人,但是候选人有多个并且只有其中一个候选人才能真正操作某个用户任务,从候选人中选出真正操作的人称为代理人。bpmn2.0规范配置代理人:

    		<!-- bpmn2.0代理人配置 -->
    		<userTask id="theTask3" name="important task">
    			<humanPerformer>
    				<resourceAssignmentExpression>
    					<formalExpression>jjf</formalExpression>
    				</resourceAssignmentExpression>
    			</humanPerformer>
    		</userTask>

    我们在formalExpression标签中设置了代理人为 “jjf”,这里我们的代理人只能有一个,不会是代理人列表。

    activiti提供了一个简化代理人配置:

    <!-- activiti简化的代理人配置 -->
    <userTask id="theTask4" name="my task" activiti:assignee="jjf"/>

    当这个任务指定了代理人后,应该要限制代理人在规定时间内完成这个任务,标记代理人完成任务时间配置如下:

    <!-- activiti代理人选定完成时间配置 -->
    <userTask id="theTask5" name="important task" activiti:dueDate="${dateVariable}"/>

    我们可以在dateVariable表达式中设置时间,比如当前任务启动以后三小时以内或三天以内。

     

    4、通过任务监听器自定义配置

    监听器配置方式如下:

    		<!-- 任务监听器自定义配置 -->
    		<userTask id="usertask" name="User Task">
    			<extensionElements>
    				<activiti:taskListener event="create" 
    						class="com.jjf.activiti.bpmn20.MyTaskListener">
    				</activiti:taskListener>
    			</extensionElements>
    		</userTask>

    在userTask标签中加上 extensionElements 扩展对象,然后我们在扩展对象中自定义 activiti:taskListener ,指定class(监听器的实现类),还有就是要指定事件类型,它指task对应的事件类型公有四种事件类型:create(创建)、assignment(指定代理人)、complete(完成事件)、delete(删除)

    其中 MyTaskListener 自定义监听器类内容如下:

    public class MyTaskListener implements TaskListener {
        public void notify(DelegateTask delegateTask) {
            delegateTask.setAssignee("jjf");
            delegateTask.setVariable("key1","value1");
            // ... setXXX
            delegateTask.setDueDate(DateTime.now().plusDays(3).toDate());   //设定截止日期为当前时间后推迟3天
        }
    }

    我们创建的 MyTaskListener 类,并且继承了 TaskListener 接口,对应实现了 notify 方法,在方法中获取了 delegateTask 参数,做了属性设置。这里我设置了delegateTask的委托代理人、上下文变量与截止日期(当前时间向后推迟3天)。

     

    5、实例讲解

    接下来进行userTask的实例讲解。

    首先创建 my-process-usertask.bpmn20.xml 流程定义文件:

    其中涉及测试的流程图内容:

    	<process id="my-process">
    		<startEvent id="start"/>
    		<sequenceFlow id="flow1" sourceRef="start" targetRef="userTask" />
    
    		<userTask id="userTask" name="User Task"
    				  activiti:candidateGroups="group1"
    				  activiti:candidateUsers="user1,user2" />
    		<sequenceFlow id="flow2" sourceRef="userTask" targetRef="end" />
    
    		<endEvent id="end"/>
    	</process>

    然后创建 UserTaskTest 测试类:

    测试类内容如下:

    public class UserTaskTest {
        private static final Logger LOGGER = LoggerFactory.getLogger(UserTaskTest.class);   //配置日志
    
        @Rule
        public ActivitiRule activitiRule = new ActivitiRule();
    
        @Test
        @Deployment(resources = {"my-process-usertask.bpmn20.xml"})
        public  void testUserTask(){
            activitiRule.getRuntimeService().startProcessInstanceByKey("my-process");   //启动my-process流程
    
            TaskService taskService = activitiRule.getTaskService();
    
            Task task = taskService.createTaskQuery().taskCandidateUser("user1").singleResult();
            LOGGER.info("find by user1 task = {}" , task);
    
            task = taskService.createTaskQuery().taskCandidateUser("user2").singleResult();
            LOGGER.info("find by user2 task = {}" , task);
    
            task = taskService.createTaskQuery().taskCandidateGroup("group1").singleResult();
            LOGGER.info("find by group1 task = {}" , task);
        }
    }

    测试输出结果如下:

    可以看到我们通过候选用户user1、user2都可以获取到对应的task,通过候选组group1也可以获取到task。


    下面来测试用户任务的委托代理人

    委托代理人有两种方法,claim与setAssignee

     taskService.claim(task.getId(), "user2");
    taskService.setAssignee(task.getId(),"user2"); 

    这里我们推荐使用claim方法,它会做校验,如果task已经被指定候选人则会抛出异常。然而使用 setAssignee 设定指定处理人,只修改属性,并不校验。

    我们在上述测试函数中添加以下内容,最后测试函数为:

        @Test
        @Deployment(resources = {"my-process-usertask.bpmn20.xml"})
        public  void testUserTask(){
             //........上述测试函数内容
    
            //下面为两种委托代理人的方法
            taskService.claim(task.getId(), "user2");   //更适合用claim,会做校验,如果task已经被指定候选人则会抛出异常
            //taskService.setAssignee(task.getId(),"user2");   //设定指定处理人,只修改属性,并不校验
            LOGGER.info("claim task.id = {} by user2",task.getId());
    
            Task task1 = taskService.createTaskQuery().taskCandidateOrAssigned("user1").singleResult();  //看看通过user1可以获取什么内容
            LOGGER.info("find by user1 task = {}",task1);
    
            Task task2 = taskService.createTaskQuery().taskCandidateOrAssigned("user2").singleResult();  //看看通过user1可以获取什么内容
            LOGGER.info("find by user2 task = {}",task2);
        }

    输出结果:

    可以看到当我们指定了代理人为user2后,再查找user1的task则为空,查询user2的才能查询出来。

    展开全文
  • BPMN2.0规范.zip

    2020-11-10 09:41:01
    BPMN 2.0是什么呢,JPDL vs BPMN 2.0Bpmn 2.0 执行,配置,实例, 流程根元素,基本结构,网关,任务,Java服务任务,内部捕获事件:定时器,完全的实例(包括控制台任务表单)
  • bpmn2.0规范

    2018-12-19 11:38:39
    BPMN 2.0规范 英文版
  • 这个新的开源项目实现了对象管理组(Object Management Group)的BPMN 2.0标准,并旨在在可伸缩的云环境中运行。 Activiti将独立于Alfresco ECM系统运行,并应在Java应用程序,服务器,集群或云中运行。 第一个...

    bpmn2.0 流程引擎

    Alfresco Software与SpringSource合作宣布了他们的Activiti业务流程管理(BPM)项目。

    这个新的开源项目实现了对象管理组(Object Management Group)的BPMN 2.0标准,并旨在在可伸缩的云环境中运行。 Activiti将独立于Alfresco ECM系统运行,并应在Java应用程序,服务器,集群或云中运行。

    第一个alpha版本附带一个JAR文件,其中包含Process Virtual Machine和BPMN流程语言实现,一个系统管理控制台以及一个基于浏览器且支持Ajax的BPMN 2.0流程建模工具。

    “对于Spring开发人员和整个Java社区来说,这是一个非常激动人心的开发,” SpringSource的CTO Adrian Coyler说。 “长期以来,一直需要Apache许可的流程引擎,该引擎对许多应用程序都具有很大的实用性。 我们将Activiti视为将Java和开源开发扩展到新的应用程序领域,尤其是在Cloud中。”

    Alfresco计划将该项目提交给Apache Foundation。 可以从Activiti网站下载Activiti alpha版本。 版本5.0.alpha2计划于6月1日发布。


    翻译自: https://jaxenter.com/apache-licensed-bpmn-2-0-engine-101322.html

    bpmn2.0 流程引擎

    展开全文
  • OmniGraffle BPMN 2.0 模板

    2020-02-28 14:34:22
    OmniGraffle BPMN 2.0 模板
  • BPMN2.0 中英文挂图

    2019-03-22 15:13:06
    BPMN2.0学习材料,BPMN2.0符号中英文图解+中文图元术语集。BPMN2.0学习材料,BPMN2.0符号中英文图解+中文图元术语集。
  • BPMN2.0规范中文文档

    2019-03-25 16:24:21
    这里较为详细的介绍了BPMN2.0: 1.1. BPMN 2.0是什么 1.2. 历史和目标 1.3. JPDL vs BPMN 2.0 1.4. Bpmn 2.0 执行 1.5. 配置 1.6. 实例 1.7. 流程根元素 1.8. 基本结构(事件、顺序流、网关、任务) 1.9. ...
  • bpmn-font:BPMN 2.0符号字体
  • Activiti BPMN 2.0 designer

    2019-04-11 17:17:38
    Activiti BPMN 2.0 designer安装教程所需文件
  • BPMS:BPMN2.0-源码

    2021-06-14 09:36:03
    业务流程管理系统 BPMN2.0
  • BPMN2.0标注

    2017-04-14 10:18:00
    BPMN2.0标注 图标的说明,结合了activiti5.22版本
  • Activiti BPMN 2.0 designer 离线安装包
  • BPMN2.0规范

    2013-10-14 09:30:48
    BPMN2.0规范文档,描述了商业流程模型标记语言BPMN2.0的规范定义,对于工作流方面的开发比较有帮助。
  • BPMN2.0全景图

    2019-02-12 13:17:31
    BPMN2.0全景图,展示BPMN基本的必要符号,对于信息化和业务人员通用
  • mars eclipse Activiti BPMN 2.0 designer插件安装包,完美解决Activiti BPMN 2.0 designer插件在eclipse在线安装失败的问题。只需下载压缩包在本地进行安装。重启eclipse即可。
  • Activiti BPMN2.0 designer

    2018-12-17 16:36:13
    鉴于Activiti BPMN2.0 Designer在线安装方式基本安装不成功,所以提供离线下载文件及安装步骤供大家使用。
  • BPMN 2.0执行引擎。 开源javascript工作流引擎。 支持的元素 有关支持的元素,请参见 elements。 该引擎仅支持BPMN 2.0方案中包括的元素和属性,但可以扩展为了解其他架构和元素。 至少要有BPMN 2.0。 除错 该模块...
  • 这篇讲解关于BPMN2.0中的错误事件与信号事件。 一、错误事件 我们可以先看看一个比较简单的错误事件流程图: 可以看到 User Task 后面有一个网关,他会根据 User Task 提交的内容来判断是正常结束还是异常结束...
  • BPMN 2.0规范

    万次阅读 2019-06-18 15:59:19
    BPMN 2.0规范 .1.BPMN 2.0是什么呢? 业务流程模型注解(Business Process Modeling Notation - BPMN)是 业务流程模型的一种标准图形注解。这个标准 是由对象管理组(Object Management Group - OMG)维护的。 ...
  • BPMN 2.0 Tutorial

    2014-05-02 09:42:35
    BPMN 2.0 Tutorial What is BPMN? Why BPMN? BPMN Process Diagrams BPMN Process Modeling Examples

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,659
精华内容 663
关键字:

bpmn2.0