はじめに
生成AIを使って業務アプリや自動化ツールをどの程度自動で作れるのかの検証に伴い、簡単なバッチファイルの作成とi-Reporterの帳票定義作成を試しました。
そこで今回はさらに難易度を上げて、i-Reporterの連携プログラムを作成できるかどうかを検証してみます。
検証内容
3回目のテーマは「AIでi-ReporterのGatewayを使用して連携プログラムを作れるのか」です。
内容は、i-ReporterのDBから元帳票定義IDと帳票定義IDを取得するプログラムを作成できるのかを検証することにしました。
尚、基となる帳票定義は手動で作成し、プログラムのみを生成AIで作成することとします。
開発環境
OS:Windows 11 Pro(64bit)
使用した生成AI:Microsoft 365 Copilot
ConMasManager:8.2.26020
ConMasDesigner:8.2.26030
i-Reporter for Windows:6.2.26020
Gateway:2.3.240400
帳票定義

元帳票定義IDが「11472」、帳票定義IDが「11476」であるため、プログラム実行ボタンを押下した際に、それぞれのIDが対応する項目へ自動入力されることを想定しています。
生成AIへの指示(jsonファイル)
以下の条件で、添付したjsonファイルと同じ構造のファイルを作成してしてください
————————————————————————–
①jsonファイルで作成してください
②ファイル名をgateway_ai_testにしてください
③datasourceの値はscriptにしてください
④scriptの値はgateway_ai_test.pyにしてください
⑤改行コードはCRLFにしてください
生成AIへの指示(Pythonファイル)
以下の条件で、添付したPythonファイルがi-Reporter帳票に値を返す構造を参考にファイルを作成してしてください
————————————————————————–
①Pythonファイルで作成してください
②ファイル名をgateway_ai_testにしてください
③i-ReporterのデータベースのVIEW_TESTから、以下の条件でデータを取得してください
■データ取得条件
・データ取得カラム:TOP_ID、TOP_ORG
・データ検索カラム:TOP_NAME
・データ検索条件:i-Reporter_Gateway検証_帳票定義と完全一致するレコードかつ、
TOP_IDの値が最も新しいレコード
④i-Reporterのデータベースは、以下の条件で接続してください
■データベース接続条件
・データベースの種類:PostgreSQL
・サーバー名:xxx.xxx.xxx.xxx
・ポート番号:xxxx
・データベース名:test
・ユーザーID:test_id
・パスワード:test_pass
⑤マッピング情報のパラメーターは、以下の条件で設定してください
■マッピング情報
・item:ai_test
・sheet:1
・cluster:TOP_IDは1、TOP_ORGは0でそれぞれ分けたマッピング情報を作成してください
・type:string
・value:TOP_ID、TOP_ORGでそれぞれ分けたマッピング情報を作成してください
⑥改行コードはCRLFにしてください
入力帳票でGatewayを実行
i-Reporterのデータベース接続情報および、取得データ情報を手で修正し、i-Reporterの入力帳票にて実行します。
【入力帳票】

プログラム実行ボタンを押下するとエラーは発生しませんでしたが、元帳票定義IDと帳票定義IDの入力項目に値は自動入力されませんでした。
メーカー提供のサンプルプログラムが一部含まれているため、Copilotが作成したプログラムは公開できませんが、調査した結果、i-Reporterに正しい値を渡す処理の前に、書き込み先クラスターを指定しないまま値を渡す処理が先行していたことが原因だとわかりました。
最短の対応は不要な処理をコメントアウトですが、今回は生成AIの検証が目的のため、再度CopilotでPythonファイルを作成してみます。
生成AIへの再指示(Pythonファイル)
以下の条件で、添付したPythonファイルがi-Reporter帳票に値を返す構造を参考にファイルを作成してしてください
————————————————————————–
①Pythonファイルで作成してください
②ファイル名をgateway_ai_testにしてください
③i-ReporterのデータベースのVIEW_TESTから、以下の条件でデータを取得してください
■データ取得条件
・データ取得カラム:TOP_ID、TOP_ORG
・データ検索カラム:TOP_NAME
・データ検索条件:i-Reporter_Gateway検証_帳票定義と完全一致するレコードかつ、
TOP_IDの値が最も新しいレコード
④i-Reporterのデータベースは、以下の条件で接続してください
■データベース接続条件
・データベースの種類:PostgreSQL
・サーバー名:xxx.xxx.xxx.xxx
・ポート番号:xxxx
・データベース名:test
・ユーザーID:test_id
・パスワード:test_pass
⑤マッピング情報のパラメーターは、以下の条件で設定してください
■マッピング情報
・item:ai_test
・sheet:1
・cluster:TOP_IDは1、TOP_ORGは0でそれぞれ分けたマッピング情報を作成してください
・type:string
・value:TOP_ID、TOP_ORGでそれぞれ分けたマッピング情報を作成してください
⑥マッピング情報をjson形式に変換する処理は、正常処理と異常処理でそれぞれ1回ずつの記述にしてください
⑦改行コードはCRLFにしてください
入力帳票でGatewayを再実行
i-Reporterのデータベース接続情報および、取得データ情報を手で修正し、i-Reporterの入力帳票にて再実行した結果、処理の記述内容は異なるものの、最初の実行結果と同様に、書き込み先クラスターを指定しないまま値を渡す処理が先行してしまい、元帳票定義IDと帳票定義IDの入力項目に値は自動入力されませんでした。
一方で、不要な処理をコメントアウトした結果、想定通り両入力項目に値は自動入力されることを確認しました。
【入力帳票(不要な処理をコメントアウト)】

まとめ
生成AIにひな形となるプログラムを添付や学習させることで、ある程度大まかに動作するプログラムを作成することができることがわかりました。
一方で、想定通りに動作しなかった場合の原因切り分けや、仕様に合わせた追加修正などを行う場合には、やはり一定の知識が必要になります。
また、ゼロから生成AIに作成させたプログラムは、後から内容を把握するまでに時間を要するケースも少なくないため、最初から完成形を求めず、段階的に検証と修正をする必要があります。