【RPA之家轉載】給UiPath開發(fā)新功能(activity,活動)的操作過程
為什么要開發(fā)新功能?
UiPath的設計器(Studio)自帶大量官方activity(活動),如果而這些官方活動不能滿足你的要求,你可以通過開發(fā)工具,創(chuàng)建自定義活動,然后導入到你的流程中使用。
有不少組織專門給UiPath開發(fā)activity,發(fā)布到UiPath網站中,供用戶使用,例如balareva。
開發(fā)過程綜述
開發(fā)和使用新功能的UiPath Activity需要四步:
通過Microsoft Visual Studio(c#、VB.net均可)來編寫你的Activity邏輯,編譯生成.dll文件;
通過NuGet Package Explorer,把dll文件打包成nupkg格式;
打開你的流程,通過包管理功能,安裝你打包的nupkg文件。
把新功能拖拽到流程中,進行使用。
部署開發(fā)環(huán)境
Microsoft Visual Studio(c#、VB.net均可)
給UiPath開發(fā)新功能,需要使用Microsoft Visual Studio(下文簡稱VS),VS中有很多種開發(fā)工具,可以選擇c?;蛘遃B.net,VS社區(qū)版下載地址:https://visualstudio.microsoft.com/zh-hans/vs/,下載完成后,安裝c#或者VB.net即可(里面還有其他類型的工具)。
我安裝的是Visual Studio2019,如下圖(我之前安裝的,也可以安裝最新版本2022)

NuGet Package Explorer
NuGet Package Explorer是個開源工具,最新release下載地址:
https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/releases/download/v5.10.43/PackageExplorer.5.10.43.zip
下載后解壓,打開解壓后的目錄,NuGetPackageExplorer.exe就是這個軟件的可執(zhí)行文件,打開即可。
UiPath Studio
既然是給UiPath開發(fā)新功能,想必您已經下載好這個軟件了。
如果您還沒有下載好這個軟件,請移步
https://www.toutiao.com/a6958328063168004615
或者
https://www.ixigua.com/6958375693185090056,下載安裝。
下載后的初始化過程,見:
https://www.toutiao.com/a6958358298148012556。
開發(fā)過程
下面以實現(xiàn)求平方的功能(向用戶請求兩個數(shù)字,然后輸出其和的平方),介紹開發(fā)過程。
第一步:用VS寫activity邏輯,編譯成dll文件
創(chuàng)建C#項目,編寫自定義Activity的實現(xiàn)代碼。
打開Microsoft Visual Studio,點擊 File > New >Project……(快捷方式:Ctrl + Shift + N)。將會顯示 New Project 窗口,點擊 Visual C#,將會顯示使用C#的所有項目模板的列表,選擇Class Library,項目取名為MathSquare。

添加引用
點擊project >Add Reference

分別搜索System.Activities 和System.CompoentModel.Composition引用,并勾選,點擊ok,


然后,在代碼中就可以使用 System.Activities 和 System.ComponentModel.Composition 這兩個包中的功能了。
編寫功能邏輯
編寫完成新功能邏輯后,我們的例子中代碼如下.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.Activities;
using System.ComponentModel;
namespace MathSquare
{
public class SimpleFormula : CodeActivity
{
[Category("Input")]
[RequiredArgument]
public InArgument<double> FirstNumber { get; set; }
[Category("Input")]
public InArgument<double> SecondNumber { get; set; }
[Category("Output")]
public OutArgument<double> ResultNumber { get; set; }
protected override void?Execute(CodeActivityContext context)
{
var firstNumber = FirstNumber.Get(context);
var secondNumber = SecondNumber.Get(context);
var result = System.Math.Pow(firstNumber + secondNumber,2);
ResultNumber.Set(context,result);
}
}
}
編譯成dll文件
點擊 Build > Build Solution

會自動顯示Output窗口,通知您文件已經生成,并顯示它的路徑。
根據(jù)路徑,找到MathSquare.dll文件所在位置,準備下一步打包使用:

第二步:用NuGet Package Explorer把dll及相關文件打包成nupkg格式
打開NuGet Package Explorer,點擊Create a new package (Ctrl + N):

你會看到左右分割的兩欄Package metadata和Package contents;
在右邊Package contents欄的右鍵菜單單擊 Add lib folder,之后在lib文件夾上右鍵,點擊 Add Existing File… 添加 MathSquare.dll文件


點擊頂部菜單欄 Edit > Edit Metadata,填寫你的包信息。
在這個例子中,Id,Version,Authors,Description 是必須的,其它字段都可以不用理會。
填寫完成之后,點擊左上角的綠色勾勾

點擊 File > Save ,保存你的包,文件名應該是類似這樣:
ActivityMyPackage.1.0.3.nupkg
第三步:在你的流程中,引用這個nupkg
打開UiPath Studio,打開你的流程,打開Manage Packages(中文版:包管理),點擊左上方的Settings,在Default packages sources欄中查看Local標簽對應的路徑。
把你的nupkg文件,放到這個文件夾內:

或者,在User defined package sources下,加入你的nupkg文件所在的目錄。
在Manage Packages左側點擊All Packages > Local ,你應該可以直接看到你的包了,或者通過搜索來找到你的包,點擊你的包,在右側信息欄點擊install,然后Save:

至此,你的包已經安裝到你的UiPath Studio的Activities面板中了,就可以拖拽到流程中使用了。
在你的流程中使用你開發(fā)的新功能
在Activities(中文版:活動)中搜索Simple Formula(自定義包中,類的名字,可查看源代碼)

定義一個變量:result,用于存放計算結果,如下圖:

并將其拖至設計區(qū)

選中拖入設計區(qū)的該活動,修改屬性,firstNumber屬性輸入2,SecondNumber屬性輸入3, ResultNumber屬性輸入自定義變量result,表示將2跟3的和的平方賦值給result 變量:

在Activities中搜索Log Message,并將其拖至設計區(qū),在Message 屬性中輸入步驟13中返回的變量result:

運行流程,在Output中可以看到結果如下:

25就是通過Log Message顯示到Output中的result的值。

文章來源:https://www.toutiao.com/a7031537242523075110/?log_from=28d90abad8e15_1641432487036