這篇不談流程設計的理論,只講「手要怎麼動」:滑鼠在畫布、節點、線段上按左鍵和右鍵各會發生什麼事、有哪些熱鍵、畫面上每一塊是做什麼的、下面那排分頁各管什麼、切換流程前要不要先存檔。最後補一個藏在右鍵選單裡、很容易一直沒發現的功能:替換節點。
操作環境是 BeakPlatform 的表單流程模組。設計器的進入路徑是左側選單的「流程管理」,網址是 /forms/workflows。
流程清單頁上方有兩個分頁:「主流程」與「通用子流程」。右上角的 [+ 新增工作流] 會開一個對話框,填名稱、代號、分類、描述後建立,建立完成直接進入設計器,畫布上已經放好一個 Start 節點。
每一列右邊有 [編輯] 與 [樹系圖] 兩個按鈕。[編輯] 開設計器;[樹系圖] 開一個獨立頁面,用樹狀圖顯示這個主流程底下掛了哪些子流程。清單右上角可以切換「清單」與「縮圖」兩種檢視,縮圖是每次儲存時設計器自動截的。

(圖01:流程清單頁,標出主流程/通用子流程分頁、[+ 新增工作流]、[編輯]、[樹系圖])

(圖02:新增工作流對話框)
一件要先知道的事:通用子流程開啟後是唯讀模式。儲存類的三個按鈕會變灰、節點拖不動、左側元件拖不進來、右側設定面板只能看不能改。主流程與專屬子流程沒有這個限制。
進入設計器後,畫面分成五塊:

(圖03:設計器全貌,用框線標出下面五個區塊)
| 區塊 | 位置 | 功能 |
|---|---|---|
| 工具列 | 最上方 | [儲存]、[儲存並關閉]、[另存新版]、[放棄],右邊接著流程名稱、版本、分類下拉、描述 |
| 左欄 | 左側 | 由上而下是「流程元件」(可拖進畫布的節點,依分類收合)、「流程樹系」(主流程與子流程的導航)、「鷹眼」(縮圖) |
| 畫布 | 中央 | 放節點、拉線的地方 |
| 右欄 | 右側 | 「設定面板」,內容隨你點的東西變:點節點是節點設定,點線段是線段屬性控制,Ctrl 加點線段是線段編輯 |
| 控制面板 | 畫布下方 | 五個分頁:常用控制、控制項、底圖管理、表單欄位、變數總覽,右端有 [展開] 可以把面板拉高 |
左欄最上面的「流程元件」是手風琴式分類:點分類標題會展開它、同時收起其他分類;標題列右邊的小按鈕可以一次展開或收合全部分類。分類有基本節點、表單處理、通知機制、流程控制、資料處理、運算操作、系統整合、安全管控、資安處置、系統級管理員專用,實際看得到哪些依企業授權而定。把元件拖到畫布上放開,就新增一個節點,新節點會自動被選取並在右欄打開它的設定。
這張表是整篇最重要的一張。畫布的設計是左鍵框選、右鍵平移,和多數繪圖軟體相反,第一次用都會卡在這裡。
| 滑鼠位置 | 左鍵點一下 | 左鍵拖曳 | 右鍵 | 滾輪 |
|---|---|---|---|---|
| 畫布空白處 | 取消所有選取、關閉右鍵選單 | 框選(節點與線段都會被選到) | 按住拖曳=平移畫布。空白處沒有右鍵選單 | 以滑鼠位置為中心縮放 |
| 節點 | 選取,右欄顯示該節點的設定 | 移動節點。放開時會貼齊 25px 的網格;目標格子被佔用時會自動挪到最近的空格 | 開節點選單:替換節點、移出群組(只在群組內的節點出現)、刪除節點 | 同上 |
| 群組框 | 選取群組,常用控制分頁會出現群組設定 | 整組一起移動(群組本身不貼齊網格) | 開群組選單:編輯群組名稱、群組顏色、框線樣式、圓角樣式、解散群組 | 同上 |
| 線段 | 選取,右欄顯示「線段屬性控制」 | 一般線段不能拖;正交折線與直角折線的中間段可以拖來調整轉角 | 沒有選單 | 同上 |
| 中繼點/控制點 | 選回它所屬的線段 | 拖動調整線段路徑(直角折線的藍色控制點只能左右移) | 沒有選單 | 同上 |
| 左欄的元件 | 無 | 拖到畫布上放開=新增節點 | 無 | 無 |
| 鷹眼 | 點一下=畫布移到該位置 | 拖動視窗框=即時平移畫布 | 無 | 無 |
幾個補充:

(圖04:節點的右鍵選單,三個項目都看得到的狀態,也就是在群組內的一般節點)

(圖05:群組的右鍵選單,把「群組顏色」子選單的 30 色色盤展開)
設計器有三個「按住就切換模式」的修飾鍵,放開就恢復。按住時畫布上方會出現模式提示,下方「系統訊息」也會寫一行。
| 按鍵 | 按住時 |
|---|---|
| Shift | 空白處拖曳只框選節點(線段不會被選到)。連續點節點會依序畫線(見下一節)。放開 Shift 結束連續畫線 |
| Ctrl | 空白處拖曳只框選線段(節點不會被選到)。點線段打開「線段編輯」面板,也就是中繼點編輯。這段期間節點暫時不能被點選 |
| Alt | 框選時節點和線段都會選到。拖動節點或群組會脫離它所在的群組,而且放開時不會被自動加回去 |
其他熱鍵:
| 按鍵 | 動作 |
|---|---|
| Delete | 刪除所有選取的節點、線段、中繼點。Start 節點不能刪。正交折線、直角折線的零件(中段、控制點)不能單獨刪,要先把線段樣式換掉再刪整條線 |
| Ctrl + C | 複製選取的節點與線段。Start 節點不會被複製。只有兩端都在選取範圍內的線才會跟著複製 |
| Ctrl + V | 貼上。每貼一次往右下偏移 150px,連續貼不會疊在一起。貼上後新元素自動變成選取狀態 |
| Ctrl + Z | 復原,最多 50 步。移動、新增、刪除、貼上、替換節點、群組操作都會進復原堆疊。沒有重做,Ctrl + Y 沒有作用 |
| Esc | 控制項分頁的說明有列它,但目前版本按下去沒有實際效果。要結束連續畫線,放開 Shift 就好 |
輸入框有焦點時,上面的熱鍵會交給輸入框處理,例如在節點名稱欄位裡按 Ctrl + C 是複製文字,不是複製節點。
兩個和瀏覽器有關的保護:按瀏覽器的上一頁會被攔下來並跳出確認框,確認後才回流程清單;直接關閉分頁或重新整理時,若有未儲存的變更,瀏覽器會先問你。
節點與節點之間拉線,沒有拖曳把手,唯一的方法是:
線的方向就是你點的順序。不能把節點連到自己,也不能在一般節點和群組之間拉線,這兩種情況系統訊息會告訴你。要從同一個節點拉出兩條線到不同目標,就放開 Shift 再按住一次,從那個節點重新開始點。
新畫的線預設是灰色直線加三角箭頭,粗細、顏色、樣式都在右欄的線段屬性控制裡改。

(圖06:按住 Shift 連續點了三個節點,前兩段線已畫好,三個節點都處於高亮狀態)
最上面固定是「名稱」與「描述」兩個欄位,名稱會顯示在畫布上節點下方。簡單節點下面有一顆 [套用];像簽核、分支、暫停、子流程這類有自己設定項目的節點,[套用] 在它自己的設定區塊裡。
不用擔心忘了按 [套用]:切換到另一個節點、或按任何一種儲存時,系統都會先把當前面板的內容自動套進節點。但這個自動套用是靜默的,不會跳驗證警告,有必填漏填要靠自己看。
點某些節點時下方控制面板會自動切分頁:點「讀取欄位」「寫入欄位」節點會切到「表單欄位」分頁並展開面板;點「設定變數」節點會切到「變數總覽」分頁。

(圖07:右欄的節點設定,以一個有自己設定區塊的節點為例,例如暫停節點)
從上到下:

(圖08:右欄的線段屬性控制,標出線段樣式下拉與標籤文字)
這個面板專門管「中繼點」:輸入數量按 [新增中繼點],線段上會多出幾個橘色的小點,拖動它們就能讓線繞路。下面列出現有中繼點,[清除所有中繼點] 一次清掉。選取單一中繼點按 Delete 也能刪。正交折線與黃點折線不支援中繼點,要先在線段屬性控制把樣式換掉。

(圖09:Ctrl 加點線段後的線段編輯面板,線上已加了兩個中繼點並拖成折線)
分頁列最右邊的 [展開] 會把整個面板拉高到 600px,再按一次收起。鷹眼旁邊也有一顆同樣功能的按鈕。
四個區塊並排:

(圖10:常用控制分頁的四個區塊)
只有一份快捷鍵說明,內容與本文第四節相同。
[上傳新底圖] 把一張圖放到畫布底下當參考,例如公司既有的流程圖或泳道圖。右側是已上傳的縮圖牆,點一張就套用;左側可以改底圖名稱、刪除目前底圖。

(圖11:底圖管理分頁)
左側列出這條流程「配對」的表單,可切換看設計版或發行版;點一張表單,右側列出它所有欄位:標籤、內部變數、引用語法、類型、資料型別、必填、預設值。勾選幾個欄位後,[內部] 複製它們的內部變數名、[f.key] 複製引用語法,貼到其他節點的設定裡用。有搜尋框可以過濾。

(圖12:表單欄位分頁,已選一張表單並勾選兩個欄位)
按 [Reload] 掃描畫布上所有節點,列出每個節點設定了哪些變數(SET)、讀了哪些變數(READ),可以用「全部/設定 SET/讀取 READ」篩選,勾選後 [複製變數]。畫到一半想確認某個變數有沒有人設定過,來這裡看最快。

(圖13:變數總覽分頁掃描後的結果)
群組是把幾個節點框在一起的容器,純視覺整理用,不影響執行。

(圖14:一個巢狀群組,外層群組內含一個內層群組與幾個節點)
這是最容易一直沒發現的功能,因為它不在任何工具列或分頁上,只有在節點上按右鍵才會出現,Start 節點的選單裡也沒有它。
用途是「這個位置我放錯節點類型了」,例如本來拖了一個「暫停」,後來發現應該是「子流程」。不用刪掉重畫線,直接替換:
替換會保留什麼、丟掉什麼:
| 項目 | 結果 |
|---|---|
| 畫布上的位置 | 保留 |
| 所屬群組 | 保留 |
| 連進來與連出去的線,含線的樣式、顏色、標籤 | 全部保留 |
| 節點名稱 | 換成新類型的預設名稱 |
| 節點的設定內容 | 清空,要重新設定 |
替換視窗最上面會多出一個「還原上次替換」區塊,點它可以把最後一次替換的節點換回去。它只記得最後一次,而且重新整理頁面就沒了;Ctrl + Z 也能復原替換。替換完成後流程會被標記為未儲存,記得存。

(圖15:替換節點視窗,上方有「還原上次替換」區塊,下方是分類後的節點清單)
左欄中段的「流程樹系」列出根主流程與它底下的子流程,每一層一種顏色,目前開著的那一個會標示出來。樹是依畫布上「子流程」節點指定的子流程長出來的;子流程節點設定好並套用後,樹會自動刷新,刪掉子流程節點也會。覺得不對就按標題列右邊的 [重新載入]。
點樹上的任一項就切換到那條流程,切換前系統會自動儲存目前這條,沒有任何提示。 所以答案是:不用自己先按儲存。但要反過來注意一件事:如果你改到一半、打算放棄這些改動,不要直接點樹切換,那會把改動存進去;先按 [放棄] 回清單再重新進來。只有一種情況不會切換:自動儲存失敗,這時系統訊息會寫「儲存失敗,已留在目前流程」,你會留在原地。
標題列的 [開啟樹系圖] 會跳到整頁的樹狀圖,跳之前同樣先自動儲存。

(圖16:左欄的流程樹系,根主流程下掛兩層子流程,目前所在的一項有標示)

(圖17:整頁的樹系圖頁面)
| 按鈕 | 做什麼 |
|---|---|
| 儲存 | 把畫布存進資料庫,順便重新產生清單用的縮圖。有未儲存變更時這顆按鈕會有橘色外框 |
| 儲存並關閉 | 儲存後回流程清單;如果是從樹系圖點進來的,回樹系圖 |
| 另存新版 | 先儲存目前內容,確認後在背景複製一份成新版本(版本號遞增,綁定的表單一起複製)。你仍停在原版本,新版本要回清單另外開。專屬子流程另存時會問你新版本要綁到哪一個子流程節點 |
| 放棄 | 有未儲存變更會先確認。如果這條流程從建立後一次都沒儲存過,放棄會把它整個刪掉 |
工具列右半邊的流程名稱、分類下拉、描述,改完離開欄位就立刻寫入,不經過 [儲存]。名稱清空會被還原成原名;子流程取了和別人重複的名字會被擋下並顯示原因。描述欄位只顯示第一行,點它或旁邊的 edit 會開完整的編輯視窗。
| 現象 | 原因 |
|---|---|
| 拉不出線 | 沒按住 Shift。畫線只有 Shift 連續點這一種方法 |
| 左鍵拖畫布不會動 | 設計就是這樣,平移用右鍵拖曳 |
| 點線段沒反應 | 正按著 Shift,Shift 模式下線段不能選。放開再點 |
| 點節點沒反應 | 正按著 Ctrl,Ctrl 模式下節點不能選 |
| 節點放下去自己跑掉 | 貼齊網格時那格已被佔用,系統挪到最近的空格,系統訊息會寫一行 |
| 節點拖不動、元件拖不進來、儲存鈕是灰的 | 唯讀模式:通用子流程,或你只有檢視權限 |
| 按了什麼都沒反應 | 先看下方「系統訊息」,九成會寫原因 |
| Ctrl + Y 沒作用 | 沒有重做功能,只有 Ctrl + Z 復原 |
| 切流程樹沒問我要不要存 | 設計就是自動儲存,見第十節 |
到這裡,設計器的基礎操作就講完了。各種節點各自的設定項目是另一個主題,之後再寫。