役割: GAS 各処理(RPA 起票・仕訳エンジン・データマート・外部 I/F)のエラー条件・挙動・ユーザー通知文言を集約する正典。元は SUMMARY.md §7 に集約されていたが、ERP 製品ドキュメントの整理(コーポレート社内サイト化・段階 2)に伴い本 doc へ移設した。 対象読者: 開発者・運用担当。通知文言(絵文字付きメッセージ)は実装と同期させること。

1. RPA 起票時のエラー

エラー条件挙動ユーザー通知
入力シートが見つからない処理中断🚨 {シート名}が見つかりません
必須ヘッダー列が不足処理中断⚠️ 必須項目が見つかりません
有効フラグ = FALSE行スキップなし(正常動作)
ステータス = "解約済"行スキップなし
開始年月が空 / 期間外行スキップなし
重複チェック合致 (isDuplicate_)行スキップなし(冪等性による正常動作)
YYYY-MM形式不正(手入力時)処理中断⚠️ YYYY-MM の形式で入力してください
関数内の予期しないエラーcatch→ログ記録🚨 {関数名}でエラーが発生しました: {メッセージ}
正常完了(件数あり)🎉 {種別}起票完了: X件のINV行を生成しました
正常完了(対象なし)起票対象なし

2. 仕訳エンジン (Action A/B) のエラー

エラー条件挙動ユーザー通知
必要シートが見つからない処理中断🚨 WRK_INVC または TRN_JOUR シートが見つかりません
有効フラグ = FALSE行スキップなし
ステータス ≠ "承認済" / JNL_ID既存行スキップなし
発生日が空行スキップなし
決済日 > 本日行スキップ集計後に ⚠️ 日付不正でスキップしたSTL (X件)
決済日 < INV発生日(前払い以外)行スキップ集計後に ⚠️ ダイアログ警告
消込対象INVが見つからない行スキップコンソール警告
関数内の予期しないエラーcatch→ログ記録🚨 {関数名}でエラーが発生しました
Action A 正常完了🎉 X件のINV承認を仕訳台帳へ転記しました
Action B 正常完了🎉 X件のSTL消込を仕訳に転記しました

3. データマート更新時のエラー

エラー条件挙動ユーザー通知
科目マスタに未登録の科目名処理中断🚨 科目マスタに未登録の科目名です: 「{科目名}」を登録してください
必要シートが見つからない処理中断🚨 必要なシートが見つかりません。DDLを実行してください
金額 = 0 の行行スキップなし
出力シートの挿入失敗無視して続行なし(サイレント)
正常完了🎉 マート更新完了

科目マスタ未登録のエラーは監査リスク回避のため処理中断(キーワード推測による自動分類は禁止)。

4. 外部インターフェースのエラー

エラー条件挙動ユーザー通知
GEMINI_API_KEY 未設定処理中断🚨 スクリプトプロパティにGEMINI_API_KEYを設定してください
Gemini API HTTP 5035秒間隔で最大3回リトライ→失敗で中断🚨 エラーメッセージ
Gemini レスポンスのJSON不正括弧閉じ修復を試行→失敗で中断エラーログ
PDFフォルダが見つからない処理中断🚨 フォルダが見つかりません
カードシート/領収書シートなし処理中断🚨 {タブ名}が見つかりません
カード明細の訂正サイン = "取消"行スキップ + シートに SKIP:取消なし
マッチング金額差 > 20%マッチ候補から除外なし
clasp認証切れデプロイ失敗ユーザーが clasp login --creds creds.json を実行

5. ユーザー通知方式

方式用途実装
UIアラート (ui.alert)致命的エラー / 処理結果サマリー🚨 🎉 ⚠️ 絵文字付きダイアログ
トースト (toast)処理完了の簡易通知画面右下に数秒表示
シート内表示マッチング結果・スキップ理由処理結果列に MATCHED SKIP:取消 等を書込
コンソールログデバッグ用Utils.logInfo / Utils.logError / console.warn