Activiti 流程监控 流程图

Activiti作为一款轻量级的流程引擎,基本满足日常的工作需要。但涉及到流程监控时,就会显得心有余而力不足。如何不借助其他插件,又尽量避免改写底层代码以实现流程的追踪呢?
设计思路:

(1)一个页面,两个tab标签:A和B。

(2)A标签加载流程图,B标签加载流程数据。

    流程图的作用:显示全局流程布局,高亮显示当前进行的环节。

    流程数据的作用:显示当前人,处理人,处理时间等需要的信息。

(3)加载流程图:

    页面传回businessKey,后台实现查询。查询需要用到的对象:HistoricProcessInstance 或者 ProcessInstance,两者有什么区别?

    HistoricProcessInstance:既可以查询历史流程实例(结束的流程),也可以查询运行中的流程实例。(调用getHistoricService()方法实现业务处理)

     ProcessInstance :只查询运行中的流程实例。(调用getRuntimeService()方法实现业务处理)

    结论:需要效率并且不关注结束流程的情况选择 ProcessInstance,而针对流程监控如果结束的流程也需要监控,应该选择 HistoricProcessInstance 。

重要代码:

/取历史流程实例,既能取到历史实例又能取到运行中的流程实例/
HistoricProcessInstance hpi = workFlowEngineServiceImpl.findHistoryProcessInstanceByBusKey(businessKey);
try {
if (hpi == null) {
throw new RuntimeException(“获取流程图异常!”);
} else {
InputStream imageStream = workFlowEngineServiceImpl.getFlowMap(hpi, hpi.getId(), flowType);
ServletOutputStream os = response.getOutputStream();
int bytesRead = 0;
byte[] buffer = new byte[1024];
while ((bytesRead = imageStream.read(buffer, 0, 1024)) != -1) {
os.write(buffer, 0, bytesRead);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值