注册虚拟属性¶
虚拟属性是指基于一个或多个参数计算出的新属性,参数包括模型属性、数据源提供的属性和常数。
虚拟属性可以灵活应用于现有属性无法满足需求的场景。例如:当需要查询各个区域分布式电站的装机容量时,可以为场站配置一个虚拟属性 分布式电站装机容量
,该虚拟属性的表达式含义为 当电站类型为分布式时,该虚拟属性等于装机容量,否则为0
。基于该虚拟属性,利用通用数据服务提供的场站向区域的聚合能力,可以查询区域的分布式电站装机容量。
只有先在通用数据服务上注册虚拟属性,才能通过通用数据服务 API 查询使用这些属性。应用构建者可以通过上传模板文件批量注册虚拟属性。
备注
虚拟属性不保存在模型、也不产生存储,只会在查询时由通用数据服务实时计算。因此虚拟属性只适用于轻量计算场景。
通用数据服务既支持查询虚拟属性,也支持查询已注册对象类型的全量模型属性数据。
前提条件¶
开始之前,确保当前帐号已被分配所需的资产权限、操作权限点和包含 虚拟属性 在内的菜单组。如未分配,联系应用管理员。
操作步骤¶
在左侧导航栏中选择 业务对象要素 > 虚拟属性。
根据目标属性的生效范围选择 公有属性 或 私有属性 标签页,点击 导入。有关公有/私有属性的区别,参见 公有/私有属性。
在弹窗中点击 下载模板,选择下载 Excel 或 JSON 模板文件。
参考以下信息填写模板文件。
字段名称
标识符
必填/选填
描述
属性标识符
attribute
必填
属性的标识符,需保证在同一作用域(公有/私有)内的同一对象类型下的唯一性。
属性中文/英文/日语/西班牙语名
zh_CN/en_US/ja_JP/es_ES
中文和英文为必填
不同语言的属性名称。
对象类型标识符
mdmType
必填
属性对应的对象类型的标识符。可前往 业务对象类型 查看对应对象类型的标识符。
对象类型名称
mdmTypeName
选填
属性对应的对象类型的名称。可前往 业务对象类型 查看对应对象类型的名称。
聚合方式
mdmAggMethods
选填
多对象查询时支持的属性聚合方式。目前支持的聚合方式:sum,avg,max,min。
属性表达式
expression
必填
属性表达式的格式根据生成属性的方式有所不同。参见 虚拟属性表达式案例。
关联模型属性
foreignKey
选填
若属性值需要基于维度表查询返回,填写用于查询维度表的模型属性的标识符。
是否支持国际化
extract18n
选填
若支持国际化,填写
Y
;若不支持国际化,填写N
。枚举量
enumerate
选填
若为枚举类型的属性,描述支持的枚举量。
单位
units
选填
属性数值的单位,参考 EnOS 内置单位 填写。
数据类型
dataType
必填
属性数值的数据类型。目前支持的数据类型:Int,Double,String。
是否可排序
sortable
选填
若查询属性时可以按升/降序返回结果,填写
Y
;若不可排序,填写N
。筛选器
filters
选填
查询属性时支持的筛选方式。目前支持的筛选方式:in,==,!=,>,>=,<,<= 。多个筛选方式之间用英文逗号分隔,例如:==,in。
关联应用
applicationDependency
选填
属性依赖部署的应用,多个应用之间用英文逗号分隔。
关联应用依赖版本
applicationVersionDependency
选填
属性依赖部署的应用版本,多个版本之间用英文逗号分隔。
备注
导入模板中的“所属组织标识符”、“所属组织名称”、“关联数据源”、“更新时间”、“操作人”和“是否与公有标识符重复”字段无需填写,将在上传后由系统自动填充。
在弹窗中点击 上传。选择填写后的模板文件并点击 确定。注册私有属性时,若文件中的属性标识符与已注册的公有属性标识符重复,传入重复的标识符查询属性数据时,系统将返回私有属性的数据。
虚拟属性表达式案例 ¶
生成虚拟属性有两种方式:
基于模型的原始属性配置公式。
关联一个维度表。
以上两种方式都需要配置表达式。配置虚拟属性表达式的典型案例见下表。
属性生成方式 |
表达式配置规则 |
虚拟属性示例 |
表达式示例 |
表达式含义 |
---|---|---|---|---|
基于原始属性配置公式 |
原始属性引用格式为:Attribute[‘原始属性标识符’] |
安全运行天数 |
#{(T(System).currentTimeMillis() - new java.text.SimpleDateFormat(‘yyyy-MM-dd’).parse(Attribute[‘safeOpStartDay’]).getTime()) / (24 * 60 * 60 * 1000)} |
系统当前时间-安全运行起始时间,转换为天数 |
关联维度表 |
表达式格式为:#{Dimension[‘数据源APIKey@@维度表标识符@@属性原始字段’]} |
省份/州 |
#{Dimension[‘SolarAPI@@siteAttributes@@province_name_i18n’]} |
引用 Solar API 提供的 siteAttributes 维度表中的 province_name_i18n 字段作为 省份/州 属性 |
结果¶
注册成功后,虚拟属性出现在属性列表中。应用构建者可以查看属性详情,并进行以下操作:
修改虚拟属性:点击 导出,按需修改下载的文件后再导入新文件。标识符相同的属性会覆盖原有属性,不同则新增属性。
删除虚拟属性:点击对应属性行的 删除 。虚拟属性删除后不可恢复。
备注
若属性对应的业务对象类型已被删除,需联系系统管理员删除该属性。