McPond Software

Fixphet

Features

Fixphet is our utility for locating issues and repairing data in Prophet.

It is similar in result to Attache/Prophet's file recovery function.  It searches Prophet or Attache data files, locates issues, reports on them and fixes them.

We have created this functionality for specific clients because they have been unable to use their systems, and file recovery has not been able to assist. The data sets are large, and the issue can affect many records.  Manual data repair is not feasable.

Fixphet is a word play on Fix Prophet.

Currently Fixphet can handle two specific problems not handled by Prophet.

1.  Long float tails.

These cause Prophet Windows to crash when using next to step through records.
A value of 1.0000000001 or 0.99999999999 stored in Prophet's tables will sometimes cause it to crash.
Even a value of 1.001 when number of decimals is set to 2 will cause a crash. This fix type rounds
all offending values to two decimal places.  1.001 becomes 1.00      0.99 becomes 1.00  

This error can occur in the ICBranch file, typically on OpeningStockMTR, OpeningStockYTD ,but all decimal quantity and amounts fields on all files can be affected.

2. Notepad mismatched text and embedded end of file character combinations.

This happens where the text in the notetext file is a different length
to that specified in the Notepad file. An internal check in Prophet at each notepad read checks for 0A0D
occurring in the file at the expected end of the note. If there is a mismatch, Prophet Windows reports
the problem then dies, making the note unviewable and uneditable.
 The specific error is TMemoByteImage.ReadFromDisk: read past text record end. Record offset: 6828751
  Specifed length: 8751 Length on disk: 8749.     OK (Not really ok is it!)
 Prophet Debug (prophwind) dies with the same error, no additional information is provided.
Prophet incorrectly interprets this as the end of the note, triggering the error, and therefore not being tollerant of some types of pasted data.

  The error can also occur when a lone 0A (LF) or 0D (CR) occurs within the body text of the note, prior to the expected end string length of the note. Prophet eroneously interprets either of these characters as end of note, instead of checking for them as a pair. In Fix mode, Fixphet can correct these issues, by changing the rogue character to a 1B (ESC), which is used as the new line character in notetext.

Licence

Fixphet is free and open source software licenced under the GNU Public Licence v3.

Contributions of code or documentation or use cases happily accepted and added to trunk.

Commecial support and code change for Fixphet is available from McPond Software.

Prerequsites

To run Fixphet on your Prophet data, you must have a licence from Attache for their 3RD module

To amend and recompile Fixphet from source, to change what it does

  • Borland Delphi 7
  • Log4Delphi
  • XDOM 3.2

Usage

Fixphet runs from the command line, so it can be easily scheduled without problematic pop-ups or user intervention.

Fixphet is configured with the config.xml settings file. Use a text editor to set the options.

It does not require installation, or have an installer. Simply extract the files to a directory such as c:\prophet\fixphet\ , set the paths in config.xml, then run the batch files either notepadcheck.bat or notepadfix.bat

See the readme.txt file in the download zip for additional details.

 

Download

 DateVersion Download type
md5sum
2010-Apr-13
1.2.1
Runtime files - Windows executable inside a zip 17b201a20cd8741d9c861b5532d7bd6d
 1.2.1
Source files
e591aa2966995090524b8ac944c701e1

 

 

 

 

 

Last Updated ( 2010-04-13 05:20:54 )