Flowable 6.6.0 BPMN用户指南 - 17 高级用例 - 17.7 高级查询API:运行时和历史任务查询之间的无缝切换

Flowable 6.6.0 用户指南相关文档下载


《Flowable 6.6.0 BPMN用户指南》

1. 入门
2. 配置
3 The Flowable API
4 Flowable 6.6.0 BPMN用户指南 - (4)Spring集成
5 Spring Boot
6 部署
7 BPMN 2.0简介
8 BPMN 2.0的构造
9 表单(Forms)
10 流程实例迁移
11 JPA
12 历史(History)
13 身份管理(Identity management)
14 REST API
15 CDI集成
16 LDAP集成
17 高级用例

有关Flowable的更多文档,参见:

《Flowable文档大全》


17.7 高级查询API:运行时和历史任务查询之间的无缝切换

One core component of any BPM user interface is the task list. Typically, end users work on open, runtime tasks, filtering their inbox with various setting. Often also the historic tasks need to be displayed in those lists, with similar filtering. To make that code-wise easier, the TaskQuery and HistoricTaskInstanceQuery both have a shared parent interface, which contains all common operations (and most of the operations are common).

This common interface is the org.flowable.engine.task.TaskInfoQuery class. Both org.flowable.engine.task.Task and org.flowable.engine.task.HistoricTaskInstance have a common superclass org.flowable.engine.task.TaskInfo (with common properties) which is returned from e.g. the list() method. However, Java generics are sometimes more harming than helping: if you want to use the TaskInfoQuery type directly, it would look like this:
TaskInfoQuery<? extends TaskInfoQuery<?,?>, ? extends TaskInfo> taskInfoQuery
Ugh, Right. To ‘solve’ this, a org.flowable.engine.task.TaskInfoQueryWrapper class that can be used to avoid the generics (the following code could come from REST code that returns a task list where the user can switch between open and completed tasks):

任何BPM用户界面的一个核心组件是任务列表。通常,最终用户处理打开的运行时任务,使用各种设置过滤收件箱。通常,历史任务也需要通过类似的过滤显示在那些列表中。为了使代码更简单,TaskQuery 和HistoricTaskInstanceQuery 都有一个共享的父接口,其中包含所有常用操作(大多数操作都是通用的)。

这个公共接口是 org.flowable.engine.task.TaskInfoQuery类。org.flowable.engine.task.Task和org.flowable.engine.task.HistoricTaskInstance 都有一个共同的超类org.flowable.engine.task.TaskInfo(具有公共属性),它是从类似list()方法返回的。但是,Java泛型有时弊大于利:如果您想直接使用TaskInfoQuery 类型,它应该如下所示:

TaskInfoQuery<? extends TaskInfoQuery<?,?>, ? extends TaskInfo> taskInfoQuery
为了“解决”这个问题,可用org.flowable.engine.task.TaskInfoQueryWrapper类来避免泛型(以下代码可来自REST代码,该代码返回任务列表,用户可以在开放的任务和已完成的任务之间切换):

TaskInfoQueryWrapper taskInfoQueryWrapper = null;
if (runtimeQuery) {
    taskInfoQueryWrapper = new TaskInfoQueryWrapper(taskService.createTaskQuery());
} else {
    taskInfoQueryWrapper = new TaskInfoQueryWrapper(historyService.createHistoricTaskInstanceQuery());
}

List<? extends TaskInfo> taskInfos = taskInfoQueryWrapper.getTaskInfoQuery().or()
    .taskNameLike("%k1%")
    .taskDueAfter(new Date(now.getTime() + (3 * 24L * 60L * 60L * 1000L)))
.endOr()
.list();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
FlowPortal BPM 流程管理 FlowPortal采用微软.net技术,能进行可视化免编程的业务流程管理(BPM)平台,经上海易正信息技术有限公司经过10年研发而成。 现该系统已广泛应用于政府、制造、零售、服务、地产等行业领域。 一、能自实施的BPM系统平台 借助内置的微软asp. net规格的表单设计器XForm Designer及其附带的丰富的表单控件元素,IT人员无需编程就可以快速实现表单的电子化迁移,并且制作出来的电子表单使用友好,功能丰富具有专业水准。 一体化完整的BPM解决方案,彻底的免编程设计,从拖拉式流程设计器、表单设计器、报表设计器均符合免编程设计原则,并且,所有产品包括组织结构管理,电子表单、流程设计、报表设计全部符合微软产品用户已有的使用习惯。 基于为广大IT人员熟悉的通用标准,流程描述语言使用微软C#标准,表单使用微软asp. net标准。 二、充分整合现有资源 FlowPortal. net开放的体系架构允许将企业现有IT系统中的组织架构、用户信息,整合到BPM系统使用,不管他们是位于AD、HR还是位于特有的IT系统内。 业务流转时,可以集合存储在不同系统中的数据建立复合业务实体,比如:存储在ERP中的客户、产品信息,存储在HR系统中的人事信息等等 自动化不同系统中业务数据的处理,比如:采购审批通过时,自动在ERP中生成PR单,人事入职流程中,自动在各个系统中建立用户信息。 借助可插拔的体系架构,通过第三方开发,实现对现有信息和系统的利用,比如利用企业特有业务系统存储在InfoSys数据库内的信息。 通过可嵌入的组件,将BPM集成到SharePoint、企业现有IT系统的框架内。 三、实现无限可能 流程定义时,赋予企业用户使用微软C#扩展流程功能的能力,比如用C#表达逻辑实现一个会签表决规则,又如:流程提交时使用HR系统中的数据验证申请合法性。 表单设计上,借助微软asp. net技术,扩展表单功能,由于表单设计器生成的是标准的asp. net表单,使得企业可以借助微软asp. net的强大功能实现复杂的需求。 可插拔的体系架构,允许企业将BPM体统和企业现有业务系统整合到一起,比如:利用企业现有的弹出式消息系统发送BPM通知消息。 四、有效保障流程管理工作持续、深入开展 可靠、稳定、高效的系统使得BPM系统深入人心 快速实施能力、良好的最终用户使用体验让IT部门轻松,使用者满意,会促使更多的流程需求被建议并实施优异的可扩展能力,为确保IT部门始终有能力满足最终用户的各种需求提供保障。 FlowPortal. net的客户都在持续深入得使用BPM系统,新的流程需求被持续提出并实施上线,不断拓展到新的工厂、事业部门、甚至拓展到集团内其它国家和地区的工厂、企业。 五、随时随地获得所需信息 企业可以使用内置的报表工具按需定制报表,实时查看企业关键业务数据。 FlowPortal. net的报表可以执行数据的钻取,渐入式分析,查询,图形化展示。 FlowPortal. net的报表可以跟据流程的权限定义,使得每个部门的领导只看到各自管辖部门内员工所发起业务的统计数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月满闲庭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值