RPG

545. AIによるRPGソースの生成

DSPFのAI生成に比べるとRPGソースの生成はAIにとっては
簡単なようである。
RPGを生成するには次のような方法を選択することができる。

①データ・ベースを指定して印刷プログラムを作成させる

最初にやったのはこの方法でデータ・ベースのDDSソースだけ
示してこれを印刷するRPGを作成してみてくれというもので
なかなかの出来栄えであった。
始めは出力の桁位置が欠けていたりしたが注意すれば
直してくれた。
 
 

     FSHOHIN    IF   E           K DISK
     FQSYSPRT   O    F     132        PRINTER OFLIND(*INOF)

     C           *INLR    SETON

     C                     EXSR      HDR

     C                     READ      SHOHIN
     C           *IN90     IFEQ      *ON
     C                     GOTO      END
     C                     ENDIF

LOOP C           *IN90     DOWEQ     *OFF

     C                     EXSR      DTL
     C                     READ      SHOHIN
     C                     ENDDO

END  C                     SETON                     LR

     *------------------------------------------------
     *  見出し印字
     *------------------------------------------------
HDR  C                     EXCEPT    HDR1
     C                     EXCEPT    HDR2
     C                     EXSR      NEWPG
     C                     RETRN

     *------------------------------------------------
     *  明細印字
     *------------------------------------------------
DTL  C                     EXCEPT    DTL1
     C                     RETRN

     *------------------------------------------------
     *  改ページ処理
     *------------------------------------------------
NEWPGC           *INOF    IFEQ      *ON
     C                     EXCEPT    HDR1
     C                     EXCEPT    HDR2
     C                     ENDIF
     C                     RETRN

     *------------------------------------------------
     *  O-Spec(印字フォーマット)
     *  ・桁位置は「終わりの位置」
     *  ・行送り指定あり
     *  ・行末 I は付けない(あなたの流儀)
     *------------------------------------------------

     OQSYSPRT   E  2       HDR1
     O                       70 '商品マスター一覧表'

     OQSYSPRT   E  1       HDR2
     O                       10 '商品コード'
     O                       38 '商品名'
     O                       51 '単価'
     O                       63 '品種コード'

     OQSYSPRT   E  1       DTL1
     O                       10 SHCODE
     O                       38 SHNAME
     O                       51 SHTANK        J
     O                       63 SHSCOD

②DSPFソースの生成直後にAIの提案によって生成する方法

先に紹介したDSPFソースを生成した直後にAIから
「RPGソースも生成できますよ」という提案が出るときがある。
これに呼応してRPGソースを生成させることもできるが
多くは

・シンプルRPGソースが生成されるが実用的には
不十分でエラーのときの考慮がほとんどされていない。

ということで実用レベルとは言えない。

③社内の既存のRPGソースを模範のテンプレートとして示す

この方法がやはり一番妥当性がありAIの得意とするところで
ファイル名やフィールド名、作成年月日に作成時刻まで
ちゃんと更新してくれる。

この方法であれば読者の会社で長年使ってきた独自の書き方が
あってもAIはそれを踏襲して違和感のないこれまでどおりに
社内で使ったいたようなRPGソースを生成してくれるはずである。
ILE-RPGでなくてもRPG IIIであっても良い。

ところがここで問題が発生した。

■ サンプル・ソースをAIに張り付けられない場合がある

(1) Copilotの場合

Copilotにクリップ・ボードからCopliotの会話に張り付けられる文字のバイト数は約1万字までの制限が
あってちょっとしかRPGソースは簡単に1万バイトを超えるので
Copilotに伝達することができない。
 これに対処するためにCopilotは「次に続く」とメッセージを
入れて複数回の貼り付けを行って最後に「以上」と示せばよいと
提案してくれたが相当な面倒な作業になる。
さらに張り付ける量が多いと再ログインを要求されることもある。
これでは実用的な処理はできない。
RPGソースがAIによって生成された場合もSEUに繰り返し貼り付けるのは
骨が折れる。今の時代の操作とは言えない。
CopilotによるRPGソースはできないものとあきらめた。

(2)ChatGPTの場合

ChatGPTの場合は張り付け文字の制限は大きくてほとんどの
RPGソースの貼り付けは可能なように見えるが
やはり膨大なRPGソースを参照できるわけではないし
コピー&ペースト作業はよほどの場合でないと
手軽にRPGソースを生成できるとは言い難い。
ソースを張り付けるのは手動ではできないので
何らかのプログラムを開発する必要がある。
後でわかったことであるがChatGPTの場合は
API KEYの利用はほぼ有償となってしまっているので
プログラムによる自動処理にはあまり適していない。

■ クラウドAIの制限

このようにクラウドAIではDSPF/RPGソースを生成する能力はあると言っても
コピー&ペーストを繰り返す操作は今の時代ではお世辞にも快適とは言えないし
スマートではない。

ではもう少し実用的なAIによるIBMソースの生成の方法を考えてみよう。