接觸UiPath一陣子後覺得它在設計上為了可以很好的讓使用者規劃出流程,變得有很多承接程式語言的規則,於是就會讓剛接觸這個工具的人覺得有一種被騙的感覺,明明是標榜Low-Code,但還是有很多潛在規則需要知道跟遵守。今天就要講解其中之一的概念是Variables及Arguments。
剛接觸UiPath的人可能就會被Variables 以及 Arguments 概念搞混,為什麼明明都是變數定義但是又分成這兩種類型呢?而什麼時候該使用什麼類型才對?
兩者共通點都為:需要定義變數名稱、變數類型、定義預設值(若需要)。
Variables
Variables本質上是區域變數的概念,除了以上提到需要定義的變數名稱、變數類型、定義預設值之外,他可以定義這個變數只在哪個區域有效 (哪個Scope)
它可以自己設定層級,越上面層級代表更外圈,變數存在的範圍也就越大。例如範例圖中的out_pyObj 變數,上面顯示Scope為 ERP合併報表下載-py資料整理 層級,將鼠標移至文字上放後會出現目前層級以及上面的層級,即 Sequence > Try Catch > Flowchart > ERP合併報表下載-py資料整理。(也可以參考左上方的區塊順序,但還是直接在scope上顯示的最為準確)。
代表 out_pyObj 變數只存於 ERP合併報表下載-py資料整理 此區塊, 其他上層的抓不到這個變數。
若將 out_pyObj 移至 FlowChart層級, ERP合併報表下載-py資料整理此區塊也會抓得到此變數。

Arguments
Arguments可以看成需要被拿來在不同函式傳遞的變數,也就是參數。比較特別的是他需要定義In & Out的規則(不是漢堡薯條的In&Out),參數是被傳入還是需要被傳出到下一個階段繼續使用,即是在這裡可以被定義。 所以如果一般搭配Orchestrator使用,想要從Orchestrator傳入參數即是要設定Arguments。
- In: 指資料被傳到下個函式
- Out: 指資料被返回到上個函式(呼叫它的函式)
- In/Out: 指資料會被傳到下個函式,這個函式運算後會改變此參數的值,新的參數值再被返回到上個涵式
Orchestrator設定Arguments的介面就會像是這樣:
若執行Job前有自己想帶入的參數可以按鉛筆icon後進行設定並儲存。若沒有帶入則表示會使用預設值。

順便補:執行Job也可以設定此任務執行優先度。若無特別設定,預設就會使用Medium中間重要性。

如果有團隊協作,在開發時也可以進一步的規劃變數名稱的規則,以我的經驗分享可以參考這樣的寫法,當大家寫法一致,未來在看同事寫的程式碼時也能比較快進入狀況,專注在流程邏輯上。
一般變數(Variable):{資料類型}_{變數名稱}
- 範例:
str_startDate,dt_userData
參數 (Argument):{方向}_{資料類型}_{變數名稱} (方向:in / out / io)
- 範例:
in_str_startDate,out_dt_userData
總結一下

以上就是簡短的Variables及Arguments兩種使用上的差異的介紹!
















