Argomento precedente: Collegamento a moduli di business logicArgomento successivo: Funzioni di business logic


Procedure di business logic

Oltre alla nota sintassi VBScript, le formule di business logic formule possono contenere speciali procedure come segue:

OnLoad(Time)

Invocato una volta all'inizio del calcolo. Può essere utilizzato per inizializzare le variabili globali.

OnPeriodEnd(Time, IsCompleteRecord)

Invocato ogni volta che un periodo termina. IsCompleteRecord è True quando il periodo di riferimento è terminato e False quando si effettua un calcolo intermedio.

OnPeriodStart(Time)

Invocato ogni volta che un nuovo periodo inizia.

OnRegistration(Dispatcher)

Una routine obbligatoria per l'associazione di eventi con le procedure definite dall'utente. OnRegistration viene chiamata una volta dal motore di calcolo all'inizio del calcolo della metrica.

Gli eventi sono associati alle le procedure mediante i metodi del dispatcher, come mostrato di seguito:

Esempio 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)
   Per ogni risorsa in ThisResourceMap
      Risorsa GlobalResourceVector.Add
   Avanti
End Sub

Esempio 2

Sub OnRegistration(dispatcher)
      Dispatcher.RegisterByResource “OnEvent”, ”my event type”, “my resource”
      Dim a
      Per un = 1 a 1000000: successivo
End Sub

Questo codice potrebbe compromettere la fase di elaborazione dell'infrastruttura di calcoli senza motivo.

In alternativa, è possibile utilizzare:

Sub OnRegistration(dispatcher)
      Dispatcher.RegisterByResource “OnEvent”, ”my event type”, “my resource”
      Se (dispatcher.isruntimemode) allora
            Dim a
            Per un = 1 a 1000000: successivo
      End If
End Sub

Nota: "ProcedureName" = "MethodName" e "EventType=EventTypeName"

OnTimeSlotEnter(Time)

Chiamata durante l'immissione di un periodo di applicazione.

OnTimeSlotExit(Time)

Chiamata durante l'uscita da un periodo di applicazione.