Visual Studio CodeにおけるRPG とIBM i
著: Liam Barry Allan (2021年6月21日)
訳: 玉田 優 (2021年6月25日)
はじめに
Visual Studio Code(以下、VSCode)とはIDEであり、開発者がバックエンド、革新的なWebアプリ、フロントエンド、そして開発範囲内の全てを記述するためのプラットフォームです。
私(※Liam Barry Allan氏)は「Code for IBM i」というVSCodeの拡張機能を作成しました。
「Code for IBM i」を使用することで、ユーザーはVSCode上で、IBM iコードの開発や保守ができます。
VSCodeは拡張性に最適なIDEであり、私はこの作業を喜んで行いました。
VSCodeは全ての言語(例えば、PHPやJavaなど)で動作するように構築されていますが、私の見解では、今現在IBM i上のRPGLEやCOBOLはサポートしていませんでした。
私たちは、ユーザーために利便性と速度の観点からRPGLE開発を合理化しています。
私たちはRPGLEとCOBOLの開発が誰にとっても、可能な限り最も効率的で簡単になることを望んでいます。
私は2017年からIBMiCmd、 ILEditor 1、ILEditor 2などの拡張機能やスタンドアロンIDEを構築してきました。
「Code for IBM i」は、私の仕事上、最高のイテレーションだと固く信じています。
そして、皆さんと共有できることを嬉しく思います。
2021年の時点で、「Code for IBM i」はVisual Studio Code Marketplaceから無料で入手できます。
また、「Code for IBM i」はオープンソースであり、ユーザーからのフィードバックやインプットをとても頼りにしています。
「Code for IBM i」は1つの記事にまとめるには機能が多すぎるので、今回の投稿ではVSCodeと「Code for IBM i」のセットアップについて説明します。
インストール
※これ以下の解説はCCSID 5035,1399を前提にしております。
VSCodeはWindowsやMacを含むほとんどのオペレーティングシステムで利用できます。
まず初めに、VSCodeのWebサイトからVSCodeをダウンロードします。
その後、Marketplaceから拡張機能をインストールします。
- 拡張機能を開く。
- 「ibmi」と検索して、「Code for IBM i」を見つける。
- インストールをクリックする。
IBM iへの接続
インストールは本当にシングルクリックです。
ここからIBM iに接続します。
IBM iに接続する重要な注意点として、あなたのシステム上に動作中のSSHデーモンが必要です。
通常、’ STRTCPSVR *SSHD’がSSHデーモンを開始する簡単な方法ですが、より一層の援助が必要な場合は、Getting Started with SSH for IBM iを確認してください。
「Code for IBM i」をインストールすると、左側に新しいアイコンが表示されます。
これが「Code for IBM i」の拡張機能です!
これをクリックし、「Connect to an IBM i」を選択します。
情報を入力したら、「Connect」をクリックします。
「Code for IBM i」は接続情報を保管するため、全てを再度入力する必要がありません。
接続に成功すると、快適な情報が表示されます。
メンバーの編集
初めて新しいシステムに接続すると、「MEMBER BROWSER」のリストには「QSYSINC/H」だけが表示されます。
もちろん、そこでは何も編集したくありません。
「MEMBER BROWSER」にカーソルを合わせると、リストに他のソースファイルを追加できるボタンが表示されます。
編集するメンバーの保存先ソースファイルを追加しましょう!
ソースファイルが追加されたら、ソースファイルをクリックすることで、中のメンバーを表示できます。
メンバーは、クリックするだけで新しいタブで開きます。
ソースが開いているときは通常の編集をすべて行えます。
コードのコンパイル
もちろん、編集以外で次に重要なことはソースコードのコンパイルです。
今回の例では、「DEPTS_WEB」と名付けたSQLRPGLEプログラムがあります。
「Code for IBM i」は作業中のソ-スファイルをコンパイルするために、新しいショートカットを付け加えます。
コンパイルオプションを表示するために、「Control + E」(Macの場合はCommand + E)を使用します。使用可能なアクション(独自のブログ記事にする価値のある別テーマ)のドロップダウンが表示されます。
各アクションは実行するコマンドが異なります。
今回の例では、「CRTSQLRPGI」プログラムのコンパイルを実行したいのですが、そのためにはデフォルトの行動が必要です。
コンパイルを実行した後、「Code for IBM i」はソースコードに沿ってコンパイルエラーを表示します(予想通りです)。
この場合、プリコンパイラはファイル定義を見つけられなかったようです。
これは通常、ライブラリ・リストに問題があるか、テーブルをもつライブラリがライブラリ・リストに存在しないことを示しています。
ライブラリ・リストの編集
「Code for IBM i」は独自のライブラリ・リストをもっています。
つまり、コマンドがサーバーに送られるたびに、ユーザーからのライブラリ・リストではなく、設定したライブラリ・リストが使用されます。
ライブラリ・リストを変更することはとても簡単です。
「Code for IBM i」拡張機能には「USER LIBRARY LIST」があります。
「USER LIBRARY LIST」では次のことができます。
- 現在のライブラリを変更する
- 今後のコマンドのために、ライブラリ・リストを編集する。
- ライブラリ・リストを並び替える
「DEPTS_WEB」プログラムをコンパイルするために、「DEPARTMENT」テーブルをもつ不足しているライブラリを追加する必要があります。
それは「SAMPLE」ライブラリにあります。
「USER LIBRARY LIST」の追加ボタンをクリックすることで、ライブラリが追加できます。
「SAMPLE」が追加されたので、次にプログラムをコンパイルしようとしても問題ないはずです。
「Code for IBM i」はコマンド実行が成功したことをメッセージとともに教えてくれます。
おわりに
今回ご紹介した内容は「Code for IBM i」の基本的な機能の一部です。
「Code for IBM i」は、非常に多くの機能をもっており、例えば次のような機能があります。
- IFS(RPG、PHP、Python、JavaScriptなど)からのソース編集及びコンパイル
- ソースファイル及びIFSディレクトリのコンテンツ検索
- ライブラリ内のオブジェクトの参照及び保守
- SQLステートメントの実行と視覚的な結果の表示
- フリーフォーマット及び固定フォーマットRPGLEのコンテンツ補助
「Code for IBM i」には以下の機能を追加する拡張機能もあります。
- ソース日付のサポート
- RPGLEの統合ユニットテスト
- IBM iのコードカバレッジ
こちらの記事もチェックしてみてください。