ACE bietet integrierte Funktionalität und Tools für verschiedene Zwecke. Diese integrierte Funktionalität sollte in VBS geschrieben werden. Da VBS eine interpretierte Sprache ist, führt die Reproduzierung in VBS zu einer Verschlechterung der Leistung.
Im Folgenden finden Sie eine Liste der integrierten Funktionen und der entsprechenden Verwendungsweise:
IsWithinTimeslot
Dies ist die einfachste der integrierten Funktionen. Sie aktiviert die Business-Logik, die angibt, ob sich das System gegenwärtig in einem Zeitfenster befindet. Das heißt, es muss keine Variable in den Funktionen für den Eintritt in das Zeitfenster und das Verlassen des Zeitfensters verwaltet werden. Beispiel: Statt folgenden Code auszuführen:
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
können Sie diesen viel einfacheren Code ausführen:
Sub OnEvent(eventDetails)
If context.IsWithinTimeslot Then
count = count + 1
End if
End sub
Wenn Sie Informationen zum Zeitstempel von Zeitfenstereintritt und Verlassen des Zeitfensters verwenden oder beibehalten möchten, ist diese Funktionalität nicht geeignet. Normalerweise ist dies aber nicht erforderlich, und dieser Code ist ausreichend.
TimeOfLastEvent
Diese Funktion gibt den Zeitstempel der letzten verarbeiteten Rohdaten oder des letzten verarbeiteten Zwischendaten-Events aus. Das heißt, dass Sie diese Informationen nicht im Event-Handler speichern müssen, da sie direkt über diese Funktion verfügbar sind. Zum Beispiel:
Function result
Dim LastEventTimestamp
LastEventTimestamp = Kontext.TimeOfLastEvent
End function
TimeOfLastEventHandler
Diese Funktion gibt den Zeitstempel der letzten von ACE aufgerufenen Event-Handler zurück. Dies schließt nicht nur Event-Handler für Roh- und Zwischendaten-, sondern auch System-Events ein, die ebenfalls aufgerufen wurden. Dies ist besonders nützlich bei Event-Handler, die die Zeit z. B. für die Ergebnisfunktion nicht empfangen. Zum Beispiel:
Function result
Dim LastEventHandlerTimestamp
LastEventHandlerTimestamp= Context.TimeOfLastEventHandler
End function
NetTime
Diese Funktion erlaubt es Ihnen, zwei Zeitstempel und die Nettozeit (in Sekunden) anzugeben, in der sich das System innerhalb des Zeitfensters für die aktuelle Regel zwischen diesen beiden Zeitstempeln befunden hat. Dies ist eine besonders aufwändige Funktionalität, die nicht in VBS implementiert werden sollte. Die Implementierung in VBS würde eine Liste aller Zeitfenstereintritte und -austritte beinhalten oder die direkte Berechnung des Unterschieds zwischen den Zeiten der Zeitfenstereintritte und -austritte, um die Zeitspanne dazwischen zu ermitteln. Unter extremen Bedingungen könnte dies oft geschehen und die Berechnungsleistung negativ beeinflussen. Mit der internen Funktion erreichen Sie nach umfassender Optimierung dasselbe, sind nur effizienter. Zum Beispiel:
Function result
Dim MyNetTime
MyNetTime = Tools.NetTime(MyBeginTimestamp, MyEndTimestamp)
End function
Das Kontextobjekt
Das Kontextobjekt umfasst verschiedene Parameter, die Informationen bieten zu:
Der Zugriff auf diese Informationen direkt über die Datenbank mit Safe ODBC ist nicht sehr effizient und nicht sinnvoll, da die Informationen bereits über das Kontextobjekt verfügbar sind. Verwenden Sie nach Möglichkeit immer die integrierte Funktionalität, um Informationen abzurufen.
|
Copyright © 2013 CA.
Alle Rechte vorbehalten.
|
|