Technical support memos


ADDSUM TECHNICAL SUPPORT MEMO
Date:
January 14, 2008 (updated: 12/2/08, 1/15/09)
Subject:
Vista (and some MS Server builds) and TAS day/name of week functions (DOW() and CDOW())
Product:
TAS 5.1 (DOS mode only), TAS 5.0
Author:
Addsum staff (Copyright 2008-2009 Addsum Business Software, Inc.)

TAS 5.1 and legacy products remain remarkably compatible with Microsoft Vista (and Microsoft operating systems released to date in general). However there are two programming functions that we identified in January 2008 as not working as expected under Vista. Previously we identified a similar issue in May of 2001 with a Microsoft server version (but which has rarely been seen since until recently). These are two date functions: DOW() and CDOW().

The issue is limited to TPC50.EXE and not to TP5WIN.EXE. The DOW() function returns the day of the week as a number, and CDOW() returns the name of the day of the week. No other date functions appear to be affected based on our tests, i.e. only these two. When TPC50.EXE is run under Vista, it appears that regardless of what date is passed to the DOW() and CDOW(), the date value that is used is the current system date. So if the system date is set to January 14, 2008, when TPC50.EXE is run under Vista the day of the week is always returned as a 2 and the day name is always returned as MONDAY regardless of what date value is used in these two functions. If you change the system date, the values returned will follow that new date, and not the values that are specifically passed.

DOW() and CDOW() are not critical functions and workarounds are available. Further this issue will not be of great concern to legacy Advanced Accounting 5.1 (or 5.0) users running in DOS mode (Windows mode is unaffected) since these are used in very limited user display situations and do not impact any core functionality (further future releases of Adv 5.1 have addressed this issue).

As of December 2, 2008, we developed a replacement library functions VDOW() and CVDOW() that can be easily used to replace DOW and CDOW in TAS 5.1 and TAS 5.0 systems (would be compatible for 4.0, but not tested). (We previously thought this would work for any year since 1583 however subsequent testing indicating it was limited to March 1997 and forward however that solution was temporarily good enough). This solved the Vista issue identified above and provided cross operating system compatibility.

Since then we have seen a Microsoft 2003 Server running build 3790.srv03_sp2_gdr also behave like Vista does in connection with this issue (yet at another customer site with the same release, it was not an issue). In looking at this issue we remembered that we had actually seen this issue as long ago as in May of 2001 with a Microsoft NT system (yet other users of that era were not reporting the problem). And further, we realized that we had previously solved this issue for that user by a function created by then Addsum programmer Zack Douglas using a simpler and more elegant and more powerful solution than the one we evolved towards using in December of 2008. That approach uses a function already built into the TAS 5.1 language that returns the Julian date more accurately than the algorithm we developed more recently.

We have therefore implemented the May 2001 function and have integrated it into the 2008 series of updates for Advanced Accounting 5.1. The Windows mode of 5.1 will continue to use the internal DOW and CDOW, whereas the TPC50.EXE mode use the ZDOW and ZCODW and we will, after a very short life, retire the VDOW() and CVDOW() functions.

These changes work equally well running under Windows 2000 or XP and have been tested under Vista Ultimate, XP Pro, XP Home and Windows 2003 Server. Contact us for further details.

As previously noted and in addition to TP5WIN.EXE, TP6RUNTIME.EXE (TAS 6 versions) and TP7RUNTIME.EXE (TAS 7 and 7i versions) are not impacted. Only TPC50.EXE has this issue.



Copyright © 2008-2009 Addsum Business Software, Inc.
ADDSUM is a registered service mark of Addsum Business Software, Inc.
Technical support phone number: 801-277-9240