上一主题: 链接到业务逻辑模块

下一主题: 业务逻辑函数

业务逻辑过程

除已知的 VBScript 语法外,业务逻辑公式可以包含如下所示的一些特殊过程:

OnLoad(Time)

在计算开始时调用一次。 可用于初始化全局变量。

OnPeriodEnd(Time, IsCompleteRecord)

每个跟踪期结束时调用一次。 跟踪期已经结束时,IsCompleteRecord 为 True;在进行中间计算时,IsCompleteRecord 为 False。

OnPeriodStart(Time)

每个新跟踪期开始时调用一次。

OnRegistration(Dispatcher)

将事件与用户定义的过程相关联的强制性过程。 在度量标准计算开始时计算引擎调用一次 OnRegistration。

通过使用 Dispatcher 对象的方法将事件与过程相关联,如下所示:

示例 1

Sub OnRegistration(dispatcher)
   Dim MyResource
   MyResource = Context.ClusterItem
   Dispatcher.RegisterByResource "OnEvent", "My Event Type", MyResource
End Sub

Sub New
   Dim ThisResourceMap
   Set GlobalResourceVector= CreateObject("SlalomVector.Vector")
   Dim resource
   Set ThisResourceMap = Context.ResourcesOfResourceGroup(Context.ClusterItem)
   For Each resource In ThisResourceMap
      GlobalResourceVector.Add resource
   Next
End Sub

示例 2

Sub OnRegistration(dispatcher)
      Dispatcher.RegisterByResource "OnEvent", "my event type", "my resource"
      Dim a
      For a = 1 to 1000000: next
End Sub

此代码可能无缘无故就会对处理计算阶段的基础架构产生不利影响。

您可以改为使用以下代码:

Sub OnRegistration(dispatcher)
      Dispatcher.RegisterByResource "OnEvent", "my event type", "my resource"
      If (dispatcher.IsRuntimeMode) then
            Dim a
            For a = 1 to 1000000: next
      End If
End Sub

注意:“ProcedureName”=“MethodName”,“EventType=EventTypeName”

OnTimeSlotEnter(Time)

在进入时间段时调用。

OnTimeSlotExit(Time)

在退出时间段时调用。