Review of SPG
Shawn M. Gordon
S.M.Gordon & Associates


Well this is a different sort of product review for me. This is a product that runs on an IBM compatible PC, but add’s great functionality to your 3000 based development. About a year ago a company called Cantata Computer Corporation started very agressivly marketing a product called SPG. The initial release of this product would allow you to build View/3000 screens for your HP under windows in an easy to use WYSIWYG environment. It would then generate the COBOL code and the View/3000 screen.

The release that is currently out will let you design both reports and screens as well as generating JCL and documentation for you. I was real interested to see how the JCL and DOC models worked. My experience with computer generated documentation has never been very good.

Let me tell you about the environment I tested it on. I have a 486/35 with 4 meg of RAM, MS Windows 3.1 and 512k Paradise Super VGA video card.

There are actually 3 different Models that can be bought from CCC. One is the Meta Dictionary which is required for all other products to work. One other is the Screen model and the last is the Report model. The JCL and DOC model come together and seem to be thrown in when you buy the other models. This means that you will always have to buy two models, but you will get four. Confused yet? Read along and see how the story unfolds about how well this innovative product works.


The first thing you have to do is to get information into the Meta Dictionary that you want to use. You can do this in a couple of different ways. The first is to type in the record and item names with the descriptors yourself. The other is to go onto your HP and get a FORMS list from QUERY and save it in a flat file. This file is then downloaded to a file called QSLIST in the SPG directory. You then click on the import option and there ya go. The only real limitation that I found with this was that I couldn’t select any file I wanted to to import as a QSLIST. It had to be QSLIST in the SPG directory.

Now that your dictionary is set up you need to decide what it is you are going to create. I wanted to do some reports since I hate coding for V/Plus.
Since I new what it was I was trying to do I went into the Edit function so I could design my report layout. Now to design a report or screen for that matter, simply involves going into the Edit function and typing your labels and then specifying fields, this is done using ^ to specify characters in the field. You can put in edit mask’s here as well, i.e., ^^/^^/^^ for a date.

Now that you have your report layout all done you just need to save it and then go and assign fields. SPG doesn’t care what you start out with when you are designing a layout, it could be a screen or report, when it does matter is when you do to actually set it up. Now in my case I selected a Report Model, I give it a name, specified the primary data file, the output device and then clicked on ‘Define Fields’, this is where you link actual fields to what you drew on the screen.

All you do to assign fields is click on the file you want, click on the item you want, and then locate the field on the screen you drew that you want the item to be and click on it. Pretty simple huh? In a report you can also create control breaks that totalling. So if you were doing some sort of sales report by salesman and location you could specify the level break on each of the fields and generate total fields for dollars and quantities for example.

The other neat thing in reports is the ability to specify what level each of the fields you typed on your screen will be. For example, you only want this to print on the first page, or this is a page header, or a control break, or group total, or detail line, well you get the idea. The only two things I really wanted to see here was the ability to create calculated fields other than control break totals, and the ability to assign logic to a field.

Creating an interactive program follows the same steps, but you obviously don’t get to specify page breaks and such. The difference here is that you will generate a V/Plus forms file and the COBOL source code.

The manual for the Screen Models has a huge amount of documentation showing what each of the rules in the Model are, but with no explanation as to why you care. You can modify the Models, but the documentation doesn’t give you any examples of why you would, or what you might use it for. It spends almost no time explaning what to do with everything once you upload it to the 3000 either. I am hoping that since the product is still so new that the documentation will get better over time.

Usability (also installation)

Well the software is completely Microsoft Windows based on an IBM compatible PC, so there is no issue of loading it onto your 3000. The PC installation works pretty much like any other Windows program. Pop in the disk, run Windows and then run the setup program on the floppy. You will be prompted for the source drive and the destination drive and directory. Then you just have to wait for it to copy the files, this takes just a couple of minutes.

What I didn’t care for is that the install is only applicable for the Meta Dictionary. Any other model installs from the DOS prompt using a DOS batch file on the distribution diskette. The documentation isn’t clear about how this is supposed to work either. I was able to figure it out quickly enough, but they need a central install instruction location.


I had a problem initially when bringing in a Query QSLIST. The documentation steps you through how to save the output of the FORMS command in QUERY in a flat file. What they don’t do is have you specify a file limit. So with the first data base I tried the FORMS command didn’t abort, but the file didn’t end up getting all the output either since it had filled up. I didn’t notice this until I started importing the file into the Meta Dictionary. After staring at the hour glass for about 40 minutes I finally decided something must be wrong and I re-booted my computer. This is how I found out that the file wasn’t complete. I am not sure how they determine when to stop try loading a QSLIST, but my first version was funky.

I did receive version 2.1 of the software during the course of my review and it handled QSLISTs much more solidly than my previous version. I have to say that besides that incident the software plugged along quite nicely. I never got any of those nasty MS Windows UAE’s, but I was also using version 3.1 which is better about that.


Well what can you say about performance in a package that runs on the PC? I do know that I was able to produce over a thousand lines of code in about 10 seconds. Granted that at least a few hundred of these were un-needed because I was using the generic model for reports at the time. I would say that this software will generate code in a very respectable amount of time.

Supportability (including Doc)

Their is a fair amount of documentation included with SPG, but it isn’t really clear where to start from. There is some sample data included as well as some sample screens and reports that you can play with. I found after just messing around and reading for about 30 minutes that I was able to get going and pull data into the dictionary and build a report screen.

The few times that I did call support it was pretty responsive. I talked with the gentleman that is doing all the new development and maintenance once and he was very helpful.

I would like to see the manuals laid out a little more clearly with more of a concise tutorial put in.


I see a huge potential for this product. The ability to tear out code this quickly coupled with the ease of designing your output or screen interactively is a nice combination. However I would like to see future versions give you the ability to build logic blocks that could be attached to objects and to build calculated fields. This is mostly useful for the Report model, and since the Report model is still new we will hopefully see some significant enhancements in the future.

I have heard that there may be a Model builder in the works. Follow me on this one, this would give you the ability to design any sort of output generator that you wanted, theoretically. That means any language, platform or what have you. I imagine designing a model could be rather tedious, but it will almost be like having yacc (from UNIX) under MS Windows.

I would also like to see the logic reversed a little bit in the way the program works. I would rather be able to ‘pick’ items and then have the program ‘feed’ them to my while I design my screen. This helps alleviate the need for keeping a hard copy of the items in front of you during the design process. Of course this is a matter of taste. Since they are going to be getting away from using the MS Windows Notepad soon, this will give them the ability to do it.

I was able to build a report and generate code in about 30 minutes for a project that I was testing. I have to say this is a far cry better than how long it would take normally. I did have to go in and edit the code to handle the calculated fields and logic, but it got my a fair way along the path to having the code done.

I thought that the original price for the product was a bit high, but during the course of this review they lowered the price to what I consider to be pretty reasonable. During these days of reduced personnel and expensive 4GL’s it’s nice to have a tool that will allow you to quickly generate code. It’s up to you if you like the way they do it or not, but it is worth a look if you are considering hiring more programmers.

At-a-Glance box

SPG version 2.1
Cantata Computer Corporation
165 8th St. Suite 304
San Francisco CA 94103
800-282-9520 voice
415-553-8572 FAX

Call, write or fax for more product information or to order.

Product is $2500 per module with a minimum of two modules required for it to be useful. Second copy is half price, support is free for 6 months and then 10% of purchase price per module after that.

Good Points

Ability to graphically design screens and reports
Have structured COBOL code generated quickly

Bad Points

Conditional logic not supported
Need a file selector for importing QSLISTs