Date: 12/29/2025
Versions: Elliott v8.6 and Higher
Background
From time to time, the .DDF files that define the database tables in Elliott need to be updated. For example, when a flag is introduced to enable a new feature, a database table could have a new column defined. Often, new features that are introduced rely on the relational SQL engine (as opposed to the transaction engine) to support them. The relational engine needs the latest .DDF files to access the new columns.
Elliott can support three different versions of the same tables:
Version | Characteristics | Bin Directory | Supports |
v8.6 | . Alpha document number support
. Case-sensitive primary keys | <RootPath>\Bin86 | . Traditional Elliott
. PowerSearch, Report Desk, Avalara
. Elliott SOAP Web Services
. Elliott Cloud (in development)
. 3rd Party Products |
v8.5 | . Alpha document number support
. Case-insensitive primary keys | <RootPath>\Bin85 | . Traditional Elliott
. PowerSearch, Report Desk, Avalara
. Elliott SOAP Web Services . Elliott Cloud (in development)
. 3rd Party Products |
| v8.2 | . Numeric document numbers only
. Case-insensitive keys | <RootPath>\Bin | . Traditional Elliott
. Elliott SOAP Web Services |
Please note:
- DDFUPD.exe is an Elliott v8.6-only program. It is located in the Elliott v8.6 <RootPath>\Bin86 folder. It updates DDFs in subfolders of Bin, Bin85 and Bin86 folders.
- DDF v8.6 is the preferred DDF format. All new Elliott installs will default to this format.
- Customers that converted to alpha documents before the v8.6 DDFs were available, can still use the v8.5 DDFs,
Two Modes of Operation
DDFUPD is the program that manages copying those .DDF files to all the places that they can be used. DDFUPD operates in two modes:
- INSTALL mode, where it is automatically launched during the Elliott install/update process.
- USER mode, where the program can be run as needed to update specific .DDF files.
Minimum Requirements
DDFUPD.Exe must be run:
- On the database server
- From a local (or mapped) drive and path of <ROOT>\Bin86.
INSTALL Mode (/i on Command Line)
During an Elliott install, the latest .DDF files are copied to the following folders:
- <ROOT>\Bin86\DDF40\LastUpdate
- <ROOT>\Bin86\DDFROOT\LastUpdate
- <ROOT>\Bin85\DDF40\LastUpdate
- <ROOT>\Bin\DDF40\LastUpdate
These folders should never be busy because no SQL databases should point to them. The Elliott install automatically launches "DDFUPD /i" to run DDFUPD as part of the install. In INSTALL mode, the DDFUPD user interface is normally hidden and only the progress screen is shown, with information about the progress of the update, e.g.:
This INSTALL mode process performs the following steps:
- Makes sure the minimum requirements are met to do an update.
- Determines which, if any, DDF files need to be updated in the following folders:
- <ROOT>\Bin86\DDF40
- <ROOT>\Bin86\DDFROOT
- <ROOT>\Bin85\DDF40
- <ROOT>\Bin\DDF40
- Terminates if no updates are needed, or...
- Backs up any .DDF files that will be updated and...
- Successfully updates all DDF40 and DDFROOT .DDF files in Bin, Bin85 and Bin86 folders that need to be updated, or...
- Notifies the user of any errors and, upon request, rolls back any partial .DDF updates and causes the Elliott install itself to be rolled back.
- Terminates, either passing back a successful status or a rollback status. A rollback status causes the install/update process to reverse itself.
See section Error Handling (below) for any errors and how to handle them.
USER Mode (Not Launched by the Elliott Install)
At any time, you can also run DDFUPD.exe manually:
- On the database server
- From the local (or mapped) drive and path of <ROOT>\Bin86.
- The following user interface will be shown.
The Main Tab
Note the following:
- There are three tabs at the top, one for the v8.6 DDFs (shown above), one for v8.5 and one for v8.2.
- For this v8.6 tab, there are four kinds of DDFs that can be updated and each has a checkbox and a detailed description.
- The checkboxes are enabled (as above) if the latest .DDFs are different from their current .DDFs and an update can be applied; otherwise they are disabled and a status message is shown.
- You can check one or more checkboxes to select those .DDFs for updating.
- Pressing the Update button will begin the update process for all checked groups on all tabs.
Other Tabs - v8.5 DDFs
Note the following:
- There are no ROOTDDF .DDFs for v8.5, so they are not included in the first checkbox.
- In this case, all the checkboxes are disabled, indicating their of .DDFs cannot be updated or do not need to be updated.
- The reason that their .DDFs cannot be updated is shown with a gray background.
Note the following:
- There are no ROOTDDF .DDFs for v8.2, so they are not included in the first checkbox.
- V8.2 database format does not support Elliott Commerce nor 3rd Party products, so those checkboxes are not shown.
- In this case, all the checkboxes are disabled, indicating their .DDFs cannot be updated or do not need to be updated.
- The reason that their .DDFs cannot be updated is shown with a gray background.
Update Steps
I either the INSTALL or USER mode, the update process performs the following steps for each target folder:
- Backup by copying each target .DDF file from <Source> to <Target>\Backup
e.g. C:\Elliott8\Bin86\DDF40\LastUpdate\Attrib.ddf => C:\Elliott86\Bin86\DDF40\Backup.
- Update by copying each .DDF file that needs updating from <Source>\LastUpdate to <Target>
e.g., C:\Elliott8\Bin86\DDF40\LastUpdate\Attrib.ddf => C:\Elliott86\Bin86\DDF40.
- Save latest by copying each file from <Target> to <Source>\Last<TargetAbbr>
e.g., C:\Elliott86\Bin86\DDF40\Attrib.ddf => C:\Elliott86\Bin86\DDF40\LastDDF40
Error Handling
Certain errors that may be encountered are self explanatory and simply must be acknowledged by pressing the OK button. Others may be more complicated. If it is not clear what to do, we suggest you contact your software or database administrator for help. If you administrator does not know how to resolve the issue, he/she should contact Elliott support. When in doubt, roll back any updates and get some help.
Here are some errors you may encounter:
Some .DDF files have been customized after the last DDF update:
In this example, the Elliott install/update launched DDFUPD in INSTALL mode and the current VIEW.ddf does not match the last time DDFs were updated by DDFUPD.exe. This probably means that VIEW.ddf was customized.
If you do not understand this situation, you should press the Yes button to roll back any DDF updates and roll back the Elliott install itself. A software or database administrator instead may choose to follow the step-by-step instructions given here to complete the DDF update and reapply any customization scripts.
DDF File(s) Busy
followed by:
In this example, DDFUPD was started in USER mode. Here, ATTRIB.ddf is being used by another process, so it cannot be backed up prior to updating it. The process has stopped trying to update .DDF files. You must press the OK button to continue. Follow the instructions to stop the database server (removing busy status from any .DDF files) and try again.
Each time DDFUPD.Exe runs, a log file named with the pattern, DDFUPD-yyyymmdd.hhmmss.Txt, is created. It contains detailed information about each step in the process, including any exceptions, error dialogs and user responses. These logs are not company-specific, so they are created in the <ROOT>\Log folder.
Caution When Using Relational Database User Securlty
The automatic DDF update process we provide here (DDFUPD.Exe) does not work automatically with user security enabled.
If you have enabled user security, you should create another subfolder to ...\DDF40 for that purpose and update it manually when .DDF files change.
Author: JEG
Programs DDFUPD.vb