palmtree with sun behind it CONTACT US
Phone: (412) 835-9417
Email: sales@vss3.com

TIP # 16 Making filePro data bases Year 2000 Compliant

Copyright 1998, Nancy Palmquist, All rights reserved

Issue 1 - Software versions

Upgrade your existing version of filePro to 4.05. It is not possible to make any other version of filePro Year 2000 compliant in every respect. In addition, be sure your operating system is Y2000 compliant and any other software you might use on your system.

Issue 2 - Environment variables

After installing 4.05, set PFCMARK=nn where nn is the start of your hundred year span. If you set it to 30, then 1930 to 2029 will be your hundred year span and all dates without centuries will be assumed to fall in that span. The century will be applied accordingly for sorts and indexes. It is not necessary to modify dates in that range at all.

HINT: I recommend considering the type of data that is tracked in the system and setting your year accordingly. For example, in a system I work with often, it is entering Medical Insurance claims. The Patient Date of Birth is the oldest date and all other information is entered as transactions that happened today. The time span is Today and backward. To make the birth dates pick up a default century as often as possible, we set PFCMARK=5. Then if I enter 12/01/06 the computer will assume 12.06/1906, but if I need to enter a birth date older than 01/01/1905 such as 6/5/1901, I would have to type the full date including the century. I, of course, store the dates with the century because we have had people with birth dates in 1800's for years. It just saves the data entry person some keystrokes.

Issue 3 - Date fields in your data files

Dates included as data fields in your files. If you used any of the filePro date edits to define the data and your data falls easily into a 100 year range, no change to the date format is necessary. If you have dates that span more than 100 years, s a common example might be Date of Birth, change the edit on the field to include the century, if it does not already.

Changing the edit and length on a date field in the Define Files, will change all the data to the new date format as the file is restructuring. The data must be in a field using one of the date edits and must be changed to another date edit. For example, changing a date field from 8,mdy/ to a field with 10,mdyy/ would change a date from 06/14/98 to 06/14/1998. You do not have to do any additional programming. If the date field had an length and edit of (8,*), it was not a date field as far as filePro knows and would not automatically restructure. In fact, if you applied a date edit to the field, any data that did not pass the edit would be erased.

Issue 4 - System maintained fields @cd, @ud, @td, @dt, @bd

System maintained fields are still stored in mm/dd/yy format. If you use @td, @cd or @ud in your logic or selections they will only work correctly past 12/31/1999 with the 4.05 upgrade. If you use "/" as a shortcut to enter a date as the current date, it is tied to @td and will supply a /OV without the 4.05 upgrade.

Issue 5 - Indexes

Indexes that are built on spanned fields that include dates, should be recreated with a sort level on each field. For example,

1 Invoice Number 5, .0

2 Invoice Date 8, ymd/

In 4.1 or older you may have built an index on field 1, length 13 to sort all transactions on an invoice by date for a browse display or lookup. This type of index does not recognize the sort for the date. It will just sort alphabetically on the combined data. To make the sort continue to properly sort chronologically, change the index to be a two level sort.

Sort field 1, length 5, then sort on field 2 length 8. The new index will work the same for lookups, browses and programming, however, the date sort will now follow you past 12/31/99 properly.

Issue 6 - Programming using dates

Look for any references to 12/31/99 as a highest date possible. The logic will need to be changed. I chose to use a logic that will slide forward. I took today's date and added 10 years. And used that as the default highest date. Also look at your logic for lowest date. If you used 01/01/00 as the first date possible, it will now reference 01/01/2000, so you might want to change that logic as well to do 10 years less than today's date. This was the most common hardcoded date issue I found.

Issue 7 - Data that uses parts of dates

I have commonly set up summary files that use a month for each record. It keys to a month data field with data such as 0598 for May 98. This logic needed to be updated to include the century such as 051998. That will keep my months in order chronologically and will work into the next century. I have seen many versions of this type of logic, so you may have something like this to look for also.

You may also want to look for logic that uses dates to create PO #'s or Order #'s. Make sure the numbers will still follow the original plan in the design of the software.

Issue 8 - Typing dates in the new system

If you have changed your dates to include a century, it is not necessary to type the century when entering a date. The new date edits are smarter and will accept 04/05/99 and change it to 04/05/1999. Some other new features have been added to save typing. The new logic will also allow you to type: 040599 and will change it to 04/05/1999. Something we have all wanted for some time.

Issue 9 - Miscellaneous items

I will add here any other suggestions or common areas where you have found a need to make global changes to your systems. Please send any feedback to my e-mail and let me add ideas for other people doing their upgrades. My email is nlp@vss3.com

For a download of a more extensive version of this information see our FTP site.


This tip posted on July 28, 1998 by Nancy Palmquist. Your comments and suggestions are gratefully accepted. If no one is reading this, I will direct my efforts elsewhere, so let me know if you are finding this helpful. I will be looking for topics that can be covered in a page or two to use for future tips.

Contact Us by: Email to Virtual Software Systems or Phone: (412) 835-9417