ACE 具有针对各种用途的内置功能和工具。 使用此内置功能最好是在 VBS 中写入。 由于 VBS 为解释性语言,因此在 VBS 中重新生成它会影响性能。
以下是内置功能的列表以及使用它们的适当方式:
IsWithinTimeslot
这是最简单的内置功能。 其目的是使业务逻辑告知系统当前是否位于某个时间段内。 这将消除在时间段进入和时间段退出函数中管理变量的需要,以便可以执行相同的操作。 例如,不要运行以下代码:
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
而可以运行以下较简单的代码:
Sub OnEvent(eventDetails)
If context.IsWithinTimeslot Then
count = count + 1
End if
End sub
如果您要使用或保留与时间段开始和结束时间戳相关的信息,此功能将无法满足您的需求。 但通常不需要这样做,因此上述代码已足够了。
TimeOfLastEvent
此函数可为您提供处理的最后一个原始数据或中间数据事件的时间戳。 这意味着,您无需在事件处理程序中保存此信息,因为可通过此函数直接获得。 例如:
Function result
Dim LastEventTimestamp
LastEventTimestamp = Context.TimeOfLastEvent
End function
TimeOfLastEventHandler
此函数将返回最后由 ace 调用的事件处理程序的时间戳。 这不仅包括原始和中间数据事件处理程序,还包括已调用的任何系统事件。 这在未通过函数(如 result 函数)接收时间的事件处理程序中尤其有用。 例如:
Function result
Dim LastEventHandlerTimestamp
LastEventHandlerTimestamp= Context.TimeOfLastEventHandler
End function
NetTime
此功能允许您指定两个时间戳,并在这两个时间戳之间接收系统在当前规则的时间段内的净时间(以秒为单位)。 这尤其是一种繁琐功能,不需要在 VBS 中实施。 在 VBS 中实施此功能需要保留所有时间段进入和退出的列表,或计算进入的时间段直接退出的每个时间之间的差异,以便确定它们之间的时间范围。 在极端条件下,这可能会发生很多次,并对计算性能产生负面影响。 内部函数在显著优化后功能保持相同,因此会更高效。 例如:
Function result
Dim MyNetTime
MyNetTime = Tools.NetTime(MyBeginTimestamp, MyEndTimestamp)
End function
Context 对象
Context 对象具有各种参数,可以提供以下相关信息:
使用安全 ODBC 从数据库直接访问此信息效率极低且没有意义,因为该信息可在 Context 对象中直接获得。 如果可能,始终使用内置功能是一种获取信息的方式。
| 版权所有 © 2012 CA。 保留所有权利。 | 就该主题发送电子邮件至 CA Technologies |