综合查询引擎
-
Upload
stephen-potts -
Category
Documents
-
view
41 -
download
8
description
Transcript of 综合查询引擎
![Page 1: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/1.jpg)
综合查询引擎
查找特定要求的对象
![Page 2: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/2.jpg)
综合查询引擎
![Page 3: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/3.jpg)
综合查询引擎的功能
• 提供三种查询方式–简单查询• 用于进行单一类型的查询
– JPQL查询• 用于较为简单的跨类关联查询
–存储过程查询• 用于进行十分复杂的数据密集类型查询
• 可保存查询条件• 可与快捷操作绑定
![Page 4: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/4.jpg)
如何进行综合查询
选择查询类型
![Page 5: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/5.jpg)
如何定义普通查询1、选择查询结果数据类型
2、选择用于过滤的属性
4、指定过滤属性的取值
3、指定排序依据
5、选择查询结果数据类型
![Page 6: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/6.jpg)
简单过滤条件设置
条件之间的逻辑连接
选择不同类型的属性
选择条件与取值的过滤方式
选择条件输入的类型
条件保存后可否支持输入
![Page 7: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/7.jpg)
过滤条件树的设置将后续条件合并在一起
将已经合并的条件拆分
名称 =‘ABC’ and (批注 =‘123’ and (密码 =‘123’ or 显示名 = ‘张三’ ))
名称 =‘ABC’ and
and
批注 =‘123’ or
密码 =‘123’ 显示名 = ‘张三’
![Page 8: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/8.jpg)
举例:查询名为 Admin的用户
![Page 9: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/9.jpg)
建立 JPQL查询
指定结果的输出类型
最后结果必须命名为 t0
类名和数据建模的类名一致
在查询中可以通过[:参数名 ] 的形式引用参
数
![Page 10: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/10.jpg)
举例:查询用户所属用户组
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: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/11.jpg)
保存查询条件
• 平台的两类查询–公共查询:• 所有人均可以看见
–个人查询:• 专属个人的查询
公共查询
我的查询
![Page 12: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/12.jpg)
保存查询条件
保存查询
指定类型,给出名称,点击保存
无需配置双击即可查询
![Page 13: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/13.jpg)
载入已保存的查询点击载入
选择需要载入的查询
![Page 14: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/14.jpg)
查询条件的输入
可修改参数双击时将提示输入
点击查询查看结果
![Page 15: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/15.jpg)
举例:任意指定用户找到所有用户组
![Page 16: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/16.jpg)
综合查询与快捷操作集成
选择动作为 Query
选择已保存的查询对象
![Page 17: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/17.jpg)
综合查询与快捷操作集成
选择已保存的查询对象
![Page 18: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/18.jpg)
指定查询条件的参数
名称 =‘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: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/19.jpg)
举例:当前用户对应用户组
• 查询实现:–从当前用户找用户组 (jpql查询 )
• 条件取值– c0:$user.name
![Page 20: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/20.jpg)
业务过程建模与过程引擎
建立需求处理流程
![Page 21: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/21.jpg)
业务过程建模
![Page 22: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/22.jpg)
业务过程引擎的作用
工作流引擎
工作流实例
工作流模板
活动 活动 活动 活动工作流模板
活动 活动 活动 活动
发起人
工作流实例
活动执行人
工作流日志任务
工作列表
第一阶段,指定人员范围
![Page 23: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/23.jpg)
业务过程管理的过程
• 设计时–建立业务过程模版–发布业务过程模版
• 运行时–发起业务过程–接受任务并提交–完成业务过程
![Page 24: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/24.jpg)
如何建立业务过程模版
模板属性
模版节点 对象容器
基本编辑
![Page 25: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/25.jpg)
举例:创建需求处理流程模版
![Page 26: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/26.jpg)
业务过程模型的基本元素节点图 节点名 说明
开始节点 标记流程的开始
结束节点 标记流程的结束
任务节点该节点上可以定义多个任务,当流程进行到该节点时,节点上定义的任务激活
自动节点该节点上可以绑定存储过程或 java实现,当流程进行到该节点时,绑定的存储过程或 java实现激活
判断节点该节点后可以接多条分支,当流程经过该节点后,其中一条分支将被激活执行(根据判断节点对应的控制变量取值确定执行分支)
并发节点该节点后可以接多条分支,当流程经过该节点后,其中一条或多条分支将被激活执行(根据并发节点对应的控制变量取值确定执行分支)
合并节点与并发节点配对使用,用于合并由并发节点引起的多条并行执行分支
判断快捷节点相当于一个任务节点后紧接一个判断节点,但任务节点上只能定义一个任务,该任务上可以设置判断节点对应的控制变量取值
并发快捷节点相当于一个任务节点后紧接一个并发节点,但任务节点上只能定义一个任务,该任务上可以设置并发节点对应的控制变量取值
![Page 27: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/27.jpg)
业务过程模型的基本元素
• 节点间连线和标记–节点和节点之间通过连线连接–连线上的标记标明出口的路由
• 任务和任务分配–任务节点上需通过增加任务并进行人员分配
![Page 28: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/28.jpg)
举例:增加业务过程处理逻辑
![Page 29: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/29.jpg)
业务过程模型的基本元素
• 业务过程中处理的数据–业务对象组• 一种实体类业务对象在流程中的全局容器
– 可指定类型也可不指定类型–业务对象组分类• 普通业务对象组:锁定业务对象• 参考业务对象组:不锁定业务对象
–业务对象组的访问• 在任务上指定可访问业务对象组
![Page 30: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/30.jpg)
用业务对象组管理数据
开发需求对象组
创建需求对象 浏览需求对象
开发任务对象组
创建任务对象 浏览任务对象
![Page 31: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/31.jpg)
举例:需求和开发对象组
• 开发需求对象组–提交、审核–开发、确认
• 开发说明对象组–开发、确认
• 发布业务过程
![Page 32: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/32.jpg)
业务过程的执行
• 业务过程实例–流程模版激活后即成为业务过程实例
• 任务列表–可选任务:可选择接受的任务–个人任务:必须完成的任务
• 任务表单–综合显示任务信息的表单,通过任务表单访问业务对象,控制路由关系
![Page 33: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/33.jpg)
举例:执行需求处理流程
• 发起需求处理流程• 执行任务• 查看表单• 提交任务
![Page 34: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/34.jpg)
报表输出
输出需求处理情况
![Page 35: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/35.jpg)
报表引擎
报表实现的基本原理
业务对象 报表引擎实际报表
![Page 36: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/36.jpg)
报表引擎的使用方法
• 编制报表模版• 注册报表模版• 输出报表
![Page 37: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/37.jpg)
新建打印模版
如何注册报表模版
选择一个类型 上传一个文件
![Page 38: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/38.jpg)
如何输出报表选择对象,点击报表输出
选中输出模版
下载报表文件
![Page 39: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/39.jpg)
报表模版例子
属性输出
关联输出
脚本执行
关联输出
![Page 40: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/40.jpg)
标记说明
• 属性输出– 占位符: .[属性英文名 ]
• 打印输入对象的某个属性值,如: .id
• 关联输出– 占位符: loop:[关联类名 ],[r|l],[内容别称 ]
• 打印输入对象某个关联(正向 /反向)的信息– 其中 r表示右对象, l表示做左对象,别名在循环内使用
• 执行脚本– 占位符: :
• :echo('唐安煤矿的 '+_obj.get('name'))
![Page 41: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/41.jpg)
如何注册报表模版
模板打开模版设置
新建打印模版
![Page 42: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/42.jpg)
模版编辑辅助工具
选择需要输出属性
![Page 43: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/43.jpg)
举例:编制项目报表
• 项目输出内容–项目代号–项目名称–客户名称–负责人
• 关联输出内容–需求标题–提出时间–状态
![Page 44: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/44.jpg)
基于规则的授权
![Page 45: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/45.jpg)
基于规则的授权
![Page 46: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/46.jpg)
授权规则
授权规则组成部分
条件 类型 参与者 授权项(组) 优先级
由条件表达式组成,用于实现基于对象状态的的授权
指定授权规则起作用的数据类型,从而确定继承关系
指定授权规则限制的参与者,可以是人员、用户组,角色
用于明确规则限制的行为类型,授权项可自定义
用于明确冲突规则的处理方式,用于强制授权
![Page 47: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/47.jpg)
?
授权的验证过程
规则库
规则引擎
条件子系统
平台应用程序
?
规则引擎处理过程1. 根据授权项过滤规则2. 根据参与者过滤规则3. 根据类型过滤规则4. 根据优先级调整规则5. 进行条件判断返回授权结果
![Page 48: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/48.jpg)
关于授权项和授权项组
• 授权项和授权项组–授权项代表某种特定的行为• 如:更新对象、编辑对象、创建对象
–授权项组代表一批授权项的集合–授权项可手工创建,用于后续扩展–每创建一个操作时会产生操作对应的授权项
![Page 49: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/49.jpg)
举例:创建模块授权项
为需求管理模块创建授权项
![Page 50: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/50.jpg)
系统提供的默认授权项组
• CreateObjects–各种创建对象相关的授权项
• EditObjects–各种编辑对象的相关授权项
• RelationEdit–各种在关联视图上编辑的授权项
![Page 51: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/51.jpg)
举例:建立对所有人员的需求管理模块授权
![Page 52: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/52.jpg)
规划需求管理系统的授权
• 所有人员–可以看到授权模块–可以创建需求报告–可以查看项目和需求报告
• 项目负责人–可以创建项目、编辑项目、删除项目–可以编辑删除需求报告
![Page 53: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/53.jpg)
举例:进行需求管理的定制
序号 类 授权项(组) 所有人员 项目负责人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: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/54.jpg)
关于快捷查询授权
查询快捷方式QueryOprConfig查询快捷方式
QueryOprConfig快速查询配置QueryOprConfig
LoadQueryOperation
每一个快捷操作对应一个自定义授权项
![Page 55: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/55.jpg)
关于快捷操作的授权
在创建快捷操作时必须指定授权项名称
![Page 56: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/56.jpg)
举例:建立操作授权项
序号 类 授权项(组) 所有人员 项目负责人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: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/57.jpg)
关于条件
• 条件的组成:名字和表达式• 条件表达式的语法– 带常量的条件解析
• 条件表达式支持常量的逻辑运算、比较运算、算术运算。– 如条件表达式为: 1 And 1; Not 2>1;
• 支持的常量类型:– 字符串、整数、浮点数、日期、 TRUE、 FALSE.
• 支持的逻辑运算符:– AND、 OR、 NOT.
• 支持的算数运算符:– +、 -、 ×、 /、 %.
• 支持的比较运算符:– ==、 !=、 >、 <、 >=、 <= .
![Page 58: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/58.jpg)
关于条件语法
• 引用变量– $obj:即将被操作的对象
• $obj.name == ‘管理员’• $obj.oid == ‘AAAAAAAAAAA’
– $env:环境变量• $env.currentUser
• 条件嵌套– 在条件表达式中可以调用其他条件
• 特殊函数– 在条件中可以调用其他内置函数
• Like($obj.name, ‘管 ?员’ )
![Page 59: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/59.jpg)
举例:仅创建人可编辑需求
• 条件:– IsMyReq• $obj.creator==$env.userOid
• 规则–类名: ReqRep–参与者:所有人员–条件: IsMyReq–授权项: EditObj
![Page 60: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/60.jpg)
基于规则授权的实施方法
![Page 61: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/61.jpg)
主要问题
• 如何综合利用平台提供的机制有效地产生授权规则?–有可操作的步骤–工作量尽可能少–授权情况容易理解–授权规则易于维护
![Page 62: 综合查询引擎](https://reader031.fdocument.pub/reader031/viewer/2022013115/5681309b550346895d967d17/html5/thumbnails/62.jpg)
第一步识别关键角色
第二步模块授权与功能
授权
第三步系统操作授权
第四步扩展操作授权
关键角色表
模块授权表
绑定功能操作授权表
系统操作授权表
扩展绑定操作授权表
组织模型的用户组
按角色划分的功能授权项组和授权规则
系统操作授权规则
系统操作反授权规则
扩展操作授权规则
组织模型定制授权项组定制条件定制规则定制
进行授权规则正确性验证
平台授权模型定制过程
扩展快捷查询操作授权表
快捷功能操作授权表