Jump to: navigation, search

Difference between revisions of "Timestamps"


Line 1: Line 1:
This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:
+
This page describes timestamps and their relevance for the role of a service engineer. In UBIK, there are more types of timestamps used internally, but these are not mentioned here. Therefore it is best to understand timestamps in UBIK from a non-developer perspective: From this view, we care about  5 different timestamp names and their usage on 4 levels: '''CreationTimeStamp''', '''UpdateTimeStamp''', '''ValidationTimeStamp''', '''ExportTimeStamp''', and '''ImportTimeStamp'''.  
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)
+
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS
+
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)
+
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)
+
  
== On ObjectLevel / BaseClass ==
+
Their usages are best explained when assigning these timestamps to different levels where they are used:
 +
* On Object (instance) level: '''CTS''' (CreationTimeStamp), '''UTS''' (UpdateTimeStamp)
 +
* On Property level: '''VTS''' (ValidationTimeStamp), '''CTS''', '''UTS'''
 +
* On Proxy level: '''ETS''' (ExportTimeStamp), '''ITS''' (ImportTimeStamp)
 +
* On ProxyProperty level: '''ETS''' (ExportTimeStamp), '''ITS''' (ImportTimeStamp)
 +
 
 +
 
 +
== On Object Level / BaseClass ==
  
 
=== CreationTimeStamp ===
 
=== CreationTimeStamp ===
 
Saves the date and time when an object is created.
 
Saves the date and time when an object is created.
  
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.
+
The CreationTimeStamp (CTS) is set exactly once at that moment when a new Ubikle is instantiated in the working memory. This timestamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.
  
 
=== UpdateTimeStamp ===
 
=== UpdateTimeStamp ===
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.
+
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00”, the CTS is returned.
  
 
A change is defined by two events:
 
A change is defined by two events:
 
<ol>
 
<ol>
   <li>When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:
+
   <li>The object changes, the ''UpdateTimeStamp'' is set. An object is meant to be changed when at least one of its properties has been changed. To know this, every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:
 
     <ol style="list-style-type:lower-alpha">
 
     <ol style="list-style-type:lower-alpha">
       <li>it’s value has been changed (the property knows its new and old value),</li>
+
       <li>its value has been changed (the property knows its new and old value),</li>
       <li>it’s ValidationTimeStamp has been set</li>
+
       <li>its ValidationTimeStamp has been set</li>
 
     </ol>
 
     </ol>
 
   </li>
 
   </li>
   <li>When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).</li>
+
   <li>A new primary child is added to a relation. Primary in this context means the first level of object relation, aka the directly connected object. That means adding such a child counts as a change for the owner object, and the ''UpdateTimeStamp'' will be set. A child can be anything (Attributes, RelationData, etc).</li>
 
</ol>
 
</ol>
  
Line 31: Line 34:
 
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or
 
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or
 
# the property’s UBIKAttribute.UpdateTimeStamp
 
# the property’s UBIKAttribute.UpdateTimeStamp
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}
+
{{Attention|Be aware that there are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}
  
 
=== CTS ===
 
=== CTS ===
Line 40: Line 43:
 
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.
 
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.
  
== On ProxyPropertyLevel / ProxyAttribute ==
+
== On ProxyProperty Level / ProxyAttribute ==
 
=== InterfaceTimestamp ===
 
=== InterfaceTimestamp ===
This timestamp actually becomes transformed to the ets or its so it exists twice.
+
This timestamp actually becomes transformed to the '''ETS''' or '''ITS''', resulting in it existing twice.
  
 
'''ExportTimeStamp (ETS)'''
 
'''ExportTimeStamp (ETS)'''
  
 
Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed.
 
Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed.
If UBIK cannot find the property set the InterfaceTimeStamp to now.
+
If UBIK cannot find the property set the ''InterfaceTimeStamp'' to now.
  
 
'''ImportTimeStamp (ITS)'''
 
'''ImportTimeStamp (ITS)'''
Line 53: Line 56:
 
Saves a given timestamp for a property provided by the third-party system.
 
Saves a given timestamp for a property provided by the third-party system.
  
== On ProxyLevel / Proxy ==
+
== On Proxy Level / Proxy ==
 
=== ImportTimeStamp ===
 
=== ImportTimeStamp ===
 
Saves the date and time when an Ubikle has been written to a proxy.
 
Saves the date and time when an Ubikle has been written to a proxy.

Revision as of 08:35, 17 September 2019

This page describes timestamps and their relevance for the role of a service engineer. In UBIK, there are more types of timestamps used internally, but these are not mentioned here. Therefore it is best to understand timestamps in UBIK from a non-developer perspective: From this view, we care about 5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp, and ImportTimeStamp.

Their usages are best explained when assigning these timestamps to different levels where they are used:

  • On Object (instance) level: CTS (CreationTimeStamp), UTS (UpdateTimeStamp)
  • On Property level: VTS (ValidationTimeStamp), CTS, UTS
  • On Proxy level: ETS (ExportTimeStamp), ITS (ImportTimeStamp)
  • On ProxyProperty level: ETS (ExportTimeStamp), ITS (ImportTimeStamp)


On Object Level / BaseClass

CreationTimeStamp

Saves the date and time when an object is created.

The CreationTimeStamp (CTS) is set exactly once at that moment when a new Ubikle is instantiated in the working memory. This timestamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.

UpdateTimeStamp

Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00”, the CTS is returned.

A change is defined by two events:

  1. The object changes, the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this, every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:
    1. its value has been changed (the property knows its new and old value),
    2. its ValidationTimeStamp has been set
  2. A new primary child is added to a relation. Primary in this context means the first level of object relation, aka the directly connected object. That means adding such a child counts as a change for the owner object, and the UpdateTimeStamp will be set. A child can be anything (Attributes, RelationData, etc).

On PropertyLevel / BaseProperty

UTS

Either this value is

  1. the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or
  2. the property’s UBIKAttribute.UpdateTimeStamp
IC Attention.pngBe aware that there are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.

CTS

Saves the date and time when a property value is written the very first time.

ValidationTimeStamp

Saves the date and time when a value has been entered or validated on the client. It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.

On ProxyProperty Level / ProxyAttribute

InterfaceTimestamp

This timestamp actually becomes transformed to the ETS or ITS, resulting in it existing twice.

ExportTimeStamp (ETS)

Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed. If UBIK cannot find the property set the InterfaceTimeStamp to now.

ImportTimeStamp (ITS)

Saves a given timestamp for a property provided by the third-party system.

On Proxy Level / Proxy

ImportTimeStamp

Saves the date and time when an Ubikle has been written to a proxy.

ExportTimeStamp

Saves the date and time when a proxy has been written to a Ubikle.