综合查询引擎

62
综综综综综综 综综综综综综综综综

description

综合查询引擎. 查找特定要求的对象. 综合查询引擎. 综合查询引擎的功能. 提供三种查询方式 简单查询 用于进行单一类型的查询 JPQL 查询 用于较为简单的跨类关联查询 存储过程查询 用于进行十分复杂的数据密集类型查询 可保存查询条件 可与快捷操作绑定. 如何进行综合查询. 选择查询类型. 如何定义普通查询. 1 、选择查询结果数据类型. 5 、选择查询结果数据类型. 4 、指定过滤属性的取值. 2 、选择用于过滤的属性. 3 、指定排序依据. 简单过滤条件设置. 条件之间的逻辑连接. 选择条件输入的类型. 选择条件与取值的过滤方式. - PowerPoint PPT Presentation

Transcript of 综合查询引擎

Page 1: 综合查询引擎

综合查询引擎

查找特定要求的对象

Page 2: 综合查询引擎

综合查询引擎

Page 3: 综合查询引擎

综合查询引擎的功能

• 提供三种查询方式–简单查询• 用于进行单一类型的查询

– JPQL查询• 用于较为简单的跨类关联查询

–存储过程查询• 用于进行十分复杂的数据密集类型查询

• 可保存查询条件• 可与快捷操作绑定

Page 4: 综合查询引擎

如何进行综合查询

选择查询类型

Page 5: 综合查询引擎

如何定义普通查询1、选择查询结果数据类型

2、选择用于过滤的属性

4、指定过滤属性的取值

3、指定排序依据

5、选择查询结果数据类型

Page 6: 综合查询引擎

简单过滤条件设置

条件之间的逻辑连接

选择不同类型的属性

选择条件与取值的过滤方式

选择条件输入的类型

条件保存后可否支持输入

Page 7: 综合查询引擎

过滤条件树的设置将后续条件合并在一起

将已经合并的条件拆分

名称 =‘ABC’ and (批注 =‘123’ and (密码 =‘123’ or 显示名 = ‘张三’ ))

名称 =‘ABC’ and

and

批注 =‘123’ or

密码 =‘123’ 显示名 = ‘张三’

Page 8: 综合查询引擎

举例:查询名为 Admin的用户

Page 9: 综合查询引擎

建立 JPQL查询

指定结果的输出类型

最后结果必须命名为 t0

类名和数据建模的类名一致

在查询中可以通过[:参数名 ] 的形式引用参

Page 10: 综合查询引擎

举例:查询用户所属用户组

User u User2Group r Group t0u.oid = r.leftOid r.rightOid = t0.oid

select t0 from Group t0, User2Group r, User u where t0.oid = r.rightOid and u.oid = r.leftOid and u.name=:name

Page 11: 综合查询引擎

保存查询条件

• 平台的两类查询–公共查询:• 所有人均可以看见

–个人查询:• 专属个人的查询

公共查询

我的查询

Page 12: 综合查询引擎

保存查询条件

保存查询

指定类型,给出名称,点击保存

无需配置双击即可查询

Page 13: 综合查询引擎

载入已保存的查询点击载入

选择需要载入的查询

Page 14: 综合查询引擎

查询条件的输入

可修改参数双击时将提示输入

点击查询查看结果

Page 15: 综合查询引擎

举例:任意指定用户找到所有用户组

Page 16: 综合查询引擎

综合查询与快捷操作集成

选择动作为 Query

选择已保存的查询对象

Page 17: 综合查询引擎

综合查询与快捷操作集成

选择已保存的查询对象

Page 18: 综合查询引擎

指定查询条件的参数

名称 =‘ABC’ and (批注 =‘123’ and (密码 =‘123’ or 显示名 = ‘张三’ ))

名称 =‘ABC’ and

and

批注 =‘123’ or

密码 =‘123’ 显示名 = ‘张三’

c1_0

c0 c1

c1_1

c1_1_0

c1_1_1

层次用’ _’分割

顺序用数字分割以 0开始

第 1层第一个

c0:管理员

参数取值用’:’分开条件之间用’ ;’分

Page 19: 综合查询引擎

举例:当前用户对应用户组

• 查询实现:–从当前用户找用户组 (jpql查询 )

• 条件取值– c0:$user.name

Page 20: 综合查询引擎

业务过程建模与过程引擎

建立需求处理流程

Page 21: 综合查询引擎

业务过程建模

Page 22: 综合查询引擎

业务过程引擎的作用

工作流引擎

工作流实例

工作流模板

活动 活动 活动 活动工作流模板

活动 活动 活动 活动

发起人

工作流实例

活动执行人

工作流日志任务

工作列表

第一阶段,指定人员范围

Page 23: 综合查询引擎

业务过程管理的过程

• 设计时–建立业务过程模版–发布业务过程模版

• 运行时–发起业务过程–接受任务并提交–完成业务过程

Page 24: 综合查询引擎

如何建立业务过程模版

模板属性

模版节点 对象容器

基本编辑

Page 25: 综合查询引擎

举例:创建需求处理流程模版

Page 26: 综合查询引擎

业务过程模型的基本元素节点图 节点名 说明

开始节点 标记流程的开始

结束节点 标记流程的结束

任务节点该节点上可以定义多个任务,当流程进行到该节点时,节点上定义的任务激活

自动节点该节点上可以绑定存储过程或 java实现,当流程进行到该节点时,绑定的存储过程或 java实现激活

判断节点该节点后可以接多条分支,当流程经过该节点后,其中一条分支将被激活执行(根据判断节点对应的控制变量取值确定执行分支)

并发节点该节点后可以接多条分支,当流程经过该节点后,其中一条或多条分支将被激活执行(根据并发节点对应的控制变量取值确定执行分支)

合并节点与并发节点配对使用,用于合并由并发节点引起的多条并行执行分支

判断快捷节点相当于一个任务节点后紧接一个判断节点,但任务节点上只能定义一个任务,该任务上可以设置判断节点对应的控制变量取值

并发快捷节点相当于一个任务节点后紧接一个并发节点,但任务节点上只能定义一个任务,该任务上可以设置并发节点对应的控制变量取值

Page 27: 综合查询引擎

业务过程模型的基本元素

• 节点间连线和标记–节点和节点之间通过连线连接–连线上的标记标明出口的路由

• 任务和任务分配–任务节点上需通过增加任务并进行人员分配

Page 28: 综合查询引擎

举例:增加业务过程处理逻辑

Page 29: 综合查询引擎

业务过程模型的基本元素

• 业务过程中处理的数据–业务对象组• 一种实体类业务对象在流程中的全局容器

– 可指定类型也可不指定类型–业务对象组分类• 普通业务对象组:锁定业务对象• 参考业务对象组:不锁定业务对象

–业务对象组的访问• 在任务上指定可访问业务对象组

Page 30: 综合查询引擎

用业务对象组管理数据

开发需求对象组

创建需求对象 浏览需求对象

开发任务对象组

创建任务对象 浏览任务对象

Page 31: 综合查询引擎

举例:需求和开发对象组

• 开发需求对象组–提交、审核–开发、确认

• 开发说明对象组–开发、确认

• 发布业务过程

Page 32: 综合查询引擎

业务过程的执行

• 业务过程实例–流程模版激活后即成为业务过程实例

• 任务列表–可选任务:可选择接受的任务–个人任务:必须完成的任务

• 任务表单–综合显示任务信息的表单,通过任务表单访问业务对象,控制路由关系

Page 33: 综合查询引擎

举例:执行需求处理流程

• 发起需求处理流程• 执行任务• 查看表单• 提交任务

Page 34: 综合查询引擎

报表输出

输出需求处理情况

Page 35: 综合查询引擎

报表引擎

报表实现的基本原理

业务对象 报表引擎实际报表

Page 36: 综合查询引擎

报表引擎的使用方法

• 编制报表模版• 注册报表模版• 输出报表

Page 37: 综合查询引擎

新建打印模版

如何注册报表模版

选择一个类型 上传一个文件

Page 38: 综合查询引擎

如何输出报表选择对象,点击报表输出

选中输出模版

下载报表文件

Page 39: 综合查询引擎

报表模版例子

属性输出

关联输出

脚本执行

关联输出

Page 40: 综合查询引擎

标记说明

• 属性输出– 占位符: .[属性英文名 ]

• 打印输入对象的某个属性值,如: .id

• 关联输出– 占位符: loop:[关联类名 ],[r|l],[内容别称 ]

• 打印输入对象某个关联(正向 /反向)的信息– 其中 r表示右对象, l表示做左对象,别名在循环内使用

• 执行脚本– 占位符: :

• :echo('唐安煤矿的 '+_obj.get('name'))

Page 41: 综合查询引擎

如何注册报表模版

模板打开模版设置

新建打印模版

Page 42: 综合查询引擎

模版编辑辅助工具

选择需要输出属性

Page 43: 综合查询引擎

举例:编制项目报表

• 项目输出内容–项目代号–项目名称–客户名称–负责人

• 关联输出内容–需求标题–提出时间–状态

Page 44: 综合查询引擎

基于规则的授权

Page 45: 综合查询引擎

基于规则的授权

Page 46: 综合查询引擎

授权规则

授权规则组成部分

条件 类型 参与者 授权项(组) 优先级

由条件表达式组成,用于实现基于对象状态的的授权

指定授权规则起作用的数据类型,从而确定继承关系

指定授权规则限制的参与者,可以是人员、用户组,角色

用于明确规则限制的行为类型,授权项可自定义

用于明确冲突规则的处理方式,用于强制授权

Page 47: 综合查询引擎

授权的验证过程

规则库

规则引擎

条件子系统

平台应用程序

规则引擎处理过程1. 根据授权项过滤规则2. 根据参与者过滤规则3. 根据类型过滤规则4. 根据优先级调整规则5. 进行条件判断返回授权结果

Page 48: 综合查询引擎

关于授权项和授权项组

• 授权项和授权项组–授权项代表某种特定的行为• 如:更新对象、编辑对象、创建对象

–授权项组代表一批授权项的集合–授权项可手工创建,用于后续扩展–每创建一个操作时会产生操作对应的授权项

Page 49: 综合查询引擎

举例:创建模块授权项

为需求管理模块创建授权项

Page 50: 综合查询引擎

系统提供的默认授权项组

• CreateObjects–各种创建对象相关的授权项

• EditObjects–各种编辑对象的相关授权项

• RelationEdit–各种在关联视图上编辑的授权项

Page 51: 综合查询引擎

举例:建立对所有人员的需求管理模块授权

Page 52: 综合查询引擎

规划需求管理系统的授权

• 所有人员–可以看到授权模块–可以创建需求报告–可以查看项目和需求报告

• 项目负责人–可以创建项目、编辑项目、删除项目–可以编辑删除需求报告

Page 53: 综合查询引擎

举例:进行需求管理的定制

序号 类 授权项(组) 所有人员 项目负责人1 CustProj CreateObj √

2 CustProj DeleteObj √

3 CustProj EditObj √

6 CustProj BrowseObj √

4 ReqRep DeleteObj √

5 ReqRep EditObj √

6 ReqRep CreateObj √

7 ReqRep BrowseObj √

9 RqpMgn RepMgn √

Page 54: 综合查询引擎

关于快捷查询授权

查询快捷方式QueryOprConfig查询快捷方式

QueryOprConfig快速查询配置QueryOprConfig

LoadQueryOperation

每一个快捷操作对应一个自定义授权项

Page 55: 综合查询引擎

关于快捷操作的授权

在创建快捷操作时必须指定授权项名称

Page 56: 综合查询引擎

举例:建立操作授权项

序号 类 授权项(组) 所有人员 项目负责人1 QueryOprConfig LoadQueryOperation √

2 ReqMgn LoadQueryOperation √

3 QueryOprConfig AuthCreateProj √

4 QueryOprConfig AuthListProj √

5 QueryOprConfig AuthCreateReq √

6 QueryOprConfig AuthListProj √

7 QueryOprConfig AuthMyProj √

8 QueryOprConfig AuthMyReq √

这条规则必须存在 这条规则仅控制绑定类的范围

Page 57: 综合查询引擎

关于条件

• 条件的组成:名字和表达式• 条件表达式的语法– 带常量的条件解析

• 条件表达式支持常量的逻辑运算、比较运算、算术运算。– 如条件表达式为: 1 And 1; Not 2>1;

• 支持的常量类型:– 字符串、整数、浮点数、日期、 TRUE、 FALSE.

• 支持的逻辑运算符:– AND、 OR、 NOT.

• 支持的算数运算符:– +、 -、 ×、 /、 %.

• 支持的比较运算符:– ==、 !=、 >、 <、 >=、 <= .

Page 58: 综合查询引擎

关于条件语法

• 引用变量– $obj:即将被操作的对象

• $obj.name == ‘管理员’• $obj.oid == ‘AAAAAAAAAAA’

– $env:环境变量• $env.currentUser

• 条件嵌套– 在条件表达式中可以调用其他条件

• 特殊函数– 在条件中可以调用其他内置函数

• Like($obj.name, ‘管 ?员’ )

Page 59: 综合查询引擎

举例:仅创建人可编辑需求

• 条件:– IsMyReq• $obj.creator==$env.userOid

• 规则–类名: ReqRep–参与者:所有人员–条件: IsMyReq–授权项: EditObj

Page 60: 综合查询引擎

基于规则授权的实施方法

Page 61: 综合查询引擎

主要问题

• 如何综合利用平台提供的机制有效地产生授权规则?–有可操作的步骤–工作量尽可能少–授权情况容易理解–授权规则易于维护

Page 62: 综合查询引擎

第一步识别关键角色

第二步模块授权与功能

授权

第三步系统操作授权

第四步扩展操作授权

关键角色表

模块授权表

绑定功能操作授权表

系统操作授权表

扩展绑定操作授权表

组织模型的用户组

按角色划分的功能授权项组和授权规则

系统操作授权规则

系统操作反授权规则

扩展操作授权规则

组织模型定制授权项组定制条件定制规则定制

进行授权规则正确性验证

平台授权模型定制过程

扩展快捷查询操作授权表

快捷功能操作授权表