Tópico anterior: Vínculo para módulos de lógica de negócios

Próximo tópico: Funções de lógica de negócios

Procedimentos de lógica de negócios

Além da conhecida sintaxe VBScript, as fórmulas de lógica de negócios podem conter procedimentos especiais, como segue:

OnLoad(Time)

Chamado uma vez, no início dos cálculos. Pode ser usado para inicializar variáveis globais.

OnPeriodEnd(Time, IsCompleteRecord)

Chamado sempre que o período termina. IsCompleteRecord é Verdadeiro quando o período de monitoramento tiver terminado e Falso ao fazer um cálculo intermediário.

OnPeriodStart(Time)

Chamado sempre que um novo período começa.

OnRegistration(Dispatcher)

Um procedimento obrigatório para associar eventos com procedimentos definidos pelo usuário. OnRegistration é chamado uma vez pelo mecanismo de cálculo no começo do cálculo da métrica.

Os eventos são associados a procedimentos usando os métodos do objeto distribuidor, conforme mostrado abaixo:

Exemplo 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)
   Para cada recurso em ThisResourceMap
      GlobalResourceVector.Add resource
   Próximo
End Sub

Exemplo 2

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

Esse código poderia ter um efeito adverso na infraestrutura do estágio de processamento dos cálculos sem nenhum motivo.

Em vez disso, você pode usar:

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

Observação: "ProcedureName" = "MethodName" e "EventType=EventTypeName"

OnTimeSlotEnter(Time)

Chamado ao inserir um período de atividade.

OnTimeSlotExit(Time)

Chamado ao sair de um período de atividade.