← LOG

AI2026.02.11

【番外編2】UiPathのXAMLをGemini 3(高速版)で解析してみた——Sonnet 4.5との粒度比較

#uipath#xaml#mermaid#ai#rpa

はじめに

この記事は、Zenn の次の記事の番外編2です。

同じ3つのプロンプト(解析用 → 深掘り用 → Mermaid生成用)を、今度は Gemini 3(高速版) に投げてみた結果をまとめます。

という点を中心に、解析結果のダイジェストと番外編1との比較を書きます。


対象ワークフロー(本編・番外編1と同じ)

対象は次の3つの .xaml です。

役割の概要は番外編1と同様です(config 読み込み → 取得フロー Invoke → 登録フロー Invoke、取得フローは Web スクレイピング+Excel 出力、登録フローは Excel 読み込み+Web へ1行ずつ登録)。


1. 解析用プロンプト → 構造化された表(Gemini 3 の出力)

本編で紹介した「解析用プロンプト」をそのまま Gemini 3 に渡しました。出力はアクティビティ単位で細かく分解されています。

Main.xaml(7ノード)

ユニーク番号処理の内容 (DisplayName)処理の種類 (Activity Type)つながるユニーク番号備考/使用変数
M01Main SequenceSequenceM02変数 dt_config (DataTable) を定義
M02Excel プロセス スコープExcelProcessScopeXM03Excel操作のコンテキストを開始
M03範囲を読み込み (ワークブック)ReadRangeM04読み込み先: config.xlsx / 出力: dt_config
M04顧客データ取得SequenceM05内部でワークフロー呼び出し
M05顧客データ取得フローチャートを呼び出しInvokeWorkflowFileM06呼び出し先: 顧客データ取得フローチャート.xaml / 引数: argument_configdt_config
M06顧客データ登録SequenceM07内部でワークフロー呼び出し
M07顧客データ登録フローチャートを呼び出しInvokeWorkflowFile(End)呼び出し先: 顧客データ登録フローチャート.xaml / 引数: argument_configdt_config

顧客データ取得フローチャート.xaml(15ノード)

ユニーク番号処理の内容 (DisplayName)処理の種類 (Activity Type)つながるユニーク番号備考/使用変数
G01設定ファイルをdicにSequenceG02設定情報をDictionary形式に変換
G02複数代入 (configDict)Multiple AssignG03configDict = argument_config.AsEnumerable().ToDictionary(...)
G03複数代入 (保存先パス)Multiple AssignG04str_inputfileSavepath = configDict("inputFile保存先")
G04営業獲得データを取得SequenceG05WebアプリAからのデータ抽出
G05ブラウザを使用 (WebアプリA)NApplicationCardG06Edgeで営業獲得管理システムを表示
G06クリック '獲得データを表示'NClickG07データの表示ボタンをクリック
G07表データを抽出NExtractDataG08顧客名、獲得日、金額等を抽出。出力: dt_kakutoku
G08営業獲得Excelファイル作成SequenceG09抽出データの加工とファイル出力
G09データ テーブルを構築BuildDataTableG10出力用 dtOutput を定義(オプション有無/品名列を含む)
G10繰り返し (データテーブルの各行)ForEachRowG11dt_kakutoku の各行を処理
G11データ行を追加AddDataRowG12備考を分割して「オプション品名」等を抽出。式: If(CurrentRow("備考").ToString.Contains("なし"), "なし", "あり")
G12複数代入 (ヘッダー除去)Multiple AssignG13dtOutput = dtOutput.AsEnumerable().Skip(1).CopyToDataTable()
G13Excel プロセス スコープExcelProcessScopeXG14ファイル出力準備
G14複数代入 (出力パス生成)Multiple AssignG15excelfullpath = Path.Combine(..., Now.ToString("yyyyMMdd") & "_営業獲得データ_rpa用inputFile.xlsx")
G15範囲に書き込み (ワークブック)WriteRange(End)出力先: excelfullpath / シート: 営業獲得データ

顧客データ登録フローチャート.xaml(14ノード)

ユニーク番号処理の内容 (DisplayName)処理の種類 (Activity Type)つながるユニーク番号備考/使用変数
R01設定ファイルをdicに、登録データ読み込みSequenceR02設定変換と入力ファイルの読み込み
R02複数代入 (configDict / パス)Multiple AssignR03設定Dic化と excelInputFullpath の生成
R03範囲を読み込み (ワークブック)ReadRangeR04excelInputFullpath から dt_Exceldata を取得
R04データ登録SequenceR05WebアプリBへの登録開始
R05ブラウザを使用 (WebアプリB)NApplicationCardR06登録用Webシステムを開く
R06クリック 'データを登録する'NClickR07新規登録画面へ遷移
R07繰り返し (各行の登録)ForEachRowR08dt_Exceldata の全行をループ
R08データ登録を実施SequenceR09入力項目へのセット
R09項目入力 (顧客名/獲得日/金額)NTypeIntoR10CurrentRow の値を入力
R10項目選択 (担当/商品/オプション)NSelectItemR11ドロップダウンから値を選択
R11入力内容の確認と登録SequenceR12登録確定操作
R12クリック '確認'NClickR13確認ボタンを押下
R13クリック '✅ 登録'NClickR14最終登録ボタンを押下
R14クリック 'データを登録する'NClickR07(次行)次のデータの入力画面へ戻る(ループ)

2. 深掘り用プロンプト → 要確認ステップ(Gemini 3 の出力)

同じ「深掘り用プロンプト」を、上記の表に対して投げました。Gemini 3 は表のユニーク番号に合わせて、次の5つを挙げています。

ユニーク番号該当する観点深掘りすべき理由
G02 / R02複雑なVB式・代入DataTable を1行で Dictionary 化しており、設定ファイルに空行や重複キーがあるとエラーになるため。
G07画面要素(セレクター)NExtractData でブラウザ上のテーブルを抽出しており、Webサイトの構造変化に最も影響を受けやすいため。
G11複雑なVB式・分岐備考欄の文字列から If 文と Split 関数で値を判定・抽出しており、イレギュラーな入力値に弱いため。
G14 / R02動的なファイルパス生成実行時の日付(Now)を用いて保存・参照パスを生成しており、日を跨ぐ処理やファイル不在時の挙動確認が必要なため。
R09 / R10画面要素(セレクター)NTypeIntoNSelectItem が多数あり、WebアプリB側のIDが動的な場合、操作に失敗するため。

番外編1(Sonnet 4.5)では「G03」「R04」「R01」「G01」「R05」のようにまとまったブロックで挙がっていましたが、Gemini 3 では G02/G03、R09/R10 のようにより細かいステップ番号で出てきます。実装時に「どのアクティビティを直すか」を特定しやすい印象です。


3. Mermaid 生成用プロンプト → フロー図コード(Gemini 3 の出力)

表をそのまま Mermaid 用プロンプトに渡したところ、以下の graph TD が得られました。Invoke ノードにスタイルを付けてあり、ループ(R14 → R07)も明示されています。

graph TD

    %% Main Workflow
    subgraph Main_Process [Main.xaml]
        M01[Main Sequence] --> M02[Excel プロセス スコープ]
        M02 --> M03[範囲を読み込み config.xlsx]
        M03 --> M04[顧客データ取得 シーケンス]
        M04 --> M05[[顧客データ取得フローチャートを呼び出し]]
        M05 --> M06[顧客データ登録 シーケンス]
        M06 --> M07[[顧客データ登録フローチャートを呼び出し]]
    end

    %% Data Acquisition Workflow
    subgraph Acquisition_Process [顧客データ取得フローチャート.xaml]
        G01[設定ファイルをdicに] --> G02[複数代入 configDict]
        G02 --> G03[複数代入 保存先パス]
        G03 --> G04[営業獲得データを取得]
        G04 --> G05[ブラウザを使用 WebアプリA]
        G05 --> G06[クリック 獲得データを表示]
        G06 --> G07[表データを抽出 dt_kakutoku]
        G07 --> G08[営業獲得Excelファイル作成]
        G08 --> G09[データ テーブルを構築 dtOutput]
        G09 --> G10[繰り返し 各行処理]
        G10 --> G11[データ行を追加 オプション判定含む]
        G11 --> G12[複数代入 ヘッダー除去]
        G12 --> G13[Excel プロセス スコープ]
        G13 --> G14[複数代入 出力パス生成]
        G14 --> G15[範囲に書き込み 営業獲得データ]
    end

    %% Data Registration Workflow
    subgraph Registration_Process [顧客データ登録フローチャート.xaml]
        R01[設定ファイルをdicに、登録データ読み込み] --> R02[複数代入 configDict / パス]
        R02 --> R03[範囲を読み込み dt_Exceldata]
        R03 --> R04[データ登録 シーケンス]
        R04 --> R05[ブラウザを使用 WebアプリB]
        R05 --> R06[クリック データを登録する]
        R06 --> R07[繰り返し 各行の登録]
        R07 --> R08[データ登録を実施]
        R08 --> R09[項目入力 顧客名/獲得日/金額]
        R09 --> R10[項目選択 担当/商品/オプション]
        R10 --> R11[入力内容の確認と登録]
        R11 --> R12[クリック 確認]
        R12 --> R13[クリック ✅ 登録]
        R13 --> R14[クリック データを登録する]
        R14 -- "次の行へ" --> R07
    end

    %% Inter-workflow connections
    M05 == "Invoke" ==> G01
    M07 == "Invoke" ==> R01

    %% Styling(塗りつぶしノードは文字を黒に)
    style M05 fill:#f9f,stroke:#333,stroke-width:2px,color:#333
    style M07 fill:#f9f,stroke:#333,stroke-width:2px,color:#333
    style G07 fill:#bbf,stroke:#333,color:#333
    style G11 fill:#fff4dd,stroke:#d4a017,color:#333
    style R09 fill:#bbf,stroke:#333,color:#333

Mermaid Live Editor や Zenn のプレビューに貼ると、Main → 取得/登録フローの呼び出しと、登録フロー内のループが一覧できます。


4. 番外編1(Sonnet 4.5)との比較

同じプロンプトで、Claude Sonnet 4.5(番外編1)Gemini 3 高速版(本記事) を比べたときの違いです。

観点Sonnet 4.5(番外編1)Gemini 3 高速版(本記事)
ノード数Main 3 / 取得 4 / 登録 5(計12)Main 7 / 取得 15 / 登録 14(計36)
粒度シーケンス・スコープ単位で「まとめ」寄りアクティビティ単位で細かく分解
深掘り候補G03, R04, R01, G01, R05 などブロック単位G02, R02, G07, G11, G14, R09, R10 などステップ単位
Mermaidシンプルで全体把握しやすいノード数多く、スタイル付きで「どこが重要か」が図で分かる
作業時間プロンプトを投げるだけなので 3分未満

プロンプトの文言は「シーケンスやスコープ単位で大きな流れを」としていますが、Gemini 3 はより細かい粒度で解釈しています。設計レビューや移行時の「どのアクティビティを確認するか」を切り出すには Gemini 3 の出力が使いやすく、全体の流れをざっと見るには Sonnet 4.5 のまとまり方が見やすい、という住み分けになりそうです。


5. やってみて分かったこと


おわりに

本記事では、本編の同じ3つのプロンプトGemini 3(高速版) に渡した結果を整理し、番外編1(Sonnet 4.5)との粒度の違いを比較しました。

本編のプロンプトが「エンジンが違っても概ね同じ構造で結果が出る」ことを、番外編1・2で確認できました。別エンジンで試すときの参考になれば幸いです。

Zennでも読む ← LOGに戻る