乾貨丨ERP系統的RPA實施技巧

weiyu05發表於2019-09-25

文、圖丨鄂攀

 

最近做了幾個有關 ERP系統的流程自動化 ,感覺其中遇到的一些問題可以做一次分享與總結。

 

此次涉及的ERP中主要涵蓋了兩塊: BW和BCS

 

 

BW財務模組 

BW財務模組 就是SAP GUI,這一塊涉及到刷報表流程的第一步 資料準備 和第二步 資料收集 。因為沒有事務碼,整個流程的穩定性是一個不小的挑戰。


資料準備中,不涉及多個相同元素圖示的情況下,基本都採用了UiBot中強大的影像元素判斷和影像點選,自動化和穩定性都得以很好的解決。(流程遷移需要考慮電腦畫素相同)

資料收集中,可以給大家提供一個畫面。

這個頁面我們可以看到大量相同的小圖示,流程操作就是需要從選中的一個公司(名稱裡面縱座標被掩蓋的就是公司名稱)中,從收據收集那一列右鍵點選更新,等待收集完畢,然後依次點選後邊的圖示。

 

因為裡面有大量相同的圖示,沒辦法去只根據 影像元素判斷 影像點選 做穩定高效的自動化,那麼綜合考慮後,唯一可行的就是根據座標來進行一一點選更新了,可是這麼多座標要如何處理,才能不在頁面有偏移或者電腦螢幕大小變化的時候產生錯位。

 

就像平面幾何一樣,兩線交叉確定一個點,所以如何去找這個點很重要。可以看到圖片中左邊名稱下面公司名字是唯一的,上面每一列的名稱也是唯一的,如此,便可以根據公司找到縱座標,列名找到橫座標,交叉點就是需要點選更新的圖示了,而且是百分百穩定。

 

此處靈活找座標,不得不說UiBot另兩個強大的功能的搭配,就是 滑鼠移動到影像上 以及 獲取滑鼠位置 ,根據這兩個我們就能找到公司名稱的座標以及列名的座標,從而確定需要點選更新的橫座標以及縱座標。

 

而更方便的處理就是多取幾個交叉點的座標,根據橫座標的平均差值以及縱座標的平均差值,來找出更新點的座標偏移,這樣就可以從找到的第一個點來依次迴圈處理更新了。

 

BCS模組

BCS模組  就是SAP中的會計報表合併模組(Business Consolidation System),而合併報表專案是由多個合併科目組成的一個組,用於合併報表展示。

 

BCS中,合併科目用於記帳,合併報表專案不能用於記帳。而我們之前所說的ECC(ERP Central Component),用於指代SAP上線企業所使用的記帳系統。那麼此處流程自動化需要對各個公司進行從一級到三級報表的例項生成,重點在下圖:

這個彈框神奇在兩點:

·  一個是關閉彈窗的X圖示 ,裡面index是可變的。

·  另一個就是點選例項生成後彈框出現的時長。

因為index 的可變性,考慮了兩種方案:

 

一種就是UiBot的影像元素判斷和影像點選,這樣就不用考慮index是多少了。

 

另一種就是繼續用UiBot的元素判斷和滑鼠點選目標,但是前提是需要知道index是多少。此處根據前後多次的測試發現,每彈出一次index就自增1,所以可以判定,在第一級報表例項生成的時候,index預設是1,此後報表檢視還會彈出一次,依次可以迴圈做元素判斷以及滑鼠目標點選。

 

當然,如果此處彈框的Index是靈活多變的,那也沒關係,可以利用值迴圈的方式來根據元素判斷的返回值找出index,從而來進行滑鼠目標點選。

而點選報表例項生成後,此彈框什麼時候會彈出來是個問題。根據業務敘述的情況以及測試結果發現,可能在收尾階段以及網速好的情況下幾秒後就彈出來,也可能在例項太多網速擁堵的情況下,幾十分鐘後才彈出來,反正彈框是一定會出來的,只是時間長短不定。

 

因此此處也考慮了兩種方案:第一種就是元素判斷硬性等待,直到出現關閉再去處理,但是流程整體時間會大大加長,因為即使不彈出繼續刷二級三級都不會產生影響。基於此考慮第二種方案—— 雙程式。

在雙程式中, 主程式 正常進行各級例項報表生成, 輔助程式 專注進行彈出框的發現與關閉。搭配就是主程式在第一次進入第一級報表例項生成的時候,觸發啟動輔助程式來進行對彈出框的監視和處理,依次可以達到高效處理流程的效果,不用再為等待彈框關閉的處理而耗費後面流程處理的時間。


指令我們大概都很熟悉,但是如何根據客戶的例項場景,進行巧妙的運用,是一個需要思考和經驗積累的過程。

 

以下根據此次分享做了比較詳細的檢視總結,可供參考。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940722/viewspace-2658189/,如需轉載,請註明出處,否則將追究法律責任。

相關文章