
品保說要在「縫製」前加一道填充抽檢。RD 問:「那工序要改成 2.5 嗎?」生管 Kevin 愣住:「我們填充是 10、縫製是 20,為什麼不能中間插 15 或 25,要把後面全部重新編輯?」
最近我在跟同事討論 MES 產品規格時,同事提到:工序編號要不要用 10、20、30 的間隔? 他還提到,系統儲存時會依序號排序顯示,日後要在兩道工序之間插入新流程(例如插入 15 號),不必把後面全部重新編寫。剛好趁這個機會學習、紀錄下來。
若途程當初用 1、2、3 建,這個修改範圍和時間絕對不會在 5 分鐘內結束,可能變成改途程主檔、改 BOM 領料工序、改 MES 報工規則的一個「大專案」。當時工序編號用 10、20、30 留間隔,就是為了以後加製程站時,不必動到整條線。
當下聽起來像「顧問術語」,但我回頭查資料後才發現:這不是某一家廠商的專利設計,而是製造業 ERP、MES、PLM 等系統幾十年來反覆出現的工程慣例(Industry Convention),只是很少人會從「為什麼要留空間」的這個角度把它講清楚。
這篇文章不會太 Technical, 適合正在規劃途程主檔或 MES 系統的朋友。若你有看過 皮克敏 MES 系列,可以把這篇當成 數位報工 當中「途程站點定義」的設計原理補充。
先說在前面:沒有哪份 ISO 規範文件有記載「工序編號必須用 10、20、30」。若有人說認定「國際化標準設計」,建議觀念轉換一下:
這是業界通用的工程慣例(industry convention)——用 Sparse Numbering(稀疏整數)這種間隔編號(10、20、30,而非 1、2、3)保留插入空間。途程主檔日後要加新工序或改版時,舊的工序號不用改,已綁定的報工與 BOM(物料清單)也比較安全。

同事在討論產品規格時提議類似邏輯(例如 0401、0402、0405 來留間隔),其實跟途程的 10、20、25 是同一個設計思維,只是套用在不同主檔:
| 對象 | 編號範例 | 要解決的問題 |
|---|---|---|
| 途程工序 | 10、20、25、30 | 中間插入品檢,不動 20、30 |
| 產品規格 | 0401、0402、0405 | 同模組新增設定項目,不衝突 |
假設工單有 3 道工序:
| 不建議的設計(連續編號) | 好的設計(間隔編號) |
|---|---|
| 工序 1:射出成型 | 工序 10:射出成型 |
| 工序 2:去毛邊 | 工序 20:去毛邊 |
| 工序 3:包裝 | 工序 30:包裝 |
現在品管要求在「去毛邊」之後插入「尺寸量測」:
連續編號的麻煩:
間隔編號的做法:
同事白話說的「儲存時系統會自動重新排序」,我想完後認為更精確的說法是:顯示順序依序號欄位排序,與你建立的先後順序無關。所以你先建 30 再建 10,畫面上仍是先 10、再 30;日後插入 25,系統會把它排在 20 與 30 之間,通常不必人工調整「第幾筆」。
延續皮克敏吊飾途程(途程版本代號:RT-PKM-TAG-v3):
| 工序號 | 站點 | 說明 |
|---|---|---|
| 10 | 填充 | 聚酯纖維填充,每隻重量要符合標準(例如 35g ±2g) |
| 20 | 縫製 | 三台縫機並行 |
| 30 | 掛吊牌 | 打印 + 手工掛牌 |
上線三個月後,客訴「填充不均」增多。生管 Kevin 與品保決定:在縫製前加一道填充抽檢。
品保與生管 Kevin 定案後,工程師在 ERP 更新途程版次 RT-PKM-TAG-v3(或 v4),新增一道工序:
| 項目 | 內容 |
|---|---|
| 工序號 | 25(插在 10 填充與 20 縫製之間) |
| 站點名稱 | 填充抽檢 |
| 製程防呆 | 須完成工序 10;未抽檢合格不得進工序 20 |
接著還有幾筆內容要設定:
這就是間隔編號在製造現場的價值:不是為了好看,是為了讓途程「可以改」、「好修改」。
回到前面提到的:生管 Kevin 問的「為什麼不能插 15 或 25」,答案不是 RD 偷懶,而是主檔一開始就要預留空間的編號;否則每一次加品檢,都可能變成改 BOM、改報工的大專案。
我查了 Oracle、Microsoft、SAP、Epicor 等公開文件,看起來方向是一致的:不是統一標準,而是預設慣例。各廠差在「新增工序時自動往後跳幾號」能不能改、工序號能不能人工輸入。
| 廠牌 | 文件怎麼說(白話) | 原文(節錄) | 連結 |
|---|---|---|---|
| Oracle | 官方建議第一道工序用 10、第二道 20,日後可在 10 與 20 之間加中間站 | It is recommended that the first number in this sequence be 10, the second 20, and so forth. You can add intermediate steps between 10 and 20 at a later time. | Routing Steps 手冊 |
| Microsoft D365 | 簡單途程會自動產生 10、20、30… | Supply Chain Management automatically generates the operation numbers (10, 20, 30, and so on) when you define the route. | Routes and operations |
| SAP | 工序欄位 VORNR 常見 0010、0020;可在 10 與 20 之間插 11 ~ 19;自動跳號規則可在設定檔調整 | 資料元素 DEL_VORNR:Increment for automatic operation/activity numbering(Datasheet)。社群實務:it is possible to insert … even in between 10 and 20 as 11 to 19(Community) | SAP Community 討論 |
| Epicor | 預設 10、20、30;社群建議留間隔方便日後插入 | You’re not locked into 10, 20, 30, … it’s just the default. 另見社群:increments of 10 to allow later insertions if needed(Resequence 討論) | 使用者論壇 |
ERP 定義「途程主檔」;MES 與 APS 則用工序號決定現場執行順序。
順帶一提——製程沒有順序關係;途程才有順序關係:
製程是「有哪些工作要做」;途程是在說「這些工作照什麼順序做」(甚至哪些可以並行、哪裡會交集再一起)。所以同一套製程,可能因產品或產線不同而排出不同途程;而 10、20、30 這種工序號,就是把「順序」固定下來、又保留日後插入彈性的做法。
Siemens Opcenter 合作夥伴技術說明 在描述以 operation numbers 定序時寫道:
you can easily insert or remove operations without the need to redefine the parameters of previous or subsequent operations
Siemens Opcenter APS 入門文件 也說明:產品途程以 Operation Numbers 升序決定加工順序。
換句話說:若你的 MES 報工、機台參數、標準工時都綁在「工序 20 - 縫製」上,日後插入「25 - 抽檢」時,不必重設 20 和 30 的參數,這就是一開始就規劃好的彈性。
PLM 管「怎麼做」的結構;下達到 ERP 與 MES 時,工序號常成為對應欄位(整合的 key 欄位),若亂改代價會非常高。
PTC Windchill ESI 將 OperationSequenceNumber 映射到 Oracle 的 operation sequence;Windchill 與 SAP 對照 則映射到 SAP VORNR。
Dassault DELMIA Process Planning 較少寫死 10、20、30,但強調 operation sequences、precedence constraints 與製造系統平衡——PLM 層管「順序與約束」,ERP 則把這些約束用工序號實際寫入工單。
實務啟示:工序號一旦進了 ERP 工單與 MES 報工,就不是「顯示用流水號」而已,而是整合介面的契約。
從資料建模的角度看,10、20、30 的設計是為了避免「用流水號當工序 Primary Key(主鍵)」的老問題:
-- ❌ 連續編號(1, 2, 3):中間插入尺寸量測,縫製從工序 2 變成工序 3
-- 所有「已報工」與 BOM 領料紀錄指向的是舊的 step_no=2(縫製),
-- 現在全部得 UPDATE 成新的 step_no=3,才對得起來
UPDATE routing_step SET step_no = 3 WHERE step_no = 2 AND routing_id = 'RT-PKM-TAG-v3'; -- 縫製: 2 → 3
UPDATE wip_report SET step_no = 3 WHERE step_no = 2 AND routing_id = 'RT-PKM-TAG-v3'; -- 歷史報工同步改
UPDATE bom_component SET step_no = 3 WHERE step_no = 2 AND routing_id = 'RT-PKM-TAG-v3'; -- BOM 領料同步改
-- 改完還要確認有沒有其他表格也引用 step_no=2...
-- ✅ 間隔編號(10, 20, 30):直接新增工序 25(填充抽檢)
-- 20(縫製)和 30(掛吊牌)的 step_no 一個字也不用動
-- 歷史報工與 BOM 仍指向原本的 step_no=20,不會亂
INSERT INTO routing_step (routing_id, step_no, name)
VALUES ('RT-PKM-TAG-v3', 25, '填充抽檢');
-- 僅這一行,完成
這跟軟體工程裡的 Gap Numbering 同源:HTTP 狀態碼留 2xx、3xx 區段;版本號用 1.0、1.5、2.0 插入——用空間換日後改版的彈性。
回到和同事探討的產品規格:0401、0402、0405 讓 SA 設計 DB 時,同模組的設定碼有固定區段,日後加 0403 不會跟既有 0402 衝突,這跟途程 10、20、25 是同一套思路。
在導入 MES 與 ERP 規格時,建議跟顧問、IT 先把下面幾件事講清楚:
1. 自動編號規則可以改,也可以關掉
多數系統預設「新增一道工序,序號就加 10」。這裡可以改成加 5,也可以關掉自動編號、全部手動輸入(例如 SAP 設成 0000)。重點是:廠內先講好規則,不能有一半自動生成、另一半手 key。
2. 留間隔確保的是「途程主檔」,不是「歷史工單隨便改編號」
插入工序 25、不動 20 與 30,好處在以後新開的途程版次。若舊工單已經大量報工,還想把整廠工序號、批次一併改掉,這在 SAP 系統上就是個大工程。
3. 另有「工序代號 + 排序」的作法
部分新系統拆成 operation_code(當成穩定代號,例如: FILL、SEW)與 sequence(可調整的排序,例如 1.0、1.5、2.0)。10、20、30 是經典 ERP 思維,不是唯一正解;qcadoo MES 甚至允許工序「編號」用字串縮寫——取捨要跟舊 ERP 對接有多深。
不論你用的是哪一家 ERP 或 MES,途程上線前可以先對齊:
RT-PKM-TAG-v3)與 MES 現場途程,以哪邊為準?皮克敏案例裡,Kevin 加填充抽檢,其實就是第 2、3、4 的問題,編號留空保留彈性,後續在系統上維護才簡單。
若你正在規劃軟體產品或維護自家系統的工序主檔,建議一開始就採間隔編號(或 code + sequence 雙欄位),別等途程綁滿報工資料才後悔。
Oracle, Process Manufacturing Product Development User’s Guide — Routing Steps.
https://docs.oracle.com/cd/E18727_01/doc.121/e13091/T320995T321002.htm
Oracle, Item and Operation Sequence (Cloud SCM).
https://docs.oracle.com/en/cloud/saas/supply-chain-and-manufacturing/25b/fapim/item-and-operation-sequence.html
Microsoft, Routes and operations (Dynamics 365 Supply Chain Management).
https://learn.microsoft.com/en-us/dynamics365/supply-chain/production-control/routes-operations
SAP, Data Element DEL_VORNR — Increment for automatic operation/activity numbering.
https://www.sapdatasheet.org/abap/dtel/del_vornr.html
SAP Community, Assignment of Reference Operation set to routing.
https://community.sap.com/t5/enterprise-resource-planning-q-a/assignment-of-reference-operation-set-to-routing/qaq-p/3711079
Epicor User Help Forum, Method material numbers - 1, 2, 3 or 10, 20, 30?
https://www.epiusers.help/t/method-material-numbers-1-2-3-or-10-20-30/52014
SnIC Solutions, Order and Operation Relationships (Siemens Opcenter SC).
https://snicsolutions.com/knowledge/order-and-operation-relationships
Siemens Community, Opcenter APS Onboarding - Scheduling Data.
https://community.sw.siemens.com/s/article/Opcenter-APS-Onboarding-Data
PTC, Routing Operation Schema (Windchill ESI mapping to Oracle).
https://support.ptc.com/help/windchill/cloud/r12.0.2.0/de/Windchill_Help_Center/ESIORACLEXMLSchemasRoutingOp.html
PTC, ESISAPProcessPlans (Windchill to SAP VORNR mapping).
https://support.ptc.com/help/windchill_esi/r2026.0.0.0/en/windchill_esi/esi_users/ESISAPProcessPlans.html
Dassault Systèmes, DELMIA Process Planning Datasheet (PDF).
https://www.3ds.com/fileadmin/PRODUCTS-SERVICES/DELMIA/PDF/DM-12869-Process-Planning-Datasheet_HR.pdf
Infor, SyteLine Manufacturing User Guide (PDF,工單工序 10、20、30 範例).
https://docs.infor.com/csi/9.01.x/en-us/useradminlist/csbi_9.01.x_manufacturing_user_op_sl_en-us_50333.pdf
Pic - Microsoft, Routes and operations, Dynamics 365 Supply Chain Management.*