When it comes to application development tools, IBM Rational Developer for System i (RDi) opens up a whole new world. RDi is the latest integrated application development environment for RPG and Cobol developers. RDi v7.1 is a lightweight product that contains only tools for developing native RPG, Cobol, CL, and DDS applications. As such, RDi requires less memory and disk space than IBM WebSphere Development Studio client (WDSc).
If you've been using WDSc v7.0 exclusively for editing, compiling, and debugging programs on i5/OS, you'll be happy to know these tools are enhanced and included in RDi, along with additional tools, to boost your productivity. And you can have all of these capabilities without the extra baggage that comes with WDSc!
RDi is also faster to install than WDSc and, because RDi v7.1 poses no conflicts with the existing WDSc on your workstation, you can install both products on the same machine. In fact, you can even use the Workspace created with WDSc in RDi.
What's more, RDi contains all the Remote System Explorer (RSE) functionality that's in WDSc v7.0, plus much more. So let's explore the changes and enhancements made in RSE for RDi and take a peek at the functionalities available in RDi v7.1 that were previously included only in the advanced edition of WDSc.
V6R1 language support is the main improvement in the Remote Systems LPEX Editor for RDi. All enhancements to ILE RPG, ILE Cobol, and CL compilers on i5/OS V6R1 are also available in the program verifiers, content assist, wizards, and syntax checkers in RSE. Having the language support at the V6R1 level means you can start using the new functionality right away in RDi. For ILE RPG and CL, the V6R1 language support is already available in RDi v7.1, while support for ILE Cobol is included in the first service of the product: RDi v7.1.0.1.
If you dread using the Refresh button to populate the ILE RPG Outline view, because it must complete before you can continue working, dread no more. The Outline view now runs asynchronously, so you can continue working while the Outline view is refreshing in the background. After the refresh completes, the Outline view is automatically repopulated and ready to use. In fact, you can submit a request to create the Outline view for multiple open members simultaneously by pressing the Refresh button for each member. Plus, the Progress view displays the status of the refresh while it is executing.
The ILE RPG Outline view also contains new V6R1 language enhancements. For example, in an ILE RPG source member, files are now defined locally in subprocedures. A new node called Files is created under Local Definitions for the subprocedure that contains local files. This node lists all the files defined locally in the subprocedure, the same way Global Definitions lists all globally defined files. Similarly, you can pass a file as a parameter to the subprocedure, and this file will appear in the Parameters node for the subprocedure, as Figure 1 [2] shows.
For ILE RPG, V6R1 language definition enhancements also entail changes in the content assist and wizards to support the new language constructs. In RDi, content assist includes all the new keywords added to the language. For example, the new keyword MAIN in the H-spec lets you specify the named prototyped procedure to be created as a Program-Entry Procedure (PEP). Pressing Ctrl+Space in the H-specs places the MAIN keyword in the list. Similarly, the D-spec and procedure wizards now provide the new keywords and field limits.
One useful function that the Remote Systems LPEX Editor lacked was the ability to search by date. The LPEX Editor now includes a find date action under Edit|Find Other|Find Date. The Find Date dialog box appears at the bottom of the edit window (Figure 2 [3]). Here, you select the criteria for your search. You can also invoke this dialog box using the shortcut key Ctrl+Shift+D. Clicking the All button in this dialog box gives the same results as filtering by date. Pressing the Esc key or clicking anywhere in the editor closes the Find Date dialog box.
In addition, you can perform an intelligent find by invoking the Find action, locating the next or previous occurrence with the Workbench menus Edit|Find Next or Edit|Find Previous, or using the shortcut key Shift+F4 for Find Next. If the last find was for a date, the next/previous find will be for a date as well. If the find was for text, then the next/previous find will be for text.
The Error List view enhancements provide two new pull-down menus for greater control in handling the error messages resulting from program verification or compilation. You can specify when to remove the error messages from the editor and Error List view and when to insert them into the editor.
The first new menu Automatically Remove cascades into two menus. You can select both of these options at the same time. The Automatically Remove|Previous message from editor option is the default. This option removes messages inserted by the Error List view in the Remote Systems LPEX Editor when new compile or verify messages are loaded in the Error List view for that source member. The Automatically Remove|Addressed messages option removes messages in the Remote Systems LPEX Editor inserted by the Error List view when the line is modified. Modification, here, does not necessarily mean the problem was fixed, just that it was addressed. If the error has been handled, it is filtered out of the Error List view. By default, this option is not selected.
The second new menu is Automatically Insert, which also cascades into two menus. This option controls when the errors from the Error List view are inserted into their corresponding source members. When the program verification or the compilation of the source members completes, all errors are reported in the Error List view. Wouldn't it be nice if you could automatically insert the errors into the appropriate source members without having to double-click one of the errors in the Error List view? Wouldn't it be even nicer if all the source members with errors automatically opened and the errors inserted in the appropriate locations? This menu option does all that for you!
The Automatically Insert|Into open members and files option inserts all messages into the open editors when the Error List view is populated. If the source member or local/IFS file where the error occurs is open in the editor, the error will be opened. The Automatically Insert|Into all members and files option inserts all messages into the editors when the Error List view is populated. In this case, if the source member or local/IFS file where the error occurs is not open, it will be opened and the errors inserted into it. The option of inserting messages automatically applies only if you choose the setting for Messages and Insert All or Insert All Showing. Of course, you can select only one of these options, and there is no default setting.
In earlier versions of the LPEX Editor, when the program verification or compilation completed but the Error List view remained empty, it was sometimes difficult to figure out what was happening. Perhaps you coded everything perfectly (if so, good for you!). But when this happens to me, I know something fishy is going on: The compile or verify might not have completed yet, or some message filtering criteria I might have selected in the view menu is preventing the error messages from being displayed. The enhanced Error List view now displays a message indicating the status (no errors or filtered out errors) so you can determine whether the operation completed successfully.
If you've ever performed a save operation from Remote Systems LPEX Editor and ended up with an empty member, you will appreciate the enhanced Save operation. First, let me explain how the Save works and what causes the emptiness. When you open the member to edit in the Remote Systems LPEX Editor, the member is locked on the server and downloaded locally to your workstation. It is the local copy that you are changing when editing. When you request to save the member, the contents of the member on the server are overwritten by the one on your local workstation.
The Remote Systems LPEX Editor first clears the existing member by using the Clear Physical File Member (CLRPFM) command, and then writes back all the records with any changes you made. But if a connection error occurs, for example, and the connection drops right after the CLRPFM command completes, you'll end up with an empty member on the server! There is no need to panic because the member is always saved locally on your workstation and can be recovered.
To avoid this situation, you can use the new way to save the member. Under Window|Preferences|Remote Systems|i5/OS|Objects Subsystem, you will see two options for member saving: Save directly to original member, and Save to a temporary member and then copy to original member. The first option is the behavior previously described.
The second option, and default, provides a way to avoid saving an empty member. The locally changed source member on the workstation is saved to a temporary member on the server. A temporary new member is created in the same library and source physical file with a name that begins with "RSE" and contains seven random numeric digits. After the contents from the local source member are successfully saved to the temporary member, the temporary member is copied to the original member. This extra step prevents the original member from being modified until after the changes have been successfully uploaded to the server. The temporary member is deleted when the save operation completes.
The Save to a temporary member option also ensures that you do not lose the original source member in case your connection is lost, or you do not have enough authority to add a new member to the source physical file that contains the source member being saved.
You will also find usability enhancements in the Object Table view (known as iSeries Table View in WDSc). The Work With option in the View menu lets you enter selection criteria (up to 10 items) or use one of the previously used filters to populate the view. The Object Table view stores a list of your previous selections. When you add a new item to the list, the oldest item falls off. The position of the item does not change in the list even if you select it again. But in RDi v7.1, the list of previously used filters is designed to work like many Windows programs if you select one of the items from the list, that particular item is put at the top of the list. This improvement ensures that the often-used selections remain in the list.
The Object Table and Field Table views are now qualified with the connection name to show the system where an object is coming from, which is especially useful when you're dealing with different systems that contain libraries with the same name. Other helpful enhancements include
When you first start RDi, you will notice under the New connection entry that the name of the server is now i5/OS. This change reflects the operating system that the connection is being established with. You will also notice other places where the name has been changed from iSeries to i5/OS or has been altogether eliminated because of redundancy.
Your favorite view name may have changed too. The word "view" from various view names and tabs was removed because it was redundant. In addition, some of the views have names that better reflect their use (Figure 3 [4]).
The Screen Designer and Application Diagram in WDSc, which were offered only in the advanced editions of WDSc, are now available in RDi v7.1. The Application Diagram provides a graphical overview of the different resources in an i5/OS native application and their relationships to each other. There are two different diagrams: a source call diagram and a program structure diagram. The source call diagram takes ILE RPG, ILE Cobol, and CL source members as input and creates a call graph showing subroutines, procedures, and program calls. The program structure diagram takes program and service program objects as input and displays the binding relationships between them. This tool has the ability to add and save notes in the diagram, and it can help you analyze and document parts of your applications.
Screen Designer lets you graphically design and modify the contents of the DDS for display files, and it comes with its own perspective. This functionality is still in Technology preview, so avoid using it in production code. You can invoke both the Application Diagram and the Screen Designer from the RSE perspective. These and other features will be covered in detail in future articles, so stay tuned!
Nazmin Haji has been working with the System i for the last 20 years. She has worked on the ILE RPG compiler, CODE, and was one of the key developers involved in the early design of WDSc. Nazmin is a frequent speaker in conferences and user groups, and is a co-author of an upcoming book on the Remote System Explorer.
Links:
[1] http://systeminetwork.com/author/nazmin-haji
[2] http://systeminetwork.com/files/62241-Fig1.gif
[3] http://systeminetwork.com/files/62241-Fig2.gif
[4] http://systeminetwork.com/files/62241-Fig3.gif