PM4PY - BPMN support

BPMN支持

在pm4py,我们提供导入/导出/布局BPMN图表的支持。这些支持仅限于以下BPMN元素:

  • Events:事件(开始/结束事件)
  • Tasks:任务
  • Gateways:网关(排他的,平行的,包容的)
    而且,我们提供在PM4PY中实施的流程模型的相互转换(例如:Petri nets 和BPMN 图标)

导入

import pm4py
import os

bpmn_graph = pm4py.read_bpmn(os.path.join("tests", "input_data", "running-example.bpmn"))

导出

bpmn_graph应该就是pm4py里的bpmn对象;enable_layout设置为True,在导出之前启用 BPMN 模型的自动布局。

import pm4py
import os

pm4py.write_bpmn(bpmn_graph, "ru.bpmn", enable_layout=True)

布局

一个布局操作尝试给BPMN图标的节点和边缘一个好的位置。

from pm4py.objects.bpmn.layout import layouter

bpmn_graph = layouter.apply(bpmn_graph)

转换成Petri net

将 BPMN 模型转换为 Petri net模型可以实现不同的 PM4Py 算法(例如一致性检查和模拟算法)

from pm4py.objects.conversion.bpmn import converter as bpmn_converter

net, im, fm = bpmn_converter.apply(bpmn_graph)

从Process Tree(PT)转换成BPMN

示例代码中,首先我们导入XES事件日志,我们用inductive miner(感应矿工)挖掘一个模型。返回一个PT对象。

import pm4py
import os

log = pm4py.read_xes(os.path.join("tests", "input_data", "running-example.xes"))
tree = pm4py.discover_process_tree_inductive(log)

接下来,我们将其转换成BPMN图表

from pm4py.objects.conversion.process_tree import converter

bpmn_graph = converter.apply(tree, variant=converter.Variants.TO_BPMN)

*若对本文有疑问(例如:笔记中知识点或表达有误),欢迎指出,共同学习进步。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值