| At The Coalface: Course work | |
| 18 April 2007 This time round, I’d like to take you on a trip down memory lane. When I first got into RPG programming, it wasn’t an intentional move. I’d begun my career by working as an AS/400 operator in an old abrasives factory in Manchester at the tender age of 25. It was a dreadful place; one of the few factories that hadn’t been bombed during the war, and brought right up-to-date by slinging Twinax cabling all over the place. Because of the nature of the business, the air was filled with dust and grit, and because of the age of the building, every nook and cranny was filled with the filthiest dirt imaginable. As a fully shirt-and-tied employee, I had to crawl behind desks looking for Twinax points, carry rolls of cable, boxes of paper and filthy Decision Data terminals from one place to the next and very occasionally I got to sit down and produce reports using Query or COBOL. My clothes ended up ruined by a combination of sweat, dirt and tiny particles of grinding materials, and my coding skills weren’t much better.
Was this what I’d spent those few months learning C for? I didn’t think so. So at the first opportunity (well, after a year or so of solid graft), I applied for a job as a junior programmer at another, slightly cleaner, factory. They didn’t use COBOL here, though. They had an in-house-designed ERP system written in RPG by many different people over many, many years. They were about halfway through their Y2K conversion project and, fortunately for me, they needed someone to code most of it while they continued with their other projects. And it was here that I first discovered the joys of the ATS ( http://www.atstraining.co.uk ) course.
Many were the sunny afternoons I dozed off listening to the sounds of monotonous Texan drawl talking me through the logic cycle, sub-files, display files, SDA, RLU and finally telling me to turn the cassette over to side B. I think I managed to complete five RPG courses in the course of a few weeks and this, combined with a good bit of Y2K coding, gave me a very solid footing in basic RPG coding. In fact, I probably learnt as much in those few sunny summer weeks as I had done at any other stage of my education, though I can’t remember ATS promoting learning by hypnosis on their website.
However, the courses continued to appear no matter where I was working. I rediscovered them a few years ago, when I started working for a company which was developing their internet presence on the iSeries. SQL, HTML, Net.Data and an introduction to Java were what followed as we built a Net.Data website and subsequently migrated it to Java and JSPs over the following years. The courses were all quite similar in presentation, relying mainly on libraries loaded onto the iSeries, and a cheap cassette player and headphones being used to guide the trainee around the various new skills they were to pick up. They were also a very cost-effective and comprehensive method to teach iSeries skills to someone like me.
So when my manager threw a few folders on my desk, said they were some new ATS courses and asked me to take a look at them, I was fully expecting another couple of days in a stuffy office, waiting to turn to side B again. I picked up the folders and had a look at the titles -- iSeries Navigator for Programmers V5R3 Edition and WDSC (WebSphere Development Studio Client) for RPG Programmers. They looked a bit more interesting than the usual box of cassettes, and the packaging was different. And after having been lurking on the MCPress Online forums, I recognised the authors’ names. Paul Tuohy, the author of iSeries Navigator for Programmers, is a regular contributor to the site, and his knowledge of all things ‘Ops Nav’ (as it used to be known) is without doubt, extensive, and he was the author of the iSeries Navigator course. Joe Pluta, another regular contributor and expert advisor on the Eclipse framework, was the author of the WDSC course. So I knew that should I have any problems with the courses, I was in a great position to ask the authors’ advice directly.
I began with the iSeries Navigator course. Now, during the previous few years, we’d had significant use of Ops Nav in rebuilding our network. We’d used it for configuring NetServer, for setting up the iSeries as a DNS server, and for configuring the Universal Connection (which I mentioned in a previous article), so I was a bit surprised to see the course specify that it was aimed at programmers. I had a quick flick through the pages and saw that it included a CD, a folder containing the lessons, and a few appendices that gave you instruction on installing the CD.
We began by attempting to FTP the files across to the iSeries, and then we hit our first problem. The CD appeared to be corrupt. So we rang our supplier and they dutifully sent us out a second CD. That appeared to be corrupt as well. A few phone calls later, though, and we realised that the problem was at our end. Since the CD contained an iSeries save file, the PCs wouldn’t recognise it and our firewall was preventing FTP access to the IFS. So we opened the firewall, loaded the save file, and rather embarrassedly returned the extra copy to Jimmy at ATS. Nice start!
Once we had it all installed, it was time to have a play around. You could be forgiven for thinking that iSeries Navigator is of little or no interest to programmers; after all, the old name ‘Operations Navigator’ says it all – it must be for operators and maybe administrators. Nothing could be further from the truth. Yes, there are tools within there to ease the job of the operator and it enables a lot of options that would usually be controlled by green screen, but if you dig a bit deeper, and this course will certainly help you do so, then there are a number of key features targeted specifically at the programmer.
The course starts by taking you through the basic operations available within iSeries Navigator, showing you how the everyday tasks can be performed and it discusses when to use the GUI interface and when green screen is still best. Next, it takes you through the IFS, how to access a Windows network from the iSeries, how to access the IFS from a PC, how to save a file into the iSeries QSYS library directly from your PC and also information on how to get the equivalent of Network Neighbourhood on green screen.
So, with the first two chapters laying down the basics, you are led into database programming. It shows how SQL can be used in place of DDS to build tables, views and indexes instead of physical and logical files. It takes you through the differences between DDS and the SQL data definition language, and then gets more advanced with lessons on how to create DDL equivalents to joined logicals and how to use field reference files. Slowly, but logically, you are introduced to the concepts of referential integrity. Check constraints, referential constraints and triggers are all covered, and the comparisons to DDS are always made to give you a firm grasp of how it ties back to the DDS that you are used to.
Finally, it introduces some of the most powerful features that SQL brings to the database. User-defined functions allow you to associate SQL columns with RPG code so you can use existing procedures directly on the database. Understandably, as a developer of two-tier systems it might not be a good idea to break down the layers between the business logic and the database, but a database developer can never have too many tools. Repairing a corrupt database is an unenviable task.
This course definitely taught me a lot more about the IFS and databases and it also provides an introduction to SQL for those who haven’t encountered it before. There are a few points to consider, though. Firstly, you need to have a reasonably powerful PC to run iSeries Navigator. I also had a few issues with my JVM that IBM Assist wasn’t able to resolve, and I had to wipe my PC and rebuild it before I could use iSeries Navigator properly, but it worked 100% on every other PC or laptop I tried it on. Also, you need to be sure that your iSeries isn’t too heavily set up towards interactive processing as the Navigator runs everything in batch, but with the relative power of the iSeries these days, there shouldn’t really be a problem with this. All in all, it was a highly useful insight into the power of one of the many tools IBM bundle with the iSeries. There are so many freebies that we get as iSeries users; this one is one of the best, and the course is well laid out and logical to follow.
Sadly, the same cannot be said for the next course. Well, I take that back. The course is actually quite good but, sadly, the same cannot be said for the product it is trying to educate you about. WDSC v6.0 is a seriously heavy bit of kit, both in terms of resource usage and overall power. It is IBM’s replacement for PDM and SEU and as a developer I was really looking forward to seeing what it could do. I had used the Rational Application Developer product when we were programming the website and I had also played around with the much lighter Eclipse IDE, upon which RAD was based.
WDSC is based on the Rational IDE and can be used to code RPG, Java, and many other languages and, in trying to do so, I think it really suffers when initially compared to PDM and SEU. The initial load of the product takes quite some time and this is only the start of it. Once it has been loaded, all the updates must be downloaded and applied. If you’re not keen on spending most of the day downloading over 1.5 GB using the Rational Product Updater, the fixes can be downloaded from http://tinyurl.com/2wxnh6 and they can be saved for other users to upgrade with.
Otherwise it can be a long slow process getting the product up-to-date before using the course. Which reminds me, this is not a review of WDSC v6, but a review of the course. I will, however, make the point that this is not the first major step towards a GUI-based environment for iSeries software development. We have had CODE/400 available for quite some time and it is even bundled with the disks for WDSC and it still must be used if you want to produce display files and printer files within a GUI environment, but, to be fair, WDSC does have the ability to open source files in the CODE editor.
If IBM expects the everyday developer to step over to a GUI environment, then it seriously needs to make it more lightweight. WDSC as a product is not really as accessible as PDM and SEU but it is so much more powerful. The debug facility within WDSC (when you get it working) is excellent. The filter system, outline and projects facilities are great and after using the WSAD and RAD IDEs to develop J2EE applications, it’s nice to see a similar feel within an RPG IDE. So it’s got good and bad points, but if you want to know more then have a look online, or play around with it yourself.
Course author Joe Pluta is a firm advocate of the Eclipse platform for software development and, in my humble opinion, rightly so. He has structured the course really well, starting by taking you through connecting to the iSeries including multiple connections which can be very useful if you want different sessions with different library lists. The next stage is to explain the concept of filters. Filters are like WRKMBRPDM, but so much more powerful. You can span files and libraries, as well as having multiple filters available at the click of a mouse. The course takes you through all of these, though in some places it can be quite hard to work out what he is actually telling you as the number of options available at a right-click of the mouse can be huge. Make sure you remember which of your filters contain objects and which contain members. Otherwise certain parts of the course will be almost impossible. Luckily there are numerous pictures to help you understand what is being said. If you get lost, just check out the screenshots.
Now, within WRKMBRPDM you have the little two character user-defined options that allow you to do many different things on a file, object or member. You can do the same within WDSC (or RSE as it is now termed – Remote Server Environment -- which replaces PDM). The course explains how to add these and really shows you the power available. One thing that isn’t really mentioned much (perhaps because the course is aimed at programmers) is that you can’t have an interactive session within RSE. Or rather you can, but you need to have a green screen permanently open which sort of defeats the point of having a Remote Environment. Anyway, it’s not really mentioned within the course, but there is a command that can be run within the iSeries to allow interactive sessions to take place. This command is STRRSESVR (Start Remote Server Environment Server) and requires a program to be installed on the iSeries but the course guide does tell you what this is (Licensed Program 5722WDS, option 60). If you want more information on STRRSESVR, have a look on the internet – there is a lot out there.
The course does cover so much about the basics of WDSC. As I mentioned, it is well laid out, though there are some typos within the material. There is an extensive look at the editor function (LPEX is the new version of SEU) and some of the really powerful facilities it provides. The outline function, as I said, is extremely handy and it is almost worth converting to using WDSC for this alone. Throw in the debug tools and, I’m sorry, but WDSC trounces SEU hands down, except when it comes to speed of response.
The one problem I did have was as a non-ILE and non-RPG Free person (well, sort of) was that most of the code examples were written in free format and used prototypes and procedures, which could be difficult for some people.
“But these people need to realise that RPG is moving forwards,” you might say. All very true, but if these people aren’t enticed into the world of WDSC, then the iSeries community will suffer as a whole because splits in the developer community aren’t good for anyone.
We need more courses like this but, hopefully, IBM will also do something about the sheer bulk of WDSC to make it easier for people to switch. In the meantime though, Joe has done a great job in making an extremely complex product accessible, but it does help if you have already worked in a GUI-based IDE.
Editor’s note: the courses reviewed here come on audio CD and not the audio cassette like the ones referred to earlier in the article.
This article first appeared in the February, 2007, issue of System i NEWS UK magazine. | |
