批次工作排程產生是指透過一組輸入即可產出完整的逐日人力配置計畫,而非以人工方式逐項指派每個任務。在 SAP HR 中,這個詞涵蓋透過交易代碼 PT01 建立工作排程,以及執行以規則為基礎的批次產生程式,將週期工作排程、國定假日行事曆、平均每週工作日數、每月工時、年度工時與員工資料同時套用於許多員工。「批次」這個部分正是節省時間的關鍵:系統並非每天逐一將姓名填入個別儲存格,而是依據一份名冊、一個起始日期與一個日期區間來填滿整張表。從外部來看,輸入的格式很簡單——一份員工清單、一份班別名稱清單、一個起始日期與一個天數。從內部來看,SAP HR 引擎會疊加工作排程規則、國定假日與合約工時政策。瀏覽器版的產生器雖然規模小得多,但採用相同的四項輸入格式與相同目標:把一份名冊轉換成逐日指派,而無需手動編輯每個儲存格。

批次工作排程產生在 HR 系統中的意義
在 SAP HR 內部,工作排程產生建構在一個設定樹之上:工作排程規則、週期工作排程、每日工作排程,以及指派給每位員工的員工資料。系統以批次方式執行時,會讀取該設定、套用目前生效的國定假日行事曆,並將逐日的預計工作時間寫回考勤管理叢集。PT01、工作排程產生器,以及考勤計算中的重新產生程式等工具,都共享這種批次哲學——一組輸入、許多逐日的輸出。
同樣的哲學也出現在 SAP HR 之外。當某個團隊需要為一週或一個月快速產生第一版的輪班表時,可以把同樣的四項輸入交給瀏覽器工具,立即在頁面上得到一張透明可檢視的表格,方便檢閱與下載。瀏覽器版本省略了 SAP 設定堆疊,但仍保留了批次習慣:透過一組輸入產出多列,絕不手動將人員複製到儲存格。
在瀏覽器中產生批次排程
Shift Schedule Generator 正好接受這四項輸入,並產生完整的逐日表格加上 CSV 下載。當團隊需要透明的輪替而非隱藏的最佳化模型,且檢閱者希望在套用真正的勞動力規則之前逐列檢視每列結果時,它便是設計來快速產生第一版草稿的工具。
已驗證的輸入限制如下:
- 2 到 50 個不重複的員工姓名,每行一個姓名,會去除前後空白且上限為 60 個字元,若以不分大小寫方式比對重複則會拒絕(因此 "Alex" 和 "alex" 不能同時出現)
- 1 到 4 個班別名稱,每行一個班別,同樣會去除前後空白並限制長度
- 起始日期必須是 YYYY-MM-DD 格式,且介於 2000-01-01 與 2099-12-31 之間,能通過 UTC 來回轉換,因此像 2023-02-29 或 2026-04-31 這類不合法的值會在建置任何列之前就被拒絕
- 日期區間為 1 到 31 天,日期以完整的 UTC 日推進,因此本地時間的日光節約轉換不會造成顯示日期的跳號或重複
員工數必須至少等於班別數,這可避免產生器將同一人指派到同日的兩個不同班別。
建立輪替式草稿
以下的操作說明直接對應到產生器三個已驗證的執行步驟。
- 輸入員工與班別。在員工輸入框中,每行輸入至少兩個不重複的員工姓名;在班別輸入框中,每行輸入 1 到 4 個班別名稱。每一行會在輸入時自動去除前後空白。
- 選擇起始日期與日期區間。使用 YYYY-MM-DD 格式,例如 2026-03-02,並選擇介於 1 到 31 之間的天數。頁面會根據實際的 UTC 行事曆驗證日期,因此不合法的值會在建置任何列之前就被拒絕。
- 產生排程。點選產生動作。工具會依日期順序、接著依輸入時的班別順序走訪每一個時段,並以輪替方式指派下一位員工。之後若編輯任何輸入,舊的結果會被清除。
- 檢視每一筆逐日指派與總計。在頁面上檢查表格。每一列會顯示日期、班別與指派的員工。頁尾會統計每位員工的指派次數,方便一眼判斷是否平衡。
- 下載 CSV。CSV 使用 Date、Shift 與 Employee 為欄位標頭,每個儲存格都會加上引號,內嵌的引號則會以雙引號表示。編輯輸入會清除先前的下載。
- 在工具外部套用真實的規則。在另一套人力資源系統中,為草稿疊加可用性、資格、休息、休息間隔、工時上限以及任何法律或工會規定,再行發布。
輪替指派規則
班別會依日期順序、接著依輸入時的確切順序進行走訪。每一個接續的時段會移至下一位員工,到清單尾端時再繞回第一位員工。以三位員工與每日兩個班別為例,頁面上可看到的指派順序為 Alice、Bob、Cara、Alice、Bob、Cara,依此類推。這可確保指派總數在整個產生區間內的差距不超過一,這就是最簡單形式的平衡輪替。
每個時段實際使用的公式為 (dayIndex × shiftCount + shiftIndexWithinDay) 模 employeeCount,其中 dayIndex 在所選起始日期從 0 開始,shiftIndexWithinDay 則從第一個輸入的班別起算為 0。以三位員工(Alice、Bob、Cara)與兩個班別為例逐步推演:
- 第 0 天,第 0 個班別:(0 × 2 + 0) 模 3 = 0 → Alice
- 第 0 天,第 1 個班別:(0 × 2 + 1) 模 3 = 1 → Bob
- 第 1 天,第 0 個班別:(1 × 2 + 0) 模 3 = 2 → Cara
- 第 1 天,第 1 個班別:(1 × 2 + 1) 模 3 = 0 → Alice
再次執行同一組已驗證的輸入會產生相同的列,這使得結果易於檢閱與重現。在匯出 CSV 之前,會先拒絕控制字元與試算表公式前綴,因此下載的檔案在開啟時不會意外地被當作公式執行。
瀏覽器版草稿與 SAP HR 的差異
在開啟產生器之前,先透過簡短的比較來建立合理的預期。
| 面向 | SAP HR 工作排程產生 | Shift Schedule Generator |
|---|---|---|
| 輸入格式 | 工作排程規則、週期工作排程、每日工作排程、假日行事曆、員工資料 | 員工、班別、起始日期、天數區間 |
| 執行位置 | 於 SAP HR 伺服器與用戶端內 | 於目前的瀏覽器分頁內 |
| 法規與勞動規則 | 由引擎依設定套用 | 不套用;草稿刻意保留為原始狀態 |
| 確定性 | 取決於規則解析與目前生效的行事曆 | 同樣的已驗證輸入必定產生相同的表格 |
| 輸出規模 | 涵蓋任意時間範圍的完整企業人力 | 最多 31 天、4 個班別、50 位員工 |
| 匯出 | 叢集表、B2 表、回寫至 PA 的整合 | 可見列的 CSV 下載 |
| 資料位置 | 儲存於 SAP HR 資料庫 | 保留在瀏覽器分頁中,不會上傳 |
這兩套工具並不能互相替代。瀏覽器版的產生器是針對小型名冊的快速、透明的第一版草稿;SAP HR 則仍是實際工作排程的系統主檔。
將草稿轉為合規的輪班表
僅有指派次數平衡,並不足以證明一份輪班表是安全、在所有相關意義上公平、合法、人力充足,或適用於特定的工作場所。請將 CSV 視為草稿,並補上產生器刻意省略的各個層面:
- 可用性與請假。標記每位無法值勤已顯示指派的員工,並在試算表或專用的人力資源系統中重新指派該列。
- 資格與證照。確認每個班別都至少有具備該角色所需證照的員工。
- 休息、交接與休息間隔。插入未計薪的休息、班別交接與必要的休息空檔,避免連續的工作模式違反當地規定。
- 人力成本與加班上限。加總每位員工的工時,確認沒有任何人超出加班或合約工時上限。
- 工會、無障礙與司法管轄區規定。在系統主檔中套用任何團體協約、年資、特殊需求或地區性規定。
對於同時需要管理長時間輪班中休息的讀者,休息提醒指南說明了如何將這些間隔的時間設定與輪班表本身分開處理。
可重現性與本機處理
所有姓名與排程運算都保留在目前的瀏覽器分頁中。產生器絕不會上傳員工清單、將其儲存在帳號中,或將其傳送至排程服務。編輯任何輸入都會清除舊的結果,且暫存的下載網址會在 CSV 儲存後或頁面關閉時撤銷,因此舊的檔案無法假冒為符合新輸入的結果。
這個受限的契約是可見且可測試的:驗證有界且不重複的輸入、確認實際的 UTC 起始日期、以輪替順序填滿每個時段、讓每位員工的指派總數差距不超過一、完整顯示所有結果而不截斷,並將完全相同的列以安全加引號的方式匯出為 CSV。任何超出該契約的部分——國定假日、平均每週工作日數、每月工時、年度工時、年資、合約工時、疲勞風險、無障礙需求,以及司法管轄區特有的勞動規則——皆屬於消費這份草稿之系統的責任。若有人無法值勤已顯示的指派,請編輯下載的試算表,或將該列移轉至具備必要限制條件的專用人力資源系統;產生器絕不會默默地宣稱一個簡單的輪替就解決了這些現實需求。
若您正在權衡各種選項,休息提醒:設定適合自己的排程對此有詳細說明。