Five Brave RPG Programmers Move from PDM/SEU to WDSc
I don’t know if all I/S shops work like the ones I have been at, but my experience is that the actual coding of programs is only a small piece of what needs to be done; and that the ratio of coding to design or documentation or support varies from day to day. There seems to be a cycle where first most of the time is spent hashing out a design, then a period of heavy coding, and finally moving to documentation and user support. This cycle may be short or long, depending on how stable the application is; and on the task assignments to each programmer.
Right now, I am just getting into the heavy coding stage of the enhancement cycle; and am having mixed reactions to WDSC as a result. Like any other set of enhancements I have ever done, we have a few programs which will need major changes to them, and many more which will only require a tweak or two. Most of the “tweaks” involve adding a field to an existing table maintenance program, changing some wording on a screen, or expanding the options available to enter in an existing field.
The “tweaks” typically require only a few lines of code to be changed, in a small program, or in a program we are very familiar with. For these kinds of changes, I have been using PDM, as it is so much faster. I know the program name, source file, etc; so all I need to do is make my backup copy of the source member, then change the source and compile into the test library. I may also need to edit the DDS for the display file, but that is also a quick process, as I am working on existing screens and not laying one out for the 1st time. If I get interrupted by a user question while doing this, I have a command line right there, and can quickly respond; without grabbing the mouse to switch to another session, waiting for the window to load, and then entering the command.
On the other hand, I finally had my first reason where I WANTED to use WDSC! I was changing the interface for something which is used in many places, and I knew the iSeries Search feature was just what I needed to quickly identify the source members affected and take me right to the line(s) to be changed. For this more complicated requirement, WDSC had PDM beat hands down. I believe that the larger a particular change will be, or the less you know about the program you are maintaining, the greater the value of using WDSC will be. If it is a small change in a program you know well, PDM works just great, and we shouldn’t be afraid to use it; but how many times have you been told to fix a program you had never seen before? Using the WDSC Outline View and the search tools, you can get a good understanding of the code much faster than with PDM.
Having said that, there are some features I would love to see in the results window for the remote search. Right now, you can add the results to a project, which means downloading the members to your PC, and making them unavailable to others. How about an option to add the members to a new or existing filter view, so that you could create a more permanent list of what you found? From there it should be possible to switch the list into a Table View, so you could see more detail (like the member text) on the results. It would also be nice to have a quick way to expand or contract the list, so that individual line details could be hidden or viewed for all source members without having to click on individual “+” boxes. Once you have the display formatted the way you like it, it sure would be nice to be able to either print it, or export it to a .txt or .csv file; for import into a spreadsheet or word processor. (Not only do I have to make code changes, but I also have to keep the boss up to date on what is being changed, and how much progress we are making. Being able to quickly export the member names would be a great help in setting up the documentation of what was to be changed for a particular project.) If anyone knows a quick way to do any of these, I’d sure love to hear about it.
And now back to coding...
Posted by on October 28, 2004 at 5:59 PM
One of the biggest changes from the PDM interface is that the WDSC is divided into many tiny “panes” or “views” , instead of the single view which takes up the whole screen in PDM. Until you learn to work effectively switching between the different views they are one of the biggest sources of frustration for a new user. I still hate to pick up the rat just to move between views, or open a window to type text into; but I am getting more used to having to do it. It still seems less efficient that pressing a function key or key combination, and then typing in your text; but at least I don’t have to stop and puzzle out which menu tree to navigate to find the option in the first place for MOST of what I am doing on a daily basis now.
I have also learned some tricks on getting the screens to behave the way I like. One of the most used now is activating the Table View, and then “parking” a shortcut to it over on the “Fast View” bar on the left side of the screen. (To park a view or window over in the Fast View bar simply click and drag the window header over onto the bar.) Once a view has been “parked”, it can be accessed by simply double clicking the shortcut. This is a much faster way to switch between views that what I used to do, and by being consistant in the order the views are “parked”; it doesn’t require me to interrupt my train of thought to read or navigate some kind of menu tree.
I haven’t had much success finding shortcut key combinations for things I do often, but two that stand out are CTRL-F for Find (inside the LPEX editor); and CTRL-SHIFT-i to quickly start an LPEX editor session. Now, if I could just figure out a way to combine the two...maybe with a macro...
I have found some other tricks, but these involve the mouse, and I wish there was a way to set my own shortcut keys to jump directly to a sub-menu selection within the editor or table views, rather than having to select something, then go to the menu button, then down to a specific menu item, and possibly even to a sub menu; and then back to the keyboard to type in additional information...(bet you can’t guess how much I LOVE the mouse!).
The first trick is from either the Remote Systems or Table Views, and involves right clicking a member or object within the view. One of the options in the drop down menu which appears is “User Actions”. These are very similar to PDM options defined with F16, and like the PDM options can have substitution variables for such things as the object name, library, member name, etc. By taking a little time and creating commands or CL programs to do some processing, I have been able to transfer some of my most frequently used PDM options over to the WDSC environment.
The reason I am doing some custom coding here relates to library lists. One of the biggest traps I have run across so far is the difficulty determining what library list is being used within each view or command. Instead of spending any more time fighting it, I just created a series of programs which set particular library lists, and then use the user options as a quick way to call these programs. MOST of the time, this seems to associate the compile library lists the way I want them, as opposed to just running an EDTLIBL command in the command view. For some reason when I try to run the EDTLIBL, it doesn’t seem to affect the compile options; then I chase my tail trying to figure out why the compile bombed, and it is only the library list... #%#%%#@
A second “mouse” trick is used to quickly view /COPY members when the cursor is positioned on the line. Once the cursor is on the specific line, you can right click either in the source line, or in the sequence area; and a menu option appears to let you either edit or browse the copy member! This is actually a time saver, even counting the time that it takes to download the member from the iSeries server. Don’t try to find this in the help text, it is not there. I remembered having gotten to it once, somehow; and tried searching for /COPY, thinking that the menu tree/item would be described, but no such luck. I had to go ask a coworker if they remembered how, and between us we finally figured out that the cursor MUST BE on the line with the /COPY statement before the menu item shows up, and only THEN can you choose to browse or edit the member.
I just now had one of those AHA! moments, thinking about how that worked...
PDM is basically oriented in a verb/object style; and WDSC is just the opposite. With PDM, you would press F15 to indicate you wish to browse (verb); and then you select the object to be browsed (type it in or press F4 for a list). WDSC works in reverse – once you select the object (/COPY statement containing a member name), WDSC will then allow you to select an action appropriate for that object. Maybe this insight will make it easier to find the “hidden” stuff??? This may seem elementary to a programmer used to thinking in object oriented style, but it is not a trivial adjustment if you expect the program to be similar to PDM, for example.
The final mouse trick for today is to double click on the header tab of a source member you have opened with the LPEX editor. This quickly shifts the editor into full screen mode, so you can see more of your program at one time. Double clicking the tab again will return you to the same panels you had when you double clicked the 1st time; allowing you to quickly show or hide the outline and error views. (Would it be too much to ask to have this function available as shortcut keys???!!)
If you have been following this blog, you know we have been getting comments on these entries; some favorable, and some not so favorable. Please keep in mind that we are NOT experts using this tool, just a group of programmers thrown into the deep end and forced to learn to swim while still supporting the users. While we are trying to present a fair picture of the tool, the truth is that it does have a steep learning curve, especially for people comfortable with PDM. The more we use the tool, the better we like it, but it is not always a positive experience the first time you try something! The encouragement several people have expressed is very welcome and appreciated, and helps keep the frustration level in check. Especially useful have been some of the tips on where to find more information and other WDSC resources. Be sure to read the comments as well as our text! We probably won’t try to answer specific questions, but if enough people are looking for the same thing we may try to go into more detail in a specific area.
Question for the day... I wonder if this would run any faster if we were connected to one of the new model i595s?
Posted by on October 19, 2004 at 7:21 PM | Comments (3)
Day 12
Start working on my first real project at work. I easily copied some source code from other members and started a maintenance screen program. I needed a new file, DDS screen and RPG/SQL maintenance program. I wanted to see if I could find out how to get the equivelent of the screen designer so I loaded the DDS source and pressed F1. I used the search button to search on "design screen". The first time help has to index from on-line sources, it will take about 5 minutes to load the index. The indexer says it only happens one time.
When working with DDS source, I noticed the +
It is good to know that the member is locked. While editing in WDSc I went to PDM and tried to access the member. I got the message that the member was in use.
Also learned from IBM today that my inability to see the compile options on my first install could be due to a corrupt workspace. A workspace is a series of files and folders usually found in \my documents\IBM. I exited WDSc, renamed the folder 'workspace' to 'workspace_orig' and then restarted WDSc. It worked! I was able to copy my filters from 'workspace_orig' to 'workspace' and that was OK but I couldn't copy the files from my user commands over initally. We'll see if IBM comes up with a way to do that. Luckily, I only had one!
Day 13
Back from vacation and Oh how I missed WDSc! OK, a little blog sarcasm. I thought it was pretty cool that when I start WDSc, it remembers my view, layout and environment (or so I thought). I could see that my library list was just as it was when I exited WDSc previously. Then I made a change and compiled and got a whole bunch of errors ... more than normal for a couple of lines of code change. Turns out that compiler couldn't find any of my files. Why not? I asked. The library list was set. I even emailed a screen shot to IBM. Turns out, the way the default preferences are set, it restores the "view", but that is it. The library list isnt' really set. You can turn this off in preferences so it doesn't appear to load your last session's environment. I still think it is a bug. If it shows the environment, it should set the environment. I'd take the extra 15-20 seconds hit at load if it really restored my environment.
Day 14
I'm in WDSc all the time now. I've had to change some of my thinking on how I spend my time as it takes a little longer to load. But, once loaded, I've become very comfortable with the basic editing functions. I'm still not sure how to split screens to show the same source in two different windows but I'm sure it is there. The HELP hasn't been much help in this area yet.
I used Code Designer to make some screen changes. This is going to take some getting used to! I need a good tutorial on using Code Designer for screens, that is for sure.
I still can't get my compile error messages to go to the source line. I get an error message about a file not being found in qtemp. Tom is getting it too. I send screen shots to IBM to have them check into this one. I have to switch back to command line to review source compiles.
I also had my biggest failure today. I had made significant changes to the code in WDSc. I went to save and got a message box about the source on the server being updated since my last save. I didn't make any changes to the member, so I can't figure out why I got the message. Anyways, I thought I was taking the option to update my changes to the source member, but the default is to update my view of the WDSc code with the original source member code. I basically over wrote all of my code changes. There isn't an undo for this one! Rats! I lost about 1/2 hours worth of work.
Posted by on October 7, 2004 at 7:18 AM | Comments (2)
Following up on my original impressions, I promised to let you know about the features I liked, and to tell you where to find some of the hidden features of WDSC.
The first feature I FOUND that I really liked was the Outline view. This should show up as a window within the Remote Systems Explorer perspective, but it will be empty until you select a member for editing. Once you have a member open for editing in the LPEX editor, use the Refresh button in the Outline window and it will examine the active source member and produce a GREAT cross reference! Be sure you have downloaded the latest release of WDSC before using this, as they have fixed some bugs and added features which make it much better.
The different branches of the "tree" allow you to drill down for more information about files/fields, procedures, etc. The best part is that you can expand the procedure or subroutine nodes, and be presented with bulleted lists of where the routine is defined or referenced! You can use this view to QUICKLY understand and navigate between the function definitions, code, and places where it is called. (You can do the same thing in the LPEX editor by filtering a selection, but this is much faster once the view is refreshed.) One "gotcha" is that the outline view is cached on the local PC, so I ALWAYS refresh the outline before I use it, when I am starting to work on a member I haven't touched in a while.
Late last Friday I STUMBLED ACROSS a feature that would have been my choice for the default perspective as a PDM user. This is the iSeries Table View, found under Window/Show View/iSeries Table View. This brings up a prompt which allows you to select the library and/or file and/or member(s) to use to populate the list, JUST LIKE PDM! Even better, once the list is populated, you can RIGHT CLICK on a member name and a popup will give you access to the PDM options we are all so familiar with. There is a command line down at the bottom, and you can sort the view by clicking on the column headers, so you can sort by name, last change date, etc.
There are still a few rough edges in some of the options, as I have had intermittent problems getting the Position to... option working, and I would really like to be able to save my column layouts AND WIDTH SETTINGS; but these are minor compared to the HUGE benefits to anyone who is used to the PDM interface.
Another gotcha/feature to be ware of is the Find String option. If you select all the members in a source file, then run "Find String", it is time for a looooong lunch! A much better option if you will be searching more than a half dozen members is to use the Search/iSeries menu options on the main WDSC screen. This performs the search on the iSeries itself, instead of copying EACH MEMBER down, and then performing the search on the PC. The results of the iSeries search are shown in a separate window, and just like the outline view, if you click on the member name where the string was found, you are positioned to the exact line in the source code where it is used!
Now that I have found many of the tools I use every day, I am spending more and more time in WDSC. While I still have to go back to PDM for some things, the list has been narrowed considerably by finding the Table View and its associated options. I wonder what else they have hidden away for us to find...
Posted by on October 6, 2004 at 11:43 AM | Comments (1)
Welcome to my view of the journey into WDSC. I'm the youngest here at KOA to use this product so I figure I will have the easiest time getting used to it (a fact I remind the other guys of quite often). I'm the network administrator for KOA which means I spend most of my time playing with wires and routers and switches. I do like to program when I get the chance with most of my programming experience in HTML, PHP and PERL.
When I first came to KOA Jef did his best to make me a RPG programmer, but coming from the Windows/Unix world I had a tough time picking up the fixed form format of RPG III, luckily for me RPG IV and RPG free came out shortly after Jef got me started and I had a little easier time picking it up. Since I wasn't a true blue RPG programmer, though, I still struggled with SEU/PDM. Again luckily for me WDSC then came out and that is where I am at today.
Most of the programming I will use WDSC for will still probably be HTML, PHP and some Net.Data, I am going to try to get the programmers to throw me some bits and pieces of RPG from time to time.
So far I have installed WDSC on my PC. The install went smooth although the program uses quite a bit of disk space and requires a lot of RAM to be useful, makes me wonder if Microsoft had a hand in developing WDSC:) Once I had it installed I have created connections to our development iSeries and to a Linux machine that I do a little web programming on.
The connection I created to the iSeries was very straight foward. The connection to the linux machine required a little more work, but by following the instructions in the WDSC help I was able to get the necessary software installed on the Linux machine and then able to make the connection. Next we will see if I can do some actual programming. See ya next time....
Posted by on October 1, 2004 at 3:36 PM
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
We welcome your comments and opinions and encourage lively debate on the issues. However, Penton Media reserves the right to delete or move any content that it may determine, in its sole discretion, violates or may violate its Terms of Use or is otherwise unacceptable. For more information, see Penton Media's Terms of Use.