diff --git a/Pleasanter/健康診断管理/docs/n8n/design-fixed-menu.md b/Pleasanter/健康診断管理/docs/n8n/design-fixed-menu.md index 552dba4c..b5d67a57 100644 --- a/Pleasanter/健康診断管理/docs/n8n/design-fixed-menu.md +++ b/Pleasanter/健康診断管理/docs/n8n/design-fixed-menu.md @@ -1366,3 +1366,35 @@ a〜d 4項目回答(ボタンでの確認込み)→DescriptionG保存、Stat 「通知文」→「健康診断内容」に変更(性質変更(上記「DescriptionBの構造変更」節参照)に 合わせた表示名変更)。内部列名`DescriptionB`自体は変更なし、n8n側コードは内部列名を 参照するため影響なし。 + +### 【バグ発見・修正】待機状態中に固定メニュー「健康診断について」を再タップすると誤動作(2026-09-12) + +マニュアル用スクリーンショット撮影中に発見。手順: 513409(Status=310)で「受診日時について」 +→照会表示(「■あなたの本年度の健康診断について」+受診日時の変更ボタン)→直後に固定メニュー +から「健康診断について」を再タップ→想定は3択メニューの再表示だが、実際は +「日付形式で回答してください(例: 2026-03-01 や 令和6年3月1日)」という無関係な応答が返った。 + +**根本原因**(n8n実行履歴、execution 464/465のrunDataで特定): 「受診日時について」(Status=300 +の候補日提示、Status=310の照会表示いずれも)はボタン提示後に`awaitInput: "schedule_confirm"`を +セットする。この待機状態中に来たテキストは、`text === "承諾"` / `"自分手配"` / `"受診日時の変更"` +のいずれにも一致しない場合、フォールバックとして自由入力の日付パース(`parseDateInput`)に渡る +実装になっている(「分岐処理・実行・送信」ノード306行目以降)。「健康診断について」の処理は +`state.awaitInput === "none"`のブロック内(224行目)にしか存在しないため、`schedule_confirm`等の +待機状態中は素通りされず、日付パースのエラーメッセージが返っていた。「担当者に連絡」・キャンセル +ワード(「キャンセル」「やめる」等)は待機状態に関わらず横断的に処理される共通仕様として実装 +済みだったが、「健康診断について」自体は同様の横断処理から漏れていた。 + +**修正**: 「分岐処理・実行・送信」ノードの「キャンセル共通仕様」ブロック直後に、待機状態が +`none`以外かつテキストが「健康診断について」の場合、`state.awaitInput`を`"none"`へ書き換えて +から後続のメニュー表示ロジックへ自然にフォールスルーさせる処理を追加(2.5節として新設)。 +これにより、`schedule_confirm`・`yesno_confirm`・`report_form`・`retest_choice`・ +`reschedule_input`いずれの待機中でも、「健康診断について」を選び直せば通常の3択メニューへ +戻れるようになった(進行中の入力は破棄され、キャンセルと同等の挙動になる。これは仕様として +妥当と判断)。HC-WAへPUT反映済み(2026-09-12 00:07 UTC)。実機再検証は未実施(撮影テスト自体を +中断、後日再開時に確認する)。 + +撮影テスト(`2026-09-12-screenshot-test-plan.md`)は担当者プッシュ通知(ケース6-1/6-2、 +Status260→300→承諾→日程確定→メニュー3択表示)まで実施し、このバグ発見を機に一旦中断。 +HC-WA/HC-WPは検証後の原則通りdeactivateへ戻した。取得済みスクリーンショットは +`Pleasanter/健康診断管理/ScreenShot/`に保存済み(①②通知本文+button_template、承諾→日程確定、 +固定メニュー3択、Status=310照会表示、計6枚)。