
ここまでCode for IBM iの使い方を解説してきたが、これ以外もIBM iのプログラム開発をするにあたって便利な拡張機能があるので、それをここで一気に紹介しておこう。
■ CL
CLPおよびCLLEのソースコード編集時に、以下の機能を提供する拡張機能。
・CLコマンド入力時のコード補完機能
・アウトライン
この拡張機能をインストール後、最初にIBM iに接続すると図表49のメッセージが右下に表示される。

ここでYesをクリックすると、ILEDITORライブラリに必要なプログラムなどがインストールされる。このコンポーネントをインストールしておかないとCLコマンドのコード補完機能は使用できないので注意しよう。また、上記画面はしばらくすると消えてしまうので、そうなった場合や間違えてNoをクリックした場合などは、再接続を行うと再表示される。
では、コード補完機能から見ていこう。CLプログラムを作成する場合、SEUではコマンド入力の際にプロンプト機能を利用することができた。これと同等の機能を提供してくれるのが、このコード補完機能だ。
まず、入力したいコマンドを入力したあとでスペース・キーを押すと、代表的なパラメータの候補およびすべてのパラメータを挿入するオプションが表示される(図表50)。

すべてのパラメータを挿入するAll parametersをクリックすると、すべてのキーワードが挿入される(図表51)。

キーワードによってはカッコ内でCtrl + スペース・キーを押すことで、入力可能な候補が表示される。この機能を使用すれば、CLプログラムのコーディングもほぼ問題なくVSCodeでできるのではないだろうか(図表52)。

さらに、SEUにはないアウトラインもサポートされる。アウトラインとは、CLプログラム内のファイルや変数の一覧、サブルーチンなどの一覧を表示してくれる機能だ。さらに、アウトライン・ビュー内で項目をクリックすると、ソースコードの該当位置にカーソルが移動するので、ステップ数の多いプログラムであればあるほど便利な機能と言える(図表53)。

■ RPGLE
RPGLEのソースコード編集時に、以下の機能を提供する拡張機能。
・入力時のコード補完機能
・アウトライン
・定位置記入形式の入力サポート(RPGLE)
コード補完機能は、FF RPGのコーディングの際に便利に使える機能だ。関数入力や、RPG 命令の入力時に候補を表示してくれる。
たとえば、if命令の後で%fまで入力すると、関数の候補が表示される(図表54)。

ここで入力したいのが%foundだとしてそれを選択すると、入力すべき内容を含めて図表55のように挿入される。

また、forと入力すると候補が図表56のように表示される。

一番上のforを選択すると、図表57のようにendforまで含めてコードが挿入される。

また、CL拡張機能と同様にアウトライン機能も提供されている(図表58)。

VSCode + Code for IBM i で開発を行っていると、コマンドや SQL を VSCode 内で実行したくなるが、それを実現してくれるのが IBM i Notebooks 拡張機能だ。
■IBM i Notebooks 拡張機能
どのようなことができるかは実際見たほうが早いと思う。IBM i Notebooks 拡張機能をインストール後、拡張子が inb のファイルを作成する(リモートでもローカルでもよい)。すると以下のようなノートが作成される(図表59)。

では、テーブルのフィールド情報を表示するコマンド DSPFFD を実行する手順を見ていこう。まず 作成されたノートの上部にある + コード をクリックすると、青枠で囲まれたブロックがノートに挿入される(図表60)。

ブロックの右下に SQL とあるので、この状態は SQL コマンドを入力して実行できるが、今回はコマンド DSPFFD を実行したいので、SQL という文字をクリックする。すると上部に以下のような選択肢が表示される(図表61)。

ここで CL を選択すると右下も CL に変わる。では、コマンドを入力してみよう。左側の再生ボタンをクリックするとコマンドが実行される(図表62、図表3)。


実行結果をクリアするには、結果が表示されたセルの左側の … をクリックし、セルの出力をクリアする を選択する。
では、SQL の SELECT ステートメントを使用してデータの中身を見てみよう。左上の + コード をクリックして別のブロックを挿入する。右下を SQL に変更して SELECT ステートメントを入力して実行する(図表64)。

今回の環境では、DBCS フィールドが隣接している場合、内部で連結して表示されるなど期待した表示はされなかったが、簡単なデータのチェックやメンテナンス用途には利用できると思う。
さらにこのノートには、Markdown を記述するブロックの追加できる(図表65)。

このように Markdown ブロックを追加し、Markdown記法でタイトルや文章を記入し、矢印のチェックマークをクリックすると整形されて表示される(図表66)。

このノートはソース・コードと同様にリモートにもローカルにも保存しておくことができるので、いつでも開いてコマンドや SQL ステートメントを実行することができる。よく使うものを登録しておけば作業も捗るはずだ。
Markdown記法を利用して、開発時のメモ帳として利用してもよいし、git で共有してテスト手順書の作成や、簡単なプログラム仕様書を保存しておくなど利用用途は様々だ。この拡張機能は本当に便利なので、ぜひ活用してほしい。
Code for IBM i |目次
Part1 Code for IBM iについて
Part2 開発環境俯瞰図
Part3 基本的な使い方
Part4 ソースコードの保守
Part5 Code for IBM i以外の便利な拡張機能
Part6 DeepL API を使った翻訳プログラムの作成と実行

著者|
小川 誠氏
ティアンドトラスト株式会社
代表取締役社長 CIO CTO
1989年、エス・イー・ラボ入社。その後、1993年にティアンドトラストに入社。システム/38 から IBM i まで、さまざまな開発プロジェクトに参加。またAS/400 、IBM i の機能拡張に伴い、他プラットフォームとの連携機能開発も手掛ける。IBM i 関連の多彩な教育コンテンツの作成や研修、セミナーなども担当。2021年6月から現職。
[i Magazine 2023 Winter掲載]