程式資訊
- 程式 ID:
MRP - 所屬子系統:F.生產管理
- 狀態:stable
物料需求計劃 (MRP)¶
功能簡介¶
「物料需求計劃」(Material Requirements Planning,MRP)把一段期間內所有的需求來源(訂單、預示、製通單、派工單、申請)與供給來源(在庫量、待驗量、採購在途、生產在途)匯整起來,依品號的 BOM 結構由上階往下階逐階展開,以逐日(time-phased) 的方式計算每個品號每天的毛需求、預計可用量與淨需求,最後產生一份「採購/生產建議表」:告訴生管與採購人員每個品號該在哪一天、買(做)多少數量、向哪幾家廠商下單。
適合生管/採購主管在排產或下採購單前,一次看清楚:
- 接下來這段期間每個品號要做(買)多少?(建議表)
- 每個品號逐日的毛需求/淨需求/預計可用量怎麼變化?(明細表)
- 需求與供給各自來自哪些單據?(獨立需求、相依需求、在庫、待驗、在途各頁籤)
查詢型報表,不產生實際單據
本功能只試算並建議,不會自動開立採購單或製通單。建議表中的 Select(勾選)欄目前僅供標記,新版尚未提供「依勾選自動轉採購/生產單」與「Excel 匯出」功能(詳見欄位連動與附加功能)。
前置需求¶
- 權限:F.生產製造 →
F-080 物料需求計劃的瀏覽權限。 - 基礎資料:計算結果的正確度高度依賴下列主檔,缺漏會直接造成淨需求或建議錯誤——
| 資料 | 影響的結果 |
|---|---|
| 品號主檔(INVENT)的 品階、LeadTime、安全時間、安全庫存、批量、最小訂購量、最大庫存量、不良率 | 逐日淨需求、計劃收料量、建議行動日的回推 |
| 品號主檔的 主要供應廠商 1/2/3 | 建議表的廠商代號/簡稱欄 |
| BOM 結構(含生效日/失效日、用量、損耗率) | 相依需求的逐階展開;BOM 缺漏則下階零件不會被算出需求 |
| 銷售訂單/預示/製通單/派工單/請購申請 | 獨立需求的五個來源(1.Application~5.WorkOrder) |
| 採購單(未交)、暫收待驗、生產在途 | 供給面的在途量、待驗量 |
| 工作日曆(LCL工作日曆) | 休假日標示、LeadTime/安全時間回推時跳過非工作日 |
參數 7009(MRP 隸屬倉庫) |
計算所採用的倉庫(建議表內部會帶入此倉庫,惟新版畫面尚未顯示隸屬倉庫欄) |
安全庫存品號自動納入
即使某品號在查詢期間完全沒有任何訂單需求,只要它的安全庫存 > 0,系統仍會把它納入計算品號表,確保安全庫存被補足。程式內部另保留一份「停用安全庫存」清單,被列入者其安全庫存會被視為 0;但新版尚未提供維護此清單的介面,實務上此清單為空、所有安全庫存品號一律納入計算。
操作步驟¶
本表單是查詢報表,沒有新增/修改/刪除,主要操作是設定條件後查詢,再切換頁籤檢視。
步驟① 設定查詢條件¶
條件面板位於畫面上方:
- 設定 Beginning SKU(起始日)~(結束日) 區間:
- 起始日 預設為今天。
- 結束日 預設為今天 + 150 天(系統參數
Mrp天數預設 150)。 - 系統會以「結束日 − 起始日 + 1」重算實際計算天數,因此區間拉得越長、逐日明細越多、計算越久。
- 視需要勾選 Safety Time Is Zero(安全時間視為 0):勾選後所有品號的安全時間一律當作 0,計劃收料/發出日不再因安全時間往前推(預設不勾)。
- 視需要勾選 Need Contain No Use SKU(包含無需求品號):勾選後,雖然有供給資料(在庫/待驗/在途)但本期沒有任何需求的品號,也會以來源
3.Attached列入建議與明細(預設不勾)。
步驟② 執行查詢¶
按工具列的 查詢。系統會依下列順序計算(狀態列會顯示進度訊息,如 1. Get data、2. Calulate independent、8 calculate sku rank (n) 等):
- 呼叫 SP
TWORK_QRY_MRP取回各來源原始資料。 - 彙整獨立需求、在庫量、待驗量、採購在途、生產在途。
- 建立計算品號表(有需求或有安全庫存的品號)。
- 依品階由高到低逐階、逐日試算淨需求與計劃收料,並把上階的計劃發出展開為下階的相依需求。
- 產生建議表並回算建議行動日、毛需求日。
步驟③ 檢視結果頁籤¶
查詢完成後,結果分佈在多個頁籤:
- MRP Suggestion(建議表):最終的採購/生產建議,一列=某品號在某日期應收料多少。
- MRP Detail(明細):上半部是計算品號表(每個品號的 MRP 參數與彙總量),下半部是逐日明細(每品號每天一列)。
- Independent Demand(獨立需求):上方彙總、下方逐筆來源單據(訂單/製通/派工…)。
- Dependent Demand(相依需求):上方彙總、下方逐筆 BOM 展開的下階零件需求。
- On-hand Inventory(在庫量)、Inspection(待驗量)、On-order (Purchase)(採購在途)、On-order (Production)(生產在途):四個供給來源各自的彙總與明細。
改條件要重查
調整任何條件(日期、兩個勾選框)後,都要再按一次 查詢 才會重算。各頁籤的 RadGridView 都可用欄位右鍵排序、群組,並透過 Telerik 內建匯出(若該版本提供)輸出格線資料。
欄位說明¶
查詢條件¶
| 欄位 | 必填 | 說明/預設 |
|---|---|---|
| Beginning SKU(起始日) | ✔ | MRP 計算的起始日,預設今天;逐日明細從這天往後排 |
| (結束日) | ✔ | 計算終點,預設今天 + 150 天;天數=結束日−起始日+1 |
| Safety Time Is Zero | — | 勾選時所有品號安全時間視為 0(預設不勾) |
| Need Contain No Use SKU | — | 勾選時把「有供給但本期無需求」的品號也列入(來源 3.Attached,預設不勾) |
建議表(MRP Suggestion)主要欄位¶
| 欄位 | 說明 |
|---|---|
| Select(勾選) | 標記欄;新版尚未連動任何後續動作 |
| Is Disabled(停用)/Inventory Control Code(庫存管制) | 取自品號主檔,協助判斷該品號是否仍可用 |
| Source Type(來源別) | 該品號在計算品號表的來源分類 |
| SKU/SKUDescription | 品號/品名 |
| Date(日期) | 建議收料日(計劃收料落在哪一天) |
| Suggestion Start Date(建議行動日) | 由收料日往前回推 LeadTime(跳過休假)得到的應下單日;回推到起始日之前則顯示起始日 |
| Planned Order Receipt(計劃收料) | 該日建議收料(採購到貨/生產完工)數量 |
| Gross Requirment Date(毛需求日) | 該品號最早出現「預計在庫 A − 在途量 A < 0」的日期;不缺料時顯示 不欠 |
| Vendor Code 1~3/Vendor Name 1~3 | 品號主檔設定的前三家供應廠商 |
| Daily/Weekly/Monthly Material Usage | 日/週/月用量參考值 |
| Filter(篩選)/Checked(單純檢查) | 內部輔助欄 |
明細表(MRP Detail)— 上半:計算品號表 主要欄位¶
| 欄位 | 說明 |
|---|---|
| SKU Rank(品階) | BOM 階層;計算由高品階往低品階進行 |
| Lead Time | 前置天數,用來把收料日回推成發出(下單)日 |
| Safety Time(安全時間)/Safety Stock(安全庫存) | 安全時間用於回推日期;安全庫存為觸發補料的下限 |
| Lot(批量)/Minimum Order Quantity(最小訂購量)/Maximum Inventory(最大庫存量) | 計劃收料的湊整與下限規則所用參數 |
| On Hand Inventory(在庫量)/Need Inspected Quantity(待驗量) | 供給面彙總量 |
| Purchase / Production Order Not Received Quantity(訂購/生產未交量) | 採購、生產在途的彙總量 |
| Mrp Source(來源) | 1.Independent/2.Dependent/3.Attached 等 |
| Defact Rate(不良率)/Default Bin(儲位) | 取自品號主檔 |
明細表(MRP Detail)— 下半:逐日明細 主要欄位¶
| 欄位 | 說明 |
|---|---|
| Date | 該列對應的日期(起始日起逐日一列) |
| Independent Demand(獨立需求) | 當日來自訂單/預示/製通/派工/申請的需求 |
| Dependent Demand(相依需求) | 當日來自上階品號 BOM 展開的需求 |
| Gross Requirement(毛需求) | =獨立需求 + 相依需求 |
| On Order Inventory(在途量) | 當日採購+生產在途 |
| Projected On Hand(預計在庫量)/Projected Available Balance(預計可用量, PAB) | 逐日結轉的庫存與可用量 |
| Net Requirement(淨需求) | 當預計在庫量低於安全庫存時才產生;其值是把庫存補到最大庫存量(若安全庫存大於最大庫存量則補到安全庫存)所需的數量,亦即 max(安全庫存, 最大庫存量) − 預計在庫量,並非只補到安全庫存 |
| Planned Order Receipt(計劃收料)/Planned Order Release(計劃發出) | 建議收料量(淨需求與最小訂購量取大值、再依批量湊整)與回推 LeadTime 後的發出量 |
| Is Holiday(休假替代) | 該日是否為休假日 |
| …A 系列欄(在途量 A/預計在庫 A/預計可用 A/淨需求 A/計劃收料 A/計劃發出 A) | 不計安全庫存與安全時間、只算 LeadTime 的平行試算,供對照「最低需求」用 |
獨立需求 / 相依需求 / 供給各頁籤¶
- 獨立需求清單:含類別(
1.Application~5.WorkOrder)、製通單號、派工單號、訂單編號/序號、客戶代號/簡稱、品號、數量、計畫數量、預訂完工日、是否委外、是否拆零、包裝料等。 - 相依需求清單:含組件品階、組件編號、途程序號、品號、數量、單位、損耗率、替換後品號。
- 在庫量/待驗量/採購在途/生產在途:各自的群組(品號+日期+數量)與逐筆明細(含單號、廠商/部門、原預訂交期等)。
欄位連動與附加功能¶
這一節說明「設了某條件、按了查詢之後,系統內部到底做了什麼」。MRP 的核心都在計算,因此這裡偏重計算連動。
條件面板的連動¶
- 改起始日/結束日 → 查詢時系統以「結束日 − 起始日 + 1」重新算出計算天數(覆蓋預設的 150 天)。起始日同時是所有逐日明細的第一天,也是「日期早於起始日就視為已過期」的判斷基準(過期的在途量會被歸到空日期或
1000/01/01)。 - 勾選 Safety Time Is Zero → 建立計算品號表與處理採購在途時,把每個品號的安全時間強制設為 0。安全時間為 0 時,計劃收料日不再因安全時間往前推,採購在途的到貨日也不往前修正。
- 勾選 Need Contain No Use SKU → 計算尾段會把「出現在任一供給來源(獨立需求/在庫/待驗/採購在途/生產在途)、但不在計算品號表」的品號補進來,來源標記
3.Attached,讓你也能看到「有料但這期沒需求」的品號狀態。
查詢時的逐階逐日計算連動¶
- 取數:呼叫 SP
TWORK_QRY_MRP(透過Log_Sys_Exec記錄執行),一次取回獨立需求、在庫、待驗、採購在途、生產在途、品號主檔、BOM、初物合格日等多張結果表。 - 建立計算品號表:凡是有獨立需求或安全庫存 > 0 的品號都納入;列在「停用安全庫存」清單者,其安全庫存歸 0。
- 逐階(品階高→低)逐日計算:對每個品號從起始日往後逐日推進——
- 當日毛需求=獨立需求+相依需求。
- 預計在庫量/預計可用量逐日結轉;當預計在庫量低於安全庫存時產生淨需求——淨需求是把庫存補到最大庫存量(安全庫存大於最大庫存量時改補到安全庫存)所需的量,再依「淨需求 vs 最小訂購量」取大值、最後依批量湊整,得到計劃收料。
- 計劃收料量會先依安全時間把收料日往前推(跳過休假),再依 LeadTime 回推成計劃發出日=建議行動日。
- 上階的計劃發出,會依 BOM(含生效/失效日、用量、損耗率) 展開成下階零件的相依需求(數量=計劃發出 × 用量 × (1+損耗率),四捨五入),於是低品階品號在後續迴圈被算到。
- A 系列平行試算:同一批明細再算一次「只看 LeadTime、不看安全庫存與安全時間」的 A 系列欄位,作為「最精簡需求」的對照。
- 建議表回算:把所有「計劃收料 > 0」的明細彙整成建議表;建議行動日取對應發出日,毛需求日取「預計在庫 A − 在途量 A < 0」最早出現的日期,否則標
不欠。建議表最後依建議行動日排序。 - 休假標示:比對
LCL工作日曆,當日不在日曆或工作時數 ≤ 0 者標記為休假(休)。
用量與廠商帶入¶
- 計算過程會把品號主檔的主要供應廠商 1(代號/簡稱)帶入計算品號表,建議表則一併帶入廠商 1/2/3,讓採購直接看到可下單的對象。
- 日/週/月用量 欄位來自品號主檔的對應欄位,作為人工判斷參考,不參與 MRP 淨需求運算。
尚未提供的附加功能(規劃中)¶
以下 VFP 舊版有、新版尚未提供
舊版 VFP mrp 表單另有「建議調整品號表」「建議調整訂購表」的人工模擬調整,以及把建議表匯出成 Excel(C:\TEMPS\MRP\MRP建議表.XLS)、依勾選回寫採購/訂購單等功能。新版 C# 目前只實作查詢與試算,建議表的 Select(勾選)欄尚未連動任何動作,也尚未提供 Excel 匯出與「依建議自動產生採購/生產單」。需要這些動作時,請暫以人工依建議表內容到採購或生產模組開單。
常見問題¶
某個品號完全查不到,連在建議表都沒有?
系統只把有獨立需求或安全庫存 > 0 的品號列入計算。若品號這期沒有任何訂單/預示/製通/派工需求、安全庫存又是 0,就不會出現。想看到這類「有料無需求」的品號,請勾選 Need Contain No Use SKU 後重查(會以來源 3.Attached 列出)。
明細淨需求一直是 0、也不建議收料?
淨需求只有在預計在庫量低於安全庫存時才會產生(產生時會把庫存補到最大庫存量)。若該品號安全庫存為 0、且預計在庫量一直 ≥ 0(在庫或在途足夠),就不會有淨需求,自然也沒有計劃收料。請檢查品號主檔的安全庫存/最大庫存量設定是否正確。
下階零件(相依需求)沒被算出來?
相依需求是由上階品號的計劃發出量 × BOM 用量展開而得。若該成品沒有維護 BOM,或 BOM 明細的生效日/失效日沒涵蓋到計算日期,下階零件就不會產生需求。請到 BOM 管理確認結構與生效區間。
建議行動日(Suggestion Start Date)落在過去或等於起始日?
建議行動日=收料日往前回推 LeadTime(並跳過休假)。當回推結果早於查詢起始日時,系統會把它收斂成起始日,表示「這料早就該下單了,請盡快處理」。
建議表的廠商欄是空的?
廠商代號/簡稱來自品號主檔的主要供應廠商 1/2/3。若品號主檔沒設供應廠商,這幾欄就會空白;請先到品號主檔補上。
我勾了 Select 想直接轉採購單,按了沒反應?
新版的 Select 欄目前僅供標記、尚未連動轉單動作,舊版的「依勾選回寫採購/訂購」與 Excel 匯出尚未移植(見欄位連動與附加功能)。請暫以人工依建議表內容到採購/生產模組開單。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/F-Production/images/):
mrp-step1.png— 條件面板(起訖日 + 兩個勾選框)mrp-step2.png— 查詢執行中狀態列進度訊息mrp-step3.png— MRP Suggestion 建議表頁籤mrp-step4.png— MRP Detail 明細頁籤(上計算品號表、下逐日明細)mrp-step5.png— 相依需求(Dependent Demand)頁籤(含 BOM 展開結果)