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 
	logfile).
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 
	defined.
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 
	directory default.
- 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 
	copying.
- 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 
	template.
- Documented LM support in a Service (see 
	here)
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 
	handling.
- 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 
	procedure.
Version 2.48 Gold: Released April 27, 2010
	- Tpl fix  - Was not restoring TimeBetweenTransactions between 
	sessions.
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 
Clarion7.1.
	- 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 
	backends.
- 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 
	writing.
- 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 
	processing.
- 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 
	archived file).
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 
	leak.
- 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. 
	Obsolete.
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 
	fine).
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
	external DLL).
- Fix - CRC check - was only requesting the first few hundred different
	records.
- Class change - allow command line setting of Number of tries (inserting
	into logfile).
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 
FAQ U10 
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
    applications).
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.
- StoreBuffer
    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
    CRC check.
- 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
    was set.
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
    end tag.
- 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
    import.
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
    routine.
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
    string)
- 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
    required.
- 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
    cases).
- Template change - ProcessLogFiles, Export, Import, CRC Check and Sync
    control templates have been merged into one template 
	The
    ProcessWindowControls Control Template and will be superannuated in the gold
    release.
- 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
    clarionx\3rdparty\examples\Replicate\ControlLMWithAPP.
- 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
    finished.
- Feature LogManager - if required, the LogManager closes when
    app/controller closes.
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
    thread.
- 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
    normal.
- 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
    changed.
- 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
    created.
- 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).
What's Changed:
	- Feature - runtime setable
    directional suppression.
- 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
    use WinEvent.
Details:
	- Template code for CRC check with other site moved into a method.
- Class change - new OmitFileQ - stores a list of files to omit, including
    direction.
- Methods changed - 
	RegisterSuppressed
    (includes a directional parameter, and allows fields to be omitted, thereby
    pertaining to the whole table), 
	IgnoreTable
    (includes directional parameter), 
	MakeMissingLogFiles
    (includes a site parameter that requested the missing logfiles).
- New method - 
	DoCRCWithSite.
    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 
What's Changed:
	- Fixed - Receiving a PauseTimer/StartTimer from the ControlCenterServer,
    posts an event to PauseTimer control instead of just changing the state of
    the variable.
- 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 
What's Changed:
	- 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 
What's Changed:
	- 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. 
What's Changed:
	- 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
    existence.
- 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.
Details:
	- 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 
What's Changed:
	- Fixes Auto-Create missing logfiles (if no archiving is used).
- CreateChild control template
  supports Replicate Direction Selection and template selected Site Data Range Selection.
Details:
	- 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
    relating sites.
- 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 
What's Changed:
	- 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 
What's Changed:
	- New Feature - CRC database comparison and limited synchronisation
    (addition of WinEvent and the 
	CRC Check control template required in your
    LogManager).
Details:
	- Template fix - LoadFileToString returns -1 if error loading a file to a
    string.
- Template fix - CRCCheck stipulates if site range is used (call to FileCRC
    method).
- 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
    string.
- 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
    request file.
- CompareCRCFile - free CRCCheckQ after comparing; open and close data files
    where necessary.
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)
- 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
    error).
- 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
    SiteFile.
- 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
    Replicate inactive). 
- New method - 
	CriticalErrorInImport
    - 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
    the CRC)
- 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
    is sent).
- 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
    error. 
- 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
    Non-FTP application.
Version 1.78 beta: Released March 23, 2005 
	- Template Fix - Multi-DLL (for optional Replication) - allow setup in
    template.
- Template Fix - LogManager template where LogManager uses the DataDLL (was
    not initializing).
- 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
    well).
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 
What's Changed:
	- Fix - when writing to a logfile that is not open (exporting - leads to an
    error 63).
Details:
	- 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
    fails.
Version 1.74 beta: Released February 14, 2005 
What's Changed:
	- Removed use of CSTRINGs (causing spurious errors) where not completely
    necessary.
- Fixed template error when using Status without the Status counters.
Version 1.73 beta: Released February 8, 2005 
What's Changed:
	- Fixed erroneous template variable.
Version 1.72 beta: Released February 2, 2005 
What's Changed:
	- Work-around for ASCII logfile viewer in example applications (bug in
    Clarion template was causing GPF) and txas.
- New method - 
	GetGlobalSetting:
    a thread safe method for getting a global setting.
Version 1.71 beta: Released February 2, 2005 
What's Changed:
	- 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 
What's Changed:
	- Updated docs to reveal property changes and steps to change these properties.
Version 1.69 beta: Released January 27, 2005 
What's Changed:
	- 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).
Details:
	- 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
    logfile.
- 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
    return 0).
- 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 
What's Changed:
	- 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
    AutoExport.
- 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 
What's Changed:
	- You need to import the new LogManager routines (preferably create a new
    LogManager, or else do a partial import of the Replicate windows).
Details:
	- Template - new compile flags for FTP: Exists, Overridable, ShowSettings;
    and StatusFlag existant.
- Template - correct embed point for hiding controls in SiteSettings control
    template.
- New template utilities (x2) - supercedes the previous template utilities
    (x6).
- New control template - AutoCreateChild site. This control template
    supercedes the old coded routine.
Version 1.66 beta: Released January 14, 2005 
What's Changed:
	- 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
    feature).
Details:
	- 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 
What's Changed:
	- 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.
Details:
	- Closefile method takes a debug parameter (to show from where it was
    called)
- Template change - generate code for setting status stuff in SetStatusFlag
    derived method.
- Fix - use a created loc variable in GetArchive - because pathname required
    in decompression.
- 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
    found.
- 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
    ReplicateSendRequest.
- 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 
What's Changed:
	- 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.
Details:
	- 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
    warning section.
- 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 
What's Changed:
	- Important Fix - fixed sporadic logfile skipping.
- New feature - Status setting in LogManager to determine status of relating
    LogManagers.
- New Feature - auto-create a blank or complete logfile, if a logfile is
    missing.
- Important Fix - sometimes site was not being processed to.
- Important Fix - allow Message files to be sent through to a relating child
    site.
Details:
	- Object Change - made LogFile variables into global unthreaded class for
    Clarion6.
- 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
    request functions.
- 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
    correct.
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
    are added. 
- 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
    incoming directory.
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
    tips).
- 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
    sending them.
- 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
    more flexible.
Version 1.48 beta: Released July 20, 2004 
	- Multi-DLL setup in the Template improved. Also LogManager can use the
    DataDLL correctly.
- 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
    the logfile.
- StoreBuffer after a PUT (incase of multiple PUTs to the same record).
- Correct stamping of CRC (for large logfiles where CRC stamp spans 2
    logfile records)
- 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 
What's Changed:
	- 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
    Replicate optional.
- Fixed the SiteFile open error if you were not replicating the SiteFile.
Version 1.45 beta: Released April 30, 2004What's Changed:
	- Fix (CheckDirectory method) - Create directory for paths containing Drive
    names.
Version 1.44 beta: Released April 30, 2004What's Changed:
	- 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.
Details:
	- 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
    embed point.
- 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. 
Version 1.43 beta: Released March 19, 2004What's Changed:
	- 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.
Details:
	- Template Fix - if SilentMode switch turned on, turns the silent property
    on.
- Template Change - passes the external or the actual name of the GUID when
    registering the field.
- Class Update (New methods 
	AddToLog,
    OpenTempFile)
    - use this method to write to the logfile, and the latter to open the
    TempFile.
- 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.
Version 1.42 beta: Released March 15, 2004What's Changed:
	- New Feature - synchronize 2 relating sites.
- Bug fix - don't not import other sites logfiles if we're waiting to receive logfiles from a 
Details:
	- 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
    previously doing).
- 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.41 beta: Released March 10, 2004What's Changed:
	- Critical Class Fix - Auto-rectification of corrupt logfile counter (bug
    introduced in version1.33)
Version 1.40 beta: Released March 10, 2004What's Changed:
	- 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.
Version 1.39 beta: Released March 4, 2004What's Changed:
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
	FAQ
    U.4. 
	- 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)
Details:
	- Class Fix (Import method) - exits with error if file imported 0 bytes.
- Class Fix (MoveFilesOut method) - Always checks logfile existance before
    sending.
- 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
    logfile.
- 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.38 beta: Released February 13, 2004What's Changed:
	- Fix - when importing a file that contains throwaway records, memory was
    not being flushed (until complete logfile was imported).
Version 1.37 beta: Released February 13, 2004What's Changed:
	- Fixed missing char in line (causing occasional infinite loop in import
    routine).
- Fixed importing of file changes where GUIDs have external names.
- New Feature - Archive logfiles.
Details:
	- 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)
    archived files.
- 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
    the logpath).
- 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
    bye.
- 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.36 beta: Released February 9, 2004What's Changed:
	- 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).
Version 1.35 beta: Released February 6, 2004What's Changed:
	- 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.
Details:
	- 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).
Version 1.34 beta: Released February 3, 2004What's Changed:
	- 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.
Details:
	- 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
    logmanager).
Version 1.33 beta: Released January 29, 2004What's Changed:
	- Support for FM2 (previously only FM3 supported)
- Fixed the RestoreBackup method (was hanging in some circumstances)
- Fixed the GlobalFTP settings (specifically where the directory -
    self.site)
- Split the import method into 2 - import and Processline in anticipation of
    the Online transport layer.
- New feature - allow de-registering of files.
Details:
	- 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
    site limitations.
- Class Change - Added parameter to the 
	IgnoreField
    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 
	DeRegister)
    - allows deregistering of files at runtime.
- Class Change (new method 
	ProcessLine)
    - 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.32 beta: Released January 27, 2004What's Changed:
	- Template Fix: Prevents old FTP name (with Site directory name on the end)
    from having an extra site directory added.
Version 1.31 beta: Released January 19, 2004What's Changed:
	- Support for ALIASes.
- Support for FM3 upgrading.
- Better implementation of optional Replication.
 Details:
	- 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
    method.
- Template Changed - removed all old SIT:InDir field references (now
    obsolete).
- 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
    configuration.
Version 1.30 beta: Released January 13, 2004
Important Note: If you used the 
IgnoreField
  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
  imported.
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
Question
  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).
What's Changed:
	- 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
    respective directory.
- 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.
Details:
	- Object Fix - If SuppressWarnings is set, then don't warn on request for
    missing logfile.
- 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
    outgoing directories).
- 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
    string(FileNameSize)
- 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
    pOptions.
- Template Change - SuppressWarnings checkbox on the global extension sets
    the property (for ease)
- Template Change - Do away with ForceImport from first logfile checkbox
    (obsolete).
- Template Change - Option to use SiteSetupWizard instead of the default
    procedure
- 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 -
    obsolete.
- 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
    graphics).
- 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
    processing.
- Template Change - transport priority order set: Direct, otherwise Email,
    otherwise FTP.
- 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.
- 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
    applications.
- 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.
Version 1.29 beta: Released December 4, 2003What's Changed:
	- New feature: You can replicate external (graphics) files that are pointed to in your
    data.
- 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
Details:
	- 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
    extra stuff).
- 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
    derived).
- Object Change (new method
    IgnoreField)
- Object Change (new method 
	ChangeFields)
- Object Change (new method 
	HandleExtraFiles)
- Doc change - revamped 
	An explanation of the Site File
    section.
Version 1.27 beta: Released November 27, 2003 
What's Changed:
	- 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
    logfile request.
- Force SiteLo to be <= site and SiteHi to be >= site.
Details
	- 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
    method.
- 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
    duplicated.
- 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
What's Changed:
	- Support for much more logfiles (increased from 65535 to 2708160)
- Fixed GPF when receiving a Request file (caused by not closing the file
    correctly).
- 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
    subsequent logfiles)
- 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
    beginning).
Details:
	- 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
    2708160 files
- 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
    missing).
- 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) <> ''
 remove(ThisRep.LastMSGFile)
 if ~errorcode() then clear(ThisRep.LastMSGFile) .
 end
 
Version 1.24 beta: Released October 23, 2003What's Changed:
	- 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
Details
	- 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
    that.
- Object Change - removed obsolete code to find the BestKey (in register
    method).
- 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
    more sense). 
- 
	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. 
Version 1.23 beta: Released August 8, 2003What's Changed:
	- 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. 
Details:
	- 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.22 beta: Released August 1, 2003What's Changed:
	- 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).
Version 1.21 beta: Released July 18, 2003What's Changed:
	- 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.
Details:
	- 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
    CopyOut routine.
- 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.
Version 1.20 beta: Released July 15, 2003What's Changed:
	- 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).
Details:
	- 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
    after exporting.
- 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
    path
- 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.
Version 1.19 beta: Released July 11, 2003What's Changed:
	- 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.
Details:
	- 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
    derived method.
- 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
    close method.
- 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
    directories.
- 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
    name.
- 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
	- 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
    information file.
- New method: GetTranslation - central place for obtaining the translation
    of text.
- 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
    C6 support).
Version 1.17 beta: Released June 5, 2003
	- 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
FAQs.
	- (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
    populated.
- 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
    obsolete FUNCTION).
- Object Change (RegisterArray) - If the file is threaded, the Arrays Queue
    stores this.
- 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
    Array contents.
- 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
    Clarion6)
- Object Change - refers to global unthreaded properties (in Clarion6) were
    required.
- Object Change - LogFile determined when opened (rather than in the configure
    method).
- 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
    export queue.
- 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
    added.
- Template Change - allows runtime disabling of FTP and/or Email transportation
Version 1.0 beta 15: Released May 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
    both.
- 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
    request files.
- 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
    directory.
- 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
    deleted.
- Object Change (ProcessMovedFiles) - add '\' to directory before checking
    the directory.
- 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.
- Template Change - Support for FTP included in the template (procedures and
    stored location).
- 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
    method.
- Template Fix - Close SiteFile after GetNextNumber method.
- New Methods (CheckRequestFile, LoadSitesProperties, ReceiveRequest, ReceiveRequest,
    Requisition).
- 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 14b: Released April 9, 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 14: Released April 8, 2003
	- Object Update (GetFileName) - new parameter to specify site.
- New Feature - Optional encryption of logfiles before transporting and decryption
    on reception (includes 
	new
    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
    directory.
- 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 13: Released April 2, 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
    the import.
- 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
    routine.
- Template fix - '\' not added to the InDir field. This is added to the buffer
    in the object.
Version 1.0 beta 12: Released March 19, 2003
	- New method in the csLog Class - 
	CheckDirectory. 
- New method in the csLogManager Class - 
	TagReceived.
- 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
    flag)
- 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 11a: Released March 6, 2003
	- Includes the new BDE release (v1.033)
Version 1.0 beta 11: Released March 4, 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
    transport method.
- Included the new Bulk Dictionary Editor (Version 1.031).
- Template Change - Use GetGUID method when generating a GUID for a suppressed
    file.
- 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
    be processed.
- 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 10: Released February 12, 2003
	- Object Change (Insert method) - track the size of the string, don't use
    clip().
- 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
    cases).
- 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 9: Released February 5, 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
    change.
- Template Change - Fixed Site clearing if Site details obtained from the
    SiteFile.
- 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 8: Released February 3, 2003
	- 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
    loop.
- 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
    in speed).
- Template & Object Change - Compilable version for Clarion 6 - 
	but
    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
    them.
- Object Change - Checks previous logfiles to ensure EOF stamp exists.
- Object Change - StampEOF - allows stamping of file that is not the current
    LogFileNumber.
- Object Change - New method for creating the LogFile name - 
	GetFileName.
- Object Change - Commit method changed. Updates TempLogFile to correct logfile
    (if it changes).
Version 1.0 beta 7: Released December 18, 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 6: Released December 11, 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
    case.
- 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 5a: Released December 9, 2002
	- Install fix - install for beta 5 contained beta 4 files instead of the beta 5 files.
Version 1.0 beta 5: Released December 3, 2002
	- 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.
- 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
	- 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 3: Released November 22, 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
    Site limitation)
- Template Fix - Resolved Multi-DLL file declaration issues.
- Template Fix - Assigns External attribute to variables (in a multi-DLL)
    correctly.
- Template Change - Auto-assigns a GlobalData field (that the Bulk Dictionary
    Editor populates in your dictionary) to ThisRep.Site variable for use in your
    program.
- Template Change (OpenReplicateFiles) - Allows you to only open the files
    used.
Version 1.0 beta 2: Released November 20, 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
    coded path
- 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
    (ProcessLogFiles template).
- 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 beta 1: Released November 14, 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 8: Released November 6, 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 7: Released November 5, 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 6: Released November 4, 2002
	- Object Fix - getting stuck on the first log file (i.e. not importing logfiles
    of number > 1)
- Template & Object Change - easy implementation of 
	mirror
    sites.
- 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
    EOF stamp.
- NB: Object update - Started RepMessage ID fields at 11 instead
    of 1.
Version 1.0 alpha 5: Released October 31, 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 4: Released October 23, 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
    that site.
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.
Version 1.0 alpha 2: Released October 15, 2002