场景
项目需要涉及到流程,市面上比较好的做流程状态机的也就是java开发的flowable, 但我所用的语言是golang没有像java那样有提供第三方库,可以直接生成一个对象然后对该流程操作,所以只能通过sdk去调对应的操作,查看了一些网上的golang支持的流程库如Go-Workflow,js-ojus/flow 但感觉都不是很好所以还是使用了flowable
flowable搭建
参考:https://my.oschina.net/u/4518053/blog/4761554
使用
流程搭建
http://ip:port/flowable-modeler ui搭建
名字与key为后续你需要创建对应的流程实例使用
对应的sdk调用
登录swagger http://ip:port/flowable-rest 文档介绍的很清楚不做介绍
task
- user task 可以将该任务即流程到该节点的时候指定用户组或者用户去处理(其实就是调用接口去完成即可进入到下一步)
- service task 跟java的程序调用有关
- http task 需要注意的是他只是作为一个特殊服务不会成为一个节点,也就是说如果在后面的flow(--->)线中没有判断的话,会直接通过这个节点
其他的没使用但见名知意, 自己尝试下即可了解
flowable常用表达式
https://blog.csdn.net/commander_officer/article/details/105223389
这些表达式应用场景都是你在调用task的接口去完成任务时候传入的variables数组(每个对象都有name与value字段),每个对应就是一个字段
但如果需要对http task接口返回的参数做判断的话需要将数据转换为json, 且起一个前缀别名默认为任务id
比如http task后想判断接口返回的a=7即可通过, 那么表达式即是${myResponseResponseBody.a==7}
另外一点给某task添加了定时器的话则会在流程到该节点的时候会执行, 但如果在任务完成还没执行的话就不会执行
有疑问加站长微信联系(非本文作者)