RDiの特徴と開発の流れ ~IBM iアプリケーション開発 最新事情 PartⅠ

 

RDiの活用法とILE RPGのTipsについて

 IBM iにおけるアプリケーション開発でここ最近のホットな話題といえば、オープンソースのNode.jsのサポートが挙げられる。アプリケーション開発に馴染みのない方であっても、この半年に1度くらいは目にしたのではないだろうか。さらに先日のIBM i 7.3の発表でも、GitやEclipse Orionなどオープン化への対応が拡大し、大きな前進があった。しかし、IBM i
の基盤をなすレガシー資産についても、決して忘れているわけではない。

 その取り組みとしては、RPGのフリーフォーム対応の拡張や、開発効率向上のためのRationalツールとのコラボレーションが指摘できる。これらの話も、何度となく耳にしていることだろう。

 本稿では、IBM iの開発を始めたばかりのユーザーに、今密かに話題のEclipseベースのツールを使った開発について、またベテランのIBM iユーザーには意外と知られていないILE RPGのTipsを紹介する。

 PartⅠでは、Rational Developer for i(以下、RDi)について紹介する。RDiは、前身のIBM WebSphere Development Studio Client(WDSC)から数えると15年近くの歴史をもつ。今回は最新のV9.5の機能も含めて、RDiの活用方法を紹介する。

 PartⅡは、ILE RPGのTipsである。RPGでは、IBM i 5.4からフリーフォーム形式への対応が進められているが、最近は「これがRPGか」と思えるほど進化している。フリーフォームRPGについては本誌で過去何回か特集が組まれているため、今回はシステムAPIと組み込みSQLを使用するTipsに焦点を当てて紹介しよう。

 

Rational Developer for iの主な機能 

 RDiは、冒頭でも紹介したとおり、オープン系開発者には馴染み深いEclipseをベースにしたIBM i用の開発ツールで、RPG、COBOL、CLなどのソース編集やディスプレイ・ファイル編集用のスクリーン・デザイナーなどを含む統合開発環境である。入社して間もない、グリーン・スクリーンに戸惑う若手社員からも、「RDiを使えば、今すぐにでもRPGでの開発ができそう」との感想をよく聞く。

 ここからは、RDiによる一連の開発の流れを、RDiならではの機能を中心に紹介する。

 

IBM i接続 

 最初にリモート・システム・エクスプローラーで、接続したいIBM iのホスト名(もしくはIPアドレス)と接続名を指定して、開発環境に接続する。リモート・システム・エクスプローラーは、IBM iの開発に必要となるオブジェクトなどにアクセスし操作するためのもので、RDiの要と言える機能である。作成された接続定義の左側に表示される「▽」マークをクリックして展開すると、図表1のようなログイン画面が表示される。リモート・システム・エクスプローラーからシステムを展開していくと、オブジェクトやIFSファイル、スプールなど開発で必要となるサブシステムが表示される。

 

 

フィルター 

 RDiのフィルターは、作業用のライブラリーやオブジェクトなどをフィルター表示する機能である。ベテランの開発者には、ADTS(アプリケーション開発ツールセット)のPDM(プログラム開発管理機能)に似ていると言ったらイメージできるだろうか。このフィルターは、特定の接続定義のみでも使えるし、各接続共通で使用することも可能だ。たとえば、QEOLライブラリーのQで始まるオブジェクトを頻繁に処理する場合、そのフィルター定義を全環境共通で適用できる(図表 2)。ライブラリー、オブジェクト、IFSディレクトリなどのフィルター定義によって、作業するオブジェクトにアクセスしやすくなり、開発環境を自分用にカスタマイズできる。

 

 

ソース編集 

 開発環境を自分用にカスタマイズできたところで、コーディングに進もう。

 オブジェクト一覧から該当ファイルを選択し、クリックして表示されるのがLPEXエディターである。これはSEUと同等の機能をもつRDi上のエディターである。

 SEUを使うコーディングではF4、キーを押して使用する演算命令などをプロンプト表示させるが、LPEXエディターでも同様の操作が可能である。一方、フリーフォーム形式のRPGで開発する場合は、コンテンツ・アシストが便利だ。

 コンテンツ・アシストはJavaなどの開発では一般的だが、RPGでも使用できる。たとえば制御ステートメントを入力し、頭文字のdを打鍵しCtrlキーとスペース・バーを打鍵すると、入力候補が表示される(図表3)。さらに入力候補が表示されるだけでなく、その右側にヘルプが表示されるため、マニュアルを開く必要がない。

 

 

 ソースを編集する際に2つ以上のソースを比較することがあるが、RDiでは複数のソースを選択し、相互に比較できる(図表4)

 

 

 別のソース・メンバーからあるコードをコピーする操作は、SEUではF15キーを使うが、RDiではWindowsのキー操作でコピー/ペーストが可能である(図表5)

 

 

 RDiでは、各種ショートカット・キーも登録されている。そのため、Ctrlキー+Z でソースを「編集前」に、Ctrlキー+Y で「編集後」に戻すことも可能である。

 また、コーディングロジックの解析では、複数行を選択して、Ctrlキー+/ 、Ctrlキー+\で、まとめてソースをコメント・アウト/コメント解除できる(図表6)。5250エミュレータで開発してきた技術者には魅力的な編集ツールだろう。

 

 

 RPGの開発では標識を使うが、RDiでは標識やテーブルのフィールドなどを、アウトライン・ビューで動的に表示できる(図表7)。使っていない標識の確認や標識を編集したい時など、アウトライン・ビューから標識を選択することでソースの該当箇所が表示される。非常に便利な機能である。なおこのアウトラインには、標識だけでなく、サブプロシージャー、サブルーチンなども表示される。

 

 

 開発本数が増えてくると、ある特定の変数が使われているソースを検索したい、という要望も出てくる。RDiには検索機能があり、対象ライブラリーでの文字列検索が可能である。たとえば、QEOLライブラリーのQで始まるソースファイルで、HEDという文字列が含まれるメンバーを検索することもできる(図表8)

 

 

データの操作 

 PartⅡでも紹介するように、フリーフォーム形式のRPGで開発する際、データの操作にSQL文を書く機会が増える。そのSQL開発のサポートも、RDiで提供されている。前述のリモート・システム・エクスプローラーとは別に、データベース開発をサポートするパースペクティブが提供されている。Eclipseでは各種開発を行うための機能が多数搭載されているが、各開発に適したツールをビューのような形で表示するのがパースペクティブである。

 データベース開発パースペクティブでは、既存のデータベース・サーバーにアクセスし、SQLクエリー・ビルダーを使ってGUIベースでSQLを組み立てられる(図表9)。SQLの実行も可能であるため、Navigator for i などを使用せずとも、RDiのインターフェースからデータの内容を参照できる。

 

 

コンパイルとデバッグ

 RDiのよさは、編集ツールだけではない。ソースをバッチ、または対話式にコンパイルすることが可能である。対象のソースを右クリックし、「コンパイル」を選択するだけである(図表10 )

 

 

 対話式でコンパイルした場合、その結果がエラー・リスト・ビューに表示される。さらに、各エラーの内容をダブルクリックすると、対応するソースと該当するエラー箇所が表示される(図表11)。5250エミュレータで開発している場合、スプールとSEUとを往復しなければならないが、RDiでは、1画面でエラーの内容とソースとを表示できる。これも開発効率を向上させる機能の1つである。なお5250と同様に、コンパイル前に、ソースを編集しながら構文チェックを行えることも記しておきたい。

 

 

 コンパイル後、エラーを確認し、ソースの修正に使用するのがデバッガーである。RDiでは、デバッグ・サーバーと連携し、ソースをデバッグできる。デバッグ対象プログラムにサービス・エントリー・ポイントと呼ばれる特殊なエントリー・ブレークポイントを追加することで、RDiからのデバッグが可能となる。プログラムが呼び出されると、デバッグ・パースペクティブが開き、プログラムのコールスタック、ソース、変数、ブレークポイント・ビューなどが表示される(図表12)。あらかじめソースにブレークポイントを設定しておくことも、デバッグしながら追加することも、さらには条件付きでブレークポイントを設定することも可能である。

 

 

 プログラムのステップイン/ステップアウトなどは、ツール上部にあるアイコンで操作できる。画面右上に変数が表示されるが、ここから直接変数を編集することも可能である。RDiのデバッガーでは、プログラムのデバッグだけでなく、ジョブもデバッグできる。

スクリーン・デザイナー

 GUIベースであるからこそ有効なツールの1つが、スクリーン・デザイナーである。従来のSDA(画面設計機能)ではフィールドの位置や属性などをDDSでコーディングしたが、RDiに含まれるスクリーン・デザイナーを使うことで、画面を構成するパーツをパレットからドラッグ&ドロップで配置し、プロパティー・ビューからマウス・クリックで属性を変更できる(図表13)

 

 

 GUIベースで画面をコーディングし、裏では見慣れたソースが書き出されるため、図表14のように「ソース」タブに切り替えることで、ソースを直接編集することも可能である。ここではディスプレイ・ファイルを紹介したが、同様に印刷ファイルについてもデザイナーを使って編集できる。

 

 

RDi V9.5 新機能 

 IBM iのアプリケーション開発環境は、長期にわたり使用されてきたSEUの機能拡張がIBM i 6.1で凍結され、7.1以降はRDiでの対応とされたが、その計画どおり、RDiは継続的に進化を続けている。

 そのRDiの最新版V9.5のハイライトは、5250エミュレータの同梱である。従来は、RDiでコーディングしコンパイルしても、5250エミュレータを別途用意しテストする必要があったが、V9.5では5250エミュレータが同梱されているため、RDiの同じインターフェースから、コンパイルしたアプリケーションの稼働確認を行えるようになった(図表15)。従来のように複数の画面を行き来しなくても済むので、それだけでも開発生産性の向上になる。

 

 

 また、フリーフォーム形式のRPGの利用が従来から推奨されてきたが、80桁制限があり、自由度はそれほど高くなかった。しかしV9.5で8-80桁制限が撤廃され、桁を気にせずにコーディングできるようになった。80桁制限を解除するには、PTF(*1)を
適用し、ソースの先頭で「**free」を宣言するだけである。それだけで、自由なコーディングが可能である(図表16)

 

 

RDiで新しい開発スタイル 

 本稿では、RDiの中でも「RPGおよびCOBOL向けツール版」によるRPG開発を中心に紹介したが、「RPGおよびCOBOL + 最新化ツールJava版」でJavaなどの開発も可能である。バックエンドはRPG、フロントエンドはJavaやWebという異なるプログラムの開発を、1つのツールで実現できる。

 今回はすべての機能を取り上げられなかったが、本稿を読み興味をもたれた方は、ぜひ試用版をダウンロードして使っていただきたい。試用版のダウンロードおよび導入方法、操作方法については、developerWorks(*2、3)で公開されている。RDiという新しいツールを使うことで、新しい開発スタイルを享受できるだけでなく、開発効率の大きな向上が得られることを理解していただければ幸いである。

・・・・・・・・
(*1)http://bit.ly/rdi_001 FF RPGに必要なPTF

(*2)http://bit.ly/rdi_002 IBM Rational Developer for i V9.5 インストール・ガイド

(*3)http://bit.ly/rdi_003 さわってみよう Rational Developer for i V9.5

・・・・・・・・

著者◎藤村 奈穂

日本アイ・ビー・エム システムズ・エンジニアリング株式会社
オートメーション・ソリューション

[i Magazine 2016 Summer(2016年5月)掲載]

◎関連記事

ILE RPG:システムAPI・組み込みSQL活用術 ~IBM iアプリケーション開発 最新事情 Part Ⅱ

 

More Posts