第三十六章 开发Productions - ObjectScript Productions - Defining Business Metrics - 为度量属性指定其他参数
为指标属性指定其他参数
可以为业务度量属性指定其他属性参数。这些参数可能包括上限和下限的默认值,这些默认值控制显示该指标的任何仪表的外观。例如:
/// Total Sales for the current day.
Property TotalSales As Ens.DataType.Metric (RANGELOWER = 0, RANGEUPPER = 50, UNITS = "$US");
下表列出了可以在 Ens.DataType.Metric
AUTOHISTORY
,这在上一节中进行了讨论)。这些参数适用于包含数值的指标属性;当 metric 属性包含字符串值时,它们都不适用。
Parameter | Description |
---|---|
LINK |
可选的。指定与此度量相关的浏览器页的URL 。如果仪表板用户右击关联的仪表并选择向下钻取选项,浏览器将显示此页面。 |
RANGELOWER |
可选的。一个数值,指定此度量值的预期下限范围。此值提供连接到此公制的任何仪表的下限范围的默认值。 |
RANGEUPPER |
可选。指定此指标值的预期上限的数值。此值为连接到此指标的任何仪表的上限提供默认值。 |
THRESHOLDLOWER |
可选。指定此度量的预期下阈值的数值。此值为连接到此指标的任何仪表的阈值下限提供默认值。 |
THRESHOLDUPPER |
可选。指定此度量的预期阈值上限的数值。此值为连接到此指标的任何仪表的阈值上限提供默认值。 |
UNITS |
可选。用双引号括起来的用户定义的字符串,用于指定此指标的单位。例子包括“$US ”或“升”。当查看者点击显示屏上半部分的相应仪表时,该字符串出现在仪表板显示屏的下半部分。 |
为业务指标属性赋值
本节描述如何为单实例业务指标的业务指标属性赋值;本页稍后将讨论多实例业务度量的详细信息。
要为业务指标属性赋值,请实现业务指标类的OnCalculateMetrics()
实例方法。OnCalculateMetrics()
的目的是计算、查找或设置类中任何度量属性的值。
以下示例定义了两个度量属性,Counter
和SalesHistory
。在此示例中,OnCalculateMetrics()
方法只是递增单值计数器属性,并将SalesHistory
属性更新为随机值:
/// Example Business Metric class
Class MyProduction.MyMetric Extends Ens.BusinessMetric
{
/// Number of times these metrics have been calculated.
Property Counter As Ens.DataType.Metric
(RANGELOWER = 0, RANGEUPPER = 100000, UNITS = "Events");
/// Total Sales for the current day.
Property SalesHistory As Ens.DataType.Metric
(RANGELOWER = 0, RANGEUPPER = 50, AUTOHISTORY = 50, UNITS = "$US")
[ MultiDimensional ];
/// Calculate and update the set of metrics for this class
Method OnCalculateMetrics() As %Status
{
// set the values of our metrics
Set ..Counter = ..Counter + 1
Set ..SalesHistory = $GET(..SalesHistory) + $RANDOM(10) - 5
Quit $$$OK
}
}
- 请注意,对于简单特性和具有自动历史记录的特性,指定特性值的方式是相同的。
(如果熟悉多维属性,请注意,只为属性的未订阅顶部节点指定了值,如下所示。由于AUTOHISTORY
参数的存在, IRIS
生成了自动维护数组中较低节点的代码,这是一个带整数下标的数组。例如,SalesHistory(1)
是SalesHistory
属性中最早的值。)
- 在这种方法中,可以有选择地调用业务操作和业务流程。还可以调用计算这些值所需的任何
API
。 - 绝不允许具有
autohistory
的属性包含空值。不显示空值,导致条形图和折线图包含错误的条形数或条目数。这可能会导致轴标签和它们所标记的项目之间不匹配。为了防止出现这种问题,请用零替换任何空值。 - 在调用
OnCalculateMetrics()
方法之前,所有度量属性都被设置为它们最后计算的值(如果有的话)。调用OnCalculateMetrics()
后,所有指标属性的值都存储在业务指标缓存中,供仪表板或其他相关方(如果有)随后使用。
网友评论