第三十七章 ObjectScript Productions -

2023-06-23  本文已影响0人  Cache技术分享

第三十七章 ObjectScript Productions - Defining Business Metrics - 定义多实例业务指标

定义多实例业务指标

要定义多实例业务度量,请执行以下操作:

定义一组静态实例名

若要定义一组静态实例名,请重写OnGetInstances()方法。此方法通过引用传递一个数组。OnGetInstances()方法必须使用序号作为下标用名称填充该数组,从1开始。下面是一个简单的例子:

/// Return an array of metric instances
ClassMethod OnGetInstances(ByRef pInstSet As %String) As %Status
{
  Set pInstSet(1) = "Apple"
  Set pInstSet(2) = "Banana"
  Set pInstSet(3) = "Cherry"
  Quit $$$OK
}

动态定义实例名

要动态定义实例名称集,请向业务度量类添加一个查询,如下所示:

例如:

/// Return current list of product names
Query MetricInstances() As %SQLQuery
{
  SELECT ProductName FROM MyApplication.Product
}

为多实例指标中的属性分配值

要为多实例业务指标中的属性分配值,请实施 OnCalculateMetrics() 方法。在实施中,为每个实例设置适当的值。为此:

  1. 检查 %Instance 属性的值。此属性等于其中一个业务指标实例的名称。

IRIS 自动按顺序一次处理一个实例。对于每个实例, IRIS 都会执行 OnCalculateMetrics() 实例方法。)

  1. 根据需要为该实例设置业务指标属性的值。

下面显示了一个例子:

Method OnCalculateMetrics() As %Status
{
  // get product name
  Set product = ..%Instance


  // find recent sales using SQL
  &SQL(SELECT SUM(Sales) INTO :sales
              FROM MyApplication.Product
              WHERE ProductName = :product)

  // update sales metric
  Set ..Sales = sales
  Quit $$$OK
}

此示例在 SQL 查询中使用当前实例名称 (%Instance) 来检索该实例的最新销售数据,然后将此数据写入该类当前实例的 Sales 属性。

注意:当您想要替换当前实例名称时,您也可以在类的其他地方使用 %Instance 属性。

上一篇 下一篇

猜你喜欢

热点阅读