PDS2PDS Partitioned Dataset Matching Utility

Thursday, January 1, 2009

Still no News to Report


Unfortunately I haven't really worked on the utility at all since the beginning of 2008. I have taken some time to document some of the new features I want to add, but no coding has been done on anything in almost a year.

My regular job has taken up enough of my time that I just haven't been able to concentrate on this software. I have, however, as part of my regular job learned quite a bit about writing Open API and Open TCB programs in CICS.

Right now I can't say when I'll be able to start working on the utility again. I'm going to need to learn some new (for me) ISPF tricks for using Dynamic Areas in ISPF panels to implement some of the features I want to add.


Sunday, June 8, 2008

It's been a while

So, it's been about four months since the last time I really did any work on the utility. Looking at the source code after all this time is almost like seeing it for the first time. I re-tested the functions that currently exist just to make sure I hadn't left anything broken or non-working from before, and realized that I had omitted a couple of things.

I'm in the process of adding in the omissions but I haven't found any problems. One other thing I need to add before the program gets too big is some sort of logging. I'm thinking that a record of each session, showing things like members moved, deleted, copied, etc. might come in handy if members in one dataset or the other were accidentally altered or destroyed.


Tuesday, February 5, 2008

Slow progress this past week

Things have been a little slow this past week. I'm (still) working on two commands, Copy and Synchronize.

The first version of the Synchronize just didn't work well at all, so I've rewritten it. I also wrote new code for reporting errors. Now a panel is displayed after an error that tells the paragraph name the error occurred in, the operation that got the error, the dataset names involved, and information from the ZERRSM and ZERRLM variables. All of the new code seems to be working well and I'm doing testing right now.

The Copy command was working fine but the program calls IKJEFTSR to execute TSO commands. In case of errors in TSO commands you usually get error messages displayed on the screen. But I trap screen output to a compound variable using OUTTRAP and i want to read those variables and display the messages in the new error message panel. After a lot of fumbling around I finally figured out I could just VCOPY the terminal output variables into the program and report them.

So now I'm testing the new code and by the end of the week I hope to move on to the next thing.

Thursday, January 31, 2008

Primary Commands Under Development

Most of the primary commands are written: Locate, Flip, Copy, and Synchronize. But after I got the Synchronize command written I decided I didn't like the way it works, so I'm re-writing it. After that, I'll work on the Swap command.

I've added about a thousand lines of code to the program in just the last week. That's not as dramatic as it sounds because once a section of code is written for the dataset displayed on one side of the screen I can just duplicate that code for the other dataset and change some of the field names.

So things are still progressing, but starting to slow down a bit.


Tuesday, January 22, 2008

A Milestone reached today

Today I reached a milestone of sorts. All of the work up to now has been on the basic operation of the main and member list panels: validation of datasets, error detection and recovery, display of proper PDS directory information for both "source" and load module datasets, and proper operation of the fields that select which members of the datasets are displayed. So far five programs have been written (3 COBOL and 2 Assembler) for a total of about 3500 lines of code. There's also a couple of hundred lines of REXX code for validation of panel fields and other things.

After some final desk checking, tweaking of panels, changes to programs, and testing of the code thus far, I'm finally ready to declare this phase finished and move on to the next.

The next phase is to start writing code to execute the various commands. There are primary commands which are entered on the ISPF command line, what I call global commands that operate on the entire dataset(s), and line commands which operate on individual member or member pairs.

The primary commands will be written first, then the global commands, and finally the line commands. I keep thinking of new commands I want to add, so these are a moving target for now.

Below are current screen images of the main and member list panels.


The main panel:




The Member List Panel:







Sunday, January 20, 2008

Load Module info now on member list panel

Today I modified the programs and member list panel so they would display the PDS directory information for load modules. The new assembler language subroutine that I finished a couple of days ago interprets this information and passes it back to the main program, and now the main program will show this information on the member list panel.

Wednesday, January 16, 2008

Another subroutine completed

Today I finished another Assembler language subroutine. This one interprets the PDS directory information for load modules.

So the next task is to modify the member list panel to display these. Then I have to finish the Help panels, and then I may be close to being able to start writing the code that executes the global and line commands. It seems like every time I get close to this point I remember something else that hasn't been done yet.