Activiti7 探索系列一使用Modeler设计业务流程

本文为翻译文章,如有不合理处请查看原文:https://community.alfresco.com/community/bpm/blog/2018/12/10/activiti-7-beta-using-the-modeler-to-design-business-processes

简介

Activiti 7 Beta 2附带了一个新的BPMN建模应用程序,我们将在本文中介绍它。 它支持BPMN 2.0标准。 它是在Alfresco应用程序开发框架(ADF)的帮助下开发的。 源代码可在此处获得。

Activiti 7 Deep Dive文章系列

本文是详细介绍Activiti 7的系列文章的一部分,应按列出的顺序阅读。

  1. 部署和运行业务流程
  2. 使用Modeler设计业务流程-本文
  3. 构建、部署和运行自定义业务流程
  4. 使用核心库

前提条件

  1. 您已阅读并阅读了“Activiti 7-入门”文章,并且已经运行了Activiti 7完整示例
  2. 您熟悉业务流程模型和符号(BPMN)2.0,您之前甚至可以使用以前版本的Activiti设计和创建业务流程。 本文不会过多地介绍如何使用BPMN设计业务流程。

运行Activiti Modeler应用程序

我们在上一篇文章中所做的Activiti部署已经启动并运行了建模器。 如果您没有运行它,请按照该文章中的说明返回并启动它。 您可以通过http:// activiti-cloud-gateway。<自己IP> .nip.io / activiti-cloud-modeling URL访问建模器。使用modeler/password,因为此用户是ACTIVITI_MODELER角色的一部分,该角色有权使用建模功能,您现在应该看到

如果您在上一篇文章中第一次访问建模器时创建了一个应用程序,则可能会看到该应用程序

创建流程应用程序

流程定义存在于所谓的流程应用程序中。 让我们创建一个包含我们的流程定义的。 单击“Create new |Application” 并给它起名称和描述:

单击“Create”按钮以创建新的流程应用程序:

现在,单击Sample App应用程序开始建模:

创建流程定义

流程应用程序可以包含多个流程定义,因此我们需要在开始建模业务流程之前创建一个流程定义。 单击Create new |Process菜单项:

进入一个表单,可以在其中填写流程定义的名称和描述:

单击“create”按钮以创建新的“流程定义”:

现在,单击左侧导航中的Sample Process以开始BPMN 2.0建模:

我们已经在画布中间有一个起始节点。 现在让我们继续添加我们的样本流程所需的活动。

让我们首先添加一个新的user task,在左侧工具栏中选择其中带有人物图标的矩形,然后将用户任务拖放到画布上。称之为user task1:

我们希望将用户任务分配给特定用户(即不是流程实例的发起者)。 我们在Keycloak中有以下用户可供选择:

单击画布上的用户任务,然后在“属性”窗格中右侧填写“testuser”作为受理人,然后单击该字段后面的“√”按钮以保存受理人值:

然后在User task之后将service task拖放到画布上,并将其命名为Service Task 1:

为了实现服务任务,我们使用称为Cloud  Connectors的东西,它们在自己的容器中作为自己的进程运行,这意味着它们可以与流程执行分开扩展和管理, 使用标准实现属性指定云连接器实现。 单击Service Task 1,然后使用serviceTask1Impl值填写实现属性,如下所示:

Service Task定义上的implementation 属性值将用作Spring Cloud Stream通道目标名称(在绑定的中间件RabbitMQ上)。 因此,我们必须确保我们将在下一篇文章中构建的自定义云连接器使用spring.cloud.stream.bindings。<channel> .destination属性值创建绑定到此名称的使用者。

现在添加一个End节点,然后单击右上角的磁盘按钮保存整个流程定义。 此外,请确保通过单击“保存”按钮旁边的下载按钮下载新流程定义的XML

注意:如果会话超时到期而您无法保存,则只需下载然后再次登录时导入流程定义。

可能习惯于在以前版本的Activiti中使用进程侦听器和任务侦听器。监听器是BPMN 2.0的Activiti扩展,它在流程定义中实现钩子点,这些钩子点由流程执行期间的事件触发。 在Activiti 7中,我们可以通过监听流程引擎发出的事件来实现“监听器”功能。 这对于云部署更好,因为事件是异步的,而Activiti侦听器是同步的。 在实现自定义云连接器时,我们将在下一篇文章中介绍如何实现事件处理程序

流程定义BPMN 2.0 XML样本

导出的BPMN 2.0样本流程定义类似于此(仔细检查您是否已使用受理人正确设置了用户任务,以及具有implementation属性的服务任务):

<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"
 xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
 xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
 xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
 xmlns:activiti="http://activiti.org/bpmn"
 id="sample-diagram"
 targetNamespace="http://bpmn.io/schema/bpmn"
 xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
 <bpmn2:process id="sampleproc-e9b76ff9-6f70-42c9-8dee-f6116c533a6d" name="Sample Process" isExecutable="true">
 <bpmn2:documentation />
 <bpmn2:startEvent id="StartEvent_1">
 <bpmn2:outgoing>SequenceFlow_0qdq7ff</bpmn2:outgoing>
 </bpmn2:startEvent>
 <bpmn2:userTask id="UserTask_0b6cp1l" name="User Task 1" activiti:assignee="testuser">
 <bpmn2:incoming>SequenceFlow_0qdq7ff</bpmn2:incoming>
 <bpmn2:outgoing>SequenceFlow_1sc9dgy</bpmn2:outgoing>
 </bpmn2:userTask>
 <bpmn2:sequenceFlow id="SequenceFlow_0qdq7ff" sourceRef="StartEvent_1" targetRef="UserTask_0b6cp1l" />
 <bpmn2:serviceTask id="ServiceTask_1wg38me" name="Service Task 1" implementation="serviceTask1Impl">
 <bpmn2:incoming>SequenceFlow_1sc9dgy</bpmn2:incoming>
 <bpmn2:outgoing>SequenceFlow_0t37jio</bpmn2:outgoing>
 </bpmn2:serviceTask>
 <bpmn2:sequenceFlow id="SequenceFlow_1sc9dgy" sourceRef="UserTask_0b6cp1l" targetRef="ServiceTask_1wg38me" />
 <bpmn2:endEvent id="EndEvent_0irytw8">
 <bpmn2:incoming>SequenceFlow_0t37jio</bpmn2:incoming>
 </bpmn2:endEvent>
 <bpmn2:sequenceFlow id="SequenceFlow_0t37jio" sourceRef="ServiceTask_1wg38me" targetRef="EndEvent_0irytw8" />
 </bpmn2:process>
 <bpmndi:BPMNDiagram id="BPMNDiagram_1">
 <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="sampleproc-e9b76ff9-6f70-42c9-8dee-f6116c533a6d">
 <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
 <dc:Bounds x="105" y="121" width="36" height="36" />
 <bpmndi:BPMNLabel>
 <dc:Bounds x="78" y="157" width="90" height="20" />
 </bpmndi:BPMNLabel>
 </bpmndi:BPMNShape>
 <bpmndi:BPMNShape id="UserTask_0b6cp1l_di" bpmnElement="UserTask_0b6cp1l">
 <dc:Bounds x="233" y="98.5" width="100" height="80" />
 </bpmndi:BPMNShape>
 <bpmndi:BPMNEdge id="SequenceFlow_0qdq7ff_di" bpmnElement="SequenceFlow_0qdq7ff">
 <di:waypoint x="141" y="139" />
 <di:waypoint x="283" y="139" />
 <bpmndi:BPMNLabel>
 <dc:Bounds x="212" y="117.5" width="0" height="13" />
 </bpmndi:BPMNLabel>
 </bpmndi:BPMNEdge>
 <bpmndi:BPMNShape id="ServiceTask_1wg38me_di" bpmnElement="ServiceTask_1wg38me">
 <dc:Bounds x="422" y="99" width="100" height="80" />
 </bpmndi:BPMNShape>
 <bpmndi:BPMNEdge id="SequenceFlow_1sc9dgy_di" bpmnElement="SequenceFlow_1sc9dgy">
 <di:waypoint x="333" y="139" />
 <di:waypoint x="422" y="139" />
 <bpmndi:BPMNLabel>
 <dc:Bounds x="377.5" y="117" width="0" height="13" />
 </bpmndi:BPMNLabel>
 </bpmndi:BPMNEdge>
 <bpmndi:BPMNShape id="EndEvent_0irytw8_di" bpmnElement="EndEvent_0irytw8">
 <dc:Bounds x="611" y="121" width="36" height="36" />
 <bpmndi:BPMNLabel>
 <dc:Bounds x="629" y="160" width="0" height="13" />
 </bpmndi:BPMNLabel>
 </bpmndi:BPMNShape>
 <bpmndi:BPMNEdge id="SequenceFlow_0t37jio_di" bpmnElement="SequenceFlow_0t37jio">
 <di:waypoint x="522" y="139" />
 <di:waypoint x="611" y="139" />
 <bpmndi:BPMNLabel>
 <dc:Bounds x="566.5" y="117" width="0" height="13" />
 </bpmndi:BPMNLabel>
 </bpmndi:BPMNEdge>
 </bpmndi:BPMNPlane>
 </bpmndi:BPMNDiagram>
</bpmn2:definitions>

在下一篇文章中,我们将构建一个包含此流程定义的自定义Runtime Bundle和一个将为Service Task提供实现的自定义Cloud Connector。

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring Boot项目中集成Activiti 7并使用Activiti在线流程设计器,你可以按照以下步骤进行操作: 1. 添加依赖:在项目的pom.xml文件中添加ActivitiActiviti在线流程设计器的相关依赖。例如: ```xml <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>7.1.0.M6</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-app-rest</artifactId> <version>7.1.0.M6</version> </dependency> ``` 2. 配置流程设计器:在Spring Boot的配置文件(application.properties或application.yml)中添加以下配置,以允许Activiti在线流程设计器访问后台服务: ```yaml activiti: app: rest: deploy-check-re deployment-name: true tenant-check-enabled: false unauthenticated-response-status: 401 service: name: Activiti Apps location-uri: http://localhost:8080/activiti-app ``` 3. 启动Spring Boot应用程序:运行Spring Boot应用程序以启动Activiti服务。 4. 访问Activiti在线流程设计器:在浏览器中访问 http://localhost:8080/activiti-app,你将看到Activiti在线流程设计器的登录页面。 5. 创建流程:登录Activiti在线流程设计器并使用其可视化工具创建流程。你可以为流程添加任务、节点、条件等。 6. 部署流程:完成流程设计后,可以将流程部署到Activiti服务器中。你可以将流程保存为BPMN 2.0文件,并使用Activiti的API将其部署到服务器。 完成上述步骤后,你将成功集成Activiti 7并使用Activiti在线流程设计器。通过在线流程设计器,你可以快速创建、修改和部署流程,大大提高了工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值