Version History Download
latest version here
Version 2.54 Gold: Released August 9, 2011
- Fix for 16385 size logfiles (was chopping off the last char in a 16385
Version 2.53 Gold: Released July 13, 2011
- Support for FM3 4.92 (FM3Upgrading and FM3SettingVar threaded, so moved
to the ThisRep class - from the global unthreaded class).
- Assert (debug mode) if no GUIDKey is found on a table.
Version 2.52 Gold: Released January 26, 2011
- Fix regression in 2.51 - %ABCGlobalsDefinedExternal was not always
Version 2.51 Gold: Released January 11, 2011
- Support for Clarion 7.3 projection.
- Don't project cwutil.clw if exported externally.
- Support for INSERT in the ReplicateFileChange code template.
- Replicate_CreateSite control template supports a specific ini file
- Replicate_CreateSite control template places non-standard incoming
directory in the child site ini for direct rep sites.
- Template - use %ReplicateObject instead of ThisRep for all instances of
referring to the Replicate class.
Version 2.50 Gold: Released August 25, 2010
- Debug to logfile for service apps (LogManagers). Also logs errors in
- SelfService tpl support - automatically codes 'DebugToFile' when LM is
running as a service.
- SelfService tpl support - CheckDirectory does not perform directory
check if a UNC path is tested. Leave for the copy to fail, so that error
handling can be reported.
- Added embed points to the procedure routines in the ControlCenterServer
- Documented LM support in a Service (see
Version 2.49 Gold: Released August 19, 2010
- Tpl work around for C7.2 - Was not projecting the correct dos driver
always, so use C70dos%X%%L% for both local and stand-alone compiles.
- Added name attribute to the Encrypt class procedures and methods
(resolve clash with NetTalk in C7.2 in local-mode)
- New method - Lock - handles locking of files with appropriate error
- Tpl change - ReplicateControlCenterServer control template has a tpl
switch to disable code generation.
- Work around for C7 not supporting routines declared in a local class
Version 2.48 Gold: Released April 27, 2010
- Tpl fix - Was not restoring TimeBetweenTransactions between
Version 2.47 Gold: Released January 18, 2010
Key Features: Rollback call addedin FunctionDone method.
GetGUID method changed to only include alphanumeric chars, and $ char. Fix for
- Object change - call to self.rollback added in the functiondone method.
Derived template code to rollback changes.
- GetGuid method changed - only uses alphanumeric chars (upper and lower
case) and $. Java compatible - and strings don't have to be binary in SQL
- AddToLog - default number of tries changed from 10 to 20 (Template
change allows you to change this at the template level)
- PrimeSiteField - duplicate external method name removed from the one
method (causing error in C7.1 compiler)
- MySQL support - verify connection before writing change support.
If a connection times out, then the connection must be re-opened before
- Default time between process times - tpl can allow user to override time
(and save overriden time or not).
Version 2.46 Gold: Released June 11, 2009
Key Features: Memory leak fix, use Site Alias file for
Replicate methods in the LogManager.
- Template option and class implementation to cater for a working REGET in
the MSSQL callback (was not working up until 9057).
- Template can use an alias file for the sitefile (in the LogManager to
prevent the browse from getting confused).
- Fix - AutoProcessLogFiles calls close for the sitefile when done
- Template Tweak - LogManager Controller template (for your application) -
allows handcoded call to start the Logmanager
- Fix - includes the cwutil.inc file if it's not already included. Older
versions of C6 included this automatically.
- Template change - remove superfluous SiteFileField prompts in the template.
- Class change - DeRegisterByID called by the DeRegister and Kill methods.
Duplicate code, was not completely duplicated, causing a memory leak.
- Class change - incorrect syntax when verifying if a file was extant in
the archive directory (when using the archive function, and recalling an
Version 2.45Gold: Released November 26, 2008
- Fix template regression in 2.44
Version 2.44 Gold: Released November 26, 2008
- Tweaks for Clarion 7: includes the cwutil and various lib files required.
Version 2.43 Gold: Released November 10, 2008
- Clarion 7 compatible install.
Version 2.42 Gold: Released October 23, 2008
- zLib Class Change - prefix variables and filenames with
zLib: - make the names unique.
- Class change - free internal queues - reduce pointers (to internal
queues and handle variables)
- Class change - omit the '/' char from GUID generation (this is the
escape key in SQL).
- Class change - Checkdirectory supports cstring or string (depending on
the field used in the dct) - was taking an any handle. Suspected memory
- Template Fix - support for Clarion7
- Template change - FTP windows use the Replicate object setting (not
another template setting).
- Template change - remove the 'Do Send and Receive together' option.
Version 2.41 Gold: Released February 7, 2008
- Class Fix - GPF in criticalsection - was disposing
while another thread was in a wait. CriticalSection is changed from pointer
to a class, removing the need for new and dispose.
Version 2.40 Gold: Released January 22, 2008
- Template Fix - FTP - if timeout on a quit/connection
close - then the FTP window was not closing.
Version 2.39 Gold: Released August 31, 2007
- GetGUID method changed - only generates GUIDs with printable characters in
the field. This is a workaround for the Clarion browse duplicates issue -
but saves helps by removing the requirement for SQL GUIDs to be binary (so
they can be char fields).
- Handles MSSQL duplicate errors (i.e. errorcode 90) correctly.
- New class property - methodname, which (if set) will log into the
logfile from which method the logfile entry was made.
- Template Fix - check for RepGLO:Site is no longer case sensitive.
- Template Fix - when Replicate was adding files (from relationships to
replicatable tables) - the RepSuppress was not being checked for.
- Template Fix for FTP - remove old temp files (from mysite) when
uploading (from old failed uploads).
- Template Fix - Add FilePrefix to browse variable. Removes ambiguity.
- Template Fix - don't assert on arrays that are over a non-dimensioned
field (replicate does not support arrays - but arrays over another field are
Version 2.38 Gold: Released February 27, 2007
- Fix - memory leak (when inserting a record into logfiles, the created
string was not always disposed)
- Fix - requesting records in a CRC check was limited to 64KB of requests.
Allow request file to be built up until RC check is finished, and then sent.
Version 2.37 Gold: Released February 5, 2007
- Fix - memory leak
- Template Change - template created loc variables are generated with
RepLoc prefix (instead of Loc).
Version 2.36 Gold: Released January 25, 2007
- Fix regression in 2.35 - trying to include a Secwin4 include file.
Version 2.35 Gold: Released January 24, 2007
- Fix - new LogManagers did not have %LogSite template variable in history
(only for those creating an LM without the TemplateUtility).
- Fix - Some Multi-DLL settings.
- Template change - if SiteFile defaults weren't set (when Replicate was
added before adding the SiteFile to the dictionary) - then SiteFile settings
will be added to the application.
- Template change - set ProcessThread variable in AfterWindowOpening and
clear in AfterWindowClosing embed points.
- Template change - disable Export Site button if CRC and Sync controls
are disabled at the child as well.
- New template to generate include file for table declarations (used in an
external DLL to generate an include to be used for Replicate support in an
- Fix - CRC check - was only requesting the first few hundred different
- Class change - allow command line setting of Number of tries (inserting
Version 2.34 Gold: Released September 11, 2006
- Added a property to enable the procedurename to be logged with the log entry in the logfile.
Version 2.33 Gold: Released August 17, 2006
- In some legacy apps, %FirstFileDone template variable was not being declared in time.
Version 2.32 Gold: Released July 26, 2006
- Improved documentation for Calculated values.
- Implemented StampVersion into default clw (to show what version Replicate
is compiled with)
Version 2.31 Gold: Released July 25, 2006
- Fix - for CStrings - was not stamping in file when only a space added to the end of a CString.
Version 2.30 Gold: Released July 24, 2006
Upgrading from 2.03 or before? Check out the Upgrade note in
Version 2.22 beta: Released July 18, 2006
- Added a parameter to the IgnoreField method to indicate what action the
Replicate class is performing on the table.
Version 2.21 beta: Released July 11, 2006
- Regression in 2.19 - was not storing Memo history variables, so memo
values were being written into logfiles, even if no change occurred.
Version 2.20 beta: Released July 11, 2006
- Fix for CSTRINGs - was clipping them instead of using the length (this
meant that trailing spaces were chopped off).
Version 2.19 beta: Released July 4, 2006
- Improved documentation for Calculated Totals in application
- Improved examples (included a Calculated Totals, as well as the LogManager
Controlled from the application).
- New Property in the tables q - LastRecordStr and StoreMemos and
RestoreMemos methods added.
- StoreBuffer is no longer called immediately prior to the record deletion
in logfile import.
- StoreMemos,RestoreMemos and LastRecordStr are used in the duplicate
checking rather than StoreBuffer and RestoreBuffer - this means that the
original values before the import are preserved for use after the file
action (for handling totals, etc).
Version 2.18 beta: Released June 26, 2006
- Fix - Regression in 2.15 - if deriving a method, SetFamily was not called
in OpenFile correctly to determine ABC or legacy application (in Clarion6.0
Version 2.17 beta: Released June 22, 2006
- Fix - Regression in 2.15 for applications where the SiteFile is suppressed
(from Replication) - a GPF occured.
- If a file is not registered, and Replicate tries to open it - was GPFing
in ABC applications. Now displays a warning (if warning messages are
enabled). Using an old version could exhibit this type of behaviour (where a
file is used in the logfile, but is not registered in the LogManager).
Version 2.16 beta: Released June 21, 2006
- Fix - for archiving feature. The Replicate enabled application checks the
archive directory for subsequent logfiles before creating them.
method takes 3 parameters (allowing you to perform some action prior to
the change being imported into the database).
Version 2.15 beta: Released June 20, 2006
- Common equate used for maximum number of support fields in a file (uses
MaxNoOfFields - currently set to 512).
- CRC File check fix - in some cases was including suppressed fields in a
- Optimized File CRC check - uses array to determine fields suppressed
(instead of looping through a queue each time)
- Fix - was trying to include c55util.inc in Clarion6.0 applications.
- Template File Q - was not allowing sortable table order. Changed to
numbered template q.
- Fix - when using the tables list as the list to replicate, was populating
the tables twice.
- Fix - If WinEvent is not added to the LogManager Controller, then don't
use the ds_HideWindow function.
- Fix - external graphics copy (where using a global variable for the path)
- the embed point was in the incorrect place (regression from an earlier
version of Replicate 1.62) - was checking for existence before the variable
Version 2.14 beta: Released June 14, 2006
- Tweak to support increased fields in version 2.13.
Version 2.13 beta: Released June 12, 2006
- Increased max number of fields in a single table that Replicate supports
from 255 to 512.
Version 2.12 beta: Released May 24, 2006
Version 2.11 beta: Released May 18, 2006
- Template fix - for LogManager that uses the Data DLL of the application.
If Compression and\or Encryption was turned off, then the LogManager was not
importing the log files.
- Template and class change - callback de-activated in the LogManager
(except for the SiteFile where it is required to be replicated) as no file
changes need to be detected (all changes to the logfiles are written
directly to the logfile when a logfile is imported). If you have other
routines in the LogManager, then you need to check the Force All file
logging in the LogManager (on the Advanced tab of the Replicate global
extension template of your LogManager). This makes for a huge speed increase
in importing and exporting logfiles.
- Class change - CRC import optimized - GUID field is uppered (when
generating into the CRC file output) - which means that when searching for
the GUID field, it is no need to upper the FileString when searching for the
- Class change - don't CRC an alias file.
- Class change - length of string variable used in FileCRC in order to
minimize the use of Clip when comparing strings.
- Class change - in CompareCRC, if the SiteID stamp is missing from the
logfile, then use the CRClogfile name (first 4 chars).
- Template and property change - property to ignore the abort received from
the ControlCenterServer (IOW - if you want to be able to turn this control
on\off at runtime for specific sites).
Version 2.10 beta: Released April 5, 2006
- Template fix - was setting BLOB size to 0 when adding a record to a file
that was not autonumbered by the dictionary (i.e. on SQL backends).
- Template change - removed tahoma font setting on the template prompts (for
legibility on non-ClearType machines).
Version 2.09 beta: Released January 25, 2006
- Object Fix (GetGUID) - regression introduced in 2.04 - was possible to
have duplicate GUIDs.
Version 2.08 beta: Released January 20, 2006
- Template Fix for Clarion63 (was linking in the incorrect file driver
c63dosx.lib instead of c60dosx.lib).
Version 2.07 beta: Released December 22, 2005
- FileCrypt - file encryption moved to the encrypt class.
- EncryptString, DecryptString methods deprecated.
- Template change - Tables to Log (In Data Tables tab) - checks for
duplicate entries, as well as disabling Sitefile entry and tables with the
RepSuppress UserOption added in the dictionary.
- Template change - Re-populate list with all files allows easy complete
list population (of the dictionary tables).
- Template change - the order of the Tables to Log list is the order that
the tables are exported to the logfile (when a fullexport is executed).
- Template change - if exclusive file access for manual import is selected,
then flush after each table is imported (instead of a flush at the end).
Version 2.06 beta: Released December 9, 2005
- Fix - also use Stream and Flush in legacy applications when requiring
exclusive access for database tables when performing a manual logfile
Version 2.05 beta: Released December 5, 2005
- Fix - regression introduced in 2.04 - flush removed from insert method
could cause unsequential entries into the logfile.
- Fix - when using Email (and not FTP) - was not entering the email address
correctly into the respective field in the sitefile in the AutoCreateChild
Version 2.04 beta: Released December 2, 2005
- Optimized some of the procedures (AUTO on LocParameters in the
Filecallback methods, pass string from Import to ProcessLine so that we can
use implicit string array instead of clip for importing, extra lower string
created in ProcessLine, so that we don't have to keep lowering the passed
- GetGUID method changed to support OEM collated files (OEM converts strings
to ANSI, so the GUID fields were being converted, and incorrect entries were
appearing in the logfiles). The GetGUID method now only uses OEM neutral
characters to ensure no corruptions.
- Change exclusive access to stream and flush (rather than logout and
commit) when manually importing (much quicker). OpenFile method changed to
receive a parameter as to whether shared access or exclusive file access is
- LogDataSize is changed to 16382 (from 4096).
- ProcessWindowControls template fixed (where controls that aren't required
are deleted - don't reference these controls in the template generated code)
Version 2.03 beta: Released November 21, 2005
- cszlib Fix - clears the error flag at the start of compression and
uncompression (in case of previous error occurance).
- Change - Export to new child can be suppressed (from being logged). First
import file is changed to xxxxdatf.log (was xxxxdata.log like a normal
complete export). Set in AutoCreateChild control template.
- New method - ProcessLogFiles (handles the complete process instruction
that used to be template generated code).
- Fix for dimensioned fields within a dimensioned group.
- Fix - MakeMissingLogFiles for legacy (was using ABC code in certain
- Template change - ProcessLogFiles, Export, Import, CRC Check and Sync
control templates have been merged into one template
ProcessWindowControls Control Template and will be superannuated in the gold
- Utility template structure changed - 2 new utility templates to facilitate
importing of peripheral windows (as apposed to the entire LogManager).
- Template fix - was using ThisRep and ThisRepGlobal in some code (instead
of the template variable)
Version 2.02 beta: Released October 21, 2005
- Fix - When Replicate is inactive GPFing on a second call to a thread
(exposed by the inited property moving to the global class in 1.99).
Version 2.01 beta: Released October 20, 2005
- Feature - Supports LogManager control from a menu in your application (new
extension template LogManager Control from Application which you can add to
a procedure). This makes it easy to abort, pause and start auto-processing
from your application. Check out the new examples in the
- Fix - if not close on Abort in processing, then reset the AbortNow
property when processing is aborted.
- Fix LogManager - if Processing, then don't close down until abort is
- Feature LogManager - if required, the LogManager closes when
Version 2.00 beta: Released October 18, 2005
- Feature - Supports
abort in processing
(new property in global settings class).
- Changes as a result: Don't save filename if aborted (and returned blank
filename), CopyIn takes an option parameter - deleteafter copying, only if
import is successful, otherwise (if aborted) the file is left in in the
incoming directory, to be imported next time. ProcessLogFiles code template
change - allow LogManager to be closed after processing when abort is
received in mid-process. On abort, progress is saved where the logfile is
aborted at, so that import begins at the correct place next time.
- Fix - legacy template caused accepted embed on some buttons to be removed.
- Feature - New debug properties that you can set at runtime (also new
control template to set these properties). Makes debugging much simpler.
- Optimization - only enter FileCallback methods for the opCodes that we're
interested in (otherwise bail out immediately).
- Change - Allow incrementing/decrementing of flags in SetGlobalSetting
method (use '+' and '-').
- New control template - Local LogManager Controller controls (control the
LogManager externally - making process abort seamless). New template utility
to create this external application.
- ControlCenterClient template redesigned to be on the Frame (although still
backward compatible) - allows control of the processing from a different
- New Global class property - 'Processing' set and cleared before and after
processing (to indicate to other threads whether the LM is processing.
- ControlCenterServer - abort, show and hide controls added.
- ControlCenter (Client and Server) - allow option not to save session to an
INI file (i.e. use fixed values).
- Control Templates (ControlCenter) - allow deletion of controls (if not
required) - template code gets omitted for controls that are deleted.
- ControlCenterServer template connect button rtn fixed - was disabling
Process and GetStatus buttons as well.
Version 1.99 beta: Released October 5, 2005
- Fixed regression in 1.92 which was a workaround to cater for the
FileCallback bug in Clarion6 - which introduced problem with hanging in
Clarion6 (because of thread locking). FileCallback moved back to the
threadedclass, and the necessary properties are moved from the threaded
class to arrays (one for each thread) in the GlobalClass. Properties
affected (at this stage) are inited, inside, logoff, and TempOpened. New
property - ThisThread to store the thread of the current class. This means
that no critical section is required in the FunctionCallback - which
eliminates the hanging. C55 coding is affected, but not operation stays as
- Fixed - if replicate is disabled (for GUID generation only) - then inside
property was not being reset after the active property test in the
filecallback - causing no GUID generation.
- Template Fix - populate template files q immediately before registering
files - affects where relating files are suppressed (or IMDD tables).
- Template Fix - %RtnParameter routine caters for functions.
- Change - yield() in CloseLogFile routine (in open method).
- Fix - if derived code in FileChange method makes changes to a table, then
upon returning, self.q's buffer is refreshed to contain the original file
- New - omit specific records from Replicate - ignorefield is included into
GUID testing, enabling a record (based on a GUID) to be ignored.
Version 1.98 beta: Released August 30, 2005
- Fixed regression in 1.96 - was causing Clarion IDE GPF when going to
global embeds - WinEvent build variable will be moved to system variable (so
that test does not cause GPF).
- Fix - returning ANYs was not a good idea as the memory was not being freed
- LogManager (in particular) - was eating more and more memory. Created
strings returned and disposed (using the _StringHandle property) at the
calling procedure. Methods affected: Insert, PrimeString, Export,
SearchAndReplace. Note: If you are calling these methods in handcode, then
you need to dispose the returned string
- Fix - ANYs cleared before returned (to free up memory).
- Change - GetGlobalSetting returns a string (rather than an ANY) - in order
to prevent memory leakage.
- Fix regression in 1.96 - no break out of loop when file is missing and not
- Change - Status of Error message 30 downgraded to warning (rather than
critical) - because mechanisms in place to create missing logfiles.
Version 1.97 beta: Released August 17, 2005
- Fixed regression in 1.96 - was asserting in Site-related tables, even for
non-Site distributed site-trees.
- Fixed error in CRC check where no records exist in a table at one site
(but are at another).
- Fixed error in Site-related data where number of records in a table (at
parent) shouldn't match number of records in a site's table.
Version 1.96 beta: Released August 16, 2005
NB: For those who've derived and
handcoded the IgnoreTables method,
you need to apply the changes to this method (using the pImporting parameter).
- Feature - runtime setable
- Feature - optional automate CRC check issued on missing logfile (requires WinEvent)
(previously was either synchronising or making a blank logfile).
- Fix - bestkey (site key) - searches for first unique key that has a
site-related component (as it's primary) before searching through duplicate
keys. Site-related tables must have at least one key (preferably unique)
with the Site field as the primary component - and this key must be in the
backend (FM3 can disable key generation in the database, although it can
exist on the app end).
- Fix - if LogManager a previous logfile is deleted/corrupted, and no
succeeding logfiles have been sent, then don't wait for request from
relating site (as none will be generated).
- You require WinEvent version 3.29 (at least) for new LogManager apps that
- Template code for CRC check with other site moved into a method.
- Class change - new OmitFileQ - stores a list of files to omit, including
- Methods changed -
(includes a directional parameter, and allows fields to be omitted, thereby
pertaining to the whole table),
(includes directional parameter),
(includes a site parameter that requested the missing logfiles).
- New method -
Replaces superannuated template generated code.
- IgnoreTable is also called from the Export method. IgnoreTable method
cycles through the OmitFileQ to see whether the file is disabled from
importing or exporting.
- Fix - deRegister does not dispose the file q, also deregisters the
callback for the deregistered file.
- Added yields into those windows that were yield free.
Version 1.95 beta: Released August 8, 2005
- Fixed - Receiving a PauseTimer/StartTimer from the ControlCenterServer,
posts an event to PauseTimer control instead of just changing the state of
- Fixed - Clears arrays before importing - regression caused previous values
to be continued to a next entry (where those values were clear).
Version 1.94 beta: Released July 22, 2005
- Fixed - ReceiveFTPControls does not was Replicate vars in the template (in
order to support external use). Allows window to be hidden.
- Fixed - %SendFTPSilent unknown variable error in ReceiveFTPControls control template.
- Feature - Added progress bar to SendFTPControls template
- Workaround for %RepDefaultTransportList error.
- Feature - template assert generated when SendFTP or ReceiveFTP procedure
parameters are incorrect.
Version 1.93 beta: Released July 13, 2005
- Fixed a bug in the encryption routine.
Version 1.92 beta: Released July 12, 2005
Note: For Clarion55 users - you will see
an error message the first time you open your LogManager:
Unknown Variable: '%RepDefaultTransportList'
Please don't be concerned about this - basically in C55 a #prepare (where this
variable is declared) is only run after
the variable is assigned for template use.
- Interface (to Function callback class) moved to global class (for
Clarion6). This is
because the methods are always called on thread 1.
- Receive and Send FTP control templates are not dependant on the existence
of Replicate (genericized). Uses Replicate properties if Replicate is in
- Only call Quit from SendFTP or ReceiveFTP if the connection was opened -
otherwise just close the window.
- Improved CreateSite control template - Adapts Global Template settings to
display selective controls on the window and force settings where necessary.
Also expanded to allow Oneway Replicate selection.
- If no files to transfer, then generate error message (if required).
- New method (in GlobalClass: EquateLocalClass) to assigned the
GlobalClass's pointer to the correct local class.
- FunctionDone and FunctionCalled locked - EquateLocalClass is called
immediately after the lock.
Version 1.91 beta: Released June 23, 2005
- Fixes Auto-Create missing logfiles (if no archiving is used).
- CreateChild control template
supports Replicate Direction Selection and template selected Site Data Range Selection.
- Fix MoveFiles method - When moving files out, first check if exists,
before StampEOF and attempting to copyout.
- Fix GetFromArchive method - parent call changed to return 1 (error getting
from archive). If no archiving, then error is generated. (Template generated
code returns 0 when successful before calling the parent method)
- Fix RestoreBackup method was expecting a 1 if GetFromArchive was
successful - should have been expecting 0 for success.
- Change - MakeMissingLogFiles makes all missing logfiles, even if the 'Full
Export to first missing logfile' is unchecked.
- TPL Change - support for DontSendFiles flag addition to the MSG file.
- TPL fix - DontSendFiles was not sending CRC check message files to
- Change ConnectionDetails method - allows a flag to determine if the new
site's DontSendFiles flag must be set or not.
Version 1.90 beta: Released June 16, 2005
- Fix for Control Center Client\Server - implements poling to ensure the
communication line is sustained between client and server.
Version 1.89 beta: Released June 15, 2005
- New Feature - CRC database comparison and limited synchronisation
(addition of WinEvent and the
CRC Check control template required in your
- Template fix - LoadFileToString returns -1 if error loading a file to a
- Template fix - CRCCheck stipulates if site range is used (call to FileCRC
- Class Fix - Import method sets siteID correctly if not automatic import
(i.e. data or datc import).
- Class Fix - RestoreBuffer in HandlePotentialDuplicates whether duplicate
found or not.
- New Method - GUIDFieldToString takes a GUID value and converts to a
- Class Fix - FileCRC - don't apply site limit if SiteLow is set, but SiteHi
is; Clear RxCRC and FoundThere flags if not in requesting database.
- LoadCRCStringToQ - clear FoundHere and OurCRC flags when importing CRC
- CompareCRCFile - free CRCCheckQ after comparing; open and close data files
Version 1.88 beta: Released June 9, 2005
- Template fix - move setting of cszLib.silent property to where it's set in
each thread (instead of once).
- cszLib (v1.14) fix - for when attempting to get a record that is held.
- Default SendEmail and ReceiveEmail procedures (in the Global Extension
- Template fix for Clarion 6.2 (an ABC class property is made private)
- Template fix for IMDD file (where IMDD is written back to the file).
Logging is disabled.
- New methods (csLog): RestoreBuffer, PrimeString ; (csLogManager):
StringToFile, FileCRC, RestoreGUID, AssignQueue, DisposeQueues,
CompareCRCFile, LoadCRCStringToQ, LoadFileToString, ImportDataSet,
ImportCRCDataSet. These methods are all in place to support complete CRC
database comparison (future feature - which requires WinEvent).
- Template fix where NoOfFilesRequested is not used (causing a compile
- Template change - force FTP to make directory.
- Template change - SendFTP and ReceiveFTP source procedures have been moved
to control templates.
- Template fix - If AllowFTP is unchecked, then when auto-creating a direct
child site, the directory was not filled into the respective field in the
- MoveFilesIn method change - Cater for receiving CRC files and Data
generated from CRC request files.
- Import method change - Cycle in import loop (for a specific site) if
EndOfFile on the last file imported - otherwise break out.
- ProcessLine method change - cater for CRC datafile clash (with existing
file) - duplicates should be deleted at the slave site - so that imported
records will be added correctly.
- RestoreGUID functionality moved to a method (for re-usability purposes).
- PrimeLog method superannuated (although still supported for backward
compatibility) with the PrimeString method.
- GUIDFieldToText - allow an extratag to be added into the GUID field tag.
- Requisition method - primary tag rectified when not Inform (where pInform
parameter not omitted).
- ReceiveRequest method - modified to cater for CRC request file.
- Open method - parameter added to force a new file creation.
Version 1.87 beta: Released April 20, 2005
- Template change - a template option to generate GUIDs only (i.e. make
- New method -
- allows you to programmatically override critical errors in order to
continue importing should an error be non-critical.
Version 1.86 beta: Released April 15, 2005
- Template change - use TryUpdate instead of update (v1.85 did not replace
all instances of Updatein the template).
Version 1.85 beta: Released April 14, 2005
- Template fix - variable syntax error in ControlCenterServer.
- Template change - use TryUpdate instead of update.
Version 1.84 beta: Released April 13, 2005
- Fix - cater for CRC pos when partially importing files (last pos included
- Fix - abort import if critical file error occurs when applying logfile
changes (last successful write pos is saved and logfile currently being
imported is left in the incoming dir). ProcessLine method requires a
progress variable, which it updates.
- Template Change - use TryOpen for files - also reset openmode if file open
fails (bug in ABC code).
- Template Change - extra embed point in ControlCenterServer process code to
handle customized commands.
- Fix - locking in commit (if committed and logfile EOF stamped, then new
logfile was 'unlocked' and old file was left locked)
- Fix - check GlobalSettings pointer is still set before checking active
property, otherwise a GPF will incur if the kill method is called twice.
- Fix - Set logpath to an absolute path if the path is relative (when
logfilepath is set) - this means that changing the path at runtime won't
effect a relative logfilepath setting.
- ControlCenter Client - sends Replicate version and Date and Time of last
and next process logfiles.
Version 1.82 beta: Released April 6, 2005
- If compression fails - and this is an outgoing logfile, then remove the
logfile from the outgoing\Site directory (otherwise the uncompressed logfile
- cszLib change - if open fails, then return an error. If file created, but
not opened, then delete the file and return error.
- cszLib Change - if ErrorLogFile name property set, then log errors to the
specified error file (the silent property must be set in order to do this).
Version 1.81 beta: Released March 31, 2005
- cszLib Improvement - retries open, close and create if initial
- Fix ControlCenterServer template utility.
- Fix ControlCenterClient template reference to browse's queue.
- If NetTalk is disabled on the BrowseSites window or Replicate is disabled
globally, then don't generate code for the ControlCenterClient.
- If an unknown Site connects - display and allow control over that site
(for new sites).
Version 1.80 beta: Released March 30, 2005
Version 1.79 beta: Released March 24, 2005
- Template Fix - Optional Replication - support for legacy applications.
- Template Fix - compile error when using the AutoCreateChild site in a
Version 1.78 beta: Released March 23, 2005
- Template Fix - Multi-DLL (for optional Replication) - allow setup in
- Template Fix - LogManager template where LogManager uses the DataDLL (was
- Template Fix - LogManager was not setting RepGLO:Site for optional
Replication in a Multi-DLL setup.
- Template Fix - set Silent property (in cszLib class) when Warnings are
suppressed in the template (this will suppress warnings in the zLib class as
Version 1.77 beta: Released March 18, 2005
Version 1.76 beta: Released March 14, 2005
- Fix - when SetGlobalSettings is called, if the global class pointer is not
set, then set it (was causing GPF if class pointer wasn't set).
Version 1.75 beta: Released February 16, 2005
- Fix - when writing to a logfile that is not open (exporting - leads to an
- In Open method - only reset self.opened if close(file) is successful.
Retry if close fails.
- In Close method - only stamp EOF if file is open.
- New method - Insert to handle a generic insert to a logfile.
- Fix - If Commit is issued when the logfile is closed, then initial write
Version 1.74 beta: Released February 14, 2005
- Removed use of CSTRINGs (causing spurious errors) where not completely
- Fixed template error when using Status without the Status counters.
Version 1.73 beta: Released February 8, 2005
- Fixed erroneous template variable.
Version 1.72 beta: Released February 2, 2005
- Work-around for ASCII logfile viewer in example applications (bug in
Clarion template was causing GPF) and txas.
- New method -
a thread safe method for getting a global setting.
Version 1.71 beta: Released February 2, 2005
- Fixed legacy GPF in Clarion6 applications.
- Install moves old examples to clarionx\3rdparty\examples\ReplicateOldEgs
to avoid confusion with the new example structure.
Version 1.70 beta: Released January 31, 2005
- Updated docs to reveal property changes and steps to change these properties.
Version 1.69 beta: Released January 27, 2005
- Fix for Multiple EOF stamps at the end of a file (regression in 1.65)
- Fix for empty logfiles stamped (regression in 1.65).
- GlobalSettings class introduced into Clarion5.5 applications. Properties
restructured (this will create some
compile errors initially as some
properties have changed from the threaded class to the Global class).
- RepGloClass changed to GlobalSettings class. Some properties that were
global in the threaded class, are moved to the GlobalSettings class. Some
global properties that will not change have a copied property in the
Threaded class. This means that you can access these variables without
locking the thread. The properties are copied in the Init method.
- Clarion5.5 also uses the GlobalSettings class (although both classes are
unthreaded). This means that upgrading from C5.5 to C6 will require no
changes (with regard to Replicate).
- New method (SetGlobalSetting) - used to set a global property. This makes
the setting of GlobalSettings thread safe (in c6).
- CRC option removed - logfiles will always be stamped with a CRC.
NoCheckEOFEveryTime removed as well - always check when writing to the
- CriticalSection object created (newed in Init if null).
- Fix - StampEOF was comparing to old empty logfile size, instead of XMl
header as well. This means that blank logfiles are used.
- Fix - CheckEOF was checking the wrong file in some situations.
- Fix - CheckEOF was returning an invalid data if no file was found (rather
- Properties Affected: Moved from Threaded to Global Class (can be changed
using the SetGlobalSetting method): TranslationFile, LogFileName, Silent,
SuppressWarnings, SuppressCritical, active. Properties with copied to the
Global Class (these are only set once at runtime): Machine, SiteFieldID,
LogFilePath, Site, ParentSite, LogExtension, SettingsFile. Properties
removed from the threaded class (obsolete): NoCheckEOFEveryTime,
MakeXMLFiles, SettingEOF, StampCRC.
Version 1.68 beta: Released January 25, 2005
- Full data export defaulted to 0 - creates problems for big sites where
logfiles have been skipped.
- SiteSync - clears NoOfFilesRequested and LastLogFileNoRequested counter
when a sync is issued for that site.
- Checks relating site's Outgoing Directory exists before doing an
- Resets flag if there is an error closing the logfile (i.e. not open, etc)
- unless in the middle of logout and can't close the file.
Version 1.67 beta: Released January 21, 2005
- You need to import the new LogManager routines (preferably create a new
LogManager, or else do a partial import of the Replicate windows).
- Template - new compile flags for FTP: Exists, Overridable, ShowSettings;
and StatusFlag existant.
- Template - correct embed point for hiding controls in SiteSettings control
- New template utilities (x2) - supercedes the previous template utilities
- New control template - AutoCreateChild site. This control template
supercedes the old coded routine.
Version 1.66 beta: Released January 14, 2005
- Fix - Moved LogFileNumber and LogFileDate priming into Configure method
(was only checking in Open).
- StampEOF - if a 0 date is passed, then don't stamp EOF.
- Feature - handles file changes from sites with an old version. (Use the
FM3 oldname attribute when changing a fieldname in order to utilize this
- New method (ImportFullDataSet) to handle full data import.
- Changed TagReceived method to receive a long handle - the where ID in the
record structure of the file. Caters for oldname setting in the template.
Version 1.65 beta: Released January 12, 2005
- Status of relating
logmanagers (and counter to indicate the amount of times logfiles are
requested from each relating site).
- Before moving requesting logfiles out, check to make sure that they have
an EOF stamp on. Fix to prevent an infinite loop between two logmanagers
(waiting for a complete logfile).
- Includes version 2.07 of BDE.
- Closefile method takes a debug parameter (to show from where it was
- Template change - generate code for setting status stuff in SetStatusFlag
- Fix - use a created loc variable in GetArchive - because pathname required
- New property - AutoMakeIfMissing. If Status flag is not used, then just
make the logfiles if they are missing when requested.
- If StatusFlag is used, then returnstatus(2) if a requested logfile is not
- If a relating site's status is 2, then keep requesting them to make a
logfile until we get the logfile.
- In derived SetNextNumber, reset Status flag to 0 of relating site.
- New methods: SetStatusFlag and ReturnStatus.
- Obsolete code templates deleted: ReplicateFileRequest and
- In MoveFilesIn - set status flag if a file is missed.
- Fix - StampEOF was calling open with the RepLogFileName and not the
generic name of the file that should be opened.
- Fix - CheckEOF was using the logfile, but should have been using it's own
definition if the logfile required to check is not the logfile.
- ReceiveRequest method handles StatusFlagChange and MakeLogFile requests.
- GetFromArchive (parent) - should have been returning 0.
Version 1.64 beta: Released January 6, 2005
- Automatic logfile reconstruction. If a logfile goes missing, this resulted
in Replicate falling over - now resurrects itself.
- Fixed - could miss a StampEOF in certain circumstances.
- Fixed - if error adding to the logfile, then try call open() - to handle
EOF stamp, etc
- Fixed - made StampEOF generic - which means that StampEOF does not use the
logfile structure to stamp an EOF.
- Fixed occasional error when importing changes to a locked file.
- New methods - generic open (to open and stamp logfiles), stampEOF (stamp
end of file into logfiles), CheckEOF (check end of file stamp in logfiles).
- New methods - GetLogFileHeader (returns the header for a logfile),
GetLogFileFooter (returns the footer to be stamped at the end of a logfile)
and MakeMissingLogFiles (makes any logfiles that are missing).
- AddToLog method changed - made generic to log to any file.
- GetFromArchive changed - can no longer create blank logfiles.
- Object change - put message when logfile cannot be found for export into a
- Object Change (GetSetting and AddSetting) - forces '\' onto dirs if they
are not present.
- Object Change (Commit) - if error when adding, then call the open method.
- Object Change - made logfile properties (number, date and time)
- Object Change - in ReceiveRequest - was closing the logfile, but this is
not required as we are not using the logfile.
- Upgraded Clarion5.5 versions to include the Global Settings object.
Version 1.63 beta: Released December 22, 2004
- Important Fix - fixed sporadic logfile skipping.
- New feature - Status setting in LogManager to determine status of relating
- New Feature - auto-create a blank or complete logfile, if a logfile is
- Important Fix - sometimes site was not being processed to.
- Important Fix - allow Message files to be sent through to a relating child
- Object Change - made LogFile variables into global unthreaded class for
- Object Change (Insert) - removed logfilenumber increment.
- Object Change (MoveFilesIn) - Status flag change
- Object and TPL Change - Openfile debug in openfile method.
- Object Change ( MoveFilesOut) - returns 0 when no error occurred,
otherwise a status.
- Object Change (ReceiveRequest) - statusflagchange and makelogfile - new
- Object Change (GetFromArchive) - if Creating file, then create in the
logpath and leave it there.
- New methods - SetStatusFlag and ReturnStatus.
- Template Change - set whether to export entire data to logfile, or create
a blank logfile.
- Template Change (AutoProcessFiles) - use pointer to ensure Site record is
Version 1.62 beta: Released December 10, 2004
- Template Change - checks external file exists before attempting file copy (and logfile instructions).
Version 1.61 beta: Released December 1, 2004
- Fixed Error in MoveFilesIn method. Was only requesting files from one site
(if logfiles required from two or more sites).
Version 1.60 beta: Released November 23, 2004
- Fixed template error when inverting SuppressedFile list - GUID generation
for Replicate files.
Version 1.59 beta: Released November 19, 2004
- Fixed import error (where GUID contains commas in the Site portion).
Version 1.58 beta: Released November 12, 2004
- Fixed template bug (Destination should have been pDestination).
Version 1.57 beta: Released November 11, 2004
- Export History Variables.
Version 1.56 beta: Released November 9, 2004
- New LogManager txa's (mod look and better default settings).
- New equate set if LogManager in SilentMode.
- New method - IgnoreTable,
which is called at the start of importing. This method can be derived to
prevent a table from being imported under certain circumstances.
Version 1.55 beta: Released November 8, 2004
- Fix for Multi-Proj support - Add zlib.lib link to Multi-Proj lib project.
- TPL fix - LogPath initialised in new site (if not stored in INI file).
Caused initial logfile to be stored in application directory (if setting not
stored in INI file).
- Improved GetSetting template generated code. First insert - all default
settings extracted from INI file. INI file settings are only used as
defaults, and ignored after SiteFile insertion.
- New method AddExtraTag - which is called in Primelog before entry end tags
- In Memory Driver tables automatically suppressed.
- Default option to do away with settable Incoming directory.
- New LogManager txa's.
- SiteSetupWizard window control template optional FTP obsolete. Also you
need to force the optional Incoming directory if you require a non-standard
Version 1.54 beta: Released October 29, 2004
- Fixed to use SiteSetupWizard when logfiles are stored in a place other
than the INI Setting option.
- In a delete - the StoreBuffer is called in order to save the current
values into history during import.
- RepMessage 63 - more informative message.
- Fixed the imported LogManagers to compile correctly on startup.
- Includes BDE version 2.03.
Version 1.53 beta: Released October 19, 2004
- Moved template equate into System template variable (Clarion6.1 regression).
Version 1.52 beta: Released October 18, 2004
- Fixed missing #fix for SiteFile.
Version 1.51 beta: Released October 14, 2004
- Fixed missing template variable %LogSite (removed instances referring to this).
Version 1.50 beta: Released October 14, 2004
- Fixed the use of the NoFTP so that the template ASSERT is correctly called.
Version 1.49 beta: Released October 8, 2004
- This release sees a revamp in the implementation of FTP transport which
proved difficult and needed ironing out. Vastly simplified and improved (check out the
FAQs for a couple of tips).
- NB: The arrival of the NoFTP field. If you use FTP, and don't require FTP
transport in all your sites, then you need to check this field at the sites
that are not requiring FTP transport. (check out the
FAQs for a couple of
- FTP / character is supported and endorsed, rather than the traditional \.
This is overridable if required.
- DontSendFiles field is supported at template level. You can add this field
to your SiteFile to prevent sites that must only receive logfiles from
- The Project Define has been replaced by an equate. This means that you
need to remove the project define (it can't be done automatically).
- New equates for conditional compiles (for the different transport
mechanisms). This makes your AutoCreateSite and SiteSetupWizard windows
Version 1.48 beta: Released July 20, 2004
- Multi-DLL setup in the Template improved. Also LogManager can use the
- cwutil.clw not projected in Clarion6.1 versions.
- ONCE attribute added to the various external files that are included.
- Error Message(30) added filename into message.
Version 1.47 beta: Released July 12, 2004
- Use Sleep API command (instead of yield()) when there's a clash writing to
- StoreBuffer after a PUT (incase of multiple PUTs to the same record).
- Correct stamping of CRC (for large logfiles where CRC stamp spans 2
- For Clarion6 (template) - allow Init method to initiate callback if active
is 0 - for GUID generation where replicate is not active.
- Allow ProcessLine method to be derived.
- Clarion6 - bypass Init in first construct - wait until Init is called
before Initing the threaded object in the construct.
Version 1.46 beta: Released May 25, 2004
Version 1.45 beta: Released April 30, 2004
- Support for Clarion 6.1 (some template updates).
- The active property must be set before calling the init methods (this only
affects those who coded their Init
and Kill calls manually - This is very Important because no Replication
will take place if you do not set this property). This makes it easy to make
- Fixed the SiteFile open error if you were not replicating the SiteFile.
Version 1.44 beta: Released April 30, 2004
- Fix (CheckDirectory method) - Create directory for paths containing Drive
- New Feature - Fields pointing to external files can contain the path to
the original file (a setting in the Replicate Global Extension Template - on
the DataTables tab).
- Improved Array support - Decimal arrays functioning correctly.
- Loop AddToLog a few times and if there is an error that occurs, try again.
Version 1.43 beta: Released March 19, 2004
- Template Fix - If OpenCloseOnce is used, then file is opened in the Init
method, and closed in the Kill method.
- Template Change - TagReceived Template generated code moved to it's own
- Template Fix - if external fieldnames are used for the SiteFile, then make
sure that these are used when generating a ConnectionDetails Message file
when creating a new child site.
- Template Fix - Peek all fields at once (instead of individually).
- Class Change - removed the GUID label in Register method - who was not
working correctly (for non-externally named SiteFiles).
- Class Change - RegisterArray, PrimeLog and ProcessLine methods changed
(for Decimal Array handling). Also Arrays primed properly before StoreBuffer
(when Update is imported)
- Class Change - yield in AddToLog incase there is an error in adding to the logfile - and try again.
- Critical Fix - if Replicate Manager is in silent mode, then import process
was not working correctly
- Critical Fix - Replicate Manager was sometimes not detecting the name of
the GUID field (clarion oddity) - forced name of GUID field to PRE:GUID, if
external name is not present.
Version 1.42 beta: Released March 15, 2004
- Template Fix - if SilentMode switch turned on, turns the silent property
- Template Change - passes the external or the actual name of the GUID when
registering the field.
- Class Update (New methods
- use this method to write to the logfile, and the latter to open the
- Class Fix (Import method) - If illegal tag was written into the file, then
it got stuck in a loop.
- Class Fix (ProcessLine & ReceiveRequest) - if in silent mode, then
still load lnlen with the length of the bytes read.
- Class Fix (ProcessLine) - if GUID name is still old name, then recognize
this as the GUID field.
- Class Update (Commit method) - lock the logfile when writing the entries
from the tempfile into the logfile.
- Class Update (Export method) - sometimes set(GUIDKey) does not set to the
top of the file, this means that not all records are exported to the
logfile. Check method added to ensure that all records are added in.
- New Feature - synchronize 2 relating sites.
- Bug fix - don't not import other sites logfiles if we're waiting to receive logfiles from a
Version 1.41 beta: Released March 10, 2004
- Class Change (MoveFilesIn) - cater for ASNC files (request for sync file).
- Class Change (MoveFilesIn) - don't abort importing file for all sites,
only that which is missing a logfile. Keep importing for the other sites.
- Class Change (ProcessLine) - carry over existing values in suppressed
fields (when performing an 'UpdateFull') - without clearing (as was
- Class Change (Export) - If synchronizing, then use UpdateFull rather than
Insert as the tag (this means that a complete update will be performed as
apposed to discarding the Insert if the record exists).
- Class Change (Requisition) - if ASNC file required, then use SiteASNC as
the filename. You can request all data.
- New method (AutoExport)
(also catered for in the template)
- New control template to facilitate the use of the Synchronize feature.
Version 1.40 beta: Released March 10, 2004
- Critical Class Fix - Auto-rectification of corrupt logfile counter (bug
introduced in version1.33)
Version 1.39 beta: Released March 4, 2004
- Critical Class Fix - Incorrect site stamping of empty logfiles cause a
subsequent import of the same named logfile to be erroneous.
- New feature - allows suppression of files as a user option in the
dictionary (RepSuppress). This means you don't have to create a suppress
table in each of your applications.
NB: If you are using FTP, then you
need to re-import the SendFTP and ReceiveFTP methods. These have better
error recovery (or else make the necessary changes shown in
- Fix - Attempt to export LogFile not yet created, was causing continual error in LogManager.
- Fix - Handles import of 0 bytes files (was skipping 0 bytes files -
causing data loss (this was happening on some FTP servers))
- Fix - requisition for first file was causing the file not to be sent.
- Fix - Avoid records written after the EOF in a logfile (occuring
occasionally when a stamp occurs between a check and a write)
Version 1.38 beta: Released February 13, 2004
- Class Fix (Import method) - exits with error if file imported 0 bytes.
- Class Fix (MoveFilesOut method) - Always checks logfile existance before
- Class change (Export method) - exports in GUIDKey order (instead of record
order). Makes comparing 2 databases easy.
- Class Fix (ProcessMovedFiles method) - cut extension out when processing
request from another site.
- Template Change - allows inversion of suppressed table list (so if only a
few tables must be replicated, you can use the list to list the tables that
must be replicated)
- Template Fix - When using the One FTP Site method, don't place a '\' at
the beginning of the FTPDir, when the FTPDir is blank.
- Template Fix (GetNextNumber code generation) - added check for LogNumber +
1 incase, someone else stamps the EOF as we're about to write to the
- Template Fix - calls SetProcedureName instead of SetProcedureName('') -
deletes the procedure name from the queue instead of writing a blank entry.
- Template Fix - changed name of FTP group in the Control template -
prevents compile error when disabling FTP. You need to delete and re-add the
control template to get rid of the compile error.
Version 1.37 beta: Released February 13, 2004
- Fix - when importing a file that contains throwaway records, memory was
not being flushed (until complete logfile was imported).
- Fixed missing char in line (causing occasional infinite loop in import
- Fixed importing of file changes where GUIDs have external names.
- New Feature - Archive logfiles.
Version 1.36 beta: Released February 9, 2004
- New methods (PutToArchive and BulkArchive) - Moves files to the archive
directory (derived method uses zLib to compress files).
- Renamed method (GetOldFile - GetFromArchive) - gets (and decompresses)
- Template and Class Change - If LastLogFileNumber is 0, then search the
LogPath for the last file, before assigning a number to the first logfile
(protection against restarting from scratch).
- Class Change - GetLastFileNumber, GetFileNumber, HexToLong and GetFileDate
methods all moved into the csLog class (to cater for the logfile search in
- New method (SortFileQ) - sorts the queue from a directory command into
Replicate file order.
- Class Fix (Import method) - if one char is returned, don't kiss it good
- Class Fix (ProcessLine method) - compare GUID with actual name of the
field (not the assumed name)
- Class Change (MoveFilesOut) - adjusted to handle the new archiving routine
(i.e. looks in the archive if it's not in the logpath).
Version 1.35 beta: Released February 6, 2004
- Fixed critical bug in import (introduced with method split in version
1.33) (class change)
- Fixed Array and MEMO change detection when External names are used for
these fields (template change).
- Improved handling of external files (like graphic files) - these are
exported with the data set.
- Fixed the array handling - eliminates erroneous values inserted into blank
arrays (where array types are numeric).
- Removed the template utilities to create a default logmanager (import bug
in clarion causing compile errors). You need to import the txa manually to
create the default logmanager.
Version 1.34 beta: Released February 3, 2004
- Object & Template Changed (Export method) - Can make Site specific
exports (for transport selection, etc) - and then send the files out (in the
Export code template
- Object & Template Changed (PrimeLog method) - to handle exporting
external files (pointed to in the data) as part of the data set.
- Template Changed - only sets RepGLO:Site if not set already. This means
you can set to a temp value (if Replicate is inactive).
- Template Fix - correct LoadSitesProperties - if DontCreate Relating site
directory is unchecked, then create the dir.
- Template Fix - correct array clearing when array is not a string type.
- Object Change (new PrimeSiteField method) - enables bulk priming of site
fields (where Non-Replicate site is upgraded to a Replicate site).
- Class fix (RestoreBackup method) - fixed order files are restored (after
the 65535th file).
- MsSQL work around - The REGET command does not pass through the
FileCallback. The entire record is passed (with an UpdateFull flag). The
best solution is to handcode a FETCH or GET command after the REGET command,
although this is not always possible.
- TPL generates XML friendly fieldnames into the log file.
Version 1.33 beta: Released January 29, 2004
- Class Change (FunctionDone) - Make Action UpdateFull if the History GUID
is <> CurrentGUID, and also if the FIleDriver is MsSQL.
- Template change - Change source generation of fields with the ':'
character to '_' - which makes this XML friendly.
- Template change - new utility templates to automatically import the
different flavours of LogManagers (making it easier to make your own
- Support for FM2 (previously only FM3 supported)
- Fixed the RestoreBackup method (was hanging in some circumstances)
- Fixed the GlobalFTP settings (specifically where the directory -
- Split the import method into 2 - import and Processline in anticipation of
the Online transport layer.
- New feature - allow de-registering of files.
Version 1.32 beta: Released January 27, 2004
- Template Fix - extended FM3 support to FM2
- Template Fix - compile error when using the csLogManager class (instead of
the csLogConnectionManager class).
- Template Fix - Using Global FTP Site - where the directory = self.site
(was clearing the FTP directory).
- Template Fix - export to a site (without site limitations) - was enforcing
- Class Change - Added parameter to the
method to allow value dependant checks for ignoring fields. Also added
functionality to ignore the entire record (instead of just the field).
- Class Change (new method
- allows deregistering of files at runtime.
- Class Change (new method
- the Import method has been split into two methods.
- Class Change (import method) - don't use AppendQ. If append flag is set,
then append to all files.
- Class change (RestoreBackup method) - sort byName instead of date/time. If
date was less than required date, then it got stuck in a continuous loop.
Version 1.31 beta: Released January 19, 2004
- Template Fix: Prevents old FTP name (with Site directory name on the end)
from having an extra site directory added.
- Support for ALIASes.
- Support for FM3 upgrading.
- Better implementation of optional Replication.
- Template changed - re-organised the global template, to place unused items
in the Advanced tab.
- Template changed - new list not dependant on #button - this was causing
the Template Variable list to sometimes not be populated, so Embed points
were being orphaned.
- Template changed - adds a project define, set to 1 if code must be
disabled (allows conditional omits around handcoded replicate calls).
- Template changed - template insertions labelled.
- Template and Object changed - supports FM3: when FM3 is upgrading, then
upgrade inserting are not logged, unless FM3 is auto numbering a file.
- Template and Object changed - Clarion6 init stuff moved to the Init
- Template Changed - removed all old SIT:InDir field references (now
- Template changed - does not omit ALIAS files from being registered.
- Object Change (Kill method) - don't Kill if it wasn't Inited.
- Object Change (GetGUID) - if no Site, then generate a random site (this is
for sites where replicate is not activated).
- Object Change - if active property is clear, then don't do the
Version 1.30 beta: Released January 13, 2004
Important Note: If you used the
method, this has an extra parameter for Importing (to determine whether you
are ignoring the field exporting or importing). You may need to include this
in any if statements so that a field is not ignored if it is required to be
Important Note: If you are using Email or FTP
for transport, then you need to update your ReceiveFTP, SendFTP and SendEmail
procedures as set out in
3.20 of the FAQs, or run the Template Utility (ImportReplicateEmailFTPabc
or ImportReplicateEmailFTPLegacy) to import the updated windows.
Important Note: If you hand coded a call to
the CopyOut method to export a file to a relating site, then you need to call
the method SendAllOutGoing as well - which will handle the transportation of
the file to the relating site (which the CopyOut method no longer does).
- Optional: SendFTP to include a temporary directory to upload
logfiles to and then move them to the proper one. This solves errors while
FTPing to the site (and the relating site Gets the file at the same time).
- Restructured so that files are all processed into the specific site's
outgoing directory and then sent (in one go). Files are removed from the
directory in the Sending procedures (when the sending is successful). If
files are not sent, they will be sent the next time a successful transport
occurs. Basically the OutGoing directory has become an outbox. Everything
that is placed in there is sent to the various sites (which have their own
outboxes). Once a file has been successfully sent, it is removed from the
- New method of changing and setting settings using a wizard - the
SiteSetupWizard. This can be imported from the example applications or using
the Template Utility.
- You can set the SuppressWarnings in the Global Extension template, which
now also suppresses the warnings to create directories for relating sites.
- FTP can be globally setup (if a single FTPsite is used for all sites).
This simplifies the site setup. If this option is selected, then the default
will be FTP, but can be overridden by specifying an email address or
Directory (or an alternative FTP server) if not required.
- All settings stored in the SiteFile - except directory (logpath) and site
ID - which are stored in an INI file. This means that settings are only
stored in one place.
Version 1.29 beta: Released December 4, 2003
- Object Fix - If SuppressWarnings is set, then don't warn on request for
- Object Change (new method - IgnoreField) - conditionally ignore a field
when priming the logfile (also can be used to override a GROUP, Over field,
that is ignored by default).
- Object Fix (MoveFilesOut method) - check that there is a file number of
the one we're wanting to move out (it may not have been created yet).
- Object Change (RepMessage method) - add site to heading of messages.
- Object Fix (AddSetting method) - save and restore the current path when
selecting the replicate directory.
- Object change (ProcessLogFiles method) - use long filenames - don't use
fnsplit to work out directory names - and move External files out as well
(anything in the Outgoing dir will be copied/processed to the relating sites
- Object Fix (ProcessLogFiles method) - if problem opening the TempFile to
process to, then bail out (of processing that file).
- Object Change - SendFiles method has an optional options parameter.
- Object Change (GetOldFile) - change FileName string(255) to FileName
- Object CHange (IgnoreField method) - pImporting flag added to allow for
overriding of Groups and Overed fields if they are in the logfile (must no
be ignored during import).
- Object Change (HandleExtraFiles) - made obsolete
- New methods: UpdateFTPSettings, UpdateEmailSettings, UpdateBasicSettings,
handles the bulk update of specific settings.
- New methods: SendAllOutgoing - handles the sending of all files in a
relating site's outdirectory.
- New method: RemoveAllFiles - Removes files from a specified directory
- Object Change (GetSetting method) - renamed pDontUpdate parameter to
- Template Change - SuppressWarnings checkbox on the global extension sets
the property (for ease)
- Template Change - Do away with ForceImport from first logfile checkbox
- Template Change - Option to use SiteSetupWizard instead of the default
- Template Change - Setup a global FTP setting (instead of having to setup
each FTP site individually).
- Template Change - Test for LAN connection before sending removed -
- Template Change - allow you to use a tempfile for FTP uploading.
- Template Change - add the SiteFile to the UsedFiles template variable list
(in log apps) if it is not used in the application.
- Template Fix - corrected %RepGloDerivedClass typo in C6.
- Template Fix - place embed point in the PrimeLog and TagReceived derived
section so that the path can be set for each field (containing external
- Template Change (derived AutoProcessLogFiles method) - call
SendAllOutgoing after processing all logfiles for a site - removed call to
HandleExtraFiles. Remove all files from the Outgoing directory after
- Template Change - transport priority order set: Direct, otherwise Email,
- Template Change - GetSetting, UpdateSetting derived code changed to handle
storing all settings in the SiteFile (except directory). Incoming dir only
stored in the INIFile, other settings only stored in the SiteFile.
- Template Change - transport calls removed from the derived Copyout method.
- Template Change - delete obsolete options from the ProcessLogFiles code
- Template Change - added 'Auto-Export' option to the FullExport control
template. This means that the logfile will be automatically named correctly
and sent to the respective site. If the site is selected from a list box,
then this can be used for the site requiring the export.
- Template Change - new control template - for bulk updating settings -
ReplicateUpdateSettings. This is used on the SiteSetupWizard in the example
- Template Change - only call SendFTP if all FTP details (directory, user,
server, password) are present.
- Object Change (Setup method) - if Site range exists, check that SiteLow
<= Site and SiteHigh >= Site.
- New feature: You can replicate external (graphics) files that are pointed to in your
- New feature: You can use Replicate to manipulate data before
it writes to the file (and the logfile).
- New feature: You can include normally excluded fields (over fields,
Groups, etc) if required.
- Fix: Don't force SiteHi if non-existent
- Template Change - only show translation file details when a translation
file is required.
- Template Change - Don't create directory if non-existent for Direct sites
option added (affects CopyOut derivation).
- Template Change - changed Skipped Files tab to DataTables - included
graphic files transport support (also writes extra stuff into the logfile in
the derived PrimeLog method and uses the TagReceived method to handle the
- Template Fix - Only forces SiteHi if there is a value and the value is
less than Site (bug introduced in 1.27)
- Template and Object change - made GenerateCRC method virtual (so it can be
- Object Change (new method
- Object Change (new method
- Object Change (new method
- Doc change - revamped
An explanation of the Site File
Version 1.27 beta: Released November 27, 2003
- New feature - CRC for logfiles (to ensure that logfiles are not corrupted
in transit) (if required).
- LogFile renamed to Rep_LogFile.
- New feature Restore from backup (see examples for implementation).
- Fixed bug when using a log path other than the current path when first
starting up (GPF and first logfile to wrong place)
- Logfiles in XML format (not strictly yet, as XML format requires that ':'
are not used in field names).
- Fixed bug where logfile was not being sent automatically in response to a
- Force SiteLo to be <= site and SiteHi to be >= site.
- New method (GenerateCRC) - use to generate a CRC for logfiles (template
option in Global Extension template).
- Changed internal filenames to contain the subscript Rep_.
- Options changed to equates to make method calls more legible.
- All logfiles now in XML format.
- Close, Export methods call GenerateCRC when closing the logfile (and after
stamping the EOF).
- Fix (MoveFilesIn method) - delete data file from the incoming queue, so
that a normal import isn't attempted.
- Fix (Configure method) - gets the logpath before attempting the site
setting. (ensure that the first logfile is written to the correct place - if
the logpath isn't the current directory).
- Change (Import method) - displays the file currently being imported, if
small files, then get the whole file. Test CRC if present
- Change EOF stamp to End_of_File (XML friendly). Will still support the old
- Fix - if the pointer is corrupt and is beyond the last tag of the file,
then it would not return a file done.
- Fix only copy out one file (MoveFilesOut).
- Change (AddSetting method) - allows to override updating the setting (now
that logpath is the first setting - you can only add it to the file once the
site has been set).
- Fix GetFileName and GetFileNumber to exclude MSG files.
- Fix - Growing MSG File (was not being removed after export)
- New method (RestoreBackup) - method to restore a site's own logfiles from
a specific date.
- New method (GetFileDate) - gets the date stamp of a log file.
- Template change - removed option to make logfiles in XML format.
- Template change - don't generate code into the AddSetting method. This was
- Template fix - MoveFilesOut called correctly in the AutoProcessFiles
method's generated code (for one file) - also fixed problem where requested
logfiles were not being moved out correctly (NEXT misbehaving).
- Template Fix - if SiteHi is < Site, then reset to Site, and if SiteLo
> Site then reset to Site (UpdateSetting and GetSetting).
- Template Fix - if /NoAutoSiteAdd then must not add the site record to the
site file (UpdateSetting and GetSetting).
Version 1.25 beta: Released November 6, 2003
- Support for much more logfiles (increased from 65535 to 2708160)
- Fixed GPF when receiving a Request file (caused by not closing the file
- Critical: Fixed a compression error in the cszLib class
- Critical: Fixed a error when re-reading a logfile (when the LastInSize is corrupt).
- One request file per Process logfiles (previously was being overwritten,
and so only one request was being issued).
- When one logfile is requested, only one is sent (previously sending all
- Critical: Fixed LastFileSize for XML files. This means that the logfile is
imported from the correct place (as apposed to having to start from the
Version 1.24 beta: Released October 23, 2003
- Includes a new version of BDE - 1.55
- Includes a new version of the cszLib class - 1.11
- Object Change (Open Method) - supports up to 2708160 files (instead of 65535)
- Object Change (Import & MoveFilesOut & LogToTemp & StampeEOF
Method) - calls GetFileNumber and GetFileName instead of working filenames out
- Object Change (Requisition Method) - returns filename used
- Object Fix (Import Method) - starts a complete import of a logfile when
LastInFile Number is corrupt.
- Object Fix (Import Method) - when XML used, stores the size of the file -
XML formatter. This means that the LastInSize is at the correct place in the
file for the next import.
- Object Fix (MoveFilesOut Method) - Handle copying out errors correctly.
- Object Change (ProcessMovedFiles Method) - handles whole queue (instead of
sorted - sorting not accurate with extended range of file names).
- Object Change (ProcessMovedFiles Method) - handles OnlyOne file correctly
- Object Change (GetFileName & GetFileNumber Methods) - allows up to
- Object Fix (Requisition Method) - Creates MSGFile in the logpath (instead
of the OutGoingDir) this means that a request is not overwritten by a
superceding request (changed parameter to a string for future commands).
- Object Fix (ReceiveRequest Method) - fixes GPF casued by not closing the
file during a receive request.
- Object & Template Change (LoadField Method) - returns the value of the
field before the change is implemented.
- Template Change - allows optional blank logfile creation (if logfile is
- Template Change (AutoProcessFiles) - OnlyOne operates correctly (if 1 file
is requested, it only sends that one).
- Template Change (GetSetting & AddSetting & SetNextNumber code) -
use %LogFile instead of 'SiteFile'.
- Template Change - use LastOutFile (field of the site record) to store the
file last logfile copied out.
- Template Change - in copyout, if there is an error while compressing
files, then don't delete the file and abort exporting that file.
- Template Change - (ProcessLogFiles code template) clear the MSGFilename
property before doing the process. If it is not clear at the end of the
Process, then we know to delete the MSGFile. This means that only one
MessageFile is used per ProcessLogFiles. Warning to
Handcoders: You need to include the following code before your call to
the AutoProcessLogFiles method:
clear(ThisRep.LastMSGFile) if clip(ThisRep.LastMSGFile) <> ''
if ~errorcode() then clear(ThisRep.LastMSGFile) .
- Support for tables defined in external DLLs (like Secwin)
- Directory fields in your site field are not limited to strings (may be
cstrings or another data type)
- Fixed Occasional uncompression error.
- Allows a variable in the encryption Key (previously required a constant).
- Includes a new version of BDE - 1.54
Version 1.23 beta: Released August 8, 2003
- Object Change: New properties: SuperPrefix (in the FileQ) to store the
unique SuperPrefix of a table of an external DLL, FileLabel and
FieldPosition (in the ArraysQ).
- Object Change: CheckDirectory - prototype changed to allow any variable
type to be passed to the function (containing the directory). Also changes
to current dir if Makedir fails.
- Object Change: Register and RegisterArray methods changed to cater for the
extra parameters required for External DLLs.
- Object Change - removed the lower in Lower(self.q.label), because it's stored like
- Object Change - removed obsolete code to find the BestKey (in register
- Object Change - Import and Export methods changed to include SuperPrefix
in the fieldnames.
- Object Change - PrimeLog method - if Array not found (using WHO), then
loop through array Queue, also caters for SuperPrefix where necessary.
- Object Change - GUIDFieldToText - prototype changed so that length
parameter is optional.
cszLib Object Fix (version 1.11) - was not checking
uncompressed size string correctly.
Template Change - Changed FromSite to RelatingSite (makes
Template Change - Embed point added in AutoProcessLoop
before getting site's properties.
Template Change - Use Quotes in encryption key to allow for
a variable to be used as the encryption key.
Template Change - when opening a file, if file already open,
don't return an error.
Template Change - embeds (in StoreBuffer method) added for
storing coded buffer.
- Fix for the GPF when a site's dataset is exported (caused by the existence
of a dynamic index in the file).
- Fix for when a site's first logfile is not 1.
Version 1.22 beta: Released August 1, 2003
- Object Change - Changed compile flag from _c55_ to _VER_C55.
- Object Change (MoveFilesOut) - If a file is requested that does not exist,
then new method GetOldFile is called, which by default will create a blank
logfile to be sent to the relating site that is requesting the logfile. In
future this method will be used for unarchiving logfiles when required.
- Object Change (Export method) - if no fields in a key/index (like a
dynamix index) then this key is not searched. This was causing a GPF on dynamic indexes.
- Object Change (CheckDirectory method) - allows you to automatically create
directories without prompting the user.
- Object Change (GetOldFile) - new method.
- Template Fix - if SiteFile is suppressed then extra end was included.
Version 1.21 beta: Released July 18, 2003
- cszLib corrected. (Version 1.10 is shipped with Replicate). The
compression algorithm (in some occurances) makes the string larger, which
was causing a file read error. Rectified error returning.
- If LogFilePath was not selected, then set to default (.\).
- Re-instated filename into the subject line (for email transportation).
This ensures that the largest file gets imported (where multiple emails are
received with the same logfile name attachment).
- Support for old SIT:InDir field was not correct. Updated to convert
SIT:InDir to SIT:DirectInDir correctly.
- In certain cases, zLib files were not being removed from the child's
outdir - fixed.
Version 1.20 beta: Released July 15, 2003
- Template Change - only auto-set SIT:DirectInDir (from SIT:InDir) if blank.
- Template Change - do not require the SIT:InDir field (as the prompt is
disabled now that it is obsolete).
- Template Change - removed remove from the Sendfiles routine - into the
- Template Change - save SIT:DirectInDir change.
- Template Change - (in CopyOut) - if DeleteAfter is set, then remove old
files from source and destination.
- Object Change (ProcessMovedFiles) - for no subset replication and parent
sites, copy the files to the sites' outgoing dir first before issuing a
CopyOut on those files.
- Mostly fixes for bugs introduced in beta 1.19. - especially the deleteafter
bug in the copyout method, and '\' checking in paths.
- Also a more robust transaction handling (in commits).
Version 1.19 beta: Released July 11, 2003
- Template Fix - ConnectionDetails (FTP and Email) code generation - strings
clipped when entered to the MessageFile.
- Template Fix - DeleteAfter in CopyOut - was not always deleting the file
- Template Fix - fixed generation of some methods names (incorrect parameters).
- Object Change (Export method) - new file declaration for Export method -
has it's own logfile.
- Object fix (Open method) - LogFileName property not always set.
- Object Change (Insert method) - allows specification to new export file.
- Object fix (Commit method) - open logic removed - handled in the open method.
- Object Fix (ProcessMovedFiles method) - don't deleteafter in copyout call
- this prevents a file from being sent to subsequent relating sites.
- Object Fix (CheckDirectory) - force '\' to be appended at the end of the
- Template Fix - ensures last character in path is '\' before appending the
filename to the end of the path.
- Object Change (CheckDirectory) - use API call instead of CreateDirectory.
Difference in C6 and C55 versions of the function.
- The directory structure - only requires 1 directory (all sub-directories
will be managed by replicate within this directory) - although the old existing
directory structure option is still supported. SIT:InDir becomes obsolete
- SIT:DirectInDir will be used for direct copying. Existing sites will
- Compatibility for non 8.3 directory names.
- Complete auto-child creation (together with starting point LogFile and existing
data export). This is shown in the examples: legcman.app and abccman.app.
- Template Change - option to create unique outdir for each child is removed.
This is required.
- Template Change - SIT:DirectInDir is required. SIT:InDir is obsolete.
- Template Change - Prevent GROUP ends being generated into the LoadField
- Template Change - In ConnectionDetails - conditionally populate range fields
(only if range is required), Fixed entry of transport details, added LastInNumber,
so that logging can begin at the correct logfile.
- Template Change - logfile is always generated into \outgoing\child first
before being transported (or copied to the child's incoming directory). This
prevents the zLib error when writing to and reading from at the same time.
- Template Change - fixed get lastcopiedout from file (when setting must be
read from the file).
- Template Change - Removed file extension logic from CopyIn method (must
be passed with the correct destination file).
- Template Change - compress to outdir and then copy to Incoming directory
of the relating site (for direct replication).
- Class Change - MoveFileName changed to Cstring (to support fnsplit).
- Class fix - LogFileName property set in .Open method.
- Class change (Close method) - allows stamping of EOF into log file on the
- Class change - individual checking for '\' at the end of directories removed
- implemented into CheckDirectory.
- Class change - allow for xxxxdata.log file in import - which will force
a complete import of the file.
- Class fix - configured flag set in configure method (clarion 6 issue).
- Class change - bit flag in import method allows manual import to be logged
based on parameter passed.
- Class change (GetSetting) - make default incoming directory and outgoing
- Class change (RepMessage) - tidied up warning message text, force error-level
messages to be stops.
- Class fix (export method) - stamps EOF on file end after complete data export.
- Class fix (ProcessMovedFiles) - use fnsplit to get the filename and extension
- Class fix (HexToLong) - return 0 if not a hex number.
- Class fix (ReceiveRequest) - supports XML formatted files.
Version 1.18 beta: Released June 18, 2003
Version 1.17 beta: Released June 5, 2003
- Includes BDE version 1.51
- Object Change - New error level - Critical. This means that you can suppress
warnings and/or critical errors.
- Object Change - translatable window text.
- Object Change - all critical errors made translatable.
- Object Change (RepMessage method) - NoDisplay parameter added to allow for
simple translation file construction.
- Object Change (Requisition method) - allows request file to be used as a
- New method: GetTranslation - central place for obtaining the translation
- New method: GenerateTranslationFile - generates a complete translation file
so that all the required translatable text can be translated.
- Template Change - all fields relating to FTP included.
- Template Change - allows translation to be setup in the template.
- Template Change - References to ThisRep changed to the object name specified
in the template.
- Template Change - removed duplicate embed point in SendFiles method.
- Object (& Template) Change - new methods: LoadField (for populating
the SiteFile properties) and ConnectionDetails (for creating the Information
file for adding a new site).
- Object Change - initialise RandomNo property to 0.
- Object Change - Set RepGloClass.Configured = 1 in configure method (for
- Includes BDE version 1.50
- Fixed examples for Clarion6 (legacy) compiling.
Version 1.0 beta 16: Released June 4, 2003
Note: Because of some necessary object changes, some methods have been
changed which affects Clarion5.5 users as well. Please implement the changes
required for your LogManager when upgrading to beta16 in the
- (Template and Object Change) Clarion6 compatibility - introduced new unthreaded
global object to contain global settings.
- Template Change - If Replicate is disabled, then Global Variables aren't
- Template Change - Global variables and Replicate main class changed to threaded
(if version is Clarion6)
- Template Change - if Replicate is disabled, then the DOS driver is not added
to the project (by replicate).
- Template Change - ThisRep placed in no-mans land removed from template.
- Template Change - For an ABC Multi-DLL - ThisRep.Init and ThisRep.Kill are
placed in the DLL Init and the DLL Kill sections so that it is only necessary
to populate the DLL with the Replicate Template.
- Template Change - Clarion 6 support: Object is activated and global properties
set in first Init call.
- Template Change - GetArray, Set Array, UpdateSettings, SendFiles and AddSettings
template generated code all moved to after the parent call.
- Template Change - Clarion 6 support: Cannot make an over threaded, and so
peek and poke used to handle arrays (C5.5 still uses the over variables).
- Template Change - RepGLO:Site is set in the derived Init method.
- Template Change - Use LoadSitesProperties in the AutoProcess derived method
(instead of duplicating the code), sets the Replicate class properties with
those pertaining to the relating site (found in the site file).
- Template Change - in Clarion5.5, Setup method called.
- Template Change - SiteLow value included in the derived GetSetting and Update
Setting method. Also SiteHiDone and SiteLowDone returns 1 if not required.
- Template Change - When AddSetting is called, then the Site record is changed
in the SiteFile (for our settings).
- Template Change - for Class declarations, use PROCEDURE only (instead of
- Object Change (RegisterArray) - If the file is threaded, the Arrays Queue
- New methods (Construct and Destruct) - for Clarion6, when a new thread opens
/ closes, the Init / Kill method is called.
- New methods (SetArray and GetArray) - for Clarion6 to poke and peek at the
- Object Change (Configure method in the csLogManager changed to the Setup
method) - proper setup for SiteLow value (if required).
- Object Change (ConfigureEmail and ConfigureFTP changed to SetupEmail and
SetupFTP) - allows optional use of Email and FTP if compiled for both.
- Object Change - ASCII Files used by the object declared as threaded (in
- Object Change - refers to global unthreaded properties (in Clarion6) were
- Object Change - LogFile determined when opened (rather than in the configure
- Object Change - random number used to generate the GUID value is stored
as a property (and not a static)
- Object Change - If a LogManager method is called, first check if SetupDone
is set, otherwise do the Setup method.
- Object Change (Import Method) - for Clarion6: when importing threaded Arrays
call the SetArray method.
- Object Change (ProcessMovedFiles method) - remove old logfiles from the
- Object fix (CheckDirectory method) - was not checking partial directories
with .. prefix correctly. Also uses clipped directory (was not clipping previously).
- Object Change (FunctionDone method) - StoreBuffer called when a record is
- Template Change - allows runtime disabling of FTP and/or Email transportation
Version 1.0 beta 15: Released May 9, 2003
Version 1.0 beta 14b: Released April 9, 2003
- Object Change - Defined Message/ Requestfile.
- Object Change (FunctionDone) - Set self.inside on either side of the method
code - prevents loopbacks.
- Object Change (Open, Import method) - New property self.MakeXMLFiles. If
set this will ensure that the logfiles are true XML files. The old csLogManager
class (beta 14b and earlier) does not support this format, the new one supports
- Object Change (MoveFilesIn) - handle request files and send requested logfiles.
- New Method () - Use this method to request files from a relating site. Used
by MoveFilesIn and Import methods.
- Object Change (MoveFilesIn) - removes successfully imported logfiles, and
- Object Change (Import Method) - Checks if logfile is in XML format or not.
- Template & Object Change (CopyOut method) - allows deletion of logfiles
after copying out. This prevents excess logfiles hanging around in the OutGoing
- Object & Template Change - new object: csLogConnectionManager (with
ConfigureEmail, ConfigureFTP, Sendfiles and ReceiveFiles) methods .
- Object Change - csLogEmailManager class removed. (ReceiveEmail, SendEmail,
SendRequestedFiles and Configure methods)
- Object Change (PrimeLog method) - don't write memos in when file entry is
- Object Change (ProcessMovedFiles) - add '\' to directory before checking
- Object Change (ProcessMovedFiles, StampEOF) - if XML Files are used, then
stamp the end of the logfile with the correct tag, before sending.
- Object Change (GetFileName) - Fixed path insert into Filename.
- Object Change (CheckDirectory) - Supports part pathnames (like .\ and ..,
etc.). At runtime this is set (but not saved) to the correct path.
- Template Change - Moved 'Make LogFile subsets' to global extension template.
- Template Change - Allows logfiles to be in pure XML format.
- Template Change - 'Test for the local directory' has been moved to the global
- Template Change - Support for FTP included in the template (procedures and
- Template Change - If Replicate is disabled, then don't export the functions
(if in Multi-DLL mode)
- Template Change - improved method of determining ABC/Clarion templates.
- Template & Object Change - new method AutoProcessFiles - the processing
routine is made into a method rather than from the code template.
- Template & Object Change - LoadSitesProperties - gets the connection
details for a relating site.
- Template Change - removed old method of requesting files.
- Template Change - included FTP settings in the respective derived methods.
- Template Fix - fixed returned value for OpenFiles and CloseFiles derived
- Template Fix - Close SiteFile after GetNextNumber method.
- New Methods (CheckRequestFile, LoadSitesProperties, ReceiveRequest, ReceiveRequest,
- Template Change - ReplicateFileRequest and ReplicateSendRequest code templates
are obsolete and will generate a compile error to ensure their removal.
- Template Change - New template utilities to add SendEmail, ReceiveEmail,
SendFTP and ReceiveFTP procedures to the LogManager.
- Includes new version of the Bulk Dictionary Editor: version 1.044.
Version 1.0 beta 14: Released April 8, 2003
- Template Change - Call CheckDirectory instead of NewInDir (redundant).
- Template Fix - Fixed Test for LAN directory when using the select transport
method on the fly feature.
- Object Update (CheckDirectory) - allows creation of Directories (not just
checking if the directory exists). Prompts for creation before creating
- Object Change (Configure methods) - checks for Logging, Incoming and Outgoing
directories on startup.
- Object Change (ProcessMovedFiles) - checks and creates the Outgoing (specific)
directory for the related site before processing the logfiles.
- New Method (SetPathTo) - used for decoding shortened path forms (like '.',
'..' , '.\' , etc). This means that you can have shortened paths for your
outgoing, incoming and logfile paths.
- Template Change - if no email address, don't try and email the logfiles
and/or request messages.
- Include SHRINK utility.
- Template Change - Flag introduced to prevent ProcessLogFiles code template
from running more than once simultaneously.
- Included Encrypt object files in the install.
Version 1.0 beta 13: Released April 2, 2003
- Object Update (GetFileName) - new parameter to specify site.
- New Feature - Optional encryption of logfiles before transporting and decryption
on reception (includes
methods and template changes).
- Object Change (MoveFilesIn) - Files are tested before decryption/uncompression/moving
to see if they are valid for import. Files not imported are left in the Incoming
- Bug Fix (import method) - ActrionStr was too short, so EOF was not being
picked up at the end of an import.
- Object Change (Import method) - if logfile is not imported (because of a
previous one not being complete) then error is returned and further logfiles
are not attempted.
- Bug Fix (MoveFilesOut method) - LastCopiedOut counter was incrementing too
far, so another var is used in the loop, also it is only incremented if the
no error occurs while copying.
- Object Change (CopyIn method) - the name of the file is passed as a handle
instead of a string.
- Bug Fix (ProcessMovedFiles method) - checks for Len (sitefieldname) instead of a constant.
- Template Change - LastOutFile used to store the Last logfile copied out.
Version 1.0 beta 12: Released March 19, 2003
- Cleaned debugging up.
- Bug Fix (Import method) - Clear MEMOs before importing inserts and UpdateFulls.
- Bug Fix (Import method) - Clear fld pointer after equating a MEMO (so that
it is not -1)
- Bug Fix (Import method) - Progress Indicator cleared at the beginning of
- Bug Fix (Import method) - TempString partially cleared as used - and pointer
moved accordingly, ensuring that at least size(Inf:Data) is contained in the
buffer (unless the file end is reached).
- New method GUIDFieldToText
- Object change (PrimeLog Method) - uses GUIDFieldToText instead of the internal
- Template fix - '\' not added to the InDir field. This is added to the buffer
in the object.
Version 1.0 beta 11a: Released March 6, 2003
- New method in the csLog Class -
- New method in the csLogManager Class -
- Object fix (GetGUID) - Only set the GUID if it is blank. This is essential
for FM2/3 users. NOTE: This will mean that you
MUST clear the GUID field in Processes, add loops.
- Object change (Import) - string used to determine the action (rather than
- Object change (Import) - calls TagReceived if the Tag is not recognised
in the field and memo list.
- Template change (ProcessLogFiles Code TPL) - option to select transport
method on the fly (i.e. switch between direct and email). A new variable is
added to your local data (RepLoc_InDir).
- Includes the new BDE release (v1.034).
Version 1.0 beta 11: Released March 4, 2003
- Includes the new BDE release (v1.033)
Version 1.0 beta 10: Released February 12, 2003
- Object Change (GetGUID method) - Resolved occasional duplicate GUID generation.
- Examples - included an example showing transport using FTP.
- Template Change - included an embed to facilitate the use of a different
- Included the new Bulk Dictionary Editor (Version 1.031).
- Template Change - Use GetGUID method when generating a GUID for a suppressed
- Object Fix (Open method) - only opens required logfiles on startup (eliminates
time delays on startup of programs).
- Object Fix (Import method) - does correct compare with in LogFilePath (resulted
in extra \ occurring in the logfilepath).
- Object Fix (Import method) - If GetNextNumber returns a 0, set to 1. Expect
first file not 0th file.
- Object Change (MoveFilesOut method) - added parameter to specify the number
to start at (if files are required by a relating site).
- Object Fix (ProcessMovedFiles method) - test for upper of the filename to
- New method (SendRequestedFiles) - used to send requested files to another
relating site when requested.
- Template Update - Allow Trapping of logfile receive error so that a request
can be posted (LogEmailManager only)
- Template Fix - generated GetNextNumber returns 1 if a GetNextNumber on a
new site is attempted, without adding the record to the sitefile.
- Two New code Templates to aid in the Requesting of logfiles and the sending
of requested logfiles.
- Object Change (Export Method) - fixed export routine, was exporting fixed
length data into the logfile.
Version 1.0 beta 9: Released February 5, 2003
- Object Change (Insert method) - track the size of the string, don't use
- Object Change (GetGUID method) - ensure that illegal (for SQL engines) characters
are non-existent (i.e. all generated numbers are converted to bytes>127).
- Object Change (Import & PrimeLog & ProcessMovedFiles method) - temp
string change to an any so that there is no limit on the size of the variable
(loop if long field until entire field is loaded in temp var).
- Object Change (Import method) - check for the EOF stamp if pointer is the
same as the filesize.
- Object & template change (SetMemo method) - accepts a pointer to a undefined
length strength, rather than a pointer to a string.
- Object Change (NewInDir method) - new parameter (path included or not).
Checks if self.OutGoingdir is not clear before creating the new directory.
- Template Change - no call to SetProcedureName
- Template Change - rectified SetNextNumber number generation and site insertion
(generated in csLog based applications).
- Template Change - returns 0 if no LogNumber for this site.
- Object Change (configure method ) - calls open (if no LogNumber) instead
of SetNextNumber (which was looping and returning the correct number in certain
- Template Change - option to begin a new site's import from the current logfile
(instead of forcing an import from the first logfile).
- Template Change - Memos are clipped (if BINARY attribute is cleared) when
written to the logfile.
- Object Change (MoveFilesOut) - make sure range to copy out to is not 0.
- Object Change (Commit method) - make sure that logfile is not 0 before writing.
Version 1.0 beta 8: Released February 3, 2003
- IMPORTANT: If you are using a EmailLogManager,
you need to change your receive
and send process (as
shown in the examples shipped with Replicate). This will ensure that the LATEST
logfile is written into the incoming directory, and is not overwritten by
earlier files sent with the same name.
- Object Change - Kill Method: Callback unregistered (plugs memory leaks)
- Object & Template Change - GetNextNumber Method function redetermined.
Only used for getting (not writing) the next number. SetNextNumber used solely
for this purpose. Commit, Open and Configure methods also affected by this
- Template Change - Fixed Site clearing if Site details obtained from the
- Object Change - StampEOF: pathing rectified (filename comparison)
- Object Change - FunctionDone method cleaned up (excess vars deleted). Resolved
hanging (in ABC applications) and long delays in Browses.
- Template Change - Fixed SiteLow implementation for exporting, importing
and processing calls.
Version 1.0 beta 7: Released December 18, 2002
- Object & template change - provides option for Append/Build instead
of ADD during manual importing.
- Object Change - progress window during log files processing.
- Object Change - <13,10> in tag search solved occasional import lockup
- Object Change - cstrings changed to strings in ProcessMovedFiles method.
- Template Change - allows StampEOF in LogFile processing. This means that
each time the ProcessLogFiles transaction is called, a new log file is started.
- Object Change - In GetNextNumber - implements CheckEOF to see if the logfile
has an EOF stamp before writing to it.
- Object & Template change - provides extra limitation for Site Low range
field (if the Site Low is a value other than the Site value).
- Object Change - Fixed GUID null checker (possible duplicates with the previous
way of setting nulls)
- Object Change - increased size of data got from the log data files (increase
- Template & Object Change - Compilable version for Clarion 6 -
will not work!!!!
- Object Change - Optimized import file routine for speed.
- Object Change - Callback methods exited if error. This resolves the duplicates
on insert bug (no error message and a record added).
- Object Change - If logfiles removed from the logpath, does not recreate
- Object Change - Checks previous logfiles to ensure EOF stamp exists.
- Object Change - StampEOF - allows stamping of file that is not the current
- Object Change - New method for creating the LogFile name -
- Object Change - Commit method changed. Updates TempLogFile to correct logfile
(if it changes).
Version 1.0 beta 6: Released December 11, 2002
- Object Change - reset LastFile pointer automatically if the pointer is incorrect.
- Object Change - caters for LogFile inconsistencies (like swapping between
zipped and unzipped files).
- Template Change - allows get settings directly from the SiteFile.
- Template Fix - ignores arrays with the over attribute.
- Template Fix - puts code into GetSetting method when no Site global field
identifier is specified.
Version 1.0 beta 5a: Released December 9, 2002
- Object Change - Registered table in original case (not lowered)
- Object Change - Carry date through from original change (when importing)
- Object Change - Export window does not clip filenames and displays in correct
- Object Fix - Correct handling of non-standard Site field names.
- Object Fix - Correctly importing of logfiles with HexToLong conversion.
- Template Fix - Generates SendEmail code if Using mail and not zipping files.
Version 1.0 beta 5: Released December 3, 2002
- Install fix - install for beta 5 contained beta 4 files instead of the beta 5 files.
- Object Change - New Property: NoLogging, which enables a temporary disable
of logging if necessary.
- Object Change - When importing File Changes, the original File Change details
is maintained (Time, Date, User and machine (where applicable))
- Object Change - yield introduced into the Import and Export process.
- Object Fix - when doing a complete export, if there is an existing file,
the file is deleted before exporting.
- Object Fix - When doing a selective/specific export, the Site fields are
identified by the SiteFieldID property and not by ':Site'.
- Object Fix & Template Change - Moved the removing of logfiles to the
- Template Fix - Only primes GUID for completely suppressed files (outside
the FileCallback method)
- Template Change - Provide option to send and receive together.
Version 1.0 beta 4: Released November 23, 2002
Version 1.0 beta 3: Released November 22, 2002
- Template Fix - Fixed file list compile (for EXEs)
- Template Change - Clarified some of the prompts
- Object Change - Moved ParentSite setting to csLog.Configure method
Version 1.0 beta 2: Released November 20, 2002
- Object Fix - Import Progress bar progresses.
- Object Change - Made a window to display the progress of an export
- Object Fix - if no SiteHi property, then import all entries (i.e. with no
- Template Fix - Resolved Multi-DLL file declaration issues.
- Template Fix - Assigns External attribute to variables (in a multi-DLL)
- Template Change - Auto-assigns a GlobalData field (that the Bulk Dictionary
Editor populates in your dictionary) to ThisRep.Site variable for use in your
- Template Change (OpenReplicateFiles) - Allows you to only open the files
Version 1.0 beta 1: Released November 14, 2002
- Doc Update - Correct detail in creating your own LogManager.
- Template Fix - Skipped Files set-able in Multi-DLL mode when this is not
the data DLL
- Template Fix - If OtherDir selected for the settings file, then correctly
- Object Change - added method to LogManager - FileChange which is called
when a file change occurs during an import.
- Template Change - if no siteHi field required, then not coded into application
- New Code Template - aids in running a procedure when a file change occurs.
- Object Change - ParentSite property moved to csLog class (for purposes of
Global Tables insert). Is now configured in the csLog class as well.
Version 1.0 alpha 8: Released November 6, 2002
- Template Change - This is the LogManager check box. Restrict selections
for csLog classed apps to what's necessary.
- Template Change - only uses the files used in this application. (You need
to check the 'Generate all file declarations' for other files)
Version 1.0 alpha 7: Released November 5, 2002
- Object Fix - Prevents infinite loop when no SiteHeader stamp in the logfile.
- Object and Template Fix - Prevents infinite loop with nested GetNextNumber method calls.
Version 1.0 alpha 6: Released November 4, 2002
- New Example - EmailManager in legacy.
- Object Fix - cleared before priming the ThisRep.q and the ThisRep.Omitq
(causing problems with NULL pointers in legacy)
Version 1.0 alpha 5: Released October 31, 2002
- Object Fix - getting stuck on the first log file (i.e. not importing logfiles
of number > 1)
- Template & Object Change - easy implementation of
- Updated Examples - include display of necessary site setup properties on
the about windows.
- Object Update - if log files already exist (with EOF stamp) then log to
a new log file.
- Object Update - Warn if a new files arrive, with more than one without an
- NB: Object update - Started RepMessage ID fields at 11 instead
Version 1.0 alpha 4: Released October 23, 2002
- Update the Add GUID Utility - does not add GUIDs and GUIDKeys to files of
drivers: ASCII, DOS, and BASIC. Add GUID Utility renamed to BDE - Bulk Dictionary
Editor. Changed interface to a wizard. Implemented general dictionary maintenance
and TPS to SQL conversions.
- Template Update - does not register files of driver types: ASCII, DOS and BASIC
- Template Update - warn/not warn when new site's log file arrives.
- Template Update - for DLLs, option to only open/close files used in the DLL.
- Template Update - ignores ALIAS files.
- Object Update - caters for DUPLICATE function (before doing an add)
- Object Update - prevents nulls from occurring in GUIDs (in the GetGUID method)
- Template Update - put 'quotes' around default ini file name
- Docs Updated - clarified examples, added to FAQs, etc
Version 1.0 alpha 3: Released October 21, 2002
- Updated the Add GUID Utility - can add Site fields to the files and edit
the existing (unique and primary) keys.
- Updated docs - clarified installation and site tree setup.
- Updated examples - made a simple way of implementing
a site-tree structure
- Template Fix - if no email address for a site, skip the send procedure for
Version 1.0 alpha 2: Released October 15, 2002
- Updated the Add GUID Utility - can add Site fields to the files and edit
the existing (unique and primary) keys.
- Updated docs - clarified installation and site tree setup.