程式資訊
- 程式 ID:
ALERTRULE - 所屬子系統:M.主管資訊
- 狀態:stable
警示規則維護¶
集中維護系統各類主動警示信的門檻、收件人、啟用開關與抑制時數。警示信本身由排程作業在背景自動判定並寄出——本頁只負責「設定要不要發、發給誰、多嚴重才發」。主要使用者為財務、業務主管與系統管理員。
目前支援四種警示類型:
| 警示類型(代號) | 觸發條件 | 信件內容摘要 |
|---|---|---|
應收逾期帳款(AR_OVERDUE) |
未沖應收單逾期超過門檻天數(預設 30 天) | 客戶/單號/到期日/逾期天數/未沖金額與合計 |
票據到期(CHECK_DUE) |
未來 N 天內(預設 7 天)到期的收票/付票 | 票別/票號/到期日/金額,收付票分組呈現 |
金流預測跌破警戒(FLOWCAST_BREACH) |
金流預測累計淨額首次跌破資金警戒線 | 首次跌破月/警戒線/最低累計淨額/逐月累計簡表 |
安全庫存(SAFETYSTOCK) |
庫存低於品號安全量(既有功能,行為不變) | 低於安全量的品號清單 |
供應商協同逾期(POCOLLAB_OVERDUE) |
供應商協同已發送、供應商在期限內(到期前 N 天,預設 3)未回覆 | 逾期的採購單號/供應商/發送日/到期日,寄給當初發送的採購人員 |
警示信怎麼寄出去
本頁只是「規則設定」。真正判定與寄信是由 server 上的排程作業(TsERP.SchedulerWorker 與 AutoPilot)依行事曆事件觸發後執行,經 Mailgun 郵件佇列寄出。排程掛法、抑制視窗實際行為、失敗排查請見 排程作業 → 警示通知。
前置需求¶
- 權限:可開啟 主管資訊 → 警示規則維護(主選單代號
M-A1) - 前置設定:
操作步驟¶
本頁版面為上方工具列 + 中間規則清單(唯讀格線)+ 下方編輯表單。一種警示類型維護一列規則。
-
從主選單開啟 主管資訊 → 警示規則維護。開窗後系統自動載入現有規則清單。

-
若清單為空或想重新載入,點工具列
查詢按鈕。 -
新增一條規則:點
新增,下方編輯表單會帶出一列空白規則,預設警示類型 = SAFETYSTOCK、通知通道 = MAIL、抑制視窗小時 = 24。 -
在編輯表單設定各欄位(參見欄位說明):
- 從 警示類型 下拉選要設定的類型(四選一)
- 是否啟用 選
Y(啟用)或N(停用) - 在 門檻參數 填入該類型對應的 JSON(格式見門檻參數 JSON)
- 收件人 填 Email(多筆以分號
;隔開);留空則沿用該警示對應行事曆事件的「通知帳號」 - 需要時調整 抑制視窗小時、填 備註
-
點
儲存。系統顯示儲存成功後,清單會反映最新內容。
-
要停發某類警示:選取該列,把 是否啟用 改為
N後儲存(保留設定);或選取後點刪除整列移除。
一種類型只需一列
同一警示類型建議只維護一列規則。收件人與門檻是綁「警示類型」而非綁排程事件,因此同一警示即使排了多個時段觸發,也只需在這裡維護一份設定。
欄位說明¶
| 欄位 | 必填 | 格式 | 說明 |
|---|---|---|---|
| 警示類型 | 是 | 下拉四選一 | SAFETYSTOCK/AR_OVERDUE/CHECK_DUE/FLOWCAST_BREACH |
| 是否啟用 | 是 | Y / N 下拉 |
Y 才會被排程判定並寄信;N 保留設定但不發 |
| 門檻參數 | 視類型 | JSON 文字 | 各類型可用鍵見下節。空白或非法 JSON 時各門檻套用預設值 |
| 收件人 | 否 | Email,多筆用 ; 分隔 |
留空則退回行事曆事件「通知帳號」 |
| 通知通道 | 是 | 下拉 | 目前僅 MAIL(Email)。LINE 通道保留待後續 |
| 抑制視窗小時 | 否 | 整數 | 同內容不重寄的時間窗,預設 24(小時) |
| 備註 | 否 | 文字 | 自由說明,例如「僅發財務部」 |
| 修改時間 | — | 唯讀 | 清單顯示,系統自動維護 |
門檻參數 JSON¶
門檻參數是一段 JSON 物件,鍵為中文、值為數字或布林。各警示類型可用的鍵不同——請照下表使用,不要自創鍵名(未認得的鍵會被忽略、對應門檻套預設值)。
| 鍵 | 型別 | 預設 | 說明 |
|---|---|---|---|
逾期天數 |
整數 | 30 | 到期日已過超過此天數的未沖應收才列入 |
範例:
{"逾期天數":30}
| 鍵 | 型別 | 預設 | 說明 |
|---|---|---|---|
提前天數 |
整數 | 7 | 撈「今天起 N 天內到期」的票據 |
含收票 |
布林 | true | 是否納入應收票據(收票 NR) |
含付票 |
布林 | true | 是否納入應付票據(付票 NP) |
範例(只提醒付票、提前 10 天):
{"提前天數":10,"含收票":false,"含付票":true}
| 鍵 | 型別 | 預設 | 說明 |
|---|---|---|---|
警戒線 |
數字 | 無(必填) | 累計淨額低於此金額即視為跌破 |
範例:
{"警戒線":1000000}
警戒線是必填
金流跌破警示的 門檻參數必須設 警戒線,否則排程判定會略過該規則、不發任何信。此數值即金流預測畫面上的「資金警戒線」;在此設定後即可持久保存(不再需要每次開窗手填)。
安全庫存警示的門檻是逐品號設定在庫存主檔的安全量,不使用本頁的門檻參數;收件人也沿用行事曆事件的「通知帳號」。此類型的規則列可維持既有設定,行為不變。
JSON 格式要求
- 一律使用半形雙引號
",不可用全形引號或單引號 - 鍵名為中文,值為數字(不加引號)或
true/false - 整段是一個
{ }物件;格式錯誤時系統會安全地略過該門檻並套用預設值(不會中斷其他規則)
抑制視窗與重寄規則¶
為避免同一警示反覆轟炸,排程在寄信前會對「警示內容」計算指紋並比對近期紀錄:
- 同內容、抑制視窗(預設 24 小時)內 → 靜音不重寄
- 內容有變(例如逾期名單多了一張單、票據清單有增減)→ 指紋改變,照常再通知
- 金流跌破警示只通知首次跌破:以「首次跌破月 + 警戒線」為指紋維度;只要這兩者沒變就不重寄,跌破月往前/往後移或警戒線調整才會再發
詳細機制與排程掛法見 排程作業 → 警示通知。
常見問題¶
設定完了為什麼沒收到警示信?
依序檢查:
- 是否啟用 是否為
Y - 對應的排程事件是否已在行事曆建立且到觸發時間(警示由排程觸發,不是存檔即發)
- 收件人是否有效;留空時行事曆事件「通知帳號」是否填了 Email
- 是否落在抑制視窗內(同內容 24 小時內只發一次)
- 金流跌破警示是否漏設
警戒線(未設會被略過) - 其餘寄信面問題(Mailgun 額度、SP 是否部署)見排程作業疑難排解
第一次儲存存不了怎麼辦?
警示規則走標準上傳流程。若首次存檔失敗,多半是上傳登記(_sheetno/_tableseq)尚未生效——請重新登入 ERP 後再試(與自訂查詢面板同款機制)。若正式環境剛部署,也請確認 sql\alertrule-deploy.sql 已執行。
只想暫停某類警示,不想刪掉設定?
把該列的 是否啟用 改為 N 再 儲存 即可保留門檻與收件人,之後改回 Y 就恢復。
可以發到 LINE 嗎?
目前通知通道僅 MAIL(Email)。LINE Notify 已於 2025-03-31 終止服務,如需 LINE 通知須另行申辦 LINE 官方帳號走 Messaging API,屬後續規劃項目。
需補截圖清單¶
需補截圖
以下截圖尚未拍攝,請於對應步驟補上,放置於 docs/M-EIS/images/:
- alert-rule-step1.png — 警示規則維護開窗、規則清單載入畫面(步驟 1)
- alert-rule-step4.png — 下方編輯表單,含警示類型下拉與門檻參數 JSON 輸入(步驟 4)
相關功能¶
- 金流預測:金流跌破警戒的資料來源與警戒線設定
- 排程作業(含警示通知掛法):警示信的觸發、寄送與抑制機制
- I 帳款管理:應收逾期、票據到期的原始交易資料
- H 庫存管理:安全庫存量設定