ACE dispone di una funzionalità integrata e di strumenti per diversi scopi. L'utilizzo della funzionalità integrata è preferibile per la scrittura in VBS. Poiché VBS è un linguaggio interpretato, la riproduzione in VBS compromette le prestazioni.
Di seguito viene riportato un elenco delle funzioni integrate e delle corrette modalità di utilizzo:
IsWithinTimeslot
Questa è la funzione integrata più semplice. Il suo scopo è consentire alla business logic di indicare se il sistema è attualmente all'interno di un periodo di applicazione oppure no. In questo modo viene rimossa la necessità di gestire una variabile nelle funzioni di inizio e di termine del periodo di applicazione per eseguire la stessa operazione. Ad esempio, invece di eseguire il seguente codice:
Dim amIWithinATimeslot
Sub OnTimeslotEnter(time)
amIWithinATimeslot = 1
End sub
Sub OnTimeslotExit(time)
amIWithinATimeslot = 0
End sub
Sub OnEvent(eventDetails)
If amIWithinATimeslot = 1 Then
count = count + 1
End if
End sub
È possibile eseguire questo codice molto più semplice:
Sub OnEvent(eventDetails)
If context.IsWithinTimeslot Then
count = count + 1
End if
End sub
Se si desidera utilizzare o mantenere le informazioni sulla data/ora di inizio e di termine del periodo di applicazione, questa funzionalità non è in grado di soddisfare tale esigenza. Ma di norma non è necessaria e il codice è sufficiente.
TimeOfLastEvent
Questa funzione restituisce la data/ora dell'ultimo evento di dati non elaborati o di dati intermedi che è stato gestito. Ciò significa che non è necessario salvare queste informazioni nel gestore eventi, in quanto sono disponibili direttamente tramite questa funzione. Ad esempio:
Function result
Dim LastEventTimestamp
LastEventTimestamp = Context.TimeOfLastEvent
End function
TimeOfLastEventHandler
Questa funzione restituisce la data/ora dell'ultimo gestore evento chiamato dal motore di aggregazione e correlazione. Questo include non solo i gestori di eventi di dati non elaborati e di dati intermedi, ma anche tutti gli eventi di sistema chiamati. È particolarmente utile nei gestori eventi che non ricevono l'ora, ad esempio, per la funzione Result. Ad esempio:
Function result
Dim LastEventHandlerTimestamp
LastEventHandlerTimestamp= Context.TimeOfLastEventHandler
End function
NetTime
Questa funzione consente di specificare due valori di data/ora e di ricevere il tempo netto (in secondi) con cui il sistema è all'interno del periodo di applicazione per la regola corrente, compreso tra i due valori di data/ora. Questa in particolare è una funzionalità poco pratica e non deve essere implementata nel VBS. L'implementazione nel VBS comporterebbe la conservazione di un elenco ogni inizio e termine del periodo di applicazione o il calcolo della differenza tra ogni ora in cui viene immesso il termine del periodo di applicazione direttamente, in modo da calcolare l'intervallo di tempo tra di essi. In condizioni estreme, potrebbe verificarsi un gran numero di volte e questo non favorirebbe le prestazioni di calcolo. La funzione interna esegue la stessa operazione dopo una significativa ottimizzazione, con una maggiore efficienza. Ad esempio:
Function result
Dim MyNetTime
MyNetTime = Tools.NetTime(MyBeginTimestamp, MyEndTimestamp)
End function
Oggetto di contesto
L'oggetto di contesto comprende una varietà di parametri che forniscono informazioni su:
L'accesso a queste informazioni direttamente dal database tramite Safe ODBC è estremamente inefficiente e non ha senso poiché le informazioni sono subito disponibili dall'oggetto di contesto. Se possibile, utilizzare sempre la funzionalità integrata per ottenere informazioni.
|
Copyright © 2013 CA.
Tutti i diritti riservati.
|
|