美文网首页
第三十七章 ObjectScript Productions -

第三十七章 ObjectScript Productions -

作者: Cache技术分享 | 来源:发表于2023-06-23 10:49 被阅读0次

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

定义多实例业务指标

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

  • 遵循上一节中的说明,只是实现OnCalculateMetrics()的细节略有不同。
  • 定义实例名称。为此,可以:
    • 定义一组静态实例名。为此,请实现OnGetInstances()方法,为数组分配一个固定的名称列表。如果实例集是静态的,这种方法很有用。
    • 动态定义实例名称。为此,添加一个MetricInstances()查询,从SQL数据库的一列中获取名称列表。如果希望项目的数量或名称会随着时间的推移而改变,这种方法很有用。
    • 结合这些方法。使用MetricInstances()查询获取初始列表,然后使用OnGetInstances()添加或替换名称。(业务度量实例首先调用MetricInstances(),然后调用OnGetInstances()
  • OnCalculateMetrics()的实现中,检查%Instance属性的值,并将值分配给适合该实例的业务度量属性。
  • 请记住以下原则:
    • 实例名是字符串。
    • 实例名必须唯一。
    • 实例名称可能会在仪表板上显示给用户,因此请使用简洁、信息丰富且适当的名称。
    • 尽量保持实例数量合理。成千上万个实例的计算成本可能很高,用户也很难理解。

定义一组静态实例名

若要定义一组静态实例名,请重写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
}

动态定义实例名

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

  • 该查询必须命名为MetricInstances()
  • 必须没有参数。
  • 查询必须包含 SQL SELECT 语句。
  • 查询返回的第一列返回实例名称。

例如:

/// 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 属性。

相关文章

网友评论

      本文标题:第三十七章 ObjectScript Productions -

      本文链接:https://www.haomeiwen.com/subject/fstvydtx.html