上一主题: 创建业务逻辑模块

下一主题: 实施动态目标

创建参数

参数提供了一种快速且直观的方式,方便企业用户使用图形用户界面 (GUI) 来查看和更改其值,而不必编辑公式脚本。

在业务逻辑中使用这些参数可以创建常规公式,从而能够广泛应用在各种系统中,并能优化模块使用。

可在合同或度量标准级别定义参数。 度量标准级参数显示在度量标准详细信息的“目标声明”选项卡中,您可以在这里进行相应的配置。 业务逻辑仅有权访问度量标准级参数;因此,为了从度量标准中访问合同参数,要在该度量标准本地创建另一不同类型的参数。 这种类型的参数被称为动态参数,其值是对合同级参数的引用。 动态参数中允许的参考值仅为那些在度量标准的父合同中定义的值。

参数类型:

为了从公式代码中访问参数的值,需要使用 Parameters 对象并引用参数名称。

示例

Parameters("Threshold")
(请注意,这是调用值的简短方法 - 通常采用 Parameters.Item("Threshold") 进行调用)

或者,对于 table 类型的参数:

Parameters("Table")("Word")("Price")

(其中“Word”和“Price”的值分别为表参数的行和列名称)

使用 Table 参数时应遵循以下一系列要点:

  1. 定义全局变量(如 dim myTableParam)
  2. 在 OnLoad 函数中,填充来自 parameters 对象的变量,例如,Set myTableParam = Parameters("MyParametersTable")
  3. 然后仅使用创建的对象 myTableParam。 参数本身不应在 OnLoad 函数外部使用,您应该仅引用通过它创建的全局变量对象。
    (例如,dim myVal: myVal = myTableParam ("myRow")("myColumn"))。

这可释放参数占用的内存,并阻止引擎在每个参数调用上、针对每个“OnXXXEvent”创建参数映射,因此每个度量标准可对其调用数千次。

下列代码说明了 table 参数的正确用法:

Option Explicit

Dim sum
Dim myParamTable

Sub OnLoad(TIME)
   Set myParamTable = Parameters("MyTableParam")
End Sub

Sub OnRegistration(dispatcher)
  dispatcher.RegisterByResource" OnEvent", "EventType", "ResourceType"
End Sub

Sub OnPeriodStart(TIME)
   sum = 0
End Sub

Sub OnEvent(eventDetails)
   If Context.IsWithinTimeslot Then
      sum = sum + 1 * myParTimeSlotamTable("firstRow")("secondColumn")
   End If
End Sub

Function Result
   Result = ( sum * myParamTable("secondRow")("thirdColumn")  )
End Function

对于该代码中创建的每个参数对象,下列方法适用。

参数

说明

IsExist

参数存在。

IsNumeric

参数类型为 Number。

IsText

参数类型为 text。

IsDate

参数类型为 Date。

IsTable

参数类型为 Table。

IsEntryExist

表中存在条目。

IsEntryNumeric

是表中 Numeric 类型的条目。

IsEntryText

是表中 Text 类型的条目。

IsEntryDate

是表中 Date 类型的条目。

Dump

返回所有参数的列表。

Item

指参数值。