跳轉到

程式資訊

  • 程式 IDALERTRULE
  • 所屬子系統:M.主管資訊
  • 狀態:stable

警示規則維護

集中維護系統各類主動警示信的門檻、收件人、啟用開關與抑制時數。警示信本身由排程作業在背景自動判定並寄出——本頁只負責「設定要不要發、發給誰、多嚴重才發」。主要使用者為財務、業務主管與系統管理員。

目前支援 11 種警示類型,分成「業務警示」與「系統監控」兩類。

業務警示

警示類型(代號) 觸發條件 信件內容摘要
應收逾期帳款AR_OVERDUE 未沖應收單逾期超過門檻天數(預設 30 天) 客戶/單號/到期日/逾期天數/未沖金額與合計
票據到期CHECK_DUE 未來 N 天內(預設 7 天)到期的收票/付票 票別/票號/到期日/金額,收付票分組呈現
退票警示CHECK_BOUNCE 回看期間內(預設 7 天)收票發生退票(已兌退票/未兌退票/票貼退票) 發生退票的票據明細,即時通知財務(見客戶退票通知
金流預測跌破警戒FLOWCAST_BREACH 金流預測累計淨額首次跌破資金警戒線 首次跌破月/警戒線/最低累計淨額/逐月累計簡表
安全庫存SAFETYSTOCK 庫存低於品號安全量 低於安全量的品號清單(見安全庫存檢查通知
呆滯庫存STAGNANT_STOCK 有庫存(現有量 > 0)但長期無任何出入庫異動的品項(預設 180 天;含從無異動紀錄者) 呆滯品項清單,預設最多列 200 筆(見呆滯庫存通知
採購逾期未交PO_OVERDUE 未結案採購單,預訂交期逾期(預設 3 天)且尚有未交量 逾期明細按廠商彙整,通知採購
委外派工逾期未交WK_OVERDUE 未結案委外派工單,預訂完成日逾期(預設 3 天)且尚有未交量 逾期的委外派工明細
供應商協同逾期POCOLLAB_OVERDUE 供應商協同已發送、供應商在期限內(到期前 N 天,預設 3)未回覆 逾期的採購單號/供應商/發送日/到期日,寄給當初發送的採購人員(見供應商協同逾期未回提醒

系統監控(給系統管理員)

警示類型(代號) 觸發條件 信件內容摘要
排程健康監控SKD_HEALTH 回看期間內(預設 24 小時)有排程執行失敗,或排程執行中卡死超過門檻分鐘(預設 60 分) 出問題的排程項目與時間,通知系統管理員
郵件佇列監控MAILQ_STUCK 通知信出現死信滯留超過門檻小時(預設 2 小時)或卡鎖 卡件的郵件清單,通知系統管理員

這兩封信收到之後要做什麼

判讀步驟、狀態代碼意義與誤報常見原因見 系統監控警示判讀(IT)

採購逾期未交 vs 採購未納明細通知

兩者資料相近但用途不同:本頁的 PO_OVERDUE警示(按廠商彙整、門檻與收件人在本頁設定);採購未納明細通知是每日固定寄出的 18 欄明細表+Excel 附件+待辦事項,兩者可並存或擇一啟用。

新增的警示類型預設為停用

第二批警示(退票、呆滯庫存、採購逾期未交、委外派工逾期、排程健康、郵件佇列)出廠時一律 是否啟用 = N。要使用請逐項在本頁把它改成 Y 並填妥收件人與門檻——啟用是刻意保留給使用者的動作,避免一升級就有人被陌生的信灌爆。

警示信怎麼寄出去

本頁只是「規則設定」。真正判定與寄信是由 server 上的排程作業(TsERP.SchedulerWorker 與 AutoPilot)依行事曆事件觸發後執行,經 Mailgun 郵件佇列寄出。排程掛法、抑制視窗實際行為、失敗排查請見 排程作業 → 警示通知

前置需求

  • 權限:可開啟 主管資訊 → 警示規則維護(主選單代號 M-A1
  • 前置設定:
    • 對應的警示排程事件已在行事曆建立並設好觸發時間(見排程作業
    • 若收件人欄留空,行事曆事件的「通知帳號」須填有效 Email
    • 金流預測跌破警示須先能正常產出金流預測資料

操作步驟

本頁版面為上方工具列 + 中間規則清單(唯讀資料表格)+ 下方編輯表單。一種警示類型維護一列規則。

  1. 從主選單開啟 主管資訊 → 警示規則維護。開窗後系統自動載入現有規則清單。

    警示規則維護開窗畫面

  2. 若清單為空或想重新載入,點工具列 查詢 按鈕。

  3. 新增一條規則:點 新增,下方編輯表單會帶出一列空白規則,預設警示類型 = SAFETYSTOCK、通知通道 = MAIL、抑制視窗小時 = 24

  4. 在編輯表單設定各欄位(參見欄位說明):

    1. 警示類型 下拉選要設定的類型
    2. 是否啟用Y(啟用)或 N(停用)
    3. 門檻參數 填入該類型對應的 JSON(格式見門檻參數 JSON
    4. 收件人 填 Email(多筆以分號 ; 隔開);留空則沿用該警示對應行事曆事件的「通知帳號」
    5. 需要時調整 抑制視窗小時、填 備註
  5. 儲存。系統顯示儲存成功後,清單會反映最新內容。

    警示規則編輯表單

  6. 要停發某類警示:選取該列,把 是否啟用 改為 N儲存(保留設定);或選取後點 刪除 整列移除。

一種類型只需一列

同一警示類型建議只維護一列規則。收件人與門檻是綁「警示類型」而非綁排程事件,因此同一警示即使排了多個時段觸發,也只需在這裡維護一份設定。

欄位說明

欄位 必填 格式 說明
警示類型 下拉選單 下拉即列出全部 11 種代號,順序為 SAFETYSTOCKAR_OVERDUECHECK_DUEFLOWCAST_BREACHPOCOLLAB_OVERDUECHECK_BOUNCESTAGNANT_STOCKPO_OVERDUEWK_OVERDUESKD_HEALTHMAILQ_STUCK;各類型的意義見本頁開頭的一覽表
是否啟用 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}
型別 預設 說明
回看天數 整數 7 撈最近 N 天內異動的退票(已兌退票/未兌退票/票貼退票)

範例:

{"回看天數":7}
型別 預設 說明
警戒線 數字 無(必填) 累計淨額低於此金額即視為跌破

範例:

{"警戒線":1000000}

警戒線是必填

金流跌破警示的 門檻參數必須設 警戒線,否則排程判定會略過該規則、不發任何信。此數值即金流預測畫面上的「資金警戒線」;在此設定後即可持久保存(不再需要每次開窗手填)。

安全庫存警示的門檻是逐品號設定在庫存主檔的安全量,不使用本頁的門檻參數;收件人也沿用行事曆事件的「通知帳號」。此類型的規則列可維持既有設定,行為不變。詳見安全庫存檢查通知

型別 預設 說明
呆滯天數 整數 180 最後一次出入庫異動距今超過此天數即視為呆滯(從未有異動紀錄者一律列入)
明細上限 整數 200 信件本文最多列幾筆明細

範例(放寬到一年、只列前 100 筆):

{"呆滯天數":365,"明細上限":100}

兩種類型使用相同的鍵,各自維護一列規則。

型別 預設 說明
逾期天數 整數 3 採購單的預訂交期(委外派工單為預訂完成日)已過超過此天數且仍有未交量才列入

範例(逾期滿 7 天才通知):

{"逾期天數":7}
型別 預設 說明
提前天數 整數 3 到期前幾天起開始提醒(含已逾期者)。填 0=只提醒已到期;負數視同 0

範例(到期前一週就開始催):

{"提前天數":7}

收件人的行為與其他警示不同

本類型優先寄給當初發送協同單的採購人員(由發送人的員工 email 自動帶出),一位收件人一封、只含他自己發的單。本頁的收件人欄在這裡的角色是 fallback:發送人查不到 email 時才用它(可填採購主管,多筆以 ; 分隔);仍為空時退回行事曆事件的「通知帳號」。

型別 預設 說明
回看小時 整數 24 撈最近 N 小時內執行失敗的排程
卡死分鐘 整數 60 已開始但超過 N 分鐘仍未結束者視為卡死

範例:

{"回看小時":24,"卡死分鐘":60}

偵測範圍

目前偵測「跑了但失敗」與「跑到一半卡死」兩種情況;偵測「該跑卻沒跑」。

型別 預設 說明
卡件小時 整數 2 郵件滯留超過 N 小時即視為卡件

範例:

{"卡件小時":2}

已知限制

若寄信服務整個停擺,這封警示信本身也寄不出去(服務恢復後才會補告)。部分失敗或死信的情況則能即時通知。

JSON 格式要求

  • 一律使用半形雙引號 ",不可用全形引號或單引號
  • 鍵名為中文,值為數字(不加引號)或 truefalse
  • 整段是一個 { } 物件;格式錯誤時系統會安全地略過該門檻並套用預設值(不會中斷其他規則)

抑制視窗與重寄規則

抑制是所有走本頁規則設定的警示共用的通則,不分警示源(安全庫存除外——它是警示框架之前就有的獨立任務,沒有缺料就不寄,本身即不會重複轟炸):為避免同一件事反覆通知,排程在寄信前會對「這次的警示內容」計算一組指紋,並比對抑制視窗內的近期紀錄。

  • 同內容、抑制視窗內 → 靜音不重寄。視窗長度取該列規則的 抑制視窗小時(預設 24),逐種警示各自可調
  • 內容有變 → 指紋改變,照常再通知。所謂「內容」是各警示自己的關鍵集合(見下表),不是整封信的文字。
  • 抑制視窗填 0 → 不抑制,每次判定命中就寄。
  • 完全沒有命中 → 不寄信、也不留紀錄(收件匣不會被「本次一切正常」灌爆)。
  • 沒有收件人 → 整筆略過不寄(規則列的收件人與行事曆事件的通知帳號都空白時)。
警示類型 指紋看的是什麼(變了就會再通知)
AR_OVERDUECHECK_DUE 命中的單號(票號)集合
PO_OVERDUEWK_OVERDUE 命中的「單號+序號」集合(逐明細)
CHECK_BOUNCE 命中的「票據單號+票況」集合——同一張票再轉成別種退票狀態算新事件
STAGNANT_STOCK 全部命中品號集合(不只信上列出的前 N 筆)
FLOWCAST_BREACH (首次跌破月, 警戒線)——只通知首次跌破;跌破月前後移動或警戒線調整才會再發
POCOLLAB_OVERDUE (收件人, 逾期採購單號集合, 當日日期)——同一批單、同一位採購一天一封
SKD_HEALTH 命中的排程項目集合
MAILQ_STUCK 命中的郵件集合(含狀態);警示信自己被排除,不會自迴圈

覺得太吵或太安靜,先調抑制視窗

信太密集 → 把該列的抑制視窗小時調大(例如呆滯庫存設 168=一週一次)。反之,希望每天都收到一次現況彙總 → 調小或設 0。門檻參數決定「什麼算命中」,抑制視窗決定「多久提醒一次」,兩者是不同的旋鈕。

詳細機制與排程掛法見 排程作業 → 警示通知

常見問題

設定完了為什麼沒收到警示信?

依序檢查:

  1. 是否啟用 是否為 Y(退票、呆滯庫存、採購/委外逾期、排程健康、郵件佇列等類型預設為 N,需自行啟用)
  2. 對應的排程事件是否已在行事曆建立且到觸發時間(警示由排程觸發,不是存檔即發)
  3. 收件人是否有效;留空時行事曆事件「通知帳號」是否填了 Email
  4. 是否落在抑制視窗內(同內容 24 小時內只發一次)
  5. 金流跌破警示是否漏設 警戒線(未設會被略過)
  6. 其餘寄信面問題(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)

相關功能