IBM i (旧AS400）の自己学習メモ　インデックス

# 概要

転職をきっかけにIBM i（旧AS400）のシステムに携わることになりました。
あくまでも開発者としての位置付けではなく、情報システム部門としてそのシステムを利用し、保守・運用する立ち位置で携わります。
開発会社におんぶに抱っこ状態とならないよう、自分自身の理解を深めるために少しずつ自己学習を進めていこうと思います。
・・・と思って勉強しようとしてもなかなか進まなかったのですが、高額なIBMiマシンを購入しなくても、AS400の環境を触れることがわかり、そこから少しずつ勉強が進んできたので、いったん勉強した内容をQiitaにまとめ、その記事へのインデックスとしてこの記事を作成しました。

**IBM iと呼称した方が正確なのは理解していますが、職場ではAS400と表現する方が多いため、記事ではAS400と記載している箇所がかなりあります。**

# 記事インデックス

記事インデックスは随時更新していきます。

- 更新履歴
    - 2020/06/17 各記事を分類分けして表にまとめました。

## 自己学習用の開発環境構築

PUB400.comを利用したフリーで構築できるIBMi（AS400）環境の構築手順や、
環境構築で手詰まってしまう部分（日本語対応や接続するためのコンソールなど）の記事をまとめています。

|#|記事|概要|
|:--|:--|:--|
|1|[IBM i (旧AS400）の自己学習メモ０４　フリーのIBM i 開発環境構築](https://qiita.com/You_name_is_YU/items/256045b1335f72bef66e)|AS400の実機を利用する環境が、フリーで手に入る大変ありがたいサービスの申込から環境構築してアクセスするまで|
|2|[IBM i (旧AS400）の自己学習メモ０５　IBM i Access Client SolutionsをMacにインストール](https://qiita.com/You_name_is_YU/items/cd72d43000251000b8af)|私のPCはMacなので、ACSをMacにインストールしてフリーのAS400（PUB400.com）へアクセスするための記事|
|3|[IBM i (旧AS400）の自己学習メモ　番外編０１　PUB400.comで日本語対応](https://qiita.com/You_name_is_YU/items/b79d8c78a917fe8c2961)|PUB400.comでDescriptionText入力時や、ソースコード内のコメント入力時に、日本語入力を行うとエラーとなる事象について、その解消方法をまとめました。|
|4|[IBM i (旧AS400）の自己学習メモ　ツール編０２　Eclipse＋DBeaverでSQL実行](https://qiita.com/You_name_is_YU/items/4151223abeaf176ceb55)|データ転送ツールではなく、Eclipse＋DBeaverを使ってデータを取得したりする方法についてまとめました。|
|5|[IBM i (旧AS400）の自己学習メモ　番外編０２　PUB400.comを使う際の注意（再起動とIPL）](https://qiita.com/You_name_is_YU/items/ccd81cda49a1fc785667)|PUB400.comを使っていると突然接続が切れることがあります。その原因がわかりましたので記事にしました。|
|6|[IBM i (旧AS400）の自己学習メモ　ツール編０３　VSCodeでRPGソースコードのハイライト](https://qiita.com/You_name_is_YU/items/3fd99bc0614cbaa38895)|Visual Studio Codeを使ったRPGやCLなどのソースコードをハイライト表示する拡張機能「vscode-ibmi-languages」の環境構築とその使用イメージをまとめました。|

## コマンド／ツール／運用で利用できるあれこれ

|#|記事|概要|
|:--|:--|:--|
|1|[IBM i (旧AS400）の自己学習メモ　ツール編０１　データ転送](https://qiita.com/You_name_is_YU/items/2d10b92e90698cc37474)|ACSのデータ転送ツールの使い方について|
|2|[IBM i (旧AS400）の自己学習メモ　コマンド編０１　DSPPGMREF　依存しているファイル・プログラムの一覧を作成](https://qiita.com/You_name_is_YU/items/486d377930fcf258ef4d)|DSPPGMREFコマンドは指定したプログラムが依存するPF/LF/DSPF/RPGなどの情報を一覧で出力してくれるようなので、その使い方について記事にしました。|
|3|[IBM i (旧AS400）の自己学習メモ　ツール編０２　Eclipse＋DBeaverでSQL実行](https://qiita.com/You_name_is_YU/items/4151223abeaf176ceb55)|データ転送ツールではなく、Eclipse＋DBeaverを使ってデータを取得したりする方法についてまとめました。|
|4|[IBM i (旧AS400）の自己学習メモ　AS400保守・運用編０１　WRKQRYでデータ調査／データ移行](https://qiita.com/You_name_is_YU/items/8162bf7b2cae700f5c02)|AS400のデータ調査をするのに使えるWRKQRYコマンドの使い方についてまとめました。|
|5|[IBM i (旧AS400）の自己学習メモ　コマンド／ツール／運用　*FILE SAVFオブジェクトを取り扱う](https://qiita.com/You_name_is_YU/items/f1d08f9c09cfa4edcdab)|AS400を利用していると、開発会社に開発してもらったプログラムなどを、**.SAVFという拡張子のファイルで連携し、顧客環境へ展開してUATや本番リリースを行うケースがあります。（あるようです）<br>そこで、FILE SAVFオブジェクトが自分でも取り扱えるようになると便利かなと思い、いじってみることにしました。|
|6|[IBM i (旧AS400）の自己学習メモ　コマンド／ツール／運用　IBM Navigator for iを使う](https://qiita.com/You_name_is_YU/items/259bf49d4b9ee53ffda8)|System i ナビゲーターの変わりとなるブラウザベースで利用可能なIBM Navigator for iを使ってみます。|
|7|[IBM i (旧AS400）の自己学習メモ　コマンド／ツール／運用　FNDSTRPDMでソースコード横断キーワード検索](https://qiita.com/You_name_is_YU/items/8f9cf4af01d437e4fb93)|FNDSTRPDMコマンドを使って、ソースコードを横断したキーワード検索の記事です。|
|8|[IBM i (旧AS400）の自己学習メモ　コマンド／ツール／運用　DSPOBJDでAS400上のオブジェクト一覧を確認する](https://qiita.com/You_name_is_YU/items/cd28dedaf43a3cfbf070)|DSPOBJDコマンドを使って、AS400上のオブジェクト一覧情報をまとめて確認する方法について解説しています。|
|9|[IBM i (旧AS400）の自己学習メモ　コマンド／ツール／運用　CPYFでテーブルデータのバックアップなど](https://qiita.com/You_name_is_YU/items/d563dd0b95ffebcf6093)|CPYFコマンドを使ってテーブルデータをバックアップする方法について解説します。<br>応用編として、CPYFでデータをコピーする条件を指定する方法についても触れています。|
|10|[IBM i (旧AS400）の自己学習メモ　コマンド／ツール／運用　長めのコマンドを入力したい（CALL QCMD）](https://qiita.com/You_name_is_YU/items/8d25171cff3017775cfd)|手元に控えておいた長めのコマンドを実行する方法について解説しています。|

## CLプログラミング編

|#|記事|概要|
|:--|:--|:--|
|1|[IBM i (旧AS400）の自己学習メモ０６　CLプログラム（Control Language） Part1](https://qiita.com/You_name_is_YU/items/774b320ffd48fbff5f60)|CLプログラミングでHello World|
|2|[IBM i (旧AS400）の自己学習メモ０６　CLプログラム（Control Language） Part2　RTVCLSRCでCLプログラムからソースを取得](https://qiita.com/You_name_is_YU/items/c467a8476c3c7d63e08d)|RTVCLSRCコマンドでCLプログラムオブジェクトからソースコードを取得する方法|
|3|[IBM i (旧AS400）の自己学習メモ０６　CLプログラム（Control Language） Part3](https://qiita.com/You_name_is_YU/items/80c1bf3db6d6d735ca86)|CLプログラミングで参考となりそうなサンプルプログラム<br>システム日付の表示、コマンド結果のスプール出力、文字列結合CAT三兄弟|
|4|[IBM i (旧AS400）の自己学習メモ０６　CLプログラム（Control Language） Part4](https://qiita.com/You_name_is_YU/items/39c9ef2da29f277c876e)|CLプログラミングのサンプル。<br>数値型の取り扱い、条件分岐、繰り返し処理|
|5|[IBM i (旧AS400）の自己学習メモ０６　CLプログラム（Control Language） Part5　DCLF/RCVFでファイル操作](https://qiita.com/You_name_is_YU/items/b3ef48fc4d6f48ec06e9)|CLプログラミングでファイルの読み込みを行うサンプル|
|6|[IBM i (旧AS400）の自己学習メモ０６　CLプログラム（Control Language） Part6　コンパイルエラー／実行時エラーの対処方法](https://qiita.com/You_name_is_YU/items/8795140f94a590af4e97)|CLプログラミングを進めていくうえで直面するコンパイルエラーや実行時エラーが発生したときの対処方法|

## ファイル(PF/LF)

|#|記事|概要|
|:--|:--|:--|
|1|[IBM i (旧AS400）の自己学習メモ０８　QTEMPにサクッと開発テスト用の一時ファイル作成（DDSを使わない１カラムテーブル）](https://qiita.com/You_name_is_YU/items/f6550ffb9fc474e933cd)|開発中にテスト用のちょっとしたテーブルとデータがほしい時がある。そういった簡易的なデータを用意するための記事。|
|2|[IBM i (旧AS400）の自己学習メモ０９　ファイル（Physical File／Logical File）の作成](https://qiita.com/You_name_is_YU/items/199b084299fde0c7534e)|Oracleなどのcreate table同様に物理ファイルを作成する。|
|3|[IBM i (旧AS400）の自己学習メモ１２　PF/LFのカラム追加に伴う再コンパイル](https://qiita.com/You_name_is_YU/items/2510aa4632a5c48f44a2)|PF/LFのファイル定義を変更した際にRPGプログラムを再コンパイルしないとCPF4131エラーが発生してしまう。それを回避できないか検証した記事です。|
|4|[IBM i (旧AS400）の自己学習メモ　AS400保守・運用編０１　WRKQRYでデータ調査／データ移行](https://qiita.com/You_name_is_YU/items/8162bf7b2cae700f5c02)|AS400のデータ調査をするのに使えるWRKQRYコマンドの使い方についてまとめました。|

## RPG Ⅳプログラミング

|#|記事|概要|
|:--|:--|:--|
|1|[IBM i (旧AS400）の自己学習メモ　RPG Ⅳプログラミング編０１　参照系の画面開発](https://qiita.com/You_name_is_YU/items/20958a4774939a825373)|得意先マスタの照会画面を実装するDSPFとRPGの記事です。<br>RPGⅣでの**定位置記入方式**でソースコードを載せています。（フリーフォーマットスタイルではありません。）|
|2|[IBM i (旧AS400）の自己学習メモ　RPG Ⅳプログラミング編０２　コンパイル時配列（CTDATAを使う）](https://qiita.com/You_name_is_YU/items/41d9845dbe4360694d32)|コンパイル時配列の初期化を行うRPGプログラミングのサンプルです。|
|3|[IBM i (旧AS400）の自己学習メモ　RPG Ⅳプログラミング編０３　コンパイル時配列（DS/INZ/OVERLAY）](https://qiita.com/You_name_is_YU/items/7b9933ef9f16fde19f92)|CTDATAを使わないコンパイル時配列の初期化を行うRPGプログラミングのサンプルです。|
|4|[IBM i (旧AS400）の自己学習メモ　RPG Ⅳプログラミング編０４　正規表現による電話番号チェック処理（RegExp_Count）](https://qiita.com/You_name_is_YU/items/bfe81bdd1d95445a4801)|正規表現を使った電話番号のチェック処理をRPGプログラムから呼び出してテストするサンプルプログラムです。|
|5|[IBM i (旧AS400）の自己学習メモ　RPG Ⅳプログラミング編０５　登録・更新・削除系の画面開発](https://qiita.com/You_name_is_YU/items/cadbad7827030e6246b7)|得意先マスタメンテナンス画面の実装が完了したのでそのまとめ記事です。<br>もちろん**定位置記入方式**を可能な限り使って実装しましたが、一部フリーフォーマットで実現している機能もあります。|
|6|[IBM i (旧AS400）の自己学習メモ　RPG Ⅳプログラミング編０６　デバッグチートシート](https://qiita.com/You_name_is_YU/items/9f0e3f7d0edbaf8ae5ab)|RPGプログラミングでラインデバッグを行う方法についてまとめ、よく使いそうなコマンドなどをまとめたチートシートです。|
|7|[IBM i (旧AS400）の自己学習メモ　RPG Ⅳプログラミング編０７　検索一覧画面の画面開発（サブファイル）](https://qiita.com/You_name_is_YU/items/c0a1f20cc3224fca3bdf)|サブファイルの技術を用いた得意先マスタの検索一覧画面のRPGプログラムです。|
|8|[IBM i (旧AS400）の自己学習メモ　RPG Ⅳプログラミング編０８　コンパイルのデフォルト設定](https://qiita.com/You_name_is_YU/items/82e74d5c6092e325abd5)|Opt=14でコンパイルする際のバッチでコンパイルするか、インタラクティブモード？でコンパイルするかを設定したり、その他便利なデフォルト設定を行う機能を知ったのでまとめました。|
|9|[BM i (旧AS400）の自己学習メモ　RPG Ⅳプログラミング編０９　１桁の乱数を生成して表示する](https://qiita.com/You_name_is_YU/items/c6d5564043aa636c69d3)|RPGプログラミングで乱数を利用するサンプルプログラムを作りました。|

## チートシート

|#|記事|概要|
|:--|:--|:--|
|1|[IBM i (旧AS400）の自己学習メモ０７　SEU(Source Entry Utility)チートシート](https://qiita.com/You_name_is_YU/items/2ebc3eb32827c5e4c5d0)|CLプログラミングにしろ、RPGプログラミングにしろ、SEU(Source Entry Utility)を利用する場面が多い。SEUの使い方が分からないと行を追加してソースコードを記述することもできなかったため、その使い方をまとめたチートシート。|
|2|[IBM i (旧AS400）の自己学習メモ１０　DSPF　SDA（Screen Design Aid）チートシート](https://qiita.com/You_name_is_YU/items/959741b2becc757ef671)|DDSの画面ファイル（DSPF）をSDA（Screen Design Aid）を利用して開発する際にSDAの使い方が分からないと話にならなかったので、使い方をまとめたチートシートを作成しました。|
|3|[IBM i (旧AS400）の自己学習メモ　RPG Ⅳプログラミング編０６　デバッグチートシート](https://qiita.com/You_name_is_YU/items/9f0e3f7d0edbaf8ae5ab)|RPGプログラミングでラインデバッグを行う方法についてまとめ、よく使いそうなコマンドなどをまとめたチートシートです。|

## その他（未分類）

|#|記事|概要|
|:--|:--|:--|
|1|[IBM i (旧AS400）の自己学習メモ０１](https://qiita.com/You_name_is_YU/items/10b79ee052d76c92901e)|AS400で登場する基本的な用語についてまとめたものです。|
|2|[IBM i (旧AS400）の自己学習メモ０２](https://qiita.com/You_name_is_YU/items/04d3f9cb393a187e930c)|主にRPGⅢとRPGⅣの違いやRPG開発する上で○○仕様書という用語が出てくるのでその整理。|
|3|[IBM i (旧AS400）の自己学習メモ０３](https://qiita.com/You_name_is_YU/items/63ceca4fd687064ee62a)|2025年の崖と言われる問題に対する解決策の１つとしてモダナイゼーションという言葉をよく聞くので、その関連のまとめ。|
|4|[IBM i (旧AS400）の自己学習メモ　番外編０３　IBMが提供している参考資料集](https://qiita.com/You_name_is_YU/items/4024642d3b07f05f6ba2)|IBMが提供してくれている非常に参考になるPDF資料をまとめました。|