在RPA平臺(tái)中為什么會(huì)有工作負(fù)載管理(WLM)?
WLM=Work Load Management。通常當(dāng)用戶啟動(dòng)一個(gè)自動(dòng)化任務(wù)時(shí),會(huì)交給某一個(gè)機(jī)器人Bot Runner執(zhí)行,或者由Bot Runner按照時(shí)間計(jì)劃,自啟動(dòng)執(zhí)行某個(gè)任務(wù)流程。但如果遇到任務(wù)處理量很大,而且需要滿足較高的SLA要求,即需要機(jī)器人即時(shí)處理大批量的工作任務(wù)。這就涉及到機(jī)器人的并發(fā)處理,也就是WLM的本質(zhì)作用。
配置WLM,其中涉及很多全新的概念和處理方式,內(nèi)容比較多且難以理解,請(qǐng)耐心讀完,或在實(shí)際操作中加以參考。
在WLM中會(huì)涉及到一些概念名詞:設(shè)備池(Device Pools),隊(duì)列(Queues),工作項(xiàng)(Work Item),工作項(xiàng)結(jié)構(gòu)(Work Item Structure),服務(wù)水平協(xié)議計(jì)算器(SLA Calculator)。
設(shè)備池(Device Pools):設(shè)備池是一組用于自動(dòng)化運(yùn)行的設(shè)備(Device)組合。隊(duì)列中的任務(wù)會(huì)運(yùn)行在對(duì)應(yīng)的設(shè)備池中。當(dāng)具有Bot Runner的License的客戶端連接到控制中心以后,就可以在設(shè)備列表中查看到這臺(tái)設(shè)備的機(jī)器名稱。
隊(duì)列(Queues):隊(duì)列會(huì)對(duì)應(yīng)到設(shè)備池。在隊(duì)列中可以分配工作項(xiàng)(Work Items),每個(gè)工作項(xiàng)中有自動(dòng)化任務(wù)中所使用的指定數(shù)據(jù)字段。
工作項(xiàng)(Work Item):指的是隊(duì)列中所要處理的數(shù)據(jù),其數(shù)據(jù)結(jié)構(gòu)必須符合工作項(xiàng)結(jié)構(gòu)(Work Item Structure)的要求。
服務(wù)水平協(xié)議計(jì)算器(SLA Calculator):用于計(jì)算需要分配給設(shè)備池的設(shè)備數(shù)量,以滿足處理隊(duì)列的 SLA 要求。
在管理權(quán)限方面,也會(huì)涉及到Owner(所有者),Participants(參與者),Consumer(消費(fèi)者)等AA中的常規(guī)用法,可以參考這篇文章。
一、設(shè)備池
設(shè)備池的工作原理:
1. 不能在計(jì)劃或手動(dòng)狀態(tài)下從設(shè)備池中運(yùn)行自動(dòng)化任務(wù),只有在運(yùn)行隊(duì)列的時(shí)候才可以。
2. 一個(gè)設(shè)備只能加載到一個(gè)設(shè)備池中,在添加到設(shè)備池以后,從設(shè)備列表中就看不見(jiàn)該設(shè)備了。
3. 只有已經(jīng)連接到控制室的設(shè)備才能添加到設(shè)備池。
建立設(shè)備池的過(guò)程:
1. 創(chuàng)建設(shè)備池的用戶,應(yīng)具有AAE_Pool Admin的角色權(quán)限。

2. 在設(shè)備(Devices)菜單中新建一個(gè)設(shè)備池。注:A2019和AAE 11.x界面略有不同。

3. 為新的設(shè)備池命名和填寫(xiě)描述

4. 添加一個(gè)或多個(gè)已連接的設(shè)備


5. 建立該設(shè)備池的所有者Owner,默認(rèn)的所有者是該用戶,也可以新增其他所有者。設(shè)備池的所有者都可以編輯和刪除設(shè)備池中的設(shè)備。

6. 建立該設(shè)備池的消費(fèi)者Consumer,消費(fèi)者是一個(gè)可選填項(xiàng),是按照角色添加的,即具有該角色的用戶,在運(yùn)行某個(gè)隊(duì)列時(shí),可以查看到和選擇到此設(shè)備池。

7. 完成后,可以看到一個(gè)設(shè)備池處于連接狀態(tài)。

二、隊(duì)列
建立隊(duì)列的過(guò)程
1. 創(chuàng)建隊(duì)列的用戶,應(yīng)具有AAE_Queue Admin的角色權(quán)限。

2. 在工作負(fù)載(Workload)菜單中選擇建立新的隊(duì)列Queue

3. 填寫(xiě)新隊(duì)列的基本設(shè)置,包括名稱,描述,重新激活閾值(即當(dāng)隊(duì)列中有幾個(gè)工作項(xiàng)時(shí),該隊(duì)列才開(kāi)始啟動(dòng)運(yùn)行。1就表示隊(duì)列中有1個(gè)工作項(xiàng)時(shí),隊(duì)列就會(huì)運(yùn)行),人員完成 1 個(gè)工作項(xiàng)所需的時(shí)間(該可選項(xiàng),是為了后續(xù)衡量隊(duì)列所產(chǎn)生的收益,即人工處理工作項(xiàng)需要多少時(shí)間)。

4.?建立該隊(duì)列的所有者Owner,默認(rèn)的所有者是該用戶,也可以新增其他所有者。隊(duì)列所有者都可以編輯和增加隊(duì)列中的工作項(xiàng)。

5. 設(shè)置隊(duì)列的參與者(可選填項(xiàng)),是按照角色添加的,即具有該角色的用戶,可以在隊(duì)列中新增工作項(xiàng)和查看隊(duì)列的情況。

6. 設(shè)置隊(duì)列的消費(fèi)者(可選填項(xiàng)),是按照角色添加的,即具有該角色的用戶,可以查看隊(duì)列情況以及使用該隊(duì)列來(lái)運(yùn)行自動(dòng)化任務(wù)。

7. 創(chuàng)建工作項(xiàng)Work Item結(jié)構(gòu)。工作項(xiàng)結(jié)構(gòu)是由一系列字段所組成的。接下來(lái),添加工作項(xiàng)的數(shù)據(jù)時(shí),或者在自動(dòng)化任務(wù)中增加數(shù)據(jù)時(shí),都需要對(duì)應(yīng)到這個(gè)工作項(xiàng)結(jié)構(gòu)中的字段。有三種方式來(lái)定義工作項(xiàng)結(jié)構(gòu),一是導(dǎo)入Excel或CSV,二是在現(xiàn)有的隊(duì)列中選擇1個(gè)結(jié)構(gòu),三是通過(guò)手工方式定義。

以導(dǎo)入Excel或CSV文件為例。導(dǎo)入文件以后,第1步設(shè)置隊(duì)列類別(Queue category)的名稱,工作項(xiàng)中的各個(gè)列也按照Excel中的表頭信息自動(dòng)填入;第2步可自定義是否使用該字段(勾選),字段類型(在AAE11.x中包括文本,數(shù)字,日期三種類型),以及是否顯示在控制中心(勾選);第3步設(shè)置數(shù)據(jù)的排序,這是個(gè)可選項(xiàng),如果不選擇,就是數(shù)據(jù)表中的默認(rèn)順序,最多可以按照三個(gè)字段來(lái)選擇排序。



另外兩種方式,也是類似的。手工處理繁瑣一些,需要一項(xiàng)一項(xiàng)的添加到結(jié)構(gòu)中。

8. 添加工作項(xiàng)數(shù)據(jù)。通過(guò)Excel或CSV導(dǎo)入的數(shù)據(jù)表的列需要和之前定義的工作項(xiàng)結(jié)構(gòu)相一致。也可以選擇在創(chuàng)建隊(duì)列時(shí),先不導(dǎo)入工作項(xiàng),待隊(duì)列運(yùn)行之后再來(lái)導(dǎo)入。

9. 隊(duì)列創(chuàng)建以后,可以在列表中查看到該隊(duì)列。狀態(tài)是“未使用”(Not in use)狀態(tài)。

三、可按照隊(duì)列方式執(zhí)行的自動(dòng)化任務(wù)
開(kāi)發(fā)自動(dòng)化任務(wù)的過(guò)程:
當(dāng)設(shè)置好設(shè)備池和隊(duì)列之后,就可以按照隊(duì)列來(lái)啟動(dòng)自動(dòng)化任務(wù)了。當(dāng)然,也可以先定義好任務(wù),再來(lái)定義設(shè)備池。
在Bot Creator里開(kāi)發(fā)該自動(dòng)化任務(wù)時(shí),首先,需要在右側(cè)的變量菜單中設(shè)置Queue Category(隊(duì)列分類),選擇某個(gè)之前已經(jīng)在隊(duì)列中設(shè)置好的隊(duì)列分類。

設(shè)置好隊(duì)列分類后,在代碼中選擇使用Variable Operation命令,在系統(tǒng)變量里選擇Work Item,再選擇某個(gè)具體屬性賦值給某個(gè)任務(wù)中所使用的變量。接下來(lái),自動(dòng)化任務(wù)就使用這個(gè)變量了,也就相當(dāng)于從隊(duì)列的工作項(xiàng)中取到了輸入數(shù)據(jù)。

四、使用隊(duì)列方式運(yùn)行自動(dòng)化任務(wù)
運(yùn)行隊(duì)列的配置方式:
1. 在Bots中選擇所要執(zhí)行的任務(wù),使用隊(duì)列方式運(yùn)行

2. 下一步,選擇所需要使用的隊(duì)列和設(shè)備池,如果前面已經(jīng)建立好,而此時(shí)在列表里找不到隊(duì)列或設(shè)備池,主要是由于權(quán)限問(wèn)題所導(dǎo)致的,能夠找到列表信息的必須是所有者或是消費(fèi)者。

3. 最后,可以自定義隊(duì)列的名稱和描述,也可以使用默認(rèn)設(shè)置,點(diǎn)擊運(yùn)行。

4. 如果在隊(duì)列中已經(jīng)添加了工作項(xiàng)數(shù)據(jù),那么,設(shè)備池中的設(shè)備會(huì)分別從隊(duì)列中取出工作項(xiàng)數(shù)據(jù),自動(dòng)調(diào)用自動(dòng)化任務(wù)運(yùn)行。某個(gè)設(shè)備的任務(wù)執(zhí)行完之后,再去隊(duì)列中領(lǐng)取新的工作項(xiàng)數(shù)據(jù),直到隊(duì)列中的工作項(xiàng)數(shù)據(jù)都執(zhí)行完成。這樣,就實(shí)現(xiàn)了任務(wù)處理的并發(fā)以及任務(wù)的動(dòng)態(tài)負(fù)載分配。
另外,還可以通過(guò)其他自動(dòng)化任務(wù),來(lái)為隊(duì)列中添加工作項(xiàng)數(shù)據(jù)。
采用自動(dòng)化的方式為隊(duì)列添加工作項(xiàng)數(shù)據(jù)
1. 例如將CSV中的數(shù)據(jù)循環(huán)加入到工作項(xiàng)中,在loop命令中使用Insert Work Item命令,來(lái)添加工作項(xiàng)數(shù)據(jù)。


2. 完成設(shè)置之后,可以通過(guò)手工或自動(dòng)方式來(lái)運(yùn)行這個(gè)任務(wù),實(shí)現(xiàn)對(duì)隊(duì)列中工作項(xiàng)數(shù)據(jù)的插入。

3. 運(yùn)行之后,可以在隊(duì)列中查看到已經(jīng)插入的這些數(shù)據(jù)。

通過(guò)這種實(shí)現(xiàn)方式,就可以實(shí)現(xiàn)前臺(tái)機(jī)器人(自動(dòng)化插入工作項(xiàng)數(shù)據(jù))對(duì)后臺(tái)機(jī)器人的任務(wù)(接到隊(duì)列中的數(shù)據(jù)后,自動(dòng)執(zhí)行)調(diào)用。
五、SLA計(jì)算器
SLA代表了Service Level Agreement(服務(wù)水平協(xié)議),使用服務(wù)水平協(xié)議計(jì)算器可以根據(jù)隊(duì)列大小估算所需的設(shè)備池大小或處理時(shí)間。
1. 具有AAE_Queue_Admin角色用戶,或者屬于是隊(duì)列所有者,參與者或消費(fèi)者權(quán)限的用戶登錄控制中心。
2. 在Workload菜單中選擇SLA calculator,選擇正在執(zhí)行的隊(duì)列。

3. 在計(jì)算器設(shè)置界面中,可以需要處理工作項(xiàng)數(shù)據(jù)量大小,每個(gè)工作項(xiàng)的平均處理時(shí)間,以及計(jì)劃需要多少個(gè)設(shè)備來(lái)執(zhí)行這些數(shù)據(jù)。計(jì)算出預(yù)計(jì)的處理時(shí)間。

也可以根據(jù)需要處理工作項(xiàng)數(shù)據(jù)量大小,每個(gè)工作項(xiàng)的平均處理時(shí)間,以及計(jì)劃需要多長(zhǎng)時(shí)間完成任務(wù),來(lái)計(jì)算所需要的設(shè)備數(shù)量。

六、WLM涉及到的參數(shù)配置
在C:\Program Files\Automation Anywhere\Enterprise\config\wlm.properties文件總定義了WLM所使用的各種參數(shù)。修改參數(shù)后,需要重啟AA的服務(wù)才能生效。其中各參數(shù)的說(shuō)明可參考?https://docs.automationanywhere.com/bundle/enterprise-v11.3/page/enterprise/topics/control-room/workload/wlm-properties-config-description.html
本文中的所有內(nèi)容,可參考Automation Anywhere的官方文檔。https://docs.automationanywhere.com/bundle/enterprise-v11.3/page/enterprise/topics/control-room/workload/workload-an-overview.html