camunda常见功能解析
camunda常见功能解析
从camunda desktop modeler的角度来分析一下,camunda到底有那些功能
一些重要的概念
external task
类似用户任务,设计的意图,比如可以调用外部系统,但是和用户任务的设计意图不一样,只是使用方式一样
job execution
当一个time event发起,或者当一个任务被标记成异步以后,它就变成了job,成为了job,以后,有以下的优点
- 非阻塞,任务可以继续执行
- 增加了重试的机制
Asynchronous Continuations
1 | <!-- AFTER (new) --> |
before
- 非阻塞,异步执行,主要用于创建异步的任务,还可以重试
after
- 创建安全点,防止任务失败没有记录,而且也可以重试
execution listeners
类似前面一样的存在,可以看到,而且可以加到任何地方,比如事件,任务,还有流程里面
event type
,只有start 和 end,可以有多个,按照顺序来,好像是start前面的先执行,然后end前面的后面执行listener type
有java class,expression,delegate expression,script- expression 就是value的意思,根据你填的类型,来填,比如是java calss,就是java全类名,如果和spring集成了,还可以是spring的bean,这里需要选择类型是delegate expression
- 字段注入的名字,java使用的时候,类似自动注入 字段注入的文档
- 字段注入的类型,可以是string或者是expression
- 字段注入的值
task listeners
和execution listeners不一样,task listeners专门用于task任务
task listener文档
- event type,相比execution listeners,非常多,create assignment complete delete update timeout
- 可选的id,相比execution listeners,有自己的id
- 这个和execution listeners 类似
- 也和execution listener类似
inputs and outputs
多了一种机制存在,让业务更灵活,input只有当前task可以获取,然后output,可以当前以后的task可以获取,而且input和output在多实例的时候,特别有效
camunda文档
- 只有当前task只能获取input
- output当前之后的task都可以获取
- 和普通上下文的变量获取没有什么区别,都是用名字获取
- 多实例的时候特别有效
- 可以放string,expression,还可以放list和map
组件panel
流程panel
- 名字这里更像是一个简短的描述,只起到文档的作用
- id在这里必须是唯一,可以用来启动流程,启动流程的时候,是
runtimeService.startProcessInstanceByKey(id)
version tag
类似于git的tag功能,相当于语义化的版本,而且执行的时候还可以根据version tag
来选择版本,成为了机制executable
表示流程是否可以执行,如果配置了自动扫描流程,那么不是executable
就不会被解析- 文档,就是描述,是语义性质的东西
time to live
,应该是history的cleanup,类似TTLstartable
表示是否作为顶级流程,因为它的web应用,会只能启动startable
的应用,否则只能作为子流程调用- 只有该组的用户才能启动这个流程,类似所有权
- 只有该用户才能启动这个流程,类似所有权
external task
的优先级,external task
类似userTask
,但是应用的场景不一样job execution
优先级
start event的panel
- 名字
- id
- 表单
start initiator
流程发起人,可以是固定值,也可以是变量,然后可以通过api来获取- 异步设置
user task的panel
用户任务,就是留白任务,走到这里会阻塞,然后调用相关api完成即可,本意是只让用户审批,工作流的审批节点几乎都是用户任务
- id
- 文档
- 用户任务分配,分配人员 用户任务分配
- 可选组
- 可选用户
- 到期时间,过期了,会产生timeout事件,可以实现自己的逻辑
- 用途为止,根据 camunda论坛的答案, 可以过滤使用
- 优先级
- 表单,可以和表单绑定
- input
- output
service task的panel
服务任务,就是干活的任务,相比于用户任务,是阻塞任务,服务任务是自动任务
- name
- id,不能重复
- 文档
- implemention,type,一共有五种,分别是external,java class,expression,delegate expression,connector
- value,分别不同的类型,填不同的值
总结
其实camunda的desktop modeler已经涵盖了大部分camunda的常见功能,已经足够用了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 李嘉图!