问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

JSON转工作流引擎能识别的BPMN

创作时间:
作者:
@小白创作中心

JSON转工作流引擎能识别的BPMN

引用
CSDN
1.
https://blog.csdn.net/QQ1941338475/article/details/139044923

在现代软件开发中,业务流程管理(BPMN)和工作流引擎广泛应用于自动化和优化业务流程。BPMN(Business Process Model and Notaion)作为一种标准的流程建模语言。因此,将JSON转换为BPMN以便工作流引擎识别和执行,作为一个重要的需求。

本文将介绍如何将JSON格式的业务流程描述转换为BPMN,以便被工作流引擎识别和执行。

完整转BPMN代码:lowflow-design-converter: 低代码流程设计器转bpmn (gitee.com)

什么是BPMN?

BPMN是一种用于业务流程模型的图形表示法,它能够让业务人员或技术人员在同一个平台上交流。

BPMN使用图形符号来表示业务活动、事件和决策、具有良好的可读性和标准化特性。

BPMN核心的元素包括:

  • 流程(Process)
  • 任务(Task)
  • 网关(Gateway)
  • 事件(Event)
  • 连接线(Sequence Flow)

将JSON转换为BPMN

步骤1:解析JSON

首先、需要解析JSON,提取出描述业务流程的关键信息。假设我们的JSON描述了一个简单的业务流程。

{
    "code": "test",
    "name": "测试模型",
    "process": {
        "id": "root",
        "type": "start",
        "name": "发起人",
        "child": {
            "id": "node_bi7kz",
            "pid": "root",
            "type": "approval",
            "name": "审批人",
            "child": {
                "id": "end",
                "pid": "node_bi7kz",
                "type": "end",
                "name": "结束"
            },
            "assigneeType": "user",
            "formUser": "",
            "formRole": "",
            "users": ["admin"],
            "roles": [],
            "leader": 1,
            "orgLeader": 1,
            "choice": false,
            "self": false,
            "multi": "sequential",
            "nobody": "pass",
            "nobodyUsers": [],
        }
    },
    "remark": ""
}

步骤2:创建节点类

分别为:

  • StartNode: 开始节点
  • CcNode: 抄送节点
  • ApprovalNode: 审批节点
  • ConditionNode:条件节点
  • ExclusiveNode:互斥分支节点
  • TimerNode: 计时等待节点
  • EndNode: 结束节点

步骤3:创建模型类

创建一个类名为:ProcessModel类,并提供一个toBpmnModel方法将类转为BpmnModel

步骤4:节点转换

以审批节点为例子,创建UserTask类并赋值对应的属性配置

配置完用户审批节点后,创建SequenceFlow类连接到下一个节点

步骤5:转为BPMN

导入转换依赖

Flowable的bpmn转换依赖

<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-bpmn-converter</artifactId>
    <version>6.8.0</version>
</dependency>

Activiti的bpmn转换依赖

<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-bpmn-converter</artifactId>
    <version>7.1.0.M6</version>
</dependency>
转换BPMN并下载

结论

将 JSON 转换为 BPMN 是一个将数据格式标准化的重要步骤,确保业务流程能够在不同系统之间无缝衔接和执行。通过解析 JSON 并生成相应的 BPMN XML,可以实现这一目标。

希望本文能够为您提供有价值的参考,帮助您在实际项目中实现 JSON 到 BPMN 的转换。如果有任何问题或建议,欢迎交流讨论

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号