文章目录
- 第三十九章 开发Productions - ObjectScript Productions - Defining Business Metrics - 以编程方式设置和获取值
- 以编程方式设置和获取值
- 使用 `GetMetric()` 方法
- 使用 `SetMetric()` 方法
- 关于业务指标缓存
第三十九章 开发Productions - ObjectScript Productions - Defining Business Metrics - 以编程方式设置和获取值
以编程方式设置和获取值
在某些情况下,可能需要以编程方式访问指标属性。例如,可能希望业务流程直接读取或设置度量属性。为此,请在新选项卡中使用 Ens.BusinessMetricOpens
的 GetMetric()
和 SetMetric()
类方法。
使用 GetMetric()
方法
GetMetric()
类方法从业务指标缓存中读取指定指标属性的当前值。按如下方式调用此方法:
Set value = ##class(Ens.BusinessMetric).GetMetric(metric,property)
其中 metric
是业务指标的名称(配置名称,而不是类名),property
是指标属性的名称。如果 GetMetric()
无法读取指定值,它会返回一个空字符串。
要从多维指标属性中读取值,有第三个可选参数,用于指定要读取属性的哪个子节点。例如:
Set value(1) = ##class(Ens.BusinessMetric).GetMetric(metric,property,1)
使用 SetMetric()
方法
SetMetric()
类方法设置业务指标缓存中指定指标属性的值。按如下方式调用此方法:
Set tSC = ##class(Ens.BusinessMetric).SetMetric(metric,property,value)
其中 metric
是业务指标的名称(配置名称,不是类名),property
是指标属性的名称,value
是指标属性应设置的值。
SetMetric()
在代码中返回一个 %Status
指示成功或失败。 SetMetric()
可能无法获取业务指标的锁,并可能因此失败。
要设置多维指标属性的所有值,请创建值数组,然后通过引用传递该数组。例如:
For i=1:1:20 {Set data(i) = i*i}Set tSC = ##class(Ens.BusinessMetric).SetMetric("MyMetric","MyGraph",.data)
关于业务指标缓存
为了尽可能高效地检索指标值, IRIS 将这些值存储在缓存中。此缓存是全局 ^IRIS.Temp.EnsMetrics
,其结构如下:
^IRIS.Temp.EnsMetrics(Namespace,BusinessMetric,Instance,Property) = value
Namespace
命名空间是运行带有指标的生产的命名空间。BusinessMetric
是业务指标的生产配置名称。Instance
实例是实例编号。实例按照它们被定义的顺序编号。Property
属性是业务度量属性的名称。