8. TIMESTAMPs.

Uniface IDF stores last-modified timestamps (UTIMESTAMP) and last-compiled timestamp (UCOMPSTAMP) with the data, which by default UD6 stores with the XML.

To avoid having timestamps stored in the XML files is a bit more complex than it seems at first glance, and best left until after you have UD6 initially working (with timestamps stored in XML).

Configuring UD6 so TIMSTAMPs are not stored in XML.

There are 4 (or 5 if using Uniface 9.6) parts to removing timestamps from the source code:

  1. remove the last updated time (UTIMESTAMP)
  2. when the record is read into IDF, fill the missing UTIMESTAMP with something, eg: the date/time stamp on the XML file
  3. remove the last compiled time (UCOMPSTAMP)
  4. when the record is read into IDF, fill the missing UCOMPSTAMP with something, eg: the date/time stamp on the compiled .frm file
  5. if using Uniface 9.6 then there are known cases where the IDF will write a file with a UTIMESTAMP or a UCOMPSTAMP that is 'not current'. eg: the timestamp is 13:04:01 but the current time is 13:04:02. If UD6 discards the UTIMESTAMP or UCOMPSTAMP then supplies the 'actual' file time/date stamp when the record is 'read' by the IDF - then Uniface considers that the record has 'changed' and will 'reload' it resulting in a delay (or in the case of 'test' a compiled form a dialog box). To prevent this we can 'cache' in memory the 'false time' and pass that back to Uniface in subsequent reads rather than the 'accurate time'.

Note: for UD6 to read the timestamps from the compiled components, they need to be stored 'locally' to the UD6 instance.

Here are some example settings:

USYS$UD6_PARAMS = compiledate cache file, makefiles enable wait filename .\makefile.mak, asnfile .\UD6.asn, notimestamp all, nocompstamp enable, forcedate cache file, mmf files 1024, config C:\usys72\Bin, option pack C:\usys72\Bin\mhgfp140.dll

Initial TIMESTAMPs.

If you configure UD6 to remove the TIMESTAMPs from the XML files, when you import your source, all the timestamps will now be the import time/date.

If you are using UD6 on Windows to import your source, you can use the forcedate cache set setting to automatically set the last modified date/time of the XML file to the date/time Uniface supplies in the UTIMESTAMP field:

USYS$UD6_PARAMS = compiledate cache file, makefiles enable wait filename .\makefile.mak, asnfile .\UD6.asn, notimestamp all, nocompstamp enable, forcedate cache set, mmf files 1024, config C:\usys72\Bin, option pack C:\usys72\Bin\mhgfp140.dll

Only use the forcedate cache set setting during import. After the import is complete, change the setting to forcedate cache file

Steps to installing UD6

Step 1 Modify your configuration file(s) to load UD6 DLL.
Step 2 Modify ASN [SETTINGS] and [DRIVER_SETTINGS].
Step 3 UD6 configuration files.
Step 4 Modify ASN [PATHS] and [ENTITIES].
Step 5 Initialise the UD6/CMtool repository.
Step 6 Prepare repository export.
Step 7 Import repository into UD6/CMtool.

$Revision: 1.3 $ $Date: 2015/07/01 06:11:49 $[go to top]