ACE tiene herramientas y funcionalidad incorporada para diversas finalidades. Es preferible utilizar esta funcionalidad a escribir en VBS. Como VBS es un lenguaje interpretado, la reproducción en VBS perjudica el rendimiento.
A continuación se presenta una lista de las funciones incorporadas y la forma apropiada de utilizarlas:
IsWithinTimeslot
Es la más sencilla de las funciones incorporadas. Su objetivo es permitir que la lógica de negocios diga si el sistema está actualmente dentro o no de una ranura de tiempo. Esto elimina el tener que gestionar una variable en la funciones de entrada de ranura de tiempo y salida de ranura de tiempo para hacer lo mismo. Por ejemplo, en lugar de ejecutar el código siguiente:
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
Se puede ejecutar este código mucho más sencillo:
Sub OnEvent(eventDetails)
If context.IsWithinTimeslot Then
count = count + 1
End if
End sub
Si se desea utilizar o conservar información sobre la marca de tiempo de la salida y entrada de la ranura de tiempo, esta funcionalidad no cubriría sus necesidades. Pero normalmente esto no es necesario y este código resulta suficiente.
TimeOfLastEvent
Esta función proporciona la marca de tiempo de los últimos eventos de datos intermedios o eventos de datos sin procesar que se manejaron. Esto significa que no es necesario guardar esta información en el controlador de eventos, ya que está directamente disponible mediante esta función. Por ejemplo:
Resultado de la función
Dim LastEventTimestamp
LastEventTimestamp = Context.TimeOfLastEvent
End function
TimeOfLastEventHandler
Esta función devuelve la marca de tiempo del último controlador de eventos convocado por ACE. Esto no sólo incluye los controladores de eventos de datos sin procesar e intermedios, sino también algunos eventos del sistema que también se llamaron. Es especialmente útil en controladores de eventos que no reciben el tiempo para, p.ej., la función de resultado. Por ejemplo:
Resultado de la función
Dim LastEventHandlerTimestamp
LastEventHandlerTimestamp= Context.TimeOfLastEventHandler
End function
NetTime
Esta función le permite especificar dos marcas de tiempo y recibir el tiempo neto (en segundos) que el sistema estuvo dentro de la ranura de tiempo para la regla actual, entre esas dos marcas de tiempo. Se trata de una funcionalidad algo complicada y no se debería implementar en VBS. La implementación de esta en VBS implicaría mantener una lista de todas las salidas y entradas de la ranura de tiempo o calcular la diferencia cada vez que se introduce la salida de la ranura de tiempo directamente, para conocer el intervalo de tiempo entre ellas. En condiciones extremas, esto podría suceder un gran número de veces y no sería bueno para el rendimiento de cálculo. La función interna hace lo mismo después de una significativa optimización, y así lo es mucho más eficaz. Por ejemplo:
Resultado de la función
Dim MyNetTime
MyNetTime = Tools.NetTime(MyBeginTimestamp, MyEndTimestamp)
End function
El objeto de contexto
El objeto de contexto cuenta con una variedad de parámetros que proporcionan información sobre:
Acceder a esta información directamente de la base de datos mediante ODBC seguro es muy ineficaz y no tiene sentido, ya que la información está fácilmente disponible a partir del objeto de contexto. Si es posible, utilice siempre la funcionalidad incorporada como una forma de obtener información.
|
Copyright © 2013 CA.
Todos los derechos reservados.
|
|