如何由 CSV 製作流程圖

如何由一個 CSV 檔製作流程圖:編輯器讀的標題列名稱、「連線至」該填甚麼,以及填欄的次序——先「方框文字」,再「形狀」,然後箭嘴,最後泳道。

運作方式

  1. 另開一個新檔,不要改那份匯出

    你手上那個 CSV 是一張工單、一條訂單明細或者一筆紀錄一列。你即將要寫的檔案是一個步驟一列,而一條產生了一萬筆紀錄的流程,步驟通常不足二十個。把匯出檔放在旁邊開著,因為它的隊列名稱、狀態代碼與指派群組,才是這條流程真正的詞彙,但把圖寫進一個全新的檔案。

  2. 把標題列放在第一行

    把編輯器所用的名稱一字不差地打上去:「形狀」、「方框文字」、「連線至」、「連線文字」,之後還有「橫向泳道」與「縱向泳道」。那一行之上不可以有任何東西——沒有標題、沒有匯出時間戳記、沒有空行——因為比對是在檔案的第一行做的。你自己留著參考的欄,例如原本的紀錄編號,可以留在原處,會被原封帶過。

  3. 寫「方框文字」,一列一個動作

    一列就是一個人做的一件事。凡是文字裡含有「並」或「同時」的列都要拆開,凡是指一個階段而不是一個動作的列都要刪掉——「分流」是一個標題,「按影響與緊急程度訂定優先次序」才是一個步驟。想看效果的話這時就可以匯入一次:你會得到一直行沒有箭嘴的方框,而那正是一個有標籤、沒有關係的檔案最誠實的樣子。

  4. 填「形狀」

    第一列填 Start,凡是提出問題的列填 Decision,每一個結局填 Success、Reject 或 End。Process 是預設值,所以那些儲存格可以留空。要用編輯器所用的寫法——一個它不認得的值會毫無怨言地變成 Process,而一個畫成矩形的判斷仍然保留著它的分支標籤,這正是令這個錯誤容易被漏掉的原因。

  5. 填「連線至」,然後「連線文字」

    「連線至」放的是目標列的位置,第一列資料算作 1,一列通向多過一處時以逗號分隔。「連線文字」按同一次序放分支標籤,所以第一個標籤屬於第一個數字。在編任何號碼之前先把所有列寫完:「連線至」是按位置計的,所以之後在中間插入一個步驟,會令它下面每一列往下移,並令插入點之後每一個引用失效。如果之後非加一個步驟不可,就把它附在最底,再由它應該所在的位置指過去。

  6. 加上泳道,以 UTF-8 儲存,再把檔案拖進去

    把階段放進「橫向泳道」,把角色放進「縱向泳道」,然後以 UTF-8 加逗號分隔儲存這個檔案,並用文字編輯器打開確認得到的正是這樣。把 .csv 拖到編輯器的試算表區域,或者把文字貼進去。圖會隨著檔案落地即時渲染,連線自行選路,所以沒有排版環節——之後要檢查的,是有沒有哪一個方框沒有箭嘴離開。

常見問題

最小的一個 CSV 要有甚麼才畫得出流程圖?

兩個欄。一行標題寫著 方框文字,連線至,然後一個步驟一行,放上標籤與它所通往那一列的位置:一條四步的流程就是標題下面四行,第二個欄依次寫 2、3、4 與一個空格。這樣畫出來是一串矩形,中間有箭嘴。第三個值得加的欄是「形狀」,因為沒有它,每一個方框都是矩形,一道問題與一句指示畫出來一模一樣;第四個是「連線文字」,因為一個出口沒有標籤的判斷,只告訴讀者這裡有一次判斷,卻沒有告訴他之後該往哪一邊走。

「連線至」放的是列號還是編號?

是目標列在檔案裡的位置,第一列資料算作 1——正是編輯器在它的 # 欄裡印出來的那個數字。它不是這個 CSV 所來自那套系統的紀錄編號,也不是你自己發明的步驟代碼,即使你把那個欄留在了檔案裡。任何解析不到一個現存列位置的東西都會被丟棄,而且完全沒有錯誤,所以一個因為把標題列算作第 1 列而整體差了一的檔案,會渲染成一堆沒有箭嘴的方框,而任何地方都不會說明原因。

一個有兩條分支的判斷該怎樣寫?

把「形狀」設為 Decision,把兩個目標位置以逗號分隔放進「連線至」,再把兩個標籤按同一次序放進「連線文字」。「6,4」旁邊寫「是,否」,就會把「是」送去第 6 列、「否」送去第 4 列;把其中一個清單倒轉而另一個不倒轉,得出的圖會以最令人信服的方式出錯,因為它看上去仍然完整。如果標籤本身含有逗號,就把那個欄位用雙引號包起。一條完全由這個模式建成的分支流程在 /yue/templates/csv決策樹。

「形狀」欄可以填甚麼值?

Start、Process、Decision、End、Success 與 Reject 幾乎涵蓋了每一張流程圖,另外還有一些用於特定情況的——File、Input、Output 與 Preparation 在其中。空的儲存格得到的是 Process,而一個編輯器不認得的值得到的也是 Process,這正是要留意的地方:沒有匯入錯誤,所以一個用另一套工具的詞彙寫成的形狀欄會乾乾淨淨地匯入,並把每一個判斷畫成矩形。第一次匯入之後去檢查那些菱形,不要假設。

圖做好之後那個 CSV 還要留著嗎?

留著作為你匯入了甚麼的紀錄,而不是作為你動手編輯的東西。匯入之後圖表就是母版:在編輯器裡編輯那些列就是在編輯這張圖,因為它們是同一件東西,而在旁邊並行維護那個檔案,只會原封不動地重建這次轉換本來要消除的那種偏差。CSV 真正繼續有價值的地方,是下一張圖的起點——一張圖類型一個檔案,複製其中一個,比憑記憶重打一行標題快得多。

流程圖指南的更多內容