watsonx.aiの生成AIを使ってIBM i アプリの保守が可能か（ほんの少し）検証してみる ⑦命令、試行の入力文を業務記述を目指してみる

検証⑥の続きです。
これまで①～⑥では、下記のように修正する変数名を明示指定して修正をさせていたました。この意味でストリングサーチして置換する、という作業をさせていたと理解しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/6d44da2b-0f4a-3bb5-889d-87e861d80b9c.png)

今回は、RPG(ILE RPG、RPGⅢ）の修正条件をより業務寄りで記述して試してみたいと思います。

## テスト1 : '消費税率を修正する' のように指定してみる
今回は以下のように指定してみました。
***命令：RPGのソースを読み込んで指示通りにプログラムを修正する。***
***例：以下のRPGから消費税計算を探し出し、消費税を1.05に修正する。***
***消費税は変数=KEISUで与えられている。***

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/365c3eeb-fb3d-a47a-9bda-6d5538570ec6.png)

### テスト結果
***下記のように消費税率の変数として指定したKEISUを探し出し正しく修正されました。***
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/206968d3-13df-eb9b-43f1-984cc910b83f.png)

## テスト2 : 消費税の変数名を2つ指定してみる。
下記のように変更したい変数を2つ指定してみました。うち1つ（ZEI）は実際にはプログラムソース上で使われていないものです。（棚卸ツールなどで消費税の計算フィールド名が全てわかっている、という状況を想定したケース）
***例に以下を指定***
***消費税は変数=KEISU、または変数=ZEI で与えられている。***
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/b889d98d-0f2f-f8c4-dde4-c34a4f62f86b.png)

***結果は省略しますが、テスト1と同様に正しく修正されました。***

## テスト3 : テスト2の例を変更してみる。
下記のように例で指示した変数名2つの順番を入れ替えてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/d483b1de-0c8b-7b87-4f22-e2d5189ff24e.png)

すると、、変数名もKEISUからZEIに置換されてしまいました・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/f57d895f-2c0e-8dca-9bc0-11a4bb500648.png)
指示文が適切でないようです・・

## テスト4 ： テスト3の変数名2つの例への入力値を修正
guriguriさんコメントのリンクと下記の記事を参考に修正してみました。
https://qiita.com/yanagih/items/3d1b081f46799072df80

下記のように入力と出力の例に入力してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/193c549a-15e8-3d0d-ecff-5dcb7fe13862.png)
※ZEIとKEISUを1行目・2行目逆にしても同じ結果になりました。
***結果、正常にKEISUが修正されました!***
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/43d19b18-80d7-0a06-bb33-a1693065dd79.png)

他のパターンもいろいろ試してみたいと思います。

## 使用したRPGソース（RPGⅢ）当シリーズ⑤で使用したソースと同一です。
     H            Y
     F* IPH110 *
     FIPH110S CF  E                    WORKSTN
     FTOKMSL01IF  E           K        DISK
     C                     DO   *HIVAL
     C*ＰＡＮＥＬ０１の表示
     C                     EXFMTPANEL01
     C           *IN03     IFEQ '1'
     C                     SETON                     LR
     C                     RETRN
     C                     END
     C*得意先マスターの読み取り
     C           S1TOKB    CHAINTOKMSL01             30
     C           *IN30     IFEQ '0'
     C*画面フィールドセット
     C                     MOVELTKNAKJ    S2NAKJ
     C                     MOVELTKADR1    S2ADR1
     C                     MOVELTKADR2    S2ADR2
     C                     MOVELTKTIKU    S2TIKU
     C                     MOVELTKPOST    S2POST
     C                     MOVELTKGEND    S2GEND
     C                     MOVELTKUZAN    S2UZAN
     C*係数計算
     C           KEISU     MULT 1.10      KEISU
     C           TKGEND    MULT KEISU     TKGEND
     C*
     C*差額計算
     C           TKGEND    SUB  TKUZAN    S2GAKU
     C*
     C*ＰＡＮＥＬ０２の表示
     C                     SETOF                     30
     C                     WRITEPANEL01
     C                     EXFMTPANEL02
     C           *IN03     IFEQ '1'
     C                     SETON                     LR
     C                     RETRN
     C                     ENDIF
     C*
     C                     ENDIF
     C                     ENDDO