创建视图模型
视图模型是一种虚拟化的数据模型,用于简化跨多个实体的复杂关联查询(如多表级联查询)。在视图模型中,您可以通过直观的图形化界面,将多个具有关联关系的实体(如参考关系、一对多或多对多关系)整合到一个视图中,并自由选择所需的属性字段,最终生成一个虚拟的数据表(类似于数据库中的“视图”)。
完成视图模型设计和发布后,xDM-F会自动生成对应的查询API。调用API时,您可以直接使用视图模型中的字段作为查询条件获取所需数据,无需手动编写复杂SQL或处理多表关联,大幅提升查询与开发效率。
约束与限制
- 单个逻辑租户下最多可以创建200个视图模型。
- 单个视图模型的属性数量不能超过100个。
- 单个视图模型最多支持与10个实体建立关联。
- 单个视图模型关联的层级最多为5层。
- 为了保证视图字段的有效性和实用性,并提高数据查询和处理的效率,xDM-F对视图字段设置了如下规则和限制:
- 当勾选“参考对象”类型属性时,视图字段会自动添加该参考对象的ID(id)、类名(clazz)和类型(className)。
- 当勾选“浮点型(自定义精度)”类型属性时,视图字段会自动添加数值(value)和精度字段(precision)。
- 如果勾选了“JSON”或“文件”类型属性,后续通过API方式进行查询时,只能返回其属性值,不能将其作为查询条件或排序字段使用。
- 不支持勾选“入库”为“否”的属性。
- 最多支持对5个视图字段开启排序功能。
- 单个节点的筛选条件分组最多支持3层嵌套,且子筛选分组不能为空。同一层级下,分组与筛选规则的组合总数不超过5个(如5个分组、5条规则或4个分组1条规则等)。
- 自定义指定筛选规则时,不支持使用“文件”类型的基础属性构建筛选条件。
前提条件
已登录应用运行态。
步骤1:填写基本信息
- 在左侧导航栏中,选择“视图模型”页面。 ,进入
- 单击“创建”,展开创建视图模型页面。
- 在“基本信息”页签下,填写如下信息。
表1 基本信息配置说明 参数
参数说明
英文名称
用户自定义,表示当前创建的视图模型的英文名称。
需以大写字母开头,只能包含字母、数字和下划线(_),长度不能超过128个字符。
中文名称
用户自定义,表示当前创建的视图模型的中文名称。
只能包含中文、英文字母、数字、下划线(_)和中横线(-),长度不能超过128个字符。
英文描述
用户自定义,用于说明当前创建的视图模型的作用、使用场景等,以便于其他用户了解和使用该视图模型。
长度不能超过1024个字符。推荐使用英文字符填写,同时支持中文及其他字符输入。
中文描述
用户自定义,用于说明当前创建的视图模型的作用、使用场景等,以便于其他用户了解和使用该视图模型。
长度不能超过1024个字符。支持中文、英文及其他字符输入,建议优先使用中文填写以适配中文阅读场景。
- 单击“保存”。
步骤2:设置视图配置
- 切换至“视图配置”页签,单击“搜索实体”下拉框,选择需要作为视图模型的实体。
支持基于选定的数据模型(数据实体/关系实体)为起点,逐层关联相应的参考对象或关系实体,形成跨实体级联路径,支撑复杂业务场景下的数据聚合查询。
图1 选择搜索实体 - 根据实际业务需求,设置如下信息。
- 设置关联关系:
- 将鼠标悬停至图谱节点上方,右键单击“添加参考关系”/“添加关系实体”。
图2 设置关联关系
- 在弹出的窗口中,勾选需要添加的参考关系/关系实体,单击“确定”。
- 添加参考关系:支持通过勾选实体上参考对象类型属性,系统自动添加此属性关联的实体。如果当前实体为关系实体,您也可以通过添加参考关系的方式按需选择加入源端或目标端的参考对象。
- 添加关系实体:仅支持添加以所选实体作为源端对象的关系实体。
- 将鼠标悬停至图谱节点上方,右键单击“添加参考关系”/“添加关系实体”。
- 设置视图字段:
- 在左侧图谱中选中需要设置视图字段的节点,并在右侧的“属性”页签下,勾选需要展示的基础属性和扩展属性。
图3 设置节点属性
- 在下方的“定义分页规则”栏,设置“是否支持分页”。
- 是:开启分页查询。仅开启此选项后,视图模型生成的API接口才支持分页查询功能。当预期查询结果超过20000条时,建议开启分页查询,避免响应超时或性能下降。
- 否:关闭分页查询。关闭后,API接口将返回全部查询结果,但单次最多返回20000条数据。不分页查询适用于数据量较小的场景,对于大数据量场景,推荐开启分页,以保障系统稳定性与用户体验。
- 在下方的“定义视图字段”栏,可根据实际业务需求,自定义如下字段信息。
图4 设置视图字段
- 字段名:自定义具有业务可读性的字段名,仅支持输入英文、数字和下划线(_),不允许输入中文。例如,将“p_deviceCode”字段名修改为“deviceCode”。
- 是否排序:根据实际业务需要选择是否启用排序。
- 是:启用排序。选择后,可指定该字段参与默认排序,查询接口将按照配置的排序字段及规则进行默认排序。如调用接口时传入自定义排序参数,则以实际传入值为准。最多支持5个字段联合排序。
- 否:不启用排序。
- 排序算法:选择字段的排序方式,支持ASC(升序)和DESC(降序)。该配置仅在“是否排序”设置为“是”时生效,且为必填项。
中文字段排序时,默认使用UTF-8字符集排序。如需使用其他字符集,可在调用接口时通过参数进行指定。
- 在左侧图谱中选中需要设置视图字段的节点,并在右侧的“属性”页签下,勾选需要展示的基础属性和扩展属性。
- 设置筛选条件:为了提升视图数据的查询效率,减少用户重复定义筛选条件的工作量,您可以通过“指定筛选条件”功能提前设置过滤规则,系统将自动过滤掉不必要的实例数据,从而帮助您更高效地获取所需信息。
在左侧图谱中选中需要设置视图字段的节点,并在右侧的“指定筛选条件”页签下,自定义所需的筛选条件。
:表示在当前分组内新增一条筛选规则,每个分组最多支持添加5条。每条筛选规则由如下元素组成。
- 属性类别:从选中节点支持的类别中选择,用于对属性进行分类管理。例如,“订单”节点可选择“基础属性”、“扩展属性”、“分类属性”。
- 所属分类:当“属性类型”选择为“分类属性”时,需进一步指定其所属的分类。例如,“订单”节点下可选择“订单详情”分类扩展属性。
- 属性:根据所选“属性类别”,从选中节点的对应属性中选择,用于定义筛选的数据维度。例如“订单”节点可选择“订单金额”、“配送状态”。
- 运算符:在选择指定属性后,系统将根据该属性的类型自动展示可用运算符。例如“浮点型”类型属性显示大于、小于、等于等运算符,“文本”类型属性显示等于、不等于等运算符。
不同类型属性支持运算符不同,具体规则如下:
表2 搜索实体属性支持的运算符 属性类型
支持的运算符
文本
等于、不等于、包含、在列表、不在列表、是空、不是空
长文本
是空、不是空
整型
等于、不等于、小于、小于等于、大于、大于等于、在列表、不在列表、是空、不是空
长整型
等于、不等于、小于、小于等于、大于、大于等于、在列表、不在列表、是空、不是空
浮点型
等于、不等于、小于、小于等于、大于、大于等于、在列表、不在列表、是空、不是空
浮点型(自定义精度)
等于、不等于、小于、小于等于、大于、大于等于、在列表、不在列表、是空、不是空
文件
不支持
布尔值
等于、不等于、在列表、不在列表、是空、不是空
日期
等于、不等于、小于、小于等于、大于、大于等于、在列表、不在列表、是空、不是空
枚举
等于、不等于、在列表、不在列表、是空、不是空
URL
等于、不等于、包含、在列表、不在列表、是空、不是空
JSON
是空、不是空
参考对象
等于、不等于、在列表、不在列表、是空、不是空
人员
等于、不等于、包含、在列表、不在列表、是空、不是空
分类
是空、不是空
- 筛选值:输入具体的筛选内容,例如“100”、“红色”、“2023-12-31”。
:新增筛选分组,用于创建多层级逻辑筛选结构,以满足复杂工业数据的分层筛选需求。最多支持3层筛选分组嵌套,且单一层级下最多可添加5个子筛选分组(包含规则组合),适配多维度条件并行筛选场景(如设备类型、运行状态、时间区间等组合筛选)。
:删除当前选中的筛选规则,避免冗余规则影响数据过滤精度。
:用于设置当前分组内各筛选规则之间的逻辑关系(“与”/“或”)。当分组内仅包含单条筛选规则时,该选项将自动置灰不可编辑,系统默认采用该单一筛选规则逻辑。
- 与:即AND,表示该分组内所有筛选规则必须同时满足,适用于多属性联合精确查询、复合业务规则校验的场景。例如“库存数量”小于安全阈值,且“最近补货时间”大于30天。
- 或:即OR,表示该分组内满足任一筛选规则即可,适用于多值范围检索、异常状态监控等场景。例如“物流状态”等于“已揽收”或“运输中”,“设备状态”等于“故障”或“维护标识”等于“TRUE”。
:删除当前筛选分组及其所有子级内容(包含子筛选分组与筛选规则),适用于快速清空某一维度的全部筛选条件,提升操作效率。
- 设置关联关系:
- 单击“保存”,完成视图配置。