Addsum web site and general info

Postings here will focus mainly on Advanced Accounting software updates, tips, and related topics. They will also include general comments relating to troubleshooting PC/Windows/network problems and may also include reference to our other software products and projects including any of our various utilities, or to the TAS Premier programming language. We considered setting up separate blogs for different topics so that users/others could subscribe to topics mostly aligned with their interests, but decided that it would be better to keep things simple since some topics cross over into others. We would nonetheless welcome your feedback/input in this regard. Our web site URL is Call us at 800-648-6258 or 801-277-9240. We also maintain so that older Business Tools users in particular have a greater chance to find us.


We highly recommend that accounting software users "follow" this blog via e-mail (enter your address and click on Submit below) or subscribe to a feed (see also below) as a way to keep current on the latest updates and accounting software news and information. You may also want to whitelist this e-mail address:

Monday, May 22, 2017

From Books 2.04 to Advanced Accounting 7i

A user that we have provided occasional support to since February of 1997 and who had been a Business Tools accounting software for well over a decade prior to that, recently decided to make the jump to a more modern version of the software.  

It remains completely possible to move data from some of the oldest legacy Books and Advanced Accounting versions to the latest release.  But there are challenges.   And in this case, even though the software had not been customized (one of the reasons why sometimes users don't move forward into new versions and which can pose an additional considerable challenge), more obstacles than might have been expected were encountered.

Challenges and obstacles:

Just to move a Books 2.04 system forward is a somewhat tricky task even when everything works exactly the way it should.  And in this case, it initially did not.

Program age and limited feature set:   Books 2.04 (Copyright 1988 Business Tools Inc.) was based on the TAS Professional 3.0 application development system (Copyright 1986-1988 Business Tools Inc.).   It had a reduced feature set compared to Advanced Accounting 3.0 which was also based on TAS 3.0.   The latest tas.exe executable file in the 3.0 series was dated October 30, 1991 and this was the executable in place on this Books 2.04 end user system.

 Books 2.04 was the next upgrade in the evolutionary line after the prior TAS-Books system developed using TAS-Plus 2.0 (both Copyright 1986 Business Tools, Inc.), and it was still using Btrieve 4.11b (Copyright 1982, 1988 Novell) dated February 29, 1988, which loaded as a TSR usually in a batch file prior to calling the tas.exe executable.  Orders in fact had been entered and processed earlier in this month.

Books 2.04
Unlike its peer product Advanced Accounting 3.0,  the Books 2.0 series lacked the concept of a sales order number (it only had invoice numbers), had no invoice history files, no purchase order history file, no multiple location handling, etc.   The 3.0 development series that both were based on also handled multiple companies very differently internally than would be the case starting with version 4.0.

Dictionary files were unexpectedly corrupt:  In moving  a legacy system forward, a Books 2.04 or Advanced Accounting 3.0 system must first be converted (in terms of its data; the program themselves are not converted but rather updated and replaced via software upgrade installations) to Advanced Accounting 5.1 (versions 4.0 and 5.0 can be skipped in terms of data conversion).   An even older system such as TAS-Books 1.02 would have to first be converted to a TAS 3.0 based system.   With over 20 years of use, some data files might be expected to become corrupt.  None however appeared to be in this case.  In running the standard conversion process to Advanced Accounting 5.1 after making the necessary preparations, we ran into an unusual problem:  the conversion process was clearly going through each file and converting each record, yet every single record saved into the 5.1 version was blank.   Yet there were no error messages encountered during the conversion process. This is not behavior that we had previously experienced. 

After a lot of troubleshooting and trial and error, we finally realized that the TASDICT.M file (version 3.0 based systems have *.M* data files; later versions starting with version 4.0 have *.B* file extensions) was corrupt after trying to reindex it in several different ways including using the Pervasive rebuild utility:   This was true of both dictionary files required in this version to support the two different sets of company data that were converted, and even though the last date stamp of these files was January 30, 1998.  The dictionary (and location) files do not change on a regular basis and there was no reason to expect that they were corrupt.   And in fact, it is rare for dictionary files to ever become corrupt in any version.

Yet the results of a Pervasive rebuild indicated that both the dictionary files (one for each company) in fact were bad.

The rebuild operation start time is 05/20/17 12:22:58.
rbldcli -c -sK -pP -f6  C:\books\tasdict.m

REBUILD-20: The utility is processing C:\books\tasdict.m.
REBUILD-68: Status code 2 was returned while copying records from the following file:
REBUILD rejected a total of    645 records.
REBUILD copied a total of     90 records.
REBUILD rebuilt a total of      0 indexes.
The rebuild operation end time is 05/20/17 12:22:58.

Another symptom of corruption was the fact that the "maintain database" program could not find its matching field records when attempting to use it for any desired file.   The dictionary files that define fields and tables otherwise remain static and aren't even opened and used in any way by older versions including through version 5.1 other than the location file.  So the problem of the corrupt dictionary files wouldn't have caused any end user problems unless the user needed to use the maintain database option (which apparently they did not) or in the conversion process that was now desired.

Since the dictionary files could not be repaired or at least not easily, we then had to hunt for a replacement.   We no longer have an installation package that we could find for a standard Books 2.04 system.   We would not expect the user to have a backup from before 1998 of the afflicted file.  But,  we found one in connection with an old project.  And we determined that with the replaced file, the conversion did work; except, the TASDICT.M replacement file had layouts that had been customized which created problems until some of those changed layouts were changed back to match the standard Books 2.04 system being converted.  

Post 5.1 conversion problems:  Because of limitations of Books 2.04, a special utility that we completed in May of 1999 (named BKBK20) has to be run to move posted sales order invoices out of the pending file into historical files, among other things.  That program has to be run in each converted company. That worked as expected.

However, a serious year 2000 (Y2K ) issue remained, and one that was anticipated.   Books 2.0 and Advanced Accounting 3.0 were not Y2K compliant because of the century problem engendered by the use of short dates, i.e.  a system using short dates in the MM/DD/YY or other similar short year format has to make an assumption as to what the current sliding century is based on.  And legacy development systems such as TAS 3.0, simply used a 1900 to 1999 century period meaning that a date entered as 01/01/00 would be interpreted as a 1900 date.  This though was not a problem of the Btrieve record manager engine (which has always saved dates as long dates, never as short dates and this is still true with the more modern Pervasive systems) but in interpretation of a short date century by the implementing software (in this case, tas.exe).   While attempts were made by Business Tools to effect Y2K changes in later versions, only version 5.1 became the first Y2K compliant version in terms of fully and correctly interpreting dates entered in the 21st century (well, for at least the first 20 years of  the new centruy; the sliding century for versions newer than 5.1 is much greater).

Users of versions prior to 5.1 who did not upgrade their software by January 1, 2000 typically were customized users who in anticipation of a Y2K problem had TAS 3.0 developers change every "short date" to a "long date" in their system.  This is not the approach taken to solve the issue in the newer Advanced Accounting series that continues to use short dates for date entry (which saves users entry item and leads to fewer entry errors) but it was the solution of choice in customized TAS 3.0 systems (it was not however the only choice, but typically  the only option that was commonly implemented).  And there are many dates that had to be changed including changing all of the internal temporary date fields and all of the screens with dates on them had to be addressed including sometimes placing that date in a slightly different position to accommodate the extra two digits.  Lots of tedious work was involved.  So it was not a trivial undertaking also because every single program using a short date would then also have to be recompiled along with changes every single screen or report "mounted" by that program, and lookup lists also requiring realignment for the extra two digits and so forth, and then tested.

This Books 2.04 user had decided to roll the dice and live with whatever consequences came their way in terms of the Y2K issue.   This did not mean that their system stopped functioning as of January 1, 2000, a system that they continued to then use for an additional 16+ years past that data.  But it did mean that the system did not "understand" that a "99" date and prior was older than a "00" date which would have led to problems in posting things into a prior year, customer aging lists, all reports that included any prior year dates in a date range, etc.  In the year 2000 itself, there would be been lots of problems.  As time went on though and years passed, the fact that the system was not Y2K compliant meant very little and the software would have had all of the appearance of working exactly as it did prior to the turn of the century.  

But given all of the data that was dated on/after January 1, 2000 intending to be in a new century and not the old one, and given that this information was now going to be contained in a system that was Y2K compliant, the date problem had to be fixed.  Using in part a utility we had written to address this issue, the century problem in the underlying short date data was fixed so that dates would sort and behave as expected.   

There were also some GL and other technical setup issues that had to be resolved.  And finally, we had a Books 2.04 system converted to Adv 5.1

Advanced Accounting 5.1

Final phase to Adv 7i:  From here, standard tools we developed going back to 2004 and enhanced since then were used to move the 5.1 converted data for two companies to the latest version.  This involves a series of steps, but all went very quickly and very smoothly.  

And so finally the system was ready for use, containing all of the customer, inventory and sales history data from the Books 2.04 system.

Advanced Accounting 7i

Wednesday, May 17, 2017

Windows cannot access specified device

An unusual occurrence leading to a Btrieve status code 20 ("Record manager inactive") occurred to a user of an older version of the Btrieve engine recently.  In troubleshooting the error and clicking on the legacy Microkernel engine, we received the dreaded "Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item."

Yet users did have permission.   Curiously though for this one (critical) record manager engine file, Windows could not show the security and required elevated access (which it already had).   Then it showed group access and ownership erratically, sometimes as expected, sometimes not.  And when trying to take ownership and establishing security levels, permissions could not be saved. 

Trying to run the w32mkde.exe from a command prompt gave the message "Access denied" leading us to suspect that there were open sessions.

And there were. At least three sessions were still running even though apparently a power outage occurred (and when the "server" - a 2008 Server -  might have gone down, but in re-booting seemingly returned to a prior state rather than starting back up with a fresh boot). Or perhaps there wasn't a power outage and the server simply went to sleep.

After closing all of the three running sessions that had a number of files open including the w32mkde.exe, that file was then literally . . . . . gone.   Vanished.  Poof.  It alone had to be reinstalled/copied into the software folder.

We've seen this behavior before:  something (or someone) tries to delete a file but can't because it is open.  Then when the session is closed that has that file open, the operating system then, on a delayed basis, deletes the file.  But if the file is being denied access and appears to still exist, why is it deleted later?  And we've seen this happen with other executables as well when we have tried to remove them after not realizing they were open.

Sometimes this message can indicate that the file is blocked and needs to be unblocked.  That was also not however the case here.

The situation here in fact involves  a "shared delete" described here under SMB file locking:

"Shared delete: Allows subsequent deleting of a file. If this flag is not specified, any request to delete the file will fail until the file is closed."

So a currently open file that has a sharing violation can be flagged for deletion if an attempt is made to delete it while that file is open (e.g. at a cmd prompt:  DEL SOMEFILE.EXE).   The file will appear to exist (since it actually still does) but if run (in the case of an executable) the operating system will respond with "Access denied" and then when the processes or user sessions that had file open are closed, the file will be gone. 

The same exact situation can be duplicated with other types of files that are open and if an attempt is made to delete them while open.   This behavior is not unique to "server" class PC's.

This scenario is very different than situations where users receive an "access denied" response or "Windows cannot access the specified device" due to permission or other issues.  In this case, we do not know what had triggered the attempt to delete the w32mkde.exe in the first place.

Additional information:

Process Explorer (part of Windows Sysinternals, so it is a free download) can tell you which program has a particular or directory open and is available for Windows Vista and above:

In terms of who has a file open on a PC network, we typically use compmgmt.msc (then Shared Folders and then Open Files).  However that approach alone will not necessarily identify all open files nor therefore necessarily be able to close all files that may be open  (for example, on Pervasive systems, the Pervasive monitor is needed to see open data files and to close them; and so related files/sessions should not be closed via compmgmt.msc until using the monitor utility on applicable systems to verify that a given user's data files are not open and/or to close them).

Microsoft catalog link for WannaCry

The direct Microsoft catalog update link for installing the WannaCry (aka "WannaCrypt") security update or patch (i.e. KB4012598, vulnerability MS17-010) can be found here:

You might wonder why Windows 7 is not referenced in the KB4012598 update.  This is because the updates for Windows 7 came out in March under a different KB reference (KB4012212 and others) to address the MS17-010 vulnerability.  See this link for the list:

See also:

U.S. users have thus far not been impacted to the same degree as elsewhere but more "WannaCry" variants are expected.

 While these updates first became available in March for most operating systems, updates for non-supported Windows XP (both 32 and 64 bit versions) only became available on May 13, 2017 (and was rather surprising since MS has not been issuing free updates for XP for some time now).  

 Users still running XP should immediately install the appropriate update from the catalog link.  Installing the update takes only a few minutes.  It does require a reboot    Even if your PC typically does not have direct Internet access, it is advisable to install this update since it would help to stop the spread of this latest  ransomware virus from spreading from one PC (that might have Internet access) to others (that might not) on the same network.  The security patch can be downloaded to a shared folder on your network or to a thumb or external drive, and then run on other PC's on your network or in your office without their having any web access.

While we are not a fan of automatic updates, some updates are from time to time important to install regardless of how careful users are with inbound e-mail, anti-virus protection, and in the web sites they visit.

There is some amount of misinformation about this virus and how it spreads.  Your greatest vulnerability is once again by opening e-mail attachments from unsavory sources, often disguised to look like it is from someone you know and/or that purports to contain an attached invoice or purchase order, etc.   End user education remains critical.

It is indeed unfortunate that there are individuals that would choose to spend their time and resources spreading malware rather than on pursuits that would benefit society and/or the health of the planet.  It is also highly unfortunate how the NSA handled this situation in terms of both safeguarding its information, in developing unsavory methods of hacking into computer systems in the first place, and not promptly acting to notify Microsoft and others of the threat so that these security updates could have been made available sooner.

Note:  If infected, do not pay the ransom.  Even if you pay it, you may still not receive an unencrypt key, more so this time around than ever.  Immediately consult your IT support if you receive any pop-up messages or if you start to see file extensions of .WCRY.

Additional information: