如何由 CSV 建立組織圖

如何把一份 HRIS 的 CSV 匯出檔變成一張匯報線的圖:把 employee_id 與 manager_id 解析成列號、把主管欄所指的方向掉轉,並處理孤兒列與循環。

運作方式

  1. 匯出路由所依賴的那幾個欄

    你需要 employee_id、manager_id,以及每個人一個讀得出的姓名。加上職銜、成本中心、審批權限與任何代理人欄,因為那些才是決定一份申請爬到哪裡停下來的東西。凡是這張圖永遠不會顯示的都不要——薪酬、地址、入職日期——因為一個窄一些的檔案用肉眼檢查容易得多,而一個不獲認得的欄無論如何都會在貼上時被帶過並忽略。

  2. 在試算表之前先把檔案當文字讀一次

    先用文字編輯器打開這份匯出檔。檢查分隔符是逗號而不是分號、含有逗號的姓名有用雙引號包起、檔案是 UTF-8 好讓帶重音的姓名活下來,以及第一個標題真的是 employee_id 而不是一個位元組順序標記後面跟著 employee_id。這幾項每一項都會安靜地失敗:欄是按標題名稱比對的,所以一個不完全等於你所以為那樣的標題,甚麼都比對不上。

  3. 決定你在建的是那兩張圖裡的哪一張

    一個人一個方框、按誰向誰匯報排列的是一棵樹,屬於組織圖編輯器。一份申請穿過匯報線所走的路徑是一張流程圖,屬於這裡:一個步驟一列而不是一個人一列,由匯出檔提供那些層級、權限與代理人。在你開始為列編號之前先決定這件事,因為那兩個形狀互相轉換不了。

  4. 把 manager_id 反轉成列號

    先把那些列排成你想要編號的次序,因為「連線至」引用的是位置,事後重新編號會把一切重新接線。然後,對每一個人,把所有 manager_id 等於這個人 employee_id 的那些列的列號收集起來,以逗號分隔放進這個人的「連線至」。下屬變成向外的箭嘴;manager_id 只是那個查找鍵,永遠不會被貼進「連線至」本身。

  5. 在檔案裡解決孤兒列與循環

    按 manager_id 排序,確認每一個值都在同一個檔案裡的某處作為一個 employee_id 出現過。做不到的就是孤兒,通常是因為這份匯出檔的範圍限定在一個部門、或者只限在職員工。然後把每一條鏈往上走一次,一旦重訪到同一列就停下來:一對互相指名對方的列就是一個循環,它要麼是一個無人結案的署任安排,要麼是兩列在同一日被不同的人編輯過。

  6. 把它貼進去,然後加形狀與泳道

    把 .csv 拖到一張新圖表的試算表區域,或者把 CSV 文字貼進去。把提出問題那些列的「形狀」設為 Decision,把終止符設為 Start、Success 與 Reject,把答案按與「連線至」數字相同的次序放進「連線文字」,再把權限層級放進「橫向泳道」欄,令匯報線的每一級都有自己的一條泳道。

常見問題

QueryChart 可以直接匯入一個組織圖 CSV 嗎?

你可以把 .csv 拖到試算表區域、或者把 CSV 文字貼進去,把那些列弄進來,而欄是按標題名稱而不是按位置比對的,所以它們坐在甚麼次序都無關緊要,任何不獲認得的東西都會被帶過並忽略。它不會做的,是替你推斷出一個層級:沒有匯入精靈、沒有欄位對應畫面,也沒有連到人力資源系統的連接器。這個檔案必須已經在「連線至」欄裡說明了每一列所連往那幾個列號。

我應該用流程圖編輯器還是組織圖編輯器?

如果產出是一棵人手編制樹——一個人一個方框、主管在下屬上面、用來回答誰向誰匯報——就用專門的組織圖編輯器,它是為那個形狀而建的,並為每個人維持單一一位上級。當匯報線是一條路線而不是一幅圖時,就用流程圖編輯器:一份一路往上爬到遇上權限足夠的人為止的審批、一條升級路徑、一份必須繞道經過財務的申請。那些裡面有判斷與例外,而一個判斷不是一棵樹畫得出來的東西。

如果兩個人互相向對方匯報會怎樣?

圖會照畫——一對互相指著對方的箭嘴——但任何要走到最頂的程序都不會終止,這正是為甚麼你要在檔案裡而不是在貼上之後檢查循環。實務上一個循環是一個無人結案的署任安排,或者兩列在同一日被不同的人編輯過。示例圖以判斷「申請人是否身處自己的審批鏈之內?」防範同一個問題在路由上的版本,它會跳過一級,而不是繞圈。

我的匯出檔是分號分隔的,而有些姓名含有逗號。

兩者對 HRIS 匯出檔都很正常,而且都在檔案裡修得到。一份分號分隔的匯出檔——系統設定為歐洲地區時常見——應該重新匯出或者轉成逗號;照現狀貼上的話,整行標題會落進單獨一個欄,那至少是明顯地失敗而不是隱晦地失敗。一個含有逗號的值只要用雙引號包起就是合法的,所以「Nakamura, Yuki」保持一個欄位,而同樣的文字不加引號就變成兩個。

HRIS 有變動時,怎樣令這張圖保持最新?

靠重新匯出再貼上一次,而不是把兩者連起來——QueryChart 與人力資源系統之間沒有即時連結。這件事沒有聽起來那麼要緊,因為你畫的是那條路由規則而不是那份名冊:「當金額超出直屬主管的權限時升級至部門主管」,經得起一次令檔案裡每一個名字都改變的重組。層級或者權限有變時重做一次匯出,只有人變時就別去碰它。

流程圖指南的更多內容