Skip to content

Login SUPERVISOR to Update DDF Files After Elliott 8.6 Installation

Release Date: 8/17/2022
Version: Elliott V8.6 and Higher

Background


Most of Elliott Business Software uses the PSQL transactional database engine (Btrieve) to perform its work.  However, some new features of Elliott V8.6 use the PSQL relational database engine instead to perform their tasks.  These new features include Report Desk, PowerSearch, and Avalara® Sales Tax Interface.  Using the SQL database engine requires up-to-date SQL database definitions (schema) in the form of DDF files. Elliott 8.6 DDF files are stored in the following folders:
  1. <ElliottRoot>\Bin86\DDF40: The DDF files in this and subfolder is for Elliott 8.6 where users have converted to use alpha document number. During an Elliott 8.6 update, this folder's DDF files will be updated.  The DDF files are cached by Elliott during the login process..
  2. <ElliottRoot>\Bin86\DDF40\STDDDF: An Elliott 8.6 update won't update this folder. It is used to create DSN like ELI86DATA, ELI86DATA02..etc. for the PSQL Relational Engine.  On the other hand, when you login Elliott 8.6 as SUPERVISOR, system will attempt to update the DDF files in this folder.
  3. <ElliottRoot>\Bin86\DDFROOT: During an Elliott 8.6 update, this folder's DDF files will be updated. It contains the schema of database in the Elliott root folder. They are required for Report Desk, PowerSearch and Avalara features.
  4. <ElliottRoot>\Bin86\DDFROOT\STDDDF: An Elliott 8.6 update won't update this folder. It is used to create DSN like ELI86ROOT with the PSQL Relational Engine. On the other hand, when you login Elliott 8.6 as SUPERVISOR, system will attempt to update the DDF files in this folder.
  5. <ElliottRoot>\Bin\DDF40\: This is where we keep v8.2 standard DDFs for relational database access, for customers that have not converted to alpha document numbers. An Elliott 8.6 update won't update this folder. On the other hand, when you login Elliott 8.6 as SUPERVISOR, system will attempt to update the DDF files in this folder.
  6. <ElliottRoot>\Bin\DDF40\LASTUPDATE: During an Elliott 8.6 update, this folder's DDF files will be updated.
The reason DDF files in STDDDF do not get updated during an Elliott 8.6 update installation is because (1)  we allow users to install an Elliott 8.6 update during the day as long as users use the run local option; and (2) the STDDDF folder DDF files are used to create DSN like ELI86DATA and ELI86ROOT. So they are likely being used by the PSQL relational engine during the day when Elliott users are actively using the system and, hence, will result in update conflicts.  The same is true for the \Bin\DDF40 DDFs, if the customer is not using alpha document numbers.

To facilitate the update of DDF files in the STDDDF folders and the Bin\DDF40 folder, when you login to Elliott 8.6 as SUPERVISOR, the system will automatically check if the DDF files in STDDDF folders are different from their parent folders (which will be updated during the Elliott 8.6 update installation).  If they are different, the system will automatically initiate a process to copy parent folder DDF files to the STDDDF subfolder. The same holds true for the Bin\DDF40 and Bin\DDF40\LASTUPDATE folders. Therefore, we recommend that after your Elliott 8.6 update, you login as SUPERVISOR in the evening when all Elliott users are out of the system. If you have other activities like website, third party applications that need to access Elliott database, it is recommend that you check the PSQL monitor to see if the target folder DDF files are open. This article outlines the details of how this update process works.

Updating DDF Files
Immediately after downloading and running the Elliott update, you should login to Elliott as the user, SUPERVISOR.  When you do that, the startup process will compare the newer DDF files to the DDF files you were using for the relational engine (e.g., ELI86DATA or ELI86ROOT:)
  • If no DDF files are different, Elliott will run without doing anything more.
  • If any changes are detected, the software will immediately copy the newer DDF files to directories (<ElliottRoot>\Bin86\DDF40\STDDDF, <ElliottRoot>\Bin86\DDFROOT\STDDDF and <ElliottRoot>\Bin\DDF40) so that Elliott will run with the latest DDF files.
Normally, this process happens without any visibility.  However, if any errors are encountered during this update process, a status window like the following will appear.  If this window appears, one or more errors need to be corrected and the process must be run again, which necessitates logging in as SUPERVISOR.


Potential Errors When Updating STDDDF
The possible result values and what to do about them follows:
  • File Busy: This error occurs if any of the DDF files are temporarily busy. Exit Elliott and login again as SUPERVISOR. If the error occurs again, you may need to have all users exit Elliott and try again.  If the DDF files are opened by the PSQL engine, you may also need to restart PSQL engine.  See the following KB article for more details: https://support.elliott.com/knowledgebase/articles/2002129-how-to-resolve-file-busy-error-from-updating-ddf-d
  • Permission error:  This can happen when the Windows user that logs into Elliott as SUPERVISOR after an update does not have read, write, and create permissions for the STDDDF directory.  Login with a Windows user that has full permission for the STDDDF directory and then login to Elliott as SUPERVISOR. Sometime even if you login as Administrator equivalent on the PSQL server, you still may encounter Permission error. This is due to UAC elevation.  In that case, please login to the Administrator user directly to avoid UAC elevation problem.
  • File not found:  This error indicates a missing file in one of the DDF directories.  Reinstall Elliott after making sure all users are out of Elliott; then login to Elliott as SUPERVISOR again.
  • Error n/nnn:  This error is displayed when a more unusual error occurs -- for example, a network error.  This error needs to be diagnosed and corrected -- possibly by your network administrator --  before you login as SUPERVISOR again.

Process Details

When you login to Elliott 8.6 as SUPERVISOR, system will check if the live DDF folder need to be updated based on the latest Elliott installation. This section explains the details of live DDF updating process step by step. 
  1. Check to see if any of the applicable DDF files are different from their updated versions (Bin86\DDF40\STDDDF to Bin86\DDF40, Bin86\DDFROOT\STDDDF tp Bin86\DDFROOT and Bin\DDF40 to Bin\DDF40\LASTUPDATE).
  2. This process assume the user who login as SUPERVISOR as full NTFS right to update the DDF folders. On the other hand, the PSQL engine might open the live DDF files to prevent the update which will be detected in this process.
  3. If there are no differences between the installed DDF files and live DDF files, the process ends without any changes.  If there are any differences:
  • Create a backup directory under the live (Bin86\DDF40\STDDDF or Bin\DDF40) directory.
  • Copy the appropriate DDF files from the live directory to the backup directory.
  • Delete the appropriate DDF files from the live directory.
  • Copy the appropriate DDF files from the newly updated base directory to its live directory. 
  • If any errors are detected after beginning to update the Bin86\DDF40\STDDDF or Bin\DDF40 directory, copy the backed-up DDF files from the backup directory to the live directory and display the error list.

What If Updating Target DDF Files Failed?

If the updating of DDF files failed and it is not due to insufficient NTFS security, then the likely reason is because those DDF files are opened by PSQL database engine.  You can verify this by bringing up PSQL monitor and go to Active Files tab. In the sample screen below. The DDF files are opened.  If all Elliott users are already out (for sometimes,) then it is likely they are opened by web services or third party applications that rely on PSQL relational egine. See sample screen below:


In that case, you may need to stop and start PSQL services to clear the open files and try to login to SUPERVISOR and try again.  Note your websites or 3rd party applications will be temporary interrupted by this.

Do I have to Stop & Start PSQL Engine in Order to Update the DDF?

Since Stop and Start PSQL Engine may affect a lot of processing, if you wish to avoid that and still want to update the DDF, you can find the following two files in <ElliottRoot>\Bin86\DDF40 folder:
  • STARTBU.BAT
  • ENDBUT.BAT
You can execute the STARBU.BAT on the PSQL server and put the DDF files in  <ElliottRoot>\Bin86\DDF40\STDDDF into continuous operation mode. From there, you can update the DDF files.  It is very important that you must execute ENDBU.BAT after the DDF files are update.

You may need to modify these two files to make sure their path point to your server local path of your Elliott installation. The following is the sample content of STARTBU.BAT
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\ATTRIB.DDF
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FIELD.DDF
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FILE.DDF
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\INDEX.DDF
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\OCCURS.DDF
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\PROC.DDF
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RELATE.DDF
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RIGHTS.DDF
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\TRIGGER.DDF
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VARIANT.DDF
    BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VIEW.DDF

The following is the sample content of ENDBU.BAT
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\ATTRIB.DDF
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FIELD.DDF
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FILE.DDF
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\INDEX.DDF
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\OCCURS.DDF
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\PROC.DDF
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RELATE.DDF
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RIGHTS.DDF
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\TRIGGER.DDF
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VARIANT.DDF
    BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VIEW.DDF

One downside of using this method is the DDF files date/time in the STDDDF will become the system date/time after.


Program: NWSMDDFM
JEG

Feedback and Knowledge Base