An Analyzer Extraordinaire
COBOL developers, programmers get help from handy toolbox
Shawn M. Gordon
S.M.Gordon & Associates

DataAid is one of those programs that I wish had come along 15 years ago. I’m still thankful that it has come along today. The appeal of this product will be strictly for COBOL shops. What DataAid allows you to do is apply your COBOL record definitions from either a COPYLIB or an INCLUDE file to searching/modifying or deleting records in your database.

The reason a product like this is handy, and even critical in some environments, is because it’s not uncommon to see a database defined with large generic buffers that are only defined within the copy library. Add embedded binary fields to this, and you have something that is completely unreadable, or unmanageable in QUERY. You are reduced to writing a program every time you have a special need. There is nothing wrong with having these generic buffers, but you need a way to easily deal with the data — and that is where DataAid comes in.

How does it work?

The folks at Retriever Interactive have done a wonderful job of building a Windows-like interface on a standard terminal. You have menu bars, pop-up help, drop-down menus, hot keys — the works. This makes the program very easy to use and learn. Take a look at Figure 1 to see the main menu bar with the drop-down menu.

Figure 2 illustrates the main panel you use to set up your data sources. Here is where you specify all the database/dataset information that you are interested in. Then you specify the copylib or include file that your data will be mapped onto.

A neat feature here is that if you have a copy member that contains more than just one record structure, you can select the one you are interested in by either filling in the name in the Recordname field, or by entering a ? in the field and getting a pick list of the record structures available in that copy member.


Figure 3 shows what is immediately presented to you after selecting your database/set and copylib. You are put into browse mode on a serial read. From here you can scroll through records and delete or change values if you like. You will notice a number of fields that have a description of “LOGICAL”; this indicates that the field is defined as an 88-level item.

With the block mode style interface, you are able to simply position the cursor on a field and change its value and it will be correctly mapped back into the database. I really like the job they did with the pseudo-windowing and block mode.

My only gripe is that the use of the +/- keys — to go up and down in a pick list and the Tab/Backspace to go around the menu bar — is a little less than intuitive. But I understand that the developer wants to do a single-character read — and the alternative, arrow keys, would generate two characters

You can do keyed lookups as well, by issuing a PATH command on either the COBOL name, the real image name, or an item number. DataAid will find the correct IMAGE item for you, so that when you issue your FIND command it goes against the declared key field.

Some other nice features have DataAid display the offset of the data items within the buffer — so if you need to use a product like Suprtool, you can quickly determine your byte offsets for fields. There is also an export feature that can generate COBOL definitions for a dataset. You can specify IMAGE as your format type, and DataAid will import the layout, which can then be exported as your COBOL definition. There are various options that you can turn on during this process as well.

There are an assortment of features and functions inside DataAid for creating, viewing or erasing files — doing a TELL, viewing an English list of your capability matrix, and so on.

Installation and Documentation

Installation is very easy — a standard restore and job stream format. The documentation is well written and easy to get through, and overall you don’t need to refer to it very often. I only went through it for purposes of the review. The online help is very nice and makes life much easier because it is context sensitive. Take a look at Figure 4 to see an example.

The TestDrive

Since I started looking at DataAid during its beta process, I was able to get a number of features put into the product that I really needed. Retriever Interactive was incredibly responsive and put in all of my suggestions. I can’t stress enough how much this tool has helped me in some of my current Y2K situations in analyzing data.

With the new feature to look for invalid dates and the ability to map my generic buffers, I was able to scan through all my datasets looking for “bad” dates. Sure, there are some other tools that can look for bad dates. But imagine having to try to find the byte position of an integer field that contains a date in the middle of a 500-byte buffer that has an assortment of binary and ASCII data in front of it. DataAid can do it easily.
I also made use of DataAid as a high level Query tool for looking up data to validate results, test my date windowing and bridging software, and modify data. It’s really quite a handy little toolbox.


I received a beta copy of DataAid back in February, and the timing was very interesting. I had just left a client site where DataAid would have been of no use, since all of their databases where completely defined. However, I had just started at a client site where almost every piece of data in the database was part of a generic buffer. There was ASCII data in binary fields, binary data in ASCII fields, no regard paid to field boundaries — in other words, it was a mess. DataAid came to my rescue there, and gave me a good opportunity to really work with and appreciate the product.

If you are a COBOL shop, you really need to look at DataAid. It’s a very handy tool for data lookup and manipulation. The integration with Suprtool allows DataAid to also be very quick when looking for data, so you also have a high-performance tool. They did a very nice job with the windowing and online help in the product, making it easy to use. And don’t forget about DataAid’s ability to scan your database looking for “invalid” dates, to help you with those nasty Y2K problems.