Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mentor 生成アプリ の構造解析

Avatar for Junji Watanabe Junji Watanabe
March 27, 2025
100

Mentor 生成アプリ の構造解析

2025/03/27 OSUG Tokyo発表のスライド。
ODCのAI機能であるMentorに含まれる生成AI機能の使い方と、生成されたAppの構造解説。

Avatar for Junji Watanabe

Junji Watanabe

March 27, 2025
Tweet

Transcript

  1. Mentor 生成アプリ の構造解析 OutSystems東京開発者コミュニティ 2025/03/27 OutSystems MVP 渡部 潤司 :

    https://qiita.com/jyunji_watanabe : https://twitter.com/JyunjiW : https://www.linkedin.com/in/watanabejyunji/ Qiita X LinkedIn
  2. ODCでのAI利用をざっくり整理すると 1. Appそのもの生成する ◦ Mentorの生成AI機能 2. 開発をAIで支援する ◦ Mentorの静的解析や、コード補完機能 ◦

    生成AIでODC周辺開発(CSS・JavaScript・C#)を行う、調査を支援してもらう ◦ 生成AIでテストケース・テストデータ作成をしてもらう 3. 外部のAIサービスに接続して利用する ◦ MentorのAI Agent Builder ◦ その他様々なベンダーが提供している外部APIにアクセスする 本日のテーマ
  3. 2-1. プロンプトを準備 • プロンプトとは、生成AIに対してやって欲しいこと(指示)や質問のこと • プロンプトは500文字までで、試したところ、日本語も使用可能 • 動作確認が目的で、自分で考えるのが面倒なら、Gemini等の一般の生成 AIに作ってもらうとよい •

    プロンプト生成用のプロンプト例 ◦ 「標準的な日本企業向けの、在庫管理システムの仕様案を作成してください 仕様案は、3-5行程度の概要と、主要なデータエンティティ及び主要ペルソナのリス トで構成してください。」
  4. 2-1. プロンプトを準備(Prompt best practices) • プロンプト入力画面のポップアップによると、以下のようなプロンプトが良 いらしい • 抽象度の高い概念的な記述 ◦

    Appの目的、主要なデータとその属性、主要なロールと権限 ◦ 前スライドのプロンプト例はこの推奨に従って作った • 画像や図は入力しても分析対象外 • モバイルAppは作れない • 複雑なユースケースやロジックには対応できない
  5. 2-1. プロンプトを準備(例) ◦概要 本システムは、日本企業における多様な在庫管理ニーズに対応し、効率的な在庫管理と業務プロセス改善を支援することを目的とする。 入庫・出庫・在庫照会・棚卸といった基本機能に加え、発注管理・購買管理・製造管理との連携を可能とする。 ◦主要データエンティティ * 商品: 商品コード、商品名、規格、JANコード、保管場所、在庫数、発注点、安全在庫数など *

    倉庫: 倉庫コード、倉庫名、所在地、担当者など * 入庫: 入庫伝票番号、入庫日、入荷先、商品、数量など * 出庫: 出庫伝票番号、出庫日、出荷先、商品、数量など * 発注: 発注伝票番号、発注日、発注先、商品、数量など * 棚卸: 棚卸日、棚卸担当者、商品、数量(実在庫数)、差異数など ◦主要ペルソナ * 倉庫担当者: 入庫・出庫作業の記録、在庫照会、棚卸作業など * 購買担当者: 発注処理、発注先管理、納期管理など * 経理担当者: 在庫金額管理、会計システム連携など * 経営者: 在庫状況の把握、経営判断材料としての活用など
  6. 3-4. Screen・Block (2)業務用画面群(全体像) • 各Entity毎に、一覧、詳細、編集の三画面が生成される ◦ 一覧→詳細→編集と画面遷移する ◦ 詳細と編集を分けるのにも合理性はあるが、更新時に権限チェックすればいいだ け、AO取りすぎでは

    ▪ Roleの組み合わせが異なる処理は別の画面でおこなうのが、ベストプラクテ ィス • Dashboard:App内の複数Entityを一覧できる画面 • ImportData:App内の各Entityをエクスポート・インポートできる画 面 要するにCRUDがで きる画面
  7. 3-6. Client Action • DoLogin: ログイン処理。テンプレートにある ものと同じ • ShowConfirmationMessage: JavaScriptのconfirmをラップしたもの。イ

    ンポート処理で使われる • Authorizationsフォルダ: 特定のEntityに 対し特定の操作を行う権限があるか判定す るAction
  8. 3-7. Server Action • Authorizationsフォルダ: 特定のEntityに対し特定の操作を行う権限があるか判定する Action • ImportData向けのエクスポート/インポート用Action群 •

    Entityに対する追加・更新(<Entity名>CreateOrUpdate)、削除(<Entity名 >Delete)処理 ◦ AuthorizationsにあるActionを読んで権限をチェックし、権限があれば、対応するEntity Actionを呼ぶだけの シンプルなもの