脊髄反射で学ぶPUB400
IBM i を、無料で、本物で触れる場所があります。PUB400.COM です。
この連載は、そこで手を動かすための演習集です。1回30分。読んで分かった気になるのでは なく、指が覚えるまで打つことを目指します。だから毎回、最後に「何も見ずにもう一度」を 置いています。
誰に向けて書いているか
Unix や Linux には慣れているが、IBM i はまったく知らない人です。
この層がいちばん苦しみます。用語を調べれば出てきますが、世界の区切り方が違うので 対応表が埋まらない。「ライブラリーはディレクトリーのようなもの」で進むと三歩目で 矛盾します(入れ子にならないので)。
だから操作と同じだけ、概念に紙幅を割きます。IBM i を長く使っている人には 当たり前すぎて誰も書かないことを、わざわざ書きます。
なぜ「脊髄反射」か
IBM i は、知識より手順が体に入っているかで速さが変わります。F3 で抜ける、
F4 で引数を出す、F9 で前の命令を戻す。考えて思い出すものではなく、反射で出るべき
ものです。
ただし反射は地図があって初めて意味を持ちます。だから概念の回と演習の回を 交互に置いています。
前置き
- 実機です。 壊しても大丈夫な砂場ではありません。共有システムなので、他人の 邪魔をしない範囲で遊びます
- PUB400 は個人が善意で公開している無料サービスです。重い処理を延々流したりしないこと
- 画面は IBM i 7.5(
5770SS1 V7R5M0)のものです
公開済み
- 第1回 Unix 使いのための IBM i 地図 — 手は動かさない。世界の区切り方が違うことだけ先に飲み込む
- 第2回 PUB400 に繋ぐ — 無料の本物の IBM i に入って、メインメニューを読む
全体の見取り図
概と付いているのが概念の回です。手はあまり動かしません。 本数は目安で、書いてみて割れたり縮んだりします。
第1部 入口(1〜7)
| 1 | 概 | Unix 使いのための IBM i 地図 |
| 2 | PUB400 に繋ぐ | |
| 3 | コマンド行の作法 — Erase EOF、F9、F4、F3とF12 | |
| 4 | 概 | メッセージとジョブログ — エラーは文字列ではなくオブジェクト |
| 5 | 概 | ライブラリー・リスト — $PATH が全部に効く世界 |
| 6 | オブジェクトを見る — WRKOBJ DSPOBJD WRKLIB |
|
| 7 | スプール — 出力はどこへ行くのか |
第2部 ソースと編集(8〜12)
| 8 | 概 | ソース物理ファイル — なぜソースが「表」なのか |
| 9 | SEU の桁と FMT 定規 | |
| 10 | SEU の行コマンド — I D C M を反射にする |
|
| 11 | PDM で回す — 一覧から直してコンパイル | |
| 12 | 概 | IFS — 同居しているもう一つの世界 |
第3部 データベース(13〜21)
| 13 | 概 | レコード — バイトの流れではない |
| 14 | DDS で物理ファイルを作る | |
| 15 | データを入れる — UPDDTA |
|
| 16 | 概 | 論理ファイル — 索引でもビューでもあるもの |
| 17 | SQL で触る — STRSQL |
|
| 18 | 概 | CREATE TABLE と CRTPF は何が違うのか |
| 19 | 結合と集計 | |
| 20 | ジャーナルとコミット | |
| 21 | SQL サービス — システムを QSYS2.* で覗く |
第4部 画面(22〜28)
| 22 | 概 | 5250 — 画面は文字の流れではなくデータ構造 |
| 23 | DDS で画面を作る — 定数と入力 | |
| 24 | 概 | 標識 — 画面の条件分岐 |
| 25 | 機能キーと AID | |
| 26 | サブファイル(1)一覧を出す | |
| 27 | サブファイル(2)ページ送りと SFLEND |
|
| 28 | 窓と色 — WINDOW WDWBORDER |
第5部 プログラム(29〜37)
| 29 | 概 | プログラムもオブジェクト — コンパイルで何ができるのか |
| 30 | CL(1)変数と条件 | |
| 31 | CL(2)MONMSG — エラーを捕まえる |
|
| 32 | RPG 自由形式の基本 | |
| 33 | RPG でファイルを読む — CHAIN と READ |
|
| 34 | RPG で画面を出す — EXFMT |
|
| 35 | RPG でサブファイル | |
| 36 | 概 | ILE — モジュール、バインド、活動化グループ |
| 37 | 組み込み SQL — SQLRPGLE |
第6部 動かす(38〜44)
| 38 | 概 | ジョブ — プロセスとどう違うのか |
| 39 | バッチに投げる — SBMJOB とジョブ待ち行列 |
|
| 40 | 概 | サブシステム — 仕事の置き場 |
| 41 | 概 | 権限 — オブジェクトごとの鍵、採用権限 |
| 42 | デバッガ — STRDBG |
|
| 43 | SSH と PASE — もう一つの IBM i | |
| 44 | まとめ — Unix 使いが最後まで引っかかること |
書けないかもしれない回
PUB400 は共有システムです。試してみて、できなければ「できなかった」と 書いて削ります。できないこと自体が、共有システムの実務感覚を教えてくれます。
いま怪しいと思っているのは、権限(41)・サブシステム(40)・ジャーナル(20) あたりです。
関連
同じ作者が pocket400 というアプリも作って います。5250 の画面・DDS・SQL・RPG の有界な部分集合を手元で動かすもので、 実機に繋がずに形を覚えるためのものです。この連載とは逆向き(砂場 → 実機)の 関係になります。
実機との差は docs/terminal-design.md に記録しています。この連載で実機を触って分かったことは、そちらにも反映しています。