fix: 待機状態中の固定メニュー「健康診断について」再選択で日付パースに誤って落ちるバグを修正

schedule_confirm等の待機状態中に固定メニューを再タップすると、
承諾/自分手配/受診日時の変更いずれにも一致せず自由入力の日付パースに
フォールバックしてしまい無関係なエラーが返っていた。担当者に連絡・
キャンセルワードと同様、待機状態を横断してメニュー表示へ戻す処理を追加。
This commit is contained in:
Kenichiro NOGI 2026-09-12 09:09:19 +09:00
parent ccd1fa3947
commit 7af3f5ff84

View File

@ -1366,3 +1366,35 @@ a〜d 4項目回答ボタンでの確認込み→DescriptionG保存、Stat
「通知文」→「健康診断内容」に変更性質変更上記「DescriptionBの構造変更」節参照
合わせた表示名変更)。内部列名`DescriptionB`自体は変更なし、n8n側コードは内部列名を
参照するため影響なし。
### 【バグ発見・修正】待機状態中に固定メニュー「健康診断について」を再タップすると誤動作2026-09-12
マニュアル用スクリーンショット撮影中に発見。手順: 513409Status=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枚