在這系列中,我會用 [人人,人機,機人,機機] 等來形容流程的四種類型,一知百通,第一個字是流程的發起者是人類或程序。(這是台灣用詞,不止是程式,代表process包含純硬體,作業系統,程式,其他系統)。第二字是泛指後續是由誰協同進行。
依序操作
代碼如果空白,系統會自動編,體貼命名障礙與編碼障礙。
先試試畫一個與圖中一樣的範例來練練手,其中的e-mail與Telegram若沒設定也可,也不會卡住,通知類的node不會檢查發送的成敗而卡住。
Start node:一個流程圖只會有一個,沒什麼好設定的,只是讓流程解析程式找到從何處開始,就像C語言的 main() 一樣,雖然還是有一些花樣但都包在程式內了,知道代表開始即可。
End node:一個流程可以有無上限的End node,只要一個被觸發,整個流程與下層流程都會立即停止。有三種結束的模式,字面上已寫得很清楚了:
FormAdapter node 人員決策節點:這是一個要講很久的重點,所以就請看系統的線上說明,在此簡單帶過。
基本與決策控制器只能挑一樣
基本設定:就是依拉出的線路,以單或複選方式決定執行,若是逾時沒人簽的動作,簽核者空缺時的動作等。
決策控制器:依來向的變數值產生
欄位權限設定 控制這張表單在不同的人員簽核節點的人是否能看到?唯讀或修改?
隱藏的資料是瀏覽器接F12都看不到的真正未傳送到用戶瀏覽器。
閱讀者比較特別,一些公司的文化習慣大家一起討論,然後由一人代表簽,會有轉請他人給意見,加附言等情況,此時簽核權+修改權依然在原本的簽核人身上,其他被拉進來的人對表單內容只能通常應該是要給唯讀,反正都設計給你們了,就看公司想幹嘛吧。採購單之類的建議送出之後全程唯讀。資安事件類的建議給資深人員能修改內容以排除誤判斷。至於簽核意見是無法事後修改的。
表單是基於 form.io 的開源專案去[延伸]的設計器,延伸代表對原生專案沒有修改,所以隨時可對form.io進行更新
左邊表單元件區的[平台元件]是我客製的項目, 都是基於 BeakPlatform 的設計讓表單的欄位更方便取得資料的設計。本篇不做表單設計,略過
表單設計與發行公佈的表單是相同引擎的不同機制,簡單的說前面有標記[TEST]的是設計中的版本,只有設計者可看見,企業員工看不到,此設計提供在真實環境單一主機就能做到開發與營運兩個版本同時運行,可邊開發邊測試,出錯也不會影響公司運作(僅限非OS級元件)。當然更安全的做法還是分兩台隔離開發/營運。
因還沒設計表單,所以此圖就是預設的空白表單,唯一要填寫的只有主旨,可知主旨是必填欄位。預設有附件檔案上傳的功能
在簽核鈕旁邊是[唯讀]鈕,在唯讀權限的帳號就只能看,不能簽。
重點! 三個決策按鈕就是在流程設計時增加的三個,與去向的 Node 數量可不一致。
特別長的按鈕用於明確表達此決策是在做什麼,這是很多系統設計時的都說不清楚的地方[確認]鈕是在確認什麼?
更別提當重要的資安簽核UI移到手機上時,按鈕顯示[關閉]到底是代表目前狀態為關閉中?或者是按了才會關閉?
一個泛用的確認其實是最不確認的設計。本系統就是明確告訴你,按了會如何。

如果是測試期間,或小單位,一個人的SOC(淚,我的書名?哭哭)L1簽到L2還是你,一樣簽下去。
狀態欄會顯示目前的關卡資料,值得一提的設計是,曾經簽過的別人發動的表單,還是能追蹤的。
那三個按鈕依權限,每個人看見的不同,企業成員能看見的通常只二個。
[除錯]:眼睛符號,設計師與管理員專屬,這是BeakPlatform的精心設計,看圖
已將所有表單與流程運作過程的Log都集中在同一張表單中。表單是一種複合結構 即使是機-機流程的無人員介入的全自動流程,也依照同一套模式預設了流程監控[單體],這才是表單的基礎本體,至於人員可視的表單是在這基礎上疊加上去的附單,只是對人類而言不直覺所以平時不會特別提到。
又例如資安事件從建立母單之後,攻擊事件在決策之前仍然累加上去,所以第二頁的事件細節就會記錄這些,也就是說,同一張資安案件單在不同的時間點閱讀,看見的資訊會愈多,甚至會出現更多頁(這雖然代表更清楚更豐富的資訊,但每一頁是一種資安設備,有可能也代表災情擴大了)

其他細節略過。
中間的[流程總圖]是給一般用戶看的,特別只呈現人員簽核node,省得用戶直接煩設計師為什麼SQL這麼久?為什麼這樣那樣的,只要讓用戶還在處理中,以及現在換誰簽了就好。
右邊[閱讀表單]就是唯讀,加上看所有已簽的訊息。
流程結束後的歷史,一樣是自己發動的表單與自己曾經簽過的都能看。
營運行政表單流程真的很簡單,今天有了基本的設計到跑過一次的經驗,明天把預設的SOC流程跑一次,透過防禦主機的真實案件(反正也沒我的WAN IP),邊跑邊介紹每個Node的用法,可能會連續多天才講得完一個範例。