設計情報の保管と復元
ASSGはExcelVBAを使って開発しています。アプリケーションとデータ(設計情報)を切り離すようにしているので、次のようなメリットが得られています。
- ブックファイルが肥大化しない
- アプリケーションがバージョンアップしても過去の設計情報が使える
- テンプレートデータを作っておくことで開発効率がアップする
データは暗号化していませんが、ログイン情報やライセンス情報は含んでいないので、セキュリティの心配はありません。
ちなみに私の使い方として、プログラム改修時は設計情報を別名で保管しています。AS400でソースのコピーを作るより分かり易いです。
動画では、設計情報の保管と復元操作をご紹介しています。
SQLについて
RPGで扱うファイルはF仕様書で定義し、READ/CHAIN/WRITE命令で読み書きすることが続いていたと思います。RPGサイクルを使って読み書き命令を書かないこともありました。まぁ、それはそれで短時間で作れるし、コード行数が少ないので品質の良いプログラムが作れたと思います。
しかし、今の各種プログラミング言語を考えれば、RPG特有の機能を駆使した開発で良いのか疑問に思います。AS400は(抽象的表現ですが)ビジネス環境で使用する最適なマシンだと思います。これからも使い続けていくためには、若い方に興味を持って貰えることが必要です。そのためには「変化」が必要です。
・FF(フリーフォーマット)の採用
・SQL文によるファイル操作
・使いやすい開発支援ツール
ASSGではFFを前提としています。一部にはFFは[MOVEA]や[LOOKUP]が使えないから云々、といった記事もあります。確かに便利な命令ではありますが、FFのメリットの方がはるかに大きいし、いつまでもRPGの特殊命令にしがみつくことは避けた方が良いと思います。20年数年間RPGに携わり、他言語もいくつか憶えた経験から得た私の思いです。
少々前振りが長くなりましたが、今回はSQL文です。SQL文を使い始めた頃の一番の苦労は、デバックです。カーソル処理を行うためSQL文を文字列で作成するのですが、どこかでエラーになると大変です。デバックでSQL文を見ようとしても、1024桁を超えると見えません。デバック用にファイルに書き出してエラー原因を特定していました。そこに手間暇がかかるので、SQL文を作るための補助ツールを作りました。機能的には限定されますが、開発効率や品質アップには貢献できると思います。
動画では、2つのファイルをJOINする設定を作り、SQL文の簡易テストとRPG組み込み用の文字列を作成する手順を行っています。
エディタについて
ここまで、ASSGで扱うRPG生成に直結する主な機能をご紹介してきました。
ここからはエディタ機能や設計情報保管/復元などの補助的な機能をご紹介します。
今回はエディタです。エディタは・・・機能低いです。できれば構文チェックや色付けなどの機能を盛り込みたいのですが、VBAのテキストボックスは「文字入力」が仕事なので、限界があります。
前にご紹介したエディタの機能です。
データベースフィールド参照 |
画面フィールド参照 |
帳票フィールド参照 |
ワーク定義フィールド参照 |
プロトタイプ定義フィールド参照 |
プロトタイプコード挿入 |
命令コード呼び出し(命令は個人で登録) |
汎用コードセット呼び出し(汎用コードは個人で登録) |
共通メモ参照(メモは個人で登録) |
置換式 |
個人的には各種のフィールド参照と置換式の2つが非常に有効だと感じています。
フィールド参照のメリット
- フィールド名のタイプミスが無くなる(7030のエラーが激減)
- フィールドの取り違えが無くなる(日本語テキストの確認やコメント挿入ができる)
- フィールドの漏れが無くなる(レコード単位の全フィールドを一括挿入できる)
置換式のメリット
- 画面フィールドの入力チェックや検索コードなど、定型ロジックを変更なく使える
- 共通メモとの組み合わせで、コード入力がコピーペーストで完了する
エディタの課題
- 構文チェックができない
- 色付けなどの視覚効果がない
- NumLockが解除されるときがある(Sendkey命令の問題で対策はしているが)
課題はありますが、もうSEUを使う気にはなれません。
課題を解決して頂けるツワモノ募集中です。
プロトタイプについて
これまで、ファイル、画面、帳票、ワークの各フィールドについてご紹介してきました。
今回はプロトタイプです。これがASSGで扱うすべてのフィールドです。
ASSGでは共通サブルーチンのプログラム名やパラメータフィールドを、「プロトタイプ」で定義します。また、定義したプロトタイプをEXPORT/IMPORTすることもできます。エディタ画面ではF6キーで[CALLP文]を挿入できます。
今回の動画は、プロトタイプの設定項目、EXPORT/IMPORT、エディタでのCALLP文挿入をご紹介します。
帳票設定について
またまた昔話で恐縮ですが、印刷出力の定義は「O仕様書」のみでやっていました。外部定義が有ったのかは記憶にありませんが、とにかく「O仕様書」でした。この「O仕様書」がやっかいで、フィールドの桁指定は「終わりの位置」なんですね。
ReportProgramGeneratorと謳ってる割には、印刷出力の定義が貧弱だと思っていました。
ASSGでは、画面設計をベースにして帳票設計を作りました。帳票設計では使わない検索や入力チェックなどをカットしています。逆に帳票設計だけで必要になった項目を追加しています。最近ではエクセル出力を使うことが多く、帳票設計は最低限の仕様にしています。
動画では、帳票設計のフィールド設定で「横サイズ、縦サイズ」の設定を観て頂きます。
フィールドの挿入について
若い頃はRPGだけを使っていたので迷うことはなかったけど、色々な言語を使っていると、同様の命令コードを迷うことがあります。私が一番間違うのは[SELECT]命令です。[SELECT CASE]だったか[SELECT WHEN]だったか、しょっちゅう迷っていました。
ASSGを使うようになり、命令コードは[F2キー]で確認できたり[CTRL+SPACE]で挿入が出来るようになりました。あとは演算項目を簡単にかつ間違えないように入力できれば、コードを書く作業は非常に楽になります。
今回の動画はフィールドの挿入についてご紹介します。
挿入パターンの設定と挿入イメージをご確認ください。