數據長與數據驅動型組織系列(8/12)
文/葉宏謨
重複性作業應該由機器人執行,人類應該專注於更有價值的思考判斷工作。
重複性作業的自動化
機器人流程自動化(RPA, Robotic Process Automation)是一種軟體,能夠模擬人類操作電腦來和任何系統或應用程式互動的行為。就像一名專門負責操作電腦的員工,他的工作就是操作電腦執行各種應用程式,例如打開某個網頁,複製其中一區的內容,貼到一個Excel 檔,再打開 ERP 系統,按幾個按鈕,將 Excel 檔的資料匯入 ERP 系統。
RPA 可以學習人在電腦上的操作過程,自動執行同樣的動作,可以完成人工在電腦畫面上輸入資料、按鈕、拖拉滑鼠之類的重複性作業,將這些作業程序自動化。例如由人輸入一張訂單,RPA 會記住訂單輸入的過程和每個動作,然後自動輸入 Excel 中的數千張訂單。RPA 機器人的效率和正確性都優於人類。
本系列文章第 7 篇〈人與系統〉(CIO IT 經理人雜誌 2022 年 9 月號)討論到人劍合一,人要和系統融合在一起成為系統的一部分,在正確的時間做正確的事,系統才能運作。很明顯的,機器人一定比人類更容易融入系統,更能在正確的時間做正確的事。所以,能用 RPA 做的事就不要用人做,盡可能讓 RPA 替人執行重複性的作業,讓人專注於更有價值的思考判斷工作。
[ 參與年度盛事 2023 CIO 大調查,就從填寫問卷開始!(survey.cio.com.tw) ]
例如,傳統開發票的過程。全球各地營運據點的員工將發票資料鍵入 Excel 檔,再 email 到總部,總部人員收信打開 Excel,調整格式,檢查錯誤,看著內容從鍵盤輸入 ERP 系統建立發票資料。各營運據點的 Excel 格式不同,必須人工複製貼上標準格式 Excel 檔。因資料由人工輸入可能有誤 Excel 無法檢核,必須人工判斷並修正資料,最後再由人工操作 ERP 系統匯入 Excel 資料建立發票。若應用 RPA 就不一樣了,RPA 可以打開信箱讀入各營運據點不同格式的 Excel 資料並寫入標準格式的 Excel 中,在標準 Excel 設定資料檢核邏輯自動顯示錯誤資料(例如發票號碼打錯或稅額不符合發票金額),通知人類訂正資料。資料訂正後 RPA 可啟動 ERP 系統的應用程式,自動按 ERP 系統畫面上的按鈕將 Excel 資料匯入 ERP 系統。
又例如,資料服務公司(資服公司)和它的每個客戶都是 SOA-ERP 系統的一個承租戶(Tebant),資服公司利用「無碼數據分析」工具可以設定儀表板參數並記錄(上架)在 SOA-ERP 系統的「萬用介面」中。若客戶需要儀表板,則可從上架儀表板網頁勾選要訂閱的項目,RPA 就會判讀上架儀表板網頁從 SOA-ERP 系統的資服公司承租戶複製客戶訂閱的儀表板參數貼在該客戶承租戶的「萬用介面」中,快速完成儀表板參數的設定。客戶也可以隨時「取消訂閱」儀表板,RPA 也會自動完成所有作業。
RPA 可以同步多系統的資料。企業會使用多套系統,例如 ERP 系統、HR 系統、POS 系統等,這些系統都會有重疊的基本資料需要同步,例如員工資料在所有系統中都有。企業可以只在 ERP 系統維護員工資料(因為 ERP 是企業的核心系統),再將員工資料的維護內容,包括新增員工或修改員工等資料從 ERP 系統匯出成 Excel 檔,再利用 RPA 在 HR 和 POS 等其他系統自動維護相同的員工資料。所以,基本資料的同步也是 RPA 可應用項目之一。
RPA 與 SOA-ERP
SOA-ERP 系統(或任何 SOA 服務導向架構的 ERP 系統)包含一萬多個服務元件,只有邏輯沒有介面(UI, User Interface)。NEO 是一套完全以組裝 SOA-ERP 服務元件做成的 ERP 系統,只有 UI 沒有邏輯。
事實上,任何語言寫出來的前端程式都可以呼叫 SOA-ERP 服務元件,NEO 只是其中一個例子。
使用者可以在前端程式 NEO 一欄一欄輸入資料再按鈕呼叫 SOA-ERP 服務元件建立一筆資料。使用者也可以先把大量資料建在 Excel 或文字檔中,再從前端程式 NEO 呼叫相同的 SOA-ERP 服務元件,整批建立資料。NEO 可以排定時程(每週、每天、每小時、每 5 分鐘、…)自動匯入並建立資料。
如果是連鎖店,每個店都有 POS。商店打烊後,店員操作 POS 轉出 Excel,接著再操作 NEO 前端程式呼叫服務將 Excel 資料匯入 SOA-ERP 建立銷售訂單。
RPA 可以模擬店員的動作自動操作 POS 轉出 Excel 檔,再自動操作 NEO 前端程式呼叫 SOA-ERP 服務元件匯入 Excel 資料建立銷售訂單。
[ 加入 CIO Taiwan 官方 LINE 與 Facebook ,與全球CIO同步獲取精華見解 ]
如果是代客記帳的會計師。每天、每週、或每月,客戶依會計師給的格式將當期的資料打在 Excel 檔寄給會計師,會計師利用 RPA 轉入 Excel 資料,再自動操作 NEO 呼叫 SOA-ERP 服務元件開立會計傳票並過帳。
如果客戶不想維護 Excel 檔,則可掃描相關憑證寄給會計師,RPA 可操作字元辨識(OCR)工具、再自動操作 NEO 利用 OCR 辨識出來的資料呼叫 SOA-ERP 服務,自動開立會計傳票並過帳。
SOA-ERP 系統的每個服務都會檢核輸入資料的正確性及合理性,所以 RPA 操作其他系統產生 Excel 檔後不需要人工檢核,錯誤的資料會在 RPA 操作 NEO 呼叫 SOA-ERP 服務時被攔下來。
RPA 可以利用設定的方式或寫低碼程式來模擬人工操作系統。只要資料格式固定、流程固定、系統操作方法固定的重複性作業都可利用 RPA 來提升效率。
RPA 與 API
但是,如果各系統都是 SOA 的話,還需要 RPA 嗎?
例如連鎖店。假如每個店用的是 SOA-POS,只要在 POS 寫幾行程式碼呼叫 SOA-ERP 的服務,POS 資料就能直接在 SOA-ERP 產生銷售訂單,而且所有有問題的資料都會被 SOA-ERP 服務元件擋下來。
就算不只是開立銷售訂單,還要繼續執行出貨、開發票、產生會計分錄並過帳,一樣可以呼叫 SOA-ERP 的服務自動化整個流程。
各種系統都有 UI 供人操作,但 SOA 架構的系統中每個服務元件都有 API。就算不是 SOA 架構,大部分系統也會根據需要開放 API,以程式來串接這些 API 就可達到流程自動化的目的。
若流程中有些作業沒有提供 API,就必須使用 RPA 才能將流程自動化。如果流程中相關作業都有 API,就不需要 RPA。
因為企業中仍然有相當多的老舊(Legacy)系統沒有 API,要降低人力,RPA 是好的選擇。未來的系統應該都有 API,甚至都會變成 SOA 架構,到那時,RPA 就可以退場了嗎?
就算流程中所有作業都有 API,還是可以利用 RPA 來測試流程。在新流程上線初期,流程尚未穩定下來,可利用 RPA 快速自動化流程,再逐漸調整直到流程穩定,此時再開發前端程式串接 API 完成流程自動化。
RPA 也不是沒有缺點。若低碼程式開發速度比 RPA 無碼設定更快,就不需要使用 RPA 了。而且,把資料匯出到 Excel 有資安的風險,因此流程穩定下來後,可能的話,最好直接寫程式串接不同作業的 API 自動化流程,資料沒有離開系統,資料不落地,比較安全。
資料服務公司如何使用 RPA
對資服公司而言,服務的對象客戶很多,而每個客戶的服務流程雷同,資料不同而已。服務人員登入各客戶的系統,執行相同的流程。因為相同作業不斷的重複,所以可以訓練 RPA 自動登入每個客戶的系統或承租戶,執行這些重複性的作業,必然可以大大節省服務人力。
資料服務業導入 NEO 和 SOA-ERP 系統時,最佳的方式是 80% 的功能使用 NEO UI,20% 的功能則使用客製的 RWD 響應式網頁 UI。需要行動應用或需要的介面和流程與 NEO 差異太大時,可客製 RWD UI 給使用者操作,其餘的功能則讓使用者直接操作 NEO。NEO 有無碼(No-Code)客製功能,不用寫程式就可以把操作畫面和流程客製成使用者需要的樣子;RWD UI 本身即低碼(Low-Code)程式,能用現成的就用現成的,不能則修改接近的範例程式客製使用者所需的 RWD UI。客製 RWD UI 一般僅需 3 小時,最多一個工作天就可完成。多國語言方面,NEO 本身即多國語言,要增加語言只要維護 NEO 的資料字典;RWD UI 則建議複製程式再將標籤修改成另一國語言。多國語言的維護可交給當地的資服業者來做。
資料服務業並非只是導入 SOA-ERP 系統以及客製 NEO 及 RWD UI,上線後就說再見。資料服務業必須和使用者「一起」使用 ERP 系統。使用者每天都會用到的功能由使用者自己操作,每週、每月或每年才會執行一次的非例行功能由資料服務業代為操作,例如:SOA-ERP 系統中的庫存盤點單、庫存調整單、庫存盤盈虧單、庫存報廢單、MRP 執行、MRP 行動訊息、會計結帳單、利潤中心月結、營業稅申報、資產取得、資產調整、資產折舊、成本雜項核價單、成本執行、成本結帳單、成本結帳單存貨調整、…等等,以及各種開關帳功能,包括會計開帳單、成本開帳單、庫存開帳單、庫存關帳單、成本關帳單、會計關帳單等。訓練使用者操作這些程式的時間遠大於訓練機器人RPA 代替使用者操作程式的時間,所以就由資料服務業者幫使用者操作。這些非例行工作也是重複性作業,客戶不同而已,流程都一樣,也可以由 RPA 來代勞或輔助。資料服務業者在替客戶執行非日常批次作業時,也是在檢查資料的品質,定期幫客戶作資料的健康檢查。
由資服業者和使用者「一起」使用客戶的 ERP 系統,資服業者和客戶的使用者都融入 ERP 系統中,成為系統元素的一部分。請參閱本系列文章之第 7 篇〈人與系統〉。
資料服務公司可開發自己的行業別 ERP 系統
SOA-ERP 系統的目標本來就是生產 ERP 元件,讓資料服務業者組裝元件開發自己的行業別 ERP 系統。行業別 ERP 系統大約只有 20% 的特殊需求,其他功能可以操作 SOA-ERP 系統的原生介面 NEO。若資料服務公司本身也是某行業的專家,則可以開發並銷售自己的行業別 ERP 系統。當然,資料服務公司也可能導入其他行業專家所開發的行業別 ERP 系統。開發行業別 ERP 系統的目的是「快速上線」。
不同行業的差異在用語、欄位、作業流程、報表、和批次資料處理。開發者客製行業別 ERP 系統的方法稱為 CIA,也就是設定(Configure)、注入(Inject)和外掛(Add-on)。開發者可利用 SOA-ERP 原生介面 NEO 的 NPC(No Program Customization)無碼工具之「字彙自由修改」改變介面欄位上的用語,以及新增該行業特殊的欄位(改變 NEO 延伸欄位的字彙);利用 NPC 的「隱藏欄位」取消該行業不需要的欄位;利用 NPC 的各種「串接」功能設定該行業需要的作業流程;利用 NPC 報表工具及其「注入」小程式功能做出該行業需要的報表;利用 NPC 的「批次伺服器」設定該行業需要的各種批次資料處理作業;若該行業有網頁應用或行動應用的需求則可利用低碼客製化工具「外掛」RWD/APP 應用。
導入行業別 ERP 系統的原則是「先上線再客製」,完全依照標準程序上線,越快越好,上線後再客製,先滿足標準需求,穩定後再滿足特殊需求。既然是行業別 ERP 系統,上線後的客製需求很少,且主要是 UI 和 BP 的客製,UI 和 BP 背後是相同的 SOA-ERP 元件,就好像很多不同款式的汽車它們的底盤都是一樣的,只有使用者看得到的部分不一樣。請參閱本系列文章之第 3 篇〈軟體硬體化〉。(CIO IT 經理人雜誌 2022 年 5 月號)
[ 閱讀所有葉宏謨的專欄文章 ]
導入過程首先要把舊系統的資料遷移到新的行業別 ERP 系統,此時可以使用 RPA 從舊系統匯出資料並操作新系統自動匯入資料。注意,新系統上線前不要試圖改善舊系統的不合理資料或錯誤資料,新系統上線後再來改善。例如材料編號,如果上線前重編材料編號給新系統使用,新舊系統材料編號不一致,RPA 無從判斷,就無法把資料從舊系統自動遷移到新系統。快速上線最重要,將錯就錯,先求有再求好,把資料遷移到 SOA-ERP 系統之後,再來重編料號。例如,舊系統有些不同材料錯編成相同料號,上線後在 SOA-ERP 系統重編並建立新料號,然後把該改為新料號的庫存出庫後再入庫為新料號。重編料號後新系統的料號長度可能變長了,由於 SOA-ERP 的真正 ID 是系統 ID,改變料號並不會改變系統 ID,所以可以隨時改變料號,不會影響 SOA-ERP 的運作,且連歷史資料報表也都會呈現新料號,因為料號只是給人看的,SOA-ERP 真正使用的是料號背後的系統 ID。
使用 SOA-ERP 系統必需要有一個心態,就是「知其然而不知其所以然」,好像違背了從小學到的價值觀,其實不然。使用 SOA-ERP 系統只要知道每個服務元件能做什麼事就好,不需要知道它是怎麼做到的,甚至不需要知道服務元件背後還有資料庫。沒學過資料庫的人照樣可以使用 SOA-ERP 服務元件開發企業應用系統。「將錯就錯」和「知其然而不知其所以然」好像變成一種美德。
由於上線後新舊系統的資料都一樣,新系統必要而舊系統沒有的資料也都會有預設值,所以上線後的平行作業也會大大減輕使用者的負擔。一開始由人操作舊系統、RPA 操作新系統,該解決的問題解決後,改由人操作新系統、RPA 操作舊系統,平行作業將會輕鬆快速完成。
和使用者「一起」操作客戶的 ERP 系統是資服公司的工作,客戶每天只需要操作幾個簡單介面,其他的事就交給資服公司。資服公司一個人可幫數十家客戶操作 ERP 系統,其操作流程都一樣,所以可利用 RPA 每天、每週或每月登入每個客戶的 SOA-ERP 系統,自動執行所有的非例行性作業,資服公司的人只要坐在一旁注意有沒有異常訊息,有異常再介入處理就行。
以前的資訊人員常被使用者呼來喚去,要求做這個做那個,做不對或做太慢都會被責怪。若資料服務公司善用 RPA,則資訊人員可以從使用者眼中的小弟變成導師。
還有很多可能的 RPA 應用,企業應該善用 RPA。
(本文授權非營利轉載,請註明出處:CIO Taiwan)