Test - Integrate - Control

New features of tmprop, tcprop, evprop and seqprop commands

Now tmprop, tcprop, evprop and seqprop commands allow to retrieve data when the object is not in the cache anymore, and also from previous sessions.
In CCS, properties are attributes of a specific object, or archive record. For example "apid" is a property of both TM and TC packets. The properties of different records are directly visible in the CCS user interface.

You may already know that (u)TOPE provides functions to access properties of different objects that it deals with; given the "id" of the record they refer to, we can access any properties of the object (including properties that are not in the index, and dynamic properties of the object).

These TOPE functions have been enhanced to work not only with live and recent data held in memory, but also with archived data. Behind the scenes, if the specified object is not in memory, it is retrieved and reconstructed.
# get property of a TM packet
::utope::tmprop id propertyName
# get property of a TC packet
::utope::tcprop id propertyName
# get property of an event
::utope::evprop id propertyName
# get property of a sequence
::utope::seqprop id propertyName
# for example...
::utope::tmprop 55 apid
::utope::tcprop 55 params
::utope::evprop 99 message

Of course, it is much quicker to get the properties of objects while they are still in memory, but nevertheless, if a retrieval is needed, these TOPE functions are optimised to perform the retrieval as quickly as possible.

For TM and TC packets, the special property "params" also allows you to also get back the TM or TC parameters as they were in that specific packet.

The above functions also have a "plural" form that populates a Tcl array with all the properties and values of the specified object. The commands using plural syntax are slightly faster when you need to access multiple properties for the same object, and furthermore, with the plural syntax, you don't need to know the property names in advance:
# get all properties of the different objects...
::utope::tmprops id arrayName
::utope::tcprops id arrayName
::utope::evprops id arrayName
::utope::seqprops id arrayName
# for example...
# find out the values of all properties on this TM packet...
::utope::tmprop 55 myProps
# get the list of all property names on this TM packet...
array names myProps

You will notice that most objects of the same type (TM, TC packet, event) have the same properties, however the CCS sometimes also adds dynamic properties to an object. The dynamic properties are accessible using these commands.

When working with live data, the "id" is very often known. It is visible in the TM packet log; also it can be obtained from a test sequence script using the packet referby variable used in subscribepacket, or from ::utope::gettmcacheid command. However when analysing historical data, we may not know the ID, and have to find it out before we can retrieve property values. To find out this ID, we often have to query the index database. Use the IDX library to SQL query different records by their properties.
Behind the scenes, the above TOPE functions use the ID to locate the full original record in the binary archive, and to reconstruct the object with all its property values.

By default, property values are retrieved from the current session; it is possible to set the current TOPE sequence properties (retrSessionName/retrSessionRoot) to retrieve from another session as follows:
utope::seqprop #me retrSessionName $anotherSessionName
Note that packet ID's are reset from one session to another.

This feature is effective starting from the version 1.0.17396.