批次排班表生成是一種從一組輸入產生完整帶日期的人力配置計畫的程序,而不是手工起草每一個指派。在 SAP HR 中,這個術語涵蓋透過交易代碼 PT01 建立排班表,以及執行基於規則的生成程式,將週期性排班、公眾假日行事曆、平均每週工作日數、每月工時、年度工時以及人事資料一次套用至許多員工。「批次」這個部分正是節省時間的關鍵:系統不是將姓名逐一填入每一天的個別儲存格,而是從一份名冊、一個起始日期和一個日期範圍來填滿表格。從外部來看,輸入的形態很簡單——一份員工清單、一份班別名稱清單、一個起始日期,以及一個天數。從內部來看,SAP HR 引擎會分層套入排班表規則、公眾假日以及合約工時政策。以瀏覽器為基礎的生成工具運作規模小得多,但它採用同樣的四項輸入形態和同樣的目標:把一份名冊轉換為帶日期的指派,而不必手動編輯每一個儲存格。

批次排班表生成在人力資源系統中的意義
在 SAP HR 內部,排班表生成建立在一個設定樹之上:排班表規則、週期性排班、每日排班表,以及指派給每位員工的人事資料。當系統以批次方式執行時,它會讀取該設定、套用目前生效的公眾假日行事曆,並把帶日期的預計工作時間寫回時間管理叢集。PT01、排班表生成器,以及時間評估中的重新生成程式都共享這種批次理念——一組輸入,多項帶日期的輸出。
相同的理念也出現在 SAP HR 之外。一個需要快速取得一週或一個月第一版輪值表的團隊,可以將同樣的四項輸入交給瀏覽器工具,在頁面上取得一份透明的表格,便於檢視與下載。瀏覽器版本省略了 SAP 設定堆疊,但保留了批次習慣:從一組輸入產生多列,絕不手動將人員複製到儲存格中。
在瀏覽器中生成批次排班表
班別排班表生成器正好接受這四項輸入,並產生一份完整的帶日期表格以及 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 日向前推進,因此當地的日光節約時間轉換不會略過或重複顯示的日期
員工數必須至少等於班別數,以防止生成器在同一日期將同一人指派到兩個不同的班別。
建立輪替式草稿
以下的操作說明直接對應生成器的三個已驗證運作步驟。
- 輸入員工與班別。在員工方塊中,每行輸入至少兩個不重複的員工姓名。在班別方塊中,每行輸入一至四個班別名稱。每一行在輸入時會去除前後空白。
- 選擇起始日期與範圍。使用 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) mod 3 = 0 → Alice
- 第 0 天,第 1 個班別:(0 × 2 + 1) mod 3 = 1 → Bob
- 第 1 天,第 0 個班別:(1 × 2 + 0) mod 3 = 2 → Cara
- 第 1 天,第 1 個班別:(1 × 2 + 1) mod 3 = 0 → Alice
再次以同樣的已驗證輸入執行會產生相同的列,這使得結果易於檢視與重現。控制字元與試算表公式前置字元會在 CSV 匯出前被拒絕,因此下載的檔案在開啟時不會意外地以公式形式執行。
瀏覽器草稿與 SAP HR 的差異
在開啟生成器之前,簡短的比較有助於設定預期。
| 面向 | SAP HR 排班表生成 | 班別排班表生成器 |
|---|---|---|
| 輸入形態 | 排班表規則、週期性排班、每日排班表、假日行事曆、人事資料 | 員工、班別、起始日期、天數範圍 |
| 執行位置 | SAP HR 伺服器與用戶端內部 | 當前的瀏覽器分頁內部 |
| 法規與勞動規則 | 由引擎依設定套用 | 未套用;草稿刻意保持原始 |
| 確定性 | 取決於規則解析與生效中的行事曆 | 相同的已驗證輸入必定產生相同的表格 |
| 輸出規模 | 橫跨任意時間範圍的完整企業人力 | 最多 31 天、4 個班別、50 位員工 |
| 匯出 | 叢集表格、B2 表格、回傳至 PA 的整合 | 可見列的 CSV 下載 |
| 資料位置 | 儲存於 SAP HR 資料庫 | 停留在瀏覽器分頁;不會上傳 |
這兩種工具不可互換。瀏覽器生成器適用於小型名冊的快速、透明的第一版草稿。SAP HR 仍然是實際排班表的系統紀錄來源。
將草稿轉為合規的輪值表
僅有平衡的指派計數並不足以證明一份輪值表是安全、在所有相關層面公平、合法、人力充足或適合特定工作場所的。請將 CSV 視為草稿,並加入生成器刻意省略的各個層面:
- 可用性與請假。標記每位無法值守所顯示指派人員,並在試算表或專用的人力系統中重新指派該列。
- 資格與證照。確認每個班別至少有一名具備該角色所需證照的人員。
- 休息、交班與輪班間隔。插入未支薪的休息時間、班別交接以及強制性的休息間隔,以免連續的工作模式違反當地規定。
- 勞動成本與加班上限。計算每位員工的工時,並確認無人超出加班或合約工時上限。
- 工會、無障礙與司法管轄區規則。在系統紀錄中套用任何團體協約、資深優先、職務調整或地區性規則。
對於同時管理長時間輪班中休息的讀者,休息提醒指南說明瞭如何將這些間隔的時機與輪值表本身分開處理。
可重現性與本機處理
所有姓名與排班計算都停留在當前的瀏覽器分頁中。生成器絕不會上傳員工清單、將其儲存於帳戶中,或傳送至排班服務。編輯任何輸入會清除舊的結果,而 CSV 下載的暫存網址會在儲存後或分頁關閉時撤銷,因此不會有過時檔案看似符合較新的輸入。
這個有限的合約是可見且可測試的:驗證有界限且不重複的輸入、檢查真實的 UTC 起始日期、以輪替方式填滿每個時段、讓指派總數保持在一以內、不經截斷地顯示完整結果,並將這些列以安全加引號的 CSV 精確匯出。任何超出此合約的範圍——公眾假日、平均每週工作日數、每月工時、年度工時、資深順序、合約工時、疲勞風險、無障礙需求,以及特定司法管轄區的勞動規則——皆屬於使用該草稿之系統的責任。若有人無法值守所顯示的指派,請編輯下載的工作表,或將該列移轉至具備必要限制條件的專用人力系統;生成器絕不會靜默地聲稱一次簡單的輪替已解決這些現實世界的需求。