サポート情報

Python で5250アプリに成功

掲載日:2024/09/12

Python で5250アプリケーションの開発/実行に
成功しました。

Python(=パイソン)でのIBM i用のフレーム・ワークを
開発中の㈱オフィスクアトロでは
開発中のAS400エンジンを使って
Pythonで5250アプリケーションの開発/実行に
成功致しました。DSPFをインターフェースとして
Pythonで5250アプリケーションを作成した実例を
ご紹介いたします。
_

▼ Python で実行した5250アプリケーションの実行画面

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

▼ 実行した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")         #  明細レコード画面を表示    
                                                               

[解説]
RPGソースに比べて Pythonがいかに簡単であるか
おわかり頂けると思います。
_

同じ処理を行うRPGソースはこちらでご覧ください。 (約 390ステップ数 )

■ RPG入出力命令すべてをPythonで

from py400 import * が AS400エンジンを
インクルードしている部分です。
これによって open, exfmt, chain などの RPGの入出力命令すべてを
Pythonで使うことができます。

■ なぜこんなに簡単になるのか?

上記のPythonソースでは F3=終了やopen命令での装置記述など
詳細な記述が何もありません。

AS400エンジンが必要な省略時の操作や記述をあなたに代わって
行います。

例えばファイルの open命令

 open("PYTHON/@SHOHIN")

には装置記述やキー・フィールドなどの
宣言が何もありませんが良く考えれば内部でファイルをオープンすれば
それがキーつきのファイルなのか表示装置ファイルなのかはオープンしてみれば
わかる
ことです。
それなのにRPGでは重ねて毎度、索引ファイルとか表示装置ファイルであるとか
宣言していたのです。
AS400エンジンに任せれば装置の種類や使用方法の宣言も一切必要ありません。

■ 機能キーの処理さえも省略しています

IBM iでは F3=終了やF12=前画面はSAA規格として統一されていたはずです。
統一されていていつも同じであるはずなのに
毎度、記述していました。
これも無駄な記述です。AS400エンジンを使うとこれらのいつもの機能キーも
AS400が代わりに行います。だから記述の必要はないのです。
もちろん必要な画面やエラー・メッセージさえもAS400エンジンが行います。

ファイルのCLOSE命令もないことに気づかれましたか?
終了時にはオープンしていたファイルはすべて自動的にクローズされますので
CLOSE命令も書く必要がないのです。

■ RPG の1/10以下のステップで開発できます。

_

このように RPGなら 約380ステップ数のプログラムが
Pythonならわずか 10ステップくらいで書けてしまいます。
しかもコンパイルも要りません。
このようにしてみると高い生産性と言われていたRPGでも
いかに多くの無駄があったことがよくわかります。

■ 次世代はPythonで

Pythonは簡単だと聞いていたけどこんなに簡単になるとは
思われなかったでしょう。
だからPythonをお奨めしているのです。
今、IT業界で最も人気の高い言語はJavaを抜いてPythonです。
_

IBM のWeb公開されている Knowledge Center(= IBM マニュアル) には
次のように書かれています。


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


IBM による Pythonの紹介はこちらでご覧になれます。

■ Web開発もPythonで

_

本格的なWeb開発を志向される場合も
Web開発は Python もお得意です。
Apache HTTPサーバーや Tomcatを準備する必要もありません。
Pythonなら起動するだけでWeb表示できます。

■ Pythonインストーラは㈱オフィスクアトロだけです

こんなに便利なPythonをIBMも早くから注目していて OS Ver7.1 でPython をプレインストールしましたがPython の専用インストーラ(YUM)が必要になることで Ver7.4を最後にしてオープン・ソース・プジェクトも終了してしまいました。
_

Ver7.5 では Pythonのプレインストールは無くなりました。
しかしそれまで有償であったIBM iのインストーラである System Managerは2024年3月で販売を終了してVer7.5ではSystem Managerを無償公開しました。
㈱オフィスクアトロではこの流れを受けてOS Ver7.1 でIBM のSystem Managerと同じインストーラをAPIを駆使して同じSystem Maanagerを開発し OS Ver7.5 にこれまでのようにPython を Ver7.5 にも GO LICPGM に導入することに成功しています。
従いましてVer7.5~も㈱オフィスクアトロ製品でPythonをこれまでどおりにインストールして頂くことができます。

■ Python Framework をお待ちください

㈱オフィスクアトロではこのように次世代言語 Python の
Enterprise Framework を開発中です。

・Python だけで5250アプリもWeb開発のどちらも開発することが
できます。

・オープン系へ移行を考えていたお客さまも
IBM iでPythonが使えるならIBM iのほうが
開発効率は良くなります。

・i5/OS Ver7.5~のPythonインストーラを提供できるのは
㈱オフィスクアトロだけです。
( IBM は Ver7.4を最後にPythonのプレインストールを
終了しました。Ver7.5~で GO LICPGM にPythonを
インストールできるのは㈱オフィスクアトロの
System Managerだけです。)

・日本語環境を正しく動作できるのも㈱オフィスクアトロ
だけです。
Web表示ではIBM 提供の ibm_db では正しい日本語表示ができません。
これを補正しているのは㈱オフィクアトロのFramework だけです。

・Pythonで IBM iの開発の歴史が変わります。
Python Framework の発表をお待ちください。

― 新しい技術はいつもオフィスクアトロから ―