第三十九章 开发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属性是业务度量属性的名称。










网友评论