IBM i 学習日記:Day 1

前回の続きです。IBM i 学習やっていき!

学びのとっかかりが掴めず停滞

週一で更新しますと宣言したにもかかわらず、1ヶ月半経ってしまいました。すいません。(誰も読んでないので謝る必要はなかいかもしれません)
というのも目標は立てたは良いのですが、学習の仕方が定まらず、重い腰が上がりませんでした。

なんせ、サインイン後のこの画面で何をすれば良いか皆目見当がつかず、なんのボタンを押せば良いのか、全て指示してくれないと動けない状態だったんです。

いや、まじどうすればいいのよこの画面。Linuxより難しいだろ。

Google AI Studioとの出会い

そんなこんなで何もしていなかったんですが!Google AI Studio!というサービスを知って、ひょっとして!と思って使ってみると!これが未知のツールの学習用にぴったりだと確信しました!

Google AI Studioがどんなものかはこちらの記事を参照してください。

これの何が優れているかというと、色んな便利な機能が含まれるんですが、その中でデスクトップ共有機能があります。
つまり指定のウィンドウを共有しながら、「次何したらいい?」「これは何が起こってるの?」と質問したら、現在の画面を認識してAIが(Gemini)回答をしてくれるという優れもの。

AI製品はClaude CodeやCursorなどのプログラミングに関わるものばかうマークしてたのですが、こんな便利ツールがあるとは!
正直Gemini CLIよりこっちの方が多くの人に刺さると思うのでもっと大声で言った方が良いです、Googleさん。

一つ問題があるとしたら、全て英語なので、とっつきにくいです。

日本人泣かせ

プログラミング学習に使うコツとしては、モデルを選択するところで、Gemini 2.5 Flash Live Previewを選択し、Output formatをTextにすることで、プログラミングの学習がしやすくなります。

なぜならAudioを許可してしまうと、回答が音声でなされます。
そうなると回答時間に制限がある関係で、回答が途切れる、コマンドを1文字1文字発音するのでまどろっこしくてプログラミング学習のケースに全く適さないといった問題があるので、ここは絶対避けるべきです。

それができたら画面中央のShare Screenから共有したいウィンドウを選択すれば、ストリームチャットが開始します。

画面共有が開始されたら、例えばエラーが出たら時に、エラーメッセージをぽちぽち打たずに「こんなエラーが出てます」と入力するだけで、「これは〜ですね、〜してください」と回答してくれるので、まるで隣に敏腕プログラマが座っててペアプログラミングしている感覚です!
すごい!未来!
興奮しすぎ!?

ということでIBM iを独習できる予感!

当初の目的であった顧客管理システムを作っていくことにします!
以下はGoogle AI Studio上のGeminiやClaudeが教えてくれたものをまとめたものです。

AS400の画面作成順序

  • これから作るもの
    • 顧客管理画面
    • 学習用なので、カスタマーコードを画面に入力すると、対応する顧客名が表示されるシンプルなもの
    • その後、データの更新、追加、削除ができるように機能拡張する
  • 作成の手順

Claudeによるとこんな手順でIBM i は開発を進めるそうです。信じます。

  1. ライブラリ作成
  2. テーブル作成
  3. テーブルをコンパイル
  4. ソースファイル作成
  5. 画面ファイル作成
  6. 画面ファイルをコンパイル
  7. プログラム作成・コンパイル・実行

実装の開始(ライブラリ・テーブル作成まで)

まず、全ての入れ物である、ライブラリーを作成します。ライブラリー名はCUSTLIBとします。

ライブラリーの作成

メインメニューから
4「ファイル、ライブラリー、およびフォルダー」→ 2「ライブラリー」→2「ライブラリーの作成」でライブラリー作成画面に遷移できます

コマンドは画面下の ===> のところに打ちます。どことなく間抜けな感じがするのは私だけ?

「ライブラリー」の欄にライブラリー名、「テキスト 記述」の欄は説明欄なので、任意の文字を入れます。他はそのままでOKらしいです。
Enterを押すとライブラリーが作成されます

テーブルの作成

続いて、テーブル(CUSTPF)を作成します。最低限の機能から作りたいので、カラムはCUSTCD(顧客コード)、CUSTNM(顧客名)だけとします。
DDS方式という、 IBM i 特有の記述方式があるそうですが、SQLで作成できるので、SQL方式をとります。
SQLが使えるのはなんだか急に安心します。データベースはIBMなのでDB2です。

STRSQLというコマンドを入力します。

SQL入力画面になるので、以下のようにCREATE TABLEを入力します

Enterで実行できます。

ちなみにDDS方式だとこんな風に書くとGeminiが教えてくれました。このあとにコンパイルという作業が必要になるそうです。
パッと見て視覚的にわかりやすい感じなので、いつか時間があればこの方式も老後に試してみたいです。

作成したテーブルの確認

AS400ではF3キーorF12キーを押すことで元の画面に戻れるので、「ん?わかんなくなった…」となったときはキーを連打してメインメニューに戻るのをよくやります。F3とF12の違いはまだわかっていないです。
メインメニューに戻った後にDSPFFD(Display File Field Description)コマンドを入力します。

DSPFFD FILE(CUSTLIB/CUSTPF)とテーブル名を指定すると以下のような画面になります。

結果が一画面に収まらないですが、Page Downキーで最後の行まで確認できます。すると、SQLで作成したCUSTCD、CUSTNMが存在しているのが確認できます。

フィールドが作成されています

今回はここまでとします。

今回覚えた概念

  • AS400の基本構造
    • ライブラリ(Library)
      • Windowsのフォルダのような概念
      • 作成するものは全てライブラリ内に格納
      • 例(CUSTLIB)
    • オブジェクト(Object)
      • テーブル(物理ファイル:PF)
      • 画面ファイル(表示ファイル:DSPF)
      • ソースファイル(PF-SRC)
      • プログラム(PGM)
  • ジャーナル
    • データベースのログみたいなもの。データベースに加えられた全ての変更(追加、更新、削除)を時系列順に詳細に記録する仕組み
  • フィールド名(カラム名)変更はできない
    • 新たにカラムを追加して、既存のカラムをコピーした上で古い方を削除

今回覚えたコマンド

  • WRKLIB + ライブラリー名:ライブラリーの処理
  • STRSQL:SQL実行画面に遷移
  • DSPFFD:ファイル(テーブル)のフィールド(カラム)の記述に特化して表示する
  • F9:SQLコマンド入力画面で直前に実行したコマンドを表示する

今後覚えたいこと

  • IBM i とAS/400の違い
  • RPGという言語のバージョンについて
  • オープン系とそうじゃない言語について
  • 他のシステムと関連を持たせる方法

終わりに

今回は以上です。
基本操作する知らずサインイン後呆然としていた状態から、Google AI StudioのおかげでGeminiが「ここに数字を入れたらいいんだよ」「元の画面に戻るのはこうしたらいいんだよ」と一つひとつ教えてくれたので、開発を始めることができました。

基本的な操作に慣れたら、Google AI Studioとのストリームチャットは閉じて、通常のAIチャットに質問してもよいでしょう。
とっかかりすらつかめない未知のツールに出会ったときは、このGoogle AI Studioをぜひご活用ください。

IBM i 学習ブログはまだまだ継続する予定ですので、お楽しみに。

「IBM i 学習日記:Day 1」への1件のフィードバック

  1. ピンバック: IBM i 学習日記:Day 2 - シスマックホームページ

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です