社長ブログ

61. Pythonで5250アプリに成功

Python で5250アプリケーションを作成して
実行に初成功しました。
  _

ウェブサイトの記事などでIBM iに
Pythonの導入とか動作だけ成功したという
話はありますが Pythonで 5250アプリを作って
しかも動作に成功したという話は初めてです。
 
▼5250アプリの動作画面

  商品マスター登録                               モード  . . :    表示              
  様式  . . . . :   DSPDTA01                     ファイル  . :   @SHOHIN            
                                                                                    
  商品コード : NV-CF1                                                               
  商品名 :      Cカセット編集ビデオ                                                
  単価 :          58,800                                                            
  品種コード : 0002  ビデオデッキ                                                   
                                                                            
                                                                                    
 F3= 終了                F5= 最新表示             F9= 挿入             F10= 入力    
 F11= 変更               F23= 削除                F12= 前画面  

[解説]

DFUのような単票型式のアプリケーションですが
品種マスターにCHAINするなど2次ファイル結合も
備えています。
もちろん初期画面からコードを指定して保守することが
できます。

これを実行するRPGプログラムはこちらでご覧ください。
約390ステップ数のRPGです。

これをPythonで実行できるようにしたPythonのソースは
次のとおりです。

▼実行したPythonソース

from py400 import *                                            
                                                               
open("PYTHON/@SHOHIN")          #  表示装置ファイルをオープン  
open("QTRFIL/SHOHIN")           #  商品マスターをオープン      
open("QTRFIL/HINSHU")           #  品種マスターをオープン      
                                                               
while True:                                                    
    exfmt("DSPHEAD")            #  初期画面を表示              
    chain("SHCODE", "SHOHIN")   #  商品マスター CHAIN          
    while True:                                                
        chain("SHSCOD", "HINSHU") #  品種マスターを結合        
        exfmt("DSPDTA01")         #  明細レコード画面を表示  

_

[解説]

Pythonにするといかに簡単になるかおわかり頂けたかと思います。
これは意図的に機能の記述を省略しているソースではありません。
Pythonを実行するために㈱オフィスクアトロが開発した
AS400エンジンがPythonの面倒を見ているので
Python自身は大幅に少ないコーディングで済んでいるのです。

最初に

  from py400 import * 

で AS400エンジンをインクルードを宣言しています。
次に

 open("PYTHON/@SHOHIN")          #  表示装置ファイルをオープン 

と DSPFを宣言しているのですがどこにも装置記述はありません。
次の

 open("QTRFIL/SHOHIN")           #  商品マスターをオープン      
 open("QTRFIL/HINSHU")           #  品種マスターをオープン 

にしても装置 DISKという記述も索引ファイルを示す記述も
レコード長の記述もありません。
考えてみればファイルはオープンしてみればそれがどのような
ファイルであるかはわかるはずです。
表示装置ファイルなのか索引ファイルなのかオープンしみれば
わかる話です。
それをいちいち宣言するのも無駄なことです。
_

㈱オフィスクアトロ提供のPython Framework ではこのような
無駄な喜寿筒は一切排除しています。

 exfmt("DSPHEAD")            #  初期画面を表示

 exfmt("DSPDTA01")         #  明細レコード画面を表示

にしても機能キーの記述はありません。
F3=終了やF12=前画面は決まっていることなので
記述しなくても機能としては存在しており機能キーも
機能することができます。

このように決まっている記述も今までは繰返し記述していたのです。

 chain("SHCODE", "SHOHIN")   #  商品マスター CHAIN

しても見つからなければエラー・メッセージを記述するなど
すべてAS400エンジンがやってくれます。

実に今までのRPGではお決まりの記述を毎度書いていて
その度ら余慶なミスをしていたのかもしれません。

上記のPythonのソースを見ればPythonを知らない人でも
凡その内容は理解できるでしょう。
しかし390ステップもある RPGソースを見て RPGが
わからない人ではすぐにはりかいできません。
Pythonの登場で誰もが簡単にプログラムが書ける時代に
なってきたのです。

IBM マニュアルにはPythonのことは次のように書かれています。


Python は、サード・パーティー・パッケージを使用して容易に
拡張できる一般的な高水準プログラミング言語であり、
多くの場合、少数のコード行で強力な機能を作成できます。


現在、㈱むオフィスクアトロではAS400エンジンの開発を進めています。
RPGの入出力命令はすべてPythonで置き換えられることが
わかっています。
_

あと10年以内にはIT業界のプログラム開発言語の大半はPythonに変わるでしょう。