Versioned on class
No edit summary
m ((username removed) (log details removed))
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
When you set Versioned on a class we never use sql-command-update or delete for that class. Instead we use insert with TimeStampStart and TimeStampStop added as non-attribute-db-columns.
When you set Versioned on a class, we never use sql-command-update or delete for that class. Instead, we use insert with TimeStampStart and TimeStampStop added as non-attribute-db-columns.


You can now track all the changes done on an object - and retrieve old versions of that object with operators like [[OCLOperators allInstancesAtTime|allInstancesAtTime]], [[OCLOperators atTime|atTime]]
You can track all the changes done on an object and retrieve old versions of that object with operators like [[OCLOperators allInstancesAtTime|allInstancesAtTime]], [[OCLOperators atTime|atTime]], or [[OCLOperators objectTimeStamp|objectTimeStamp.]]
 
If Class1 is versioned, this is a valid expression:
Class1.allinstances.changepoints(0,-1)->collect(x|x,x.objectTimeStamp, x.objectTimeStamp.timeStampToTime,x.objectTimeStamp.timeStampToTime.timeToTimeStamp)
* '''Class1.allinstances.changepoints(0,-1)''': Gives a list of all versions of all Class1 objects
* '''x.objectTimeStamp''' : gives the integer number timestamp
* '''x.objectTimeStamp.timeStampToTime''' : looks up the corresponding calendar DateTime from ClockLog
* '''x.objectTimeStamp.timeStampToTime.timeToTimeStamp''' : looks up the integer timestamp from a DateTime
I had one Class1 object that I had changed 3 times:
{| class="wikitable"
|Eco.Framework.Impl.Frontside.DefaultLoopback
|0
|2022-10-26 13:09:25
|0
|-
|Eco.Framework.Impl.Frontside.DefaultLoopback
|1
|2022-10-26 13:09:28
|1
|-
|Eco.Framework.Impl.Frontside.DefaultLoopback
|2
|2022-10-26 15:56:48
|2147483647
|}
[[Category:Advanced]]
[[Category:SQL]]

Latest revision as of 06:55, 11 January 2024

When you set Versioned on a class, we never use sql-command-update or delete for that class. Instead, we use insert with TimeStampStart and TimeStampStop added as non-attribute-db-columns.

You can track all the changes done on an object and retrieve old versions of that object with operators like allInstancesAtTime, atTime, or objectTimeStamp.

If Class1 is versioned, this is a valid expression:

Class1.allinstances.changepoints(0,-1)->collect(x|x,x.objectTimeStamp, x.objectTimeStamp.timeStampToTime,x.objectTimeStamp.timeStampToTime.timeToTimeStamp)
  • Class1.allinstances.changepoints(0,-1): Gives a list of all versions of all Class1 objects
  • x.objectTimeStamp : gives the integer number timestamp
  • x.objectTimeStamp.timeStampToTime : looks up the corresponding calendar DateTime from ClockLog
  • x.objectTimeStamp.timeStampToTime.timeToTimeStamp : looks up the integer timestamp from a DateTime

I had one Class1 object that I had changed 3 times:

Eco.Framework.Impl.Frontside.DefaultLoopback 0 2022-10-26 13:09:25 0
Eco.Framework.Impl.Frontside.DefaultLoopback 1 2022-10-26 13:09:28 1
Eco.Framework.Impl.Frontside.DefaultLoopback 2 2022-10-26 15:56:48 2147483647
This page was edited 127 days ago on 01/11/2024. What links here