この文書は、Forguncy v10で企業内向け業務アプリケーションを開発する際の開発者ガイド作成計画です。特に、IBM DB2とPostgreSQLの接続方式の違いを前提に、開発標準・設計方針・実装ルールへ落とし込むことを目的とします。
Forguncy v10 開発者ガイド
― DB2参照・PostgreSQL更新を前提とした業務アプリ開発標準 ―
このガイドは、Forguncy v10で企業内向け業務アプリケーションを開発する際に、開発者ごとの実装方式のばらつきを防ぎ、誰が作っても同じ構造・同じ判断基準で開発できるようにするための標準である。
特に本ガイドでは、次のデータベース構成を前提条件として明示する。
| データベース | 位置づけ | Forguncyからの接続方針 |
|---|---|---|
| IBM DB2 | 既存基幹・参照系DB | 原則、Forguncyから直接接続しない。C# Web API経由で参照する |
| PostgreSQL | Forguncyアプリ用DB・更新系DB | Forguncyの外部DB/リンクテーブルとしてネイティブ接続する |
この開発者ガイドでは、データアクセス方式を以下のように統一する。
DB2 :参照専用。C# Web API経由でアクセスする。
PostgreSQL:Forguncyアプリの業務データ保存先として利用する。
Forguncy :画面、入力、検索、ワークフロー、PostgreSQL更新、API呼び出しを担当する。
Forguncy開発では、画面から直接すべてのDBを操作するのではなく、DBの役割に応じてアクセス方式を分ける。
| データ種別 | 標準方式 |
|---|---|
| DB2の基幹データ参照 | C# Web API経由で取得 |
| DB2との突合・大量検索 | C# Web APIまたはサーバー側バッチで処理 |
| Forguncyアプリ内の登録・更新データ | PostgreSQLに保存 |
| 画面検索・一覧表示 | PostgreSQLを主対象とし、DB2参照が必要な場合はAPIで取得 |
| 一時取込データ | PostgreSQLのワークテーブルに保存 |
| 処理履歴・監査ログ | PostgreSQLまたは専用ログ基盤に保存 |
| 帳票出力履歴 | PostgreSQLに保存 |
Forguncy開発を属人化させず、誰が作っても同じ方式で開発できるようにする。
利用者
↓
Forguncy画面
↓
PostgreSQL
↓
必要に応じて C# Web API
↓
DB2
| DB | 用途 | 更新可否 | 接続方式 |
|---|---|---|---|
| DB2 | 既存基幹データ参照 | 原則更新不可 | C# Web API経由 |
| PostgreSQL | Forguncyアプリ用データ | 更新可 | Forguncy外部DB接続 |
| Forguncy内部DB | 小規模・設定系のみ | 制限付き | 原則多用しない |
Forguncyは、画面・セル・テーブル・リストビュー・コマンドを組み合わせて業務アプリを作る。ただし、本システムではDB2とPostgreSQLの役割が異なるため、データアクセス方式を必ず分ける。
| VBAでの考え方 | Forguncy標準方式 |
|---|---|
| VBAからDB2へ直接SQL実行 | C# Web API経由でDB2参照 |
| VBAでDB2抽出後にExcel上で加工 | APIまたはPostgreSQLワークテーブルで加工 |
| Excelシートに一時データを保持 | PostgreSQLワークテーブルに保持 |
| VBAでCSVを読み込み配列処理 | PostgreSQL取込テーブルへロードして処理 |
| VBAで突合処理 | PostgreSQLまたはAPI側で突合 |
| VBAで帳票作成 | Forguncy帳票、Excelテンプレート、またはサーバー側出力 |
| VBAでエラーをMsgBox表示 | 標準エラーメッセージ+エラーログ登録 |
| VBAでユーザー判定 | Forguncy認証・権限+API側認可チェック |
標準方式:DB2へのアクセスは、原則としてC# Web API経由とする。
Forguncy
↓ HTTPリクエスト
C# Web API
↓ ODBCまたはDB2ドライバ
DB2
以下の場合のみ、DB2へのODBC直接接続を検討してよい。
標準方式:PostgreSQLは、Forguncyの外部データベースとしてネイティブ接続し、アプリケーション用の業務データ保存先として使用する。
Forguncy
↓ 外部DB接続
PostgreSQL
目的:参考サイトにあるVBA処理一覧を、Forguncy開発者ガイドの材料として分類する。
入力情報:
出力:
| VBA処理 | Forguncyでの実装候補 | DB2/API/PostgreSQL区分 | 標準化が必要な理由 | 注意点 |
|---|---|---|---|---|
| 各処理 | 候補方式 | 分類 | 理由 | 注意点 |
目的:Step 1で整理した処理ごとに、Forguncy v10での実装方式を決める。
出力:
| 処理分類 | 標準方式 | 例外方式 | 非推奨方式 | 禁止方式 | 理由 |
|---|---|---|---|---|---|
| 各処理分類 | 原則方式 | 条件付き方式 | 避ける方式 | 禁止方式 | 採用理由 |
目的:Step 2で決めた標準方式を、開発者が守るルールとして再構成する。
1. ルール名
2. 標準方式
3. 例外方式
4. 禁止事項
5. 理由
6. NG例
7. レビュー観点
8. サンプル
目的:Step 1〜Step 3の成果物を統合し、開発者ガイドとして完成させる。
出力:
あなたは、Forguncy v10、Excel VBA業務アプリ移行、DB2、PostgreSQL、C# Web API設計に詳しいシステム設計者です。
## 目的
参考サイトにある「VBAでの処理」と「Forguncyでの対応」を、Forguncy開発者ガイドの材料として分類してください。
単なる要約ではなく、Forguncy v10での開発標準に変換する前段階として整理してください。
## 前提
- 対象は企業内向け業務アプリケーションです。
- 現行はExcel VBAで作られた業務効率化アプリです。
- 移行先はForguncy v10です。
- 使用するDBはIBM DB2とPostgreSQLです。
- DB2はForguncyからネイティブ接続できないため、原則としてC# Web API経由で参照します。
- PostgreSQLはForguncyからネイティブ接続できるため、アプリ用DBとして利用します。
- DB2は原則参照専用です。
- PostgreSQLは登録・更新・履歴・ワーク・ログの保存先です。
## 入力情報
以下の参考サイトの内容をもとにしてください。
参考URL:
https://iloveopencar.sakura.ne.jp/plist/vbalist.html
## 調査・整理してほしい内容
参考サイトのVBA処理を、以下の観点で分類してください。
1. 画面操作系
2. 入力チェック系
3. 条件分岐・繰り返し
4. DBアクセス系
5. DB2参照系
6. PostgreSQL更新系
7. CSV・固定長ファイル入出力
8. Excel帳票・帳票出力
9. 一時データ・ワークデータ管理
10. 権限・認証
11. エラー処理・ログ
12. 大量データ処理
13. 外部API・外部連携
14. 保守性に関わる処理
## 出力形式
以下の表で出力してください。
| No | VBAでの処理 | VBA的な考え方 | Forguncyでの実装候補 | DB2/API/PostgreSQL区分 | 標準化が必要な理由 | 注意点 |
|---|---|---|---|---|---|---|
その後、以下も出力してください。
## Forguncy開発標準化で重要になる論点
- 標準方式を決めるべき処理
- DB2/API/PostgreSQLの切り分けが必要な処理
- 大量データに注意すべき処理
- 権限・監査が必要な処理
- VBA的な作り方を禁止すべき処理
## 注意点
- 参考サイトの内容を単に要約しないでください。
- Forguncy v10の開発標準に変換するための材料として整理してください。
- DB2は直接接続ではなく、C# Web API経由を原則としてください。
- PostgreSQLはForguncyアプリの更新系DBとして扱ってください。
- 開発者が迷わないガイドを作るための観点で整理してください。
## 次のステップで使うために残すべき情報
最後に、Step 2で標準方式・例外方式・非推奨方式を決めるために必要な論点を箇条書きで整理してください。
あなたは、Forguncy v10に精通した開発標準化コンサルタントです。
## 目的
Step 1で整理したVBA処理分類をもとに、Forguncy v10での実装方式を「標準方式」「例外方式」「非推奨方式」「禁止方式」に分類してください。
## 前提
- DB2はForguncyからネイティブ接続できないため、原則としてC# Web API経由で参照します。
- PostgreSQLはForguncyからネイティブ接続できるため、外部DB/リンクテーブルとして標準利用します。
- DB2は原則参照専用です。
- PostgreSQLは登録・更新・履歴・ワーク・ログの保存先です。
- 大量データ処理はForguncy画面上で同期実行しません。
- 権限・監査・ログを重視します。
## 入力情報
以下にStep 1の結果を貼り付けます。
【ここにStep 1の出力を貼り付ける】
## 調査・整理してほしい内容
各処理について、次の区分で分類してください。
1. 標準方式
2. 例外方式
3. 非推奨方式
4. 禁止方式
特に以下を明確にしてください。
- Forguncy標準機能で実装する処理
- PostgreSQLで実装する処理
- C# Web APIで実装する処理
- DB2を参照する処理
- 画面上で実装してよい処理
- 画面上で実装してはいけない処理
- 非同期処理にすべき処理
- サーバー側処理にすべき処理
## 出力形式
以下の表で出力してください。
| No | 処理分類 | 標準方式 | 例外方式 | 非推奨方式 | 禁止方式 | 標準方式にする理由 | 判断基準 |
|---|---|---|---|---|---|---|---|
その後、以下も出力してください。
## DB2アクセス標準
## PostgreSQLアクセス標準
## API化すべき処理一覧
## Forguncy画面で実装してよい処理一覧
## Forguncy画面で実装してはいけない処理一覧
## 注意点
- 「場合によります」で終わらせないでください。
- 原則として採用する方式を決めてください。
- DB2への直接更新は禁止としてください。
- DB2への直接ODBC接続は原則非推奨としてください。
- PostgreSQLは更新系DBとして標準採用してください。
- 初心者でも判断できるようにしてください。
## 次のステップで使うために残すべき情報
最後に、Step 3で開発ルール・命名規則・レビュー観点に変換すべき項目を整理してください。
あなたは、Forguncy v10の開発者ガイドを作成する開発標準化コンサルタントです。
## 目的
Step 2で決めた標準方式・例外方式・非推奨方式・禁止方式を、開発者が守る具体的なルールに変換してください。
## 前提
- DB2はC# Web API経由で参照します。
- PostgreSQLはForguncyからネイティブ接続し、アプリ用DBとして利用します。
- DB2直接更新は禁止です。
- DB2直接ODBC接続は原則非推奨です。
- PostgreSQLには業務データ、履歴、ワーク、ログを保存します。
- Forguncy画面には複雑なDBロジックを埋め込みません。
## 入力情報
以下にStep 2の結果を貼り付けます。
【ここにStep 2の出力を貼り付ける】
## 調査・整理してほしい内容
以下の章に分けて、開発ルールを作成してください。
1. 画面設計ルール
2. セル設計ルール
3. リストビュー設計ルール
4. コマンド設計ルール
5. DB2参照API呼び出しルール
6. PostgreSQL更新ルール
7. CSV・Excel・帳票出力ルール
8. 入力チェックルール
9. 条件分岐・繰り返しルール
10. 権限・認証ルール
11. エラー処理・ログルール
12. 命名規則
13. 禁止事項
14. レビュー観点
15. サンプル実装パターン
## 出力形式
各章を次の形式で出力してください。
# 章名
## この章で決めること
## 標準方式
## 例外方式
## 非推奨方式
## 禁止事項
## 理由
## NG例
## 命名規則または設定ルール
## レビュー観点
## サンプル実装パターン
## 注意点
- ルールは開発者がそのまま使える表現にしてください。
- 「なるべく」「できれば」ではなく、「原則」「禁止」「例外」として書いてください。
- DB2とPostgreSQLの扱いを必ず分けてください。
- DB2アクセスはAPI経由を標準としてください。
- PostgreSQL更新はForguncy外部DB接続を標準としてください。
- レビュー時に確認できる粒度で書いてください。
## 次のステップで使うために残すべき情報
最後に、Step 4で最終ガイド本文に統合すべき重要ルールを一覧化してください。
あなたは、Forguncy v10、DB2、PostgreSQL、C# Web API、企業内向け業務アプリ開発に精通したシステム設計者です。
## 目的
Step 1〜Step 3の結果を統合し、開発者が実務で使える「Forguncy v10 開発者ガイド」を作成してください。
## 前提
- 対象は企業内向け業務アプリケーションです。
- 現行Excel VBAアプリをForguncy v10へ移行します。
- DB2は既存基幹DBであり、原則参照専用です。
- DB2はForguncyから直接接続せず、C# Web API経由で参照します。
- PostgreSQLはForguncyアプリ用DBとして利用します。
- PostgreSQLには登録・更新・履歴・ワーク・ログを保存します。
- 大量データ処理は画面上で同期実行しません。
- 権限・監査・ログ・保守性を重視します。
## 入力情報
以下にStep 1〜Step 3の結果を貼り付けます。
【ここにStep 1の結果を貼り付ける】
【ここにStep 2の結果を貼り付ける】
【ここにStep 3の結果を貼り付ける】
## 作成してほしい成果物
以下の章立てで、最終的な開発者ガイドを作成してください。
1. はじめに
2. 前提アーキテクチャ
3. 開発思想・基本方針
4. DB2/PostgreSQLデータアクセス標準
5. 画面設計ルール
6. セル・テーブル・リストビュー設計ルール
7. コマンド設計ルール
8. DB2参照API呼び出しルール
9. PostgreSQL更新ルール
10. 入力チェック・条件分岐・繰り返しルール
11. CSV・Excel・帳票出力ルール
12. 権限・認証ルール
13. エラー処理・ログ設計ルール
14. 命名規則
15. VBAからForguncyへの変換方針
16. 禁止事項・アンチパターン
17. レビュー観点
18. サンプル実装パターン
19. チェックリスト
20. 付録:標準方式・例外方式・非推奨方式一覧
## 出力形式
Markdown形式で出力してください。
各章は、原則として以下を含めてください。
- この章で決めること
- 標準方式
- 例外方式
- 禁止事項
- 理由
- NG例
- レビュー観点
- サンプル
## 注意点
- 完成版ガイドとして読める文章にしてください。
- 単なる表だけにしないでください。
- 開発者が迷わないように、原則方式を明確にしてください。
- 「場合による」で終わらせないでください。
- DB2とPostgreSQLのアクセス方式を混同しないでください。
- DB2直接更新は禁止としてください。
- DB2直接ODBC接続は原則非推奨としてください。
- PostgreSQLはForguncyアプリの更新系DBとして扱ってください。
- 初心者にも分かるように説明してください。
- チームレビューに使える内容にしてください。
| 優先度 | 判断基準 | 採用方針 |
|---|---|---|
| 1 | セキュリティ上安全か | DB2直接接続・直接更新は避ける |
| 2 | 保守しやすいか | SQLや処理を画面に分散させない |
| 3 | 属人化しにくいか | API、PostgreSQL、コマンドに役割分担する |
| 4 | レビューしやすいか | 処理名、API名、テーブル名を明確にする |
| 5 | 画面変更に強いか | 画面固有ロジックを減らす |
| 6 | データ構造変更に強いか | DB2仕様変更はAPIで吸収する |
| 7 | 性能問題が起きにくいか | 大量データはAPI・DB・非同期で処理する |
| 8 | 権限管理しやすいか | Forguncy側とAPI側で二重に確認する |
| 9 | 初心者でも理解しやすいか | 標準パターン化する |
| 10 | バージョンアップに強いか | Forguncy標準機能とAPI境界を使う |
| 判断項目 | 標準判断 |
|---|---|
| DB2を参照するだけか | API経由 |
| DB2を更新する必要があるか | 原則禁止。別システム側で対応 |
| 少量マスタ参照か | 原則API。例外的にODBC検討可 |
| 大量検索か | API側で件数制御 |
| 突合処理か | PostgreSQLワーク+API |
| SQLが複雑か | API側に集約 |
| 権限判定が必要か | API側で必須 |
| 監査ログが必要か | API側で必須 |
| 処理時間が長いか | 非同期処理 |
| 判断項目 | 標準判断 |
|---|---|
| Forguncyで登録・更新するデータか | PostgreSQL |
| 履歴を残す必要があるか | PostgreSQL |
| ワークデータか | PostgreSQL |
| CSV取込データか | PostgreSQL |
| 帳票出力履歴か | PostgreSQL |
| API呼び出しログか | PostgreSQL |
| 一時キャッシュか | PostgreSQL。ただし有効期限を持たせる |
| 他アプリと共有するか | PostgreSQL設計時に共通テーブル化を検討 |
| 処理 | 判断 |
|---|---|
| 入力チェック | Forguncyで実装 |
| 画面表示制御 | Forguncyで実装 |
| 簡単な条件分岐 | Forguncyで実装 |
| PostgreSQLへの登録更新 | Forguncyで実装 |
| DB2検索 | API呼び出し |
| DB2複雑SQL | API側 |
| 大量突合 | PostgreSQLまたはAPI |
| 大量帳票出力 | 非同期・サーバー側 |
| 権限判定 | Forguncy+API |
| ログ登録 | PostgreSQL |
| 区分 | 判断基準 |
|---|---|
| 標準方式 | ほとんどの案件で採用する方式。初心者でも扱いやすく、保守しやすい |
| 例外方式 | 条件を満たした場合だけ認める方式。承認が必要 |
| 非推奨方式 | 技術的には可能だが、保守性・安全性・レビュー性に問題がある方式 |
| 禁止方式 | セキュリティ、監査、データ破壊、性能問題のリスクが高い方式 |
次に生成AIへ入力するべきプロンプトは、Step 1のプロンプトである。参考URLの内容を単に要約せず、VBA処理をForguncy v10、DB2 API連携、PostgreSQL更新系DBという前提で分類する。
本プロジェクトでは、DB2はForguncyから直接操作する対象ではなく、C# Web APIを介して参照する既存データソースとする。PostgreSQLは、Forguncyアプリが登録・更新・履歴・ワーク・ログを管理するための標準データベースとする。
この方針を最初に固定しておけば、Forguncy開発者が「DB2に直接つなぐのか」「PostgreSQLに持つのか」「APIにするのか」で迷わなくなる。