章節 批次作業

操作章節 09

批次作業

對成百上千筆資料做同一件事:匯出清單、對選取的列執行操作,以及從試算表匯入。

更新日期

Merak 每一個清單頁面都共用同一套批次引擎,所以這一章學會的東西在各處都適用。這裡是參考章節;各功能章節只會標註它與這裡不同的地方。

這一章能幫你完成什麼

  • 身為管理員,我想匯出我篩選出來的清單,以便離線分析或封存。
  • 身為管理員,我想挑出特定的列並一次處理完,讓重複的工作變成一個動作。
  • 身為管理員,我想用試算表一次建立大量資料,讓新增一個部門不必打一整天字。
  • 身為管理員,我想用試算表一次更新大量既有資料,讓大量調整變成一個檔案,而不是一百次編輯。
  • 身為管理員,我想清楚看到每一列實際送出了什麼,才能證明改了什麼。

1. 各頁面支援的能力

頁面匯出批次操作匯入
成員停用 · 啟用 · 解鎖 · 刪除(有強制刪除退路)
應用程式啟用 · 停用 · 刪除
組織刪除
使用者停用 · 啟用 · 解鎖 · 刪除
角色刪除(系統角色除外)
稽核日誌—(唯讀)
連線日誌—(唯讀)
審批核准 · 駁回
Merak Node—(不支援多選)

審批刻意不提供匯出。 它的每一列帶的是申請內容,不是表格化的紀錄。


2. 匯出

2.1 匯出符合篩選條件的全部資料

  1. 點開工具列的 匯出 按鈕(與 篩選重新整理 放在一起)。
  2. 對話框會確認這次匯出依照你 目前的篩選條件,並在已知時顯示總筆數。
  3. 確認。

接著會發生的事:

  • 這個工作會加入 所有瀏覽器分頁共用的佇列。若兩個分頁同時匯出,一個執行、另一個顯示「排隊中」——伺服器不會被要求重複抓同樣的頁。
  • 每次取 200 筆
  • 第一頁回來之前,進度是不確定狀態;之後顯示 已取得/總數
  • 結果以 UTF-8 含 BOM 的 CSV 下載,Excel 開啟中文才不會亂碼。

檔名格式為 <領域>-YYYY-MM-DD.csv,例如 members-2026-09-03.csvroles-2026-09-03.csvaudit-logs-2026-09-03.csv

2.2 只匯出你挑選的列

  1. 勾選要的列。
  2. 打開 檢視所選(N)
  3. 點選 匯出所選

檔案是 直接以畫面上既有的資料在本機寫成 的——不會送出請求——檔名為 <領域>-selection-YYYY-MM-DD.csv

所選匯出只帶基本欄位。 描述多對多關聯的欄位——成員的應用程式、使用者的角色、角色的權限——每一列都需要額外抓一次資料,而被選取的列只是一份快照。需要那些欄位時,請用完整匯出。

2.3 關聯欄位與它們的權限

部分匯出會逐列組出關聯欄位,多個值之間以 ; 串接:

匯出關聯欄位需要的權限沒有時
使用者角色role:R整個欄位不會出現。
角色權限permission:R整個欄位不會出現。
組織成員、應用程式member:R / application:R該欄位不會出現。

你沒有權限讀的欄位,Merak 不會替你去抓資料。

2.4 匯出的權限

匯出以 該頁面自身的讀取權限 為準——能打開清單,就能匯出它。沒有更嚴格的關卡。


3. 選取列並執行操作

3.1 選取

  • 每個支援批次操作的清單,每一列前面都有 核取方塊欄
  • 標題列的核取方塊 涵蓋目前這一頁,並顯示三種狀態:全選、部分、未選。
  • 在同一次搜尋條件下,選取狀態 在翻頁與重新排序時都會保留
  • 執行新的搜尋時會清空(送出篩選或重設)。背景重新整理 不會 清空。

3.2 選取模式的工具列

只要勾選了任何一列,工具列原本的按鈕(篩選、重新整理、匯出、匯入、建立)就會換成兩個:

  • 全部清除
  • 檢視所選(N)

3.3 檢視所選對話框

它以瀏覽器中既有的快照,顯示你確切挑了哪些列——不會再送出請求。你可以逐筆移除;清空後對話框會關閉。

對話框底部是可用的批次操作,以及 匯出所選

3.4 一個操作何時才可用

批次操作只有在 兩件事都成立 時才會啟用:

  1. 你持有該操作的權限,而且
  2. 所選的每一列都符合它的前提條件。

若只有部分符合,按鈕會顯示 M/N 筆符合,並提供 只保留符合的——一鍵修剪選擇,操作即可執行。你完全沒有權限的操作,根本不會顯示。

實際的前提條件:

操作前提條件
停用(成員/使用者)每一列都是啟用中
啟用每一列都是未啟用
解鎖每一列都是已鎖定
刪除(成員/使用者)每一列都是未啟用/待處理/已鎖定
刪除(應用程式)每一列都是未啟用
刪除(角色)每一列都 不是 系統角色
核准/駁回每一列都是待審批

角色是 事先isSystem 過濾的,而不是讓每個系統角色一筆一筆去撞伺服器再失敗——你在執行前就知道,而不是執行後才知道。

3.5 執行操作

系統會以受限的併發數逐列處理。單筆失敗絕不會中止整個批次。 結束時:

結果你會看到
全部成功成功通知;對話框關閉;選取清空。
部分失敗對話框保持開啟,顯示成功與失敗數量,以及 每一筆失敗的原因。成功的列會自動從選取中移除,只留下失敗的讓你重試。

多個分頁的批次工作,與匯出走同一個共用佇列。


3.6 強制刪除

只有 成員 在「資料仍在使用中」而刪除被拒時,提供強制刪除的退路。應用程式、組織、角色與使用者都沒有——那裡刪除失敗就是失敗,必須自己先清掉相依關係。


4. 匯入

匯入有自己的全頁工作區,從清單工具列的 匯入 按鈕進入。它需要該資源的 建立 權限(C),修改模式則需要 修改 權限(U)。

路徑: /<資源>/import,例如 /member/import/role/import。頁首帶有返回箭頭與回到清單的麵包屑。

4.1 兩種模式

模式用途需要
建立建立新資料。<資源>:C
修改更新既有資料。<資源>:U

兩種權限都有時,畫面會出現模式切換;所選模式會寫進網址,因此重新整理或分享連結都能保持。只有其中一種權限時,就直接使用那個模式、不顯示切換。兩種都沒有 時才會把你送回清單。

4.2 流程

下載範本 → 填寫 → 上傳 → 解析與驗證
      → 預覽與修正 → 送出 → 逐列結果報告

步驟一——下載範本

範本是 CSV(UTF-8 含 BOM),標題已在地化,並帶有 數列範例,內容由你真實的資料與目前的語言組成:

  • 列舉欄位使用在地化的標籤。
  • 關聯欄位列出租戶裡 真實存在的名稱——角色的權限欄還會 只列出你有資格授予的。因此範例列可以原樣再匯入回去。
  • 範例列涵蓋各欄位的值域:每一種狀態、開關的兩種位置、零到三個關聯項目。

修改 模式下,範本改為預先填入 隨機抽樣的 1–10 筆既有資料 與所有可編輯欄位,讓修改變成一個小差異,而不是重打一遍。檔名為 <領域>-create-template.csv<領域>-edit-template.csv

若沒有東西可以抽樣,Merak 會請你先建立一筆資料,而不是給你一個空檔案。

步驟二——上傳

三種方式:選擇檔案拖放,或 直接從試算表貼上。解析在背景執行緒進行並逐列串流,因此頁面保持可操作:先是「解析 X 列中…」,接著是確定進度的「驗證 X / Y」。

拖放區下方有一個 欄位說明 面板,解釋每一個欄位:哪些必填、列舉欄位接受什麼、開關欄位有哪些字算開/關、多值怎麼寫,以及——關於關聯欄位——名稱必須與主控台完全一致。

上限為 500 列。 超過會擋下送出,並請你拆檔。

步驟三——解析與驗證

驗證分成兩層。

列舉欄位(狀態、通訊協定類型)接受 在地化文字。先做精確比對,再做模糊比對——容許拼音與少量錯字——兩者都不成立才報錯。

布林欄位 接受中英文的廣泛詞彙。所有布林欄位都認得這組共用字彙:

意義可接受的字詞
true1yesyonenableenabled開啟啟用打開啟動
false0nonoffdisabledisabled關閉停用停止

個別欄位還可以額外加上自己的字彙。例如成員匯入的 強制 MFA 欄位,開的部分另外接受 enforceenforcedrequiredmandatory強制要求必須;關的部分另外接受 optionalnot required不強制非必要——這些是該欄位專有的,不屬於共用字彙。

你檔案裡用的字,與主控台目前的顯示語言無關。

關聯欄位(使用者的角色、角色的權限、組織的成員與應用程式)每一筆可以有多個值——重複標題欄,或在同一格內以 ; 分隔。每個值都是 名稱,採 精確比對;這裡刻意 使用模糊比對,避免差一點的名稱把你綁到錯的角色或錯的權限上。同一格內的重複值會自動去重;比對不到任何東西的名稱則是錯誤。

接著是 列層級規則,套用一般的欄位驗證——名稱長度、電子郵件格式、描述長度等等。

步驟四——錯誤與警告

兩種嚴重程度,行為不同。

嚴重程度標記是否阻擋送出
錯誤(硬)紅色儲存格、錯誤訊息
警告(軟)琥珀色圓點、行內提示

刻意只當成警告的情況:

  • 顯示名稱重複。 後端允許兩個人同名,因為兩個人真的可能同名。該列仍然有效,會被計入「N 列有提示」。
  • 修改模式下 兩列對應到同一筆既有資料。每一列都會標註「第 N 列也會更新這筆資料」——後送出的那筆生效。兩列各自編輯同一筆資料的不同欄位,是合理的用法。

屬於硬錯誤的情況:

  • 無法解析的列舉、布林或關聯值。
  • 欄位規則不通過。
  • 非法的狀態轉換。 狀態欄位背後有一台狀態機,預覽的狀態下拉只提供得到的值。匯入不能變成繞過生命週期的後門。

步驟五——預覽與修正

預覽是所有列的虛擬化清單,帶有有效、無效與自動修正的數量統計,以及 只顯示錯誤 的切換。

欄位類型編輯器
列舉有效值的下拉選單。
布林帶標籤的開關。
關聯多選,並在輸入時做伺服器端搜尋。已選項目以標籤呈現;解析不到的名稱會是 紅色標籤
文字行內文字欄位。

你也可以:

  • 把某個值套用到所有原本值相同的列
  • 手動新增一列,不必回去改 CSV。建立模式下,新列會以輪替的範例資料預填(避免多個新列互相衝突);修改模式下則留白,因為修改列的目的是 定位 一筆既有資料,不是憑空生一筆。
  • 附加第二個檔案。 把另一份 CSV 拖到預覽區——或使用 附加匯入檔案——會把它的列 合併 進這批,而不是取代。依部門或站點拆開的來源資料,不必先手動合併。附加的檔案會在剩餘列數額度內解析;超過會提示,而不是默默截斷;已經滿 500 列的批次會直接拒絕。若附加檔案解析失敗,只有那個檔案不會進來——預覽與你既有的列完全不受影響。
  • 刪除列。

步驟六——定位資料(僅修改模式)

修改模式的每一列,都必須先對應到一筆既有資料才能送出。

  • 比對順序 依資源而異:先 ID、再電子郵件、再名稱(使用者與成員);先 ID、再名稱(角色與組織)。
  • 鍵值過期不會讓該列走進死路——編輯任何一個可比對的欄位就能重新定位。
  • 名稱重複 會被標為模糊,透過自動完成解決。
  • 比對不到 的列會以唯讀顯示匯入的值,並開放可比對的欄位供編輯;名稱、電子郵件或 ID 上的防彈跳自動完成,一旦解析到恰好一筆資料就會把該列釘住。
  • 撤銷比對 會在不動資料的情況下解除釘選。該列回到未比對狀態,可比對欄位重新開放,並退出這次送出。撤銷期間刻意 重跑比對——否則它會立刻又把你剛剛否決的那筆釘回來。編輯任一比對鍵會解除撤銷並重新定位;重新比對 則可隨時手動觸發。

步驟七——修改模式實際送出什麼

只有與現值不同、而且非空白的欄位會被送出。 空白儲存格的意思是「別動這個」,永遠不是「把它清空」。若某欄位可以刻意清空,請用 \N(例如組織或角色的描述)。

兩個值得知道的安全立場:

  • 修改模式下,狀態與強制 MFA 欄位沒有預設值。 空白儲存格會被略過,絕不套用。匯入不會默默把帳號改成待處理,也不會默默關掉 MFA 強制。
  • 關聯欄位在修改模式下不會出現。 集合式的同步目前尚未提供——請使用該筆資料自己的編輯畫面。

步驟八——送出

每一列以受限的併發數個別送出,失敗的列不會擋住其他列

當一列同時建立資料 它的關聯時,組合規則各有不同:

匯入關聯寫入失敗時
使用者整列失敗。 一個沒有預期角色的使用者,不是有用的結果。
角色該列仍算成功。 只有角色本體建立失敗才會讓該列失敗。
組織關聯失敗可容忍;只有組織本體失敗才會讓該列失敗。

步驟九——結果報告

完成畫面是一份 逐列報告,不是兩個數字:

  • 列號、資料,以及成功或失敗原因。
  • 失敗的列排在最前面。
  • 檢視送出的資料 可展開該列實際送出的內容。修改模式下以 舊值 → 新值 呈現,並附上該筆資料詳細頁的連結。建立模式下拿不到新資料的 ID,因此直接省略連結欄,而不是留一個空白。
  • 下載失敗列 會產生一份只含失敗列的 CSV,可以修好之後直接再匯入。
  • 返回 回到清單。

多個分頁同時進行的匯入,會與匯出、批次操作共用同一個佇列依序執行。


5. 清單的個人化設定

有兩項清單設定存在你的瀏覽器裡,並會出現在 偏好設定 中。

5.1 欄位設定

表格操作欄標題上的齒輪會開啟一個對話框,可勾選欄位顯示或隱藏,並拖曳調整順序。列號欄(永遠第一)與操作欄(永遠最後)是固定的。

此設定依瀏覽器保存,登出後仍在。重設為預設 可以逐表執行,在這裡或在偏好設定都可以。

5.2 預設篩選

在篩選面板中,存為預設 會把面板上目前顯示的條件——包含還沒送出的——存在這台機器上,並在分頁之間同步。

  • 下次你在 網址不帶任何篩選參數 的情況下開啟清單,就會自動套用預設並展開面板。
  • 網址上已經帶條件時一律以網址為準,因此明確的查詢或分享出去的連結絕不會被覆蓋。
  • 自動套用 每次造訪只會發生一次
  • 清除預設 可從面板或偏好設定移除它。

6. 權限總表

工作權限
匯出清單該清單的讀取權限
匯出中的關聯欄位該關聯的讀取權限(否則整欄不出現)
批次操作與單列操作相同的權限
進入並送出匯入<資源>:C(建立)/<資源>:U(修改)
匯入關聯欄位該關聯的讀取權限

接下來