為什麼 ERP 系統途程編號是 10、20、30?聊聊工序間隔編號的設計邏輯

為什麼 ERP 系統途程編號是 10、20、30?聊聊工序間隔編號的設計邏輯

品保說要在「縫製」前加一道填充抽檢。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 系列,可以把這篇當成 數位報工 當中「途程站點定義」的設計原理補充。

目錄

  1. 這不是 ISO 規範,是業界慣例
  2. 一張表看懂:連續編號 vs 間隔編號
  3. 皮克敏絨毛娃娃案例:品檢工序怎麼插進去?
  4. 國際大廠 ERP 怎麼做?
  5. 延伸:資料庫視角
  6. 導入 MES 與 ERP 系統的例外狀況
  7. 系統上線前務必確認

這不是 ISO 規範,是業界慣例

先說在前面:沒有哪份 ISO 規範文件有記載「工序編號必須用 10、20、30」。若有人說認定「國際化標準設計」,建議觀念轉換一下:

這是業界通用的工程慣例(industry convention)——用 Sparse Numbering(稀疏整數)這種間隔編號(10、20、30,而非 1、2、3)保留插入空間。途程主檔日後要加新工序或改版時,舊的工序號不用改,已綁定的報工與 BOM(物料清單)也比較安全。

Microsoft D365 簡單途程:工序編號 10、20、30、40(來源:Microsoft Learn)

同事在討論產品規格時提議類似邏輯(例如 040104020405 來留間隔),其實跟途程的 102025同一個設計思維,只是套用在不同主檔:

對象編號範例要解決的問題
途程工序10、20、25、30中間插入品檢,不動 20、30
產品規格0401、0402、0405同模組新增設定項目,不衝突

一張表看懂:連續編號 vs 間隔編號

假設工單有 3 道工序:

不建議的設計(連續編號)好的設計(間隔編號)
工序 1:射出成型工序 10:射出成型
工序 2:去毛邊工序 20:去毛邊
工序 3:包裝工序 30:包裝

現在品管要求在「去毛邊」之後插入「尺寸量測」:

連續編號的麻煩:

  • 中間硬插一道製程時,編號可能變成 1、2、2.5、3,或只好把後面全部 +1(3 改 4、4 改 5…)
  • 一旦途程已經在現場使用,報工、BOM 領料、檢驗計畫都綁在舊工序號上,改號碼就要整批重對,很容易亂套,這改起來超麻煩 Q_____Q

間隔編號的做法:

  • 直接新增工序 25,順序為 10、20、25、30
  • 原有的 20、30 號碼不動;系統依數字大小排序,畫面自然呈現正確順序

同事白話說的「儲存時系統會自動重新排序」,我想完後認為更精確的說法是:顯示順序依序號欄位排序,與你建立的先後順序無關。所以你先建 30 再建 10,畫面上仍是先 10、再 30;日後插入 25,系統會把它排在 20 與 30 之間,通常不必人工調整「第幾筆」。

皮克敏絨毛娃娃案例:品檢工序怎麼插進去?

延續皮克敏吊飾途程(途程版本代號:RT-PKM-TAG-v3):

工序號站點說明
10填充聚酯纖維填充,每隻重量要符合標準(例如 35g ±2g)
20縫製三台縫機並行
30掛吊牌打印 + 手工掛牌

上線三個月後,客訴「填充不均」增多。生管 Kevin 與品保決定:在縫製前加一道填充抽檢

-生管 Kevin 在系統裡怎麼改?

品保與生管 Kevin 定案後,工程師在 ERP 更新途程版次 RT-PKM-TAG-v3(或 v4),新增一道工序:

項目內容
工序號25(插在 10 填充與 20 縫製之間)
站點名稱填充抽檢
製程防呆須完成工序 10;未抽檢合格不得進工序 20

接著還有幾筆內容要設定:

  1. BOM 領料:抽檢用治具、記錄表掛在工序 25,不必改工序 20 縫製的領料設定。
  2. 新工單 WO-06 起:現場途程變成 10 > 25 > 20 > 30(畫面上依序號排序)。
  3. 舊工單 WO-01:若上線前已報到「工序 20 縫製」,歷史紀錄仍是 20,不必整批重刷。
  4. 若當初途程是 1、2、3:縫製從「工序 2」變「工序 3」,已報工、BOM、檢驗計畫都要問「誰是 2、誰是 3」,這樣領班與 RD 得不斷地來回確認。

這就是間隔編號在製造現場的價值:不是為了好看,是為了讓途程「可以改」、「好修改」

回到前面提到的:生管 Kevin 問的「為什麼不能插 15 或 25」,答案不是 RD 偷懶,而是主檔一開始就要預留空間的編號;否則每一次加品檢,都可能變成改 BOM、改報工的大專案。

國際大廠 ERP 怎麼做?

我查了 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_VORNRIncrement for automatic operation/activity numberingDatasheet)。社群實務:it is possible to insert … even in between 10 and 20 as 11 to 19CommunitySAP 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 neededResequence 討論使用者論壇

-MES 與 APS:排序與插入彈性

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:工序號是跨系統的對應欄位

PLM 管「怎麼做」的結構;下達到 ERP 與 MES 時,工序號常成為對應欄位(整合的 key 欄位),若亂改代價會非常高。

PTC Windchill ESIOperationSequenceNumber 映射到 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 插入——用空間換日後改版的彈性

回到和同事探討的產品規格:040104020405 讓 SA 設計 DB 時,同模組的設定碼有固定區段,日後加 0403 不會跟既有 0402 衝突,這跟途程 10、20、25 是同一套思路。

導入 MES 與 ERP 系統的例外狀況

在導入 MES 與 ERP 規格時,建議跟顧問、IT 先把下面幾件事講清楚:

1. 自動編號規則可以改,也可以關掉

多數系統預設「新增一道工序,序號就加 10」。這裡可以改成加 5,也可以關掉自動編號、全部手動輸入(例如 SAP 設成 0000)。重點是:廠內先講好規則,不能有一半自動生成、另一半手 key。

2. 留間隔確保的是「途程主檔」,不是「歷史工單隨便改編號」

插入工序 25、不動 20 與 30,好處在以後新開的途程版次。若舊工單已經大量報工,還想把整廠工序號、批次一併改掉,這在 SAP 系統上就是個大工程。

3. 另有「工序代號 + 排序」的作法

部分新系統拆成 operation_code(當成穩定代號,例如: FILLSEW)與 sequence(可調整的排序,例如 1.0、1.5、2.0)。10、20、30 是經典 ERP 思維,不是唯一正解;qcadoo MES 甚至允許工序「編號」用字串縮寫——取捨要跟舊 ERP 對接有多深。

系統上線前務必確認

不論你用的是哪一家 ERP 或 MES,途程上線前可以先對齊:

  1. 工序編號:用 10、20、30 間隔,還是 1、2、3 連號?
  2. 加新工序時:舊工單歷史要不要保留原本的工序號?那新工單走新版途程嗎?
  3. BOM 領料:綁的是「工序號」還是「站點名稱」?加 25 時要改 20 的設定嗎?
  4. MES 報工:掃碼刷編號時 Primary Key(主鍵)是工單 + 工序號,還是另有站點代號?
  5. 版次以誰為主:ERP 下發的途程版次(如 RT-PKM-TAG-v3)與 MES 現場途程,以哪邊為準?

皮克敏案例裡,Kevin 加填充抽檢,其實就是第 2、3、4 的問題,編號留空保留彈性,後續在系統上維護才簡單。

若你正在規劃軟體產品或維護自家系統的工序主檔,建議一開始就採間隔編號(或 code + sequence 雙欄位),別等途程綁滿報工資料才後悔。

Ref

  1. Oracle, Process Manufacturing Product Development User’s Guide — Routing Steps.
    https://docs.oracle.com/cd/E18727_01/doc.121/e13091/T320995T321002.htm

  2. 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

  3. Microsoft, Routes and operations (Dynamics 365 Supply Chain Management).
    https://learn.microsoft.com/en-us/dynamics365/supply-chain/production-control/routes-operations

  4. SAP, Data Element DEL_VORNR — Increment for automatic operation/activity numbering.
    https://www.sapdatasheet.org/abap/dtel/del_vornr.html

  5. 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

  6. 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

  7. SnIC Solutions, Order and Operation Relationships (Siemens Opcenter SC).
    https://snicsolutions.com/knowledge/order-and-operation-relationships

  8. Siemens Community, Opcenter APS Onboarding - Scheduling Data.
    https://community.sw.siemens.com/s/article/Opcenter-APS-Onboarding-Data

  9. 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

  10. 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

  11. Dassault Systèmes, DELMIA Process Planning Datasheet (PDF).
    https://www.3ds.com/fileadmin/PRODUCTS-SERVICES/DELMIA/PDF/DM-12869-Process-Planning-Datasheet_HR.pdf

  12. 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

  13. Pic - Microsoft, Routes and operations, Dynamics 365 Supply Chain Management.*

  14. Cover Pic

comments powered by Disqus