# A python module for parsing and executing BPMN models in a single process
Supported elements so far:
- Start/end events
- Task (Manual, User, Service) - dummy execution for now
- Gateways (Exclusive, Parallel)
- Sequence flow with conditions
Example BPMN model:
![image](https://user-images.githubusercontent.com/714889/114159824-81c65d80-9926-11eb-8b74-6d5dd9bb82ea.png)
Example usage:
```python
import asyncio
from bpmn_model import BpmnModel
m = BpmnModel("models/model_01.bpmn")
p1 = m.run("1", {"a": 1})
p2 = m.run("2", {"a": 2})
run = [p1, p2]
def run_serial():
for i, p in enumerate(run):
print(f"Running process {i+1}\n-----------------")
asyncio.run(p)
print()
def run_parallel():
async def parallel():
await asyncio.gather(p1, p2)
print(f"Running processes\n-----------------")
asyncio.run(parallel())
# run_parallel()
run_serial()
```
Example execution trace:
```python
Running process 1
-----------------
[1] DOING: UserTask(Task 1)
[1] DOING: Task(DOWN)
[1] - waiting for all processes in gate.
[1] DOING: Task(UP)
[1] DOING: ManualTask(Manual Task 2)
[1] DOING: ServiceTask(Task 3)
[1] - checking variables={'a': 1} with ['a==1']... [1] DONE: Result is True
[1] - going down default path...
[1] DOING: Task(Task down)
[1] DONE
Running process 2
-----------------
[2] DOING: UserTask(Task 1)
[2] DOING: Task(DOWN)
[2] - waiting for all processes in gate.
[2] DOING: Task(UP)
[2] DOING: ManualTask(Manual Task 2)
[2] DOING: ServiceTask(Task 3)
[2] - checking variables={'a': 2} with ['a==1']... [2] DONE: Result is False
[2] - going down default path...
[2] DOING: Task(Task down)
[2] DONE
```
没有合适的资源?快使用搜索试试~ 我知道了~
python-bpmn-engine:在Python流程中解析和执行Camunda BPMN模型
共5个文件
py:3个
bpmn:1个
md:1个
4星 · 超过85%的资源 需积分: 7 22 下载量 2 浏览量
2021-04-10
01:11:39
上传
评论
收藏 6KB ZIP 举报
温馨提示
一个用于在单个流程中解析和执行BPMN模型的python模块 到目前为止支持的元素: 开始/结束事件 任务(手动,用户,服务)-暂时执行虚拟 网关(专有,并行) 有条件的顺序流 BPMN模型示例: 用法示例: import asyncio from bpmn_model import BpmnModel m = BpmnModel ( "models/model_01.bpmn" ) p1 = m . run ( "1" , { "a" : 1 }) p2 = m . run ( "2" , { "a" : 2 }) run = [ p1 , p2 ] def run_serial (): for i , p in enumerate ( run ): print ( f"Running process { i + 1 } \n -------------
资源详情
资源评论
资源推荐
收起资源包目录
python-bpmn-engine-main.zip (5个子文件)
python-bpmn-engine-main
bpmn_types.py 2KB
bpmn_model.py 3KB
models
model_01.bpmn 11KB
README.md 2KB
main.py 503B
共 5 条
- 1
MaDaniel
- 粉丝: 688
- 资源: 4571
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OBD-II Java API.zip
- 一个支持多人游玩的Flappy-Bird变种游戏, Java编写.zip
- 一个用 Java 实现的贪吃蛇小游戏.zip
- 一个利用Java Swing实现可视化界面的扫雷小游戏.zip
- 一个简单ssh(spring springMVC hibernate)游戏网站,在网上找的html模板,没有自己写UI,重点放在java后端上.zip
- 一个使用Java完成的仿超级玛丽小游戏.zip
- 一个利用java语言制作的简单飞机游戏.zip
- 一个利用Java编写的,基于swing组件的连连看小游戏.zip
- 一个简易的对对碰游戏软件,运用Java、Java FX技术.zip
- 一个基于JAVA的类魔塔小游戏 a Java based MagicTowerlike game.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1