文章
· 六月 25, 2023 阅读大约需 2 分钟

第三十九章 ObjectScript Productions - Defining Business Metrics - 以编程方式设置和获取值

第三十九章 开发Productions - ObjectScript Productions - Defining Business Metrics - 以编程方式设置和获取值

以编程方式设置和获取值

在某些情况下,可能需要以编程方式访问指标属性。例如,可能希望业务流程直接读取或设置度量属性。为此,请在新选项卡中使用 Ens.BusinessMetricOpensGetMetric()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 属性是业务度量属性的名称。
讨论 (0)1
登录或注册以继续