diff --git a/Pleasanter/健康診断管理/docs/n8n/design-fixed-menu.md b/Pleasanter/健康診断管理/docs/n8n/design-fixed-menu.md index b90a9037..3d790120 100644 --- a/Pleasanter/健康診断管理/docs/n8n/design-fixed-menu.md +++ b/Pleasanter/健康診断管理/docs/n8n/design-fixed-menu.md @@ -1564,3 +1564,65 @@ AskUserQuestionで確認を取った)。 「実行者:野木 健一郎(UserId:xxx)/プロセス:日程通知」自動記録も確認済み。**これにより Process実行→通知の連携が完全自動化され、前回セッションで挙げた最優先の未実装課題(A)が 解消した**(`2026-09-12-screenshot-test-plan.md`作成時点では手動2段階操作だった)。 + +## フェーズ2残課題の検討・実機テスト(2026-09-12) + +前回セッションで挙げた残5項目のうち、HC-REMINDER(日次リマインダー4種)の実機テストに着手。 +n8n Public APIにはSchedule Triggerワークフローの手動実行手段が無い(`POST /workflows/{id}/run` +は405)ため、n8n UI上の「Execute workflow」ボタンをユーザーが手動で押す形で実施した。 + +### 前提確認: n8nコンテナのタイムゾーン + +Schedule Triggerのcron式`0 12 * * *`が「JST 12:00」を意図しているか懸念があったため、SSH +(`ubuntu@dokploy45.next-hd.net`、ユーザー承認の上で読み取り専用のdateコマンドのみ実行)で +`n8n-rga09v-n8n-1`コンテナ内を確認。`GENERIC_TIMEZONE`・`TZ`とも`Asia/Tokyo`設定済みで、 +コンテナのシステム時刻自体もJSTだった。**Schedule Triggerは正しくJST 12:00に発火する設計で +問題なし**(懸念は杞憂)。なお以前確認した「ファイル名タイムスタンプがGMTになるバグ」は +別レイヤー(Task RunnerのCode node実行環境)の話で、日付境界(JST 0〜9時)を跨がない限り +実害は無いと判断。 + +### ②受診日アラート・③受診日当日 + +513409のStatus=310・Date002を「今日+3日」「今日」にそれぞれ調整しExecute workflowで実行。 +いずれも実機で正常送信を確認。③では届いた「受診完了/未受診」ボタンに実際に「受診完了」を +タップし、HC-WA側の`attendance_310`purpose処理(既存のyesno_confirmハンドラ)が正しく動作 +してStatus 310→400へ遷移することも確認済み。 + +### ⑥再検査報告の催促: 文言バグ発見・修正 + +Status=800・Date003=「今日-14日」で実行したところ、送信文言が「固定メニューから「健康診断 +について」→「受診・再検査報告」よりご報告を」となっており、実際の遷移(「健康診断について」 +→「再検査について」→「受診・再検査報告」の3段階)と一致していなかった(2026-09-11に⑦ +(`kind:"seven"`)だけ同種の文言修正を行い、⑥(`kind:"six"`)を見落としていた)。 +「対象レコード取得・分類」ノードの`kind:"six"`メッセージへ「→「再検査について」」を追加し +PUT反映。実機で修正後の正しい3段階文言、およびパターンCへの導線(a質問まで到達)を確認済み。 + +### ⑦日程未確定の催促: Date004列が存在しないバグ発見・修正 + +Status=300・Date004=「今日-1日」を設定して初回実行した際、`targets`が空のまま何も送信され +なかった。Pleasanter APIでレコードのDate004を直接確認したところ`null`のまま——**508971の +SiteSettings.Columnsに`Date004`列自体が定義されていなかった**(`DateA`=生年月日、`Date001`〜 +`Date003`は別用途で使用中、`Date004`は無し)。設計時点(2026-09-07、design-fixed-menu.md +「⑦日程未確定の催促」新規追加時)に列追加を忘れていた不具合で、機能自体が実装当初から +一度も動作していなかったことになる。 + +**対応**(ユーザー承認の上、`updatesite`で実施): +1. `SiteSettings.Columns`へ`{ColumnName:"Date004", LabelText:"日程未確定催促送信日"}`を追記 +2. `EditorColumnHash.General`の`Date003`直後へ`"Date004"`を挿入(列追加のみでは`items/update` + で値が書き込めず、過去のNum039〜046・CheckC等の列追加時と同様、EditorColumnHashへの配置も + 必須と判明——1回目のCoumns追記のみのupdateでは`DateHash.Date004`へ値を送っても反映されず + `null`のままだった) + +修正後、実機で「健診日程のご連絡はお済みでしょうか。まだの場合は固定メニューから「健康診断 +について」→「受診日時について」よりご確認をお願いいたします。」の正常送信を確認済み。 + +**Date004の役割**: ⑦の起算点管理用。「Status=300のまま`Date004+1日=今日`」が送信条件で、 +送信の都度`Date004`を送信日(今日)へ更新するため、Status=300が続く限り**毎日連続で**催促が +飛ぶ設計。本来はProcess5(日程通知済み、260→300遷移)実行時に自動セットされるべきだが、 +既知の未解明課題(「Id5のNum035は発火するがDate004(InputDate型)は発火しない」、本ファイル +「【未解明】ProcessId明示指定でのAPI実行時、一部DataChangesが発火しない」節)が残っており、 +現状は自動セットされない。**今後、n8n側でProcess5実行時にDate004を明示更新する処理を追加する +(HC-WPまたはクライアントスクリプト側)か、この既知課題自体を解決する対応が別途必要**。 + +HC-REMINDERの4パターン(②③⑥⑦)すべて実機確認完了。HC-DOC-TIMEOUT(10分タイムアウト監視)は +未着手のまま次回対応。