Vorheriges Thema: Verknüpfen von Business-Logik-ModulenNächstes Thema: Business-Logik-Funktionen


Business-Logik-Prozeduren

Neben der bekannten VBScript-Syntax können Business-Logik-Formeln die folgenden speziellen Prozeduren enthalten:

OnLoad(Time)

Wird einmal zu Beginn der Berechnung aufgerufen. Kann für die Initialisierung globaler Variablen verwendet werden.

OnPeriodEnd (Time, IsCompleteRecord)

Wird jedes Mal aufgerufen, wenn ein Zeitraum endet. "IsCompleteRecord" ist "True", wenn der Kontrollzeitraum beendet ist und "False", wenn eine Zwischenkalkulation vorgenommen wird.

OnPeriodStart (Time)

Wird jedes Mal aufgerufen, wenn ein neuer Kontrollzeitraum beginnt.

OnRegistration(Dispatcher)

Eine erforderliche Prozedur zur Verknüpfung von Events mit anwenderdefinierten Prozeduren. "OnRegistration" wird einmal zu Beginn der Metrikberechnung von der Berechnungs-Engine aufgerufen.

Die Events werden mithilfe der Methoden des Dispatcher-Objekts wie unten gezeigt mit den Prozeduren verknüpft.

Beispiel 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-Ressource
   Next
End Sub

Beispiel 2

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

Dieser Code hätte eine ungünstige Wirkung auf die Phase der Infrastrukturverarbeitung der Berechnungen, ohne einen Nutzen zu liefern.

Stattdessen können Sie jetzt folgenden Code verwenden:

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

Hinweis: "ProcedureName" = "MethodName" und "EventType=EventTypeName"

OnTimeSlotEnter (Time)

Wird aufgerufen, wenn ein Zeitfenster erreicht wird.

OnTimeSlotExit (Time)

Wird beim Verlassen eines Zeitfensters aufgerufen.