AS400エンジンと呼ばれるサービス・プログラム(*SRVPGM)では
Pythonに代わって多くの処理を代行すると紹介したが
それではEXFMTでは、どのような処理が代行されるのか紹介しよう。
_
(1)(実行キー)
SFLCTLレコードの入出力では SFLDSP, SFLDSPCTLの標識は自動的にオン、オフされるので
手動でオン、オフする必要はない。
また SFLEND標識(続く、終わり)も内部で処理されるので制御する必要はない。
変更モードでデータを変更してもう一度実行キーを押したときはレコードを更新する。
更新したときはQUERYでDFUのような監査ログが印刷出力される。
(2)(CF03)-終了
オープンされていたすべてのファイルは自動的にクローズれてPythonを終了する。
(3)(CF09)- 挿入
入力モードに変更されて入力用の明細画面が表示される。
(4)(CF10)- 入力
CF09と同じ。
(5)(CF11)- 画面切替え
横方向のスライド画面が存在しているときは横の次の画面レコードにカウント・アップされて
表示される。最後の画面レコードの場合は最初の画面に戻る。
横方向のスライドが無ければ「この機能キーは使用できません」と表示される。
(6)(CF11)- 変更モード
変更モードに変更して初期画面に戻って入力を待機する。
(7)(CF12)- 前画面
初期画面に戻って初期の状態で待機する。(前の画面に戻るのではない)
(8)(ROLLUP- ロールアップ
明細画面で次のデータの続きがあればロール・アップして次の明細画面を表示する。
この画面がSFLCTLであればSFLレコードの続きを読み取って続きのSFLレコードを
表示する。
プログラマーは SFLリコードの処理でロールアップの記述は全く書く必要はなくなる。・
(9)(ROLLDWN- ロールダウン
以前の明細画面がある場合は以前の画面に戻って表示する。
この画面がSFLCTLであれば「ロールダウンできない」とのエラー・メッセージを
表示する。
正常なROLLDWNしょりはシステムによって処理されているはずなので
ROLLDWNがPythonに戻ってくるということはそれ以上ROOLDWNできない場合
だけである。
(10)(CF23)- 削除
確認画面を表示してさらにF23キーが押された場合はレコードを
削除する。
削除住みレコードはDFUと同じように監査ログが印刷出力される。
(11)(ENDOPT: 終了画面 )
終了画面の場合はオープンしていたすべてのファイルをクローズして
Pythonをし有料する。
…どうであろうか?
AS400エンジンは Pythonで EXFMTと書くだけで
これだけの処理をプログセマーに代わって内部でやってくれるのである。
RPGを記述していても毎回、SFLレコードを出力したりROLLUPなどの
処理を記述しているはずである。
ところがいつも記述していて正しく動作するはずなのに
今回はバグッて正しく動作さしないとかはいつもある。
Python.400 のAS400エンジンに任せておけば
新入社員でも10年の熟練プログラマーのような
高い品質のプログラムをわずかに時間のうちに作ってしまうだろう。
しかも入社する前に既にPythonは学校で学習済みである。
Pythonを使えばこんなにも楽になるのである。