在 UiPath Studio 中,活動 (Activity) 是流程自動化的基石,是構成自動化程序的最小模塊。它們被包含在一個個 NuGet 包中。
UiPath Studio 中有 3 類包:
- 官方提供的包
- 來自社區的包
- 自定義的包
UiPath Studio 自帶了大量內置的核心活動,而這些內置活動僅僅包含了一些基本的操作元素。一些常見的操作,如處理 PDF,Mail,Excel 等都沒有包含在核心活動里面。即使這些操作是官方提供的,你仍然需要通過 Manage Activities Packages 來安裝它們才能使用。
你可以在 Package Mananger 中找到大量來自 UiPath 官方和社區的包,點擊 Install 即可使用。

如果所有這些活動還不能滿足你的要求,你還可以創建自定義活動,然后導入到 UiPath Studio 中使用。自定義的活動有兩種形式,你可以編寫繼承自 CodeActivity 或者 NativeActivity 的自定義活動。這兩類活動看起來很相似,但是它們是不一樣的,NativeActivity 更加強大。如果需要了解它們之間的差異,請異步官網文檔。這里以 CodeActivity 為例創建一個簡單的自定義活動。
總的來說,創建自定義活動需要兩個步驟:
- 編寫自定義活動的代碼
- 在 UiPath 內添加外部程序集(.dll)
從編程角度來看,Activity 其實是一個類。因此,創建自定義活動就需要相應的編程工具。在這里,我們需要使用以下組件來創建自定義活動:
- Microsoft Visual Studio 以及安裝了.NET 桌面開發組件
- NuGet Package Explorer. 點擊 鏈接 即可下載
請在實踐之前准備好上述工具。
編寫自定義活動的代碼
為了讓你更好地理解怎么編寫自定義活動的代碼,我們將會創建一個活動,向用戶請求兩個數字,然后輸出其平方的總和。(這個例子來自官方文檔)
請按照一下的步驟新建一個 C# 類庫的項目:
-
啟動 Microsoft Visual Studio
-
點擊 File > New >Project……(快捷方式:Ctrl + Shift + N)。將會顯示 New Project 窗口
-
點擊 Visual C#.將會顯示使用c#的所有項目模板的列表。
-
(可選),為你的自定義活動填寫合適的名稱到 Name 字段。在這個例子中,我們使用 "MathSquareOfSum" 這個名字
-
選擇 Class Library (.NET Framework) 並點擊 OK。這有助於我們將自定義活動導出為.dll文件。
操作步驟的錄屏:

項目創建好了之后,接着添加相關的依賴
-
點擊 Project > Add Reference….
-
尋找 System.Activities 和 System.ComponentModel.Composition 並勾選它們。
-
點擊 OK 按鈕。這使得使用來自 System.Activities 和 System.ComponentModel.Composition 的類成為可能。

9.編寫自定義活動的代碼。在我們的例子中,代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Activities; using System.ComponentModel; namespace ClassMathCustomActivity { 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); } } }
注意
我們使用protected override void Execute(CodeactivityContext)
代碼來覆蓋 Execute 方法。
點擊 Build > Build MathSquareOfSum****。將會顯示Output面板,通知您文件已經生成,並顯示它的路徑。在本例中,創建了 MathSquareOfSum.dll 文件。
在 UiPath 中添加外部程序集(.dll)

在 Uipath 中添加外部程序集之前,首先需要創建 Nuget 包。
-
點擊 Create a new package (Ctrl + N) 。將顯示一個拆分窗口,它顯示 Package metadata 和 Package contents。
-
右擊 Package contents 部分,將會顯示一個上下文菜單
-
點擊 Add lib folder。注意到,將在 Package contents 創建一個 lib 項

- 右擊 lib 並選中 Add Existing File ……

注意 !
步驟 4,5 非常重要,如果省略這兩步,可以得到 NuGet 包,也可以導入到 UiPath Studio 中,但是無法在 Activities 中找到你定義的 Activities。這個過程中 UiPath 也不會報告任何錯誤。
![]()
-
添加上面創建的外部程序集(.dll) 文件。在這個例子中,應該為 MathSquareOfSum.dll.
-
點擊 Edit > Edit Metadata。將會顯示 Package metadata 部分。
-
填寫 Id, Version, Authors,Description 字段,填寫 id 字段要特別注意,字段中需包含有關鍵詞 Activities。在這個例子中,可以是 ActivitiesCustomMathFunction

非常重要!
NuGet 包的 id 字段必須包含關鍵詞 Activities 才能顯示在 UiPath Studio 的 Manage Packages 窗口中。這是成功創建自定義 Activity 的要點之一。
- 在這個例子中,Id, Version, Authors,Description 是必須的,其它字段都可以不用理會。填寫完成之后,點擊左上角的綠色勾勾。

10.點擊 File > Save As 將會把文件打包好,然后彈框讓你選擇包的存放文件夾。
- 復制上述打包后的文件到 UiPath Studio 安裝位置的 Packages 文件夾中 。包含你自定義 Activity 的 Nuget 包現在已經准備好,可以在 UiPath 中加載了。
非常重要!
官網文檔中關於 NuGet 包的存放位置的描述是錯誤的。正確的應該是 UiPath Studio 安裝位置的 Packages 文件夾中。
必須為你的活動創建一個直觀的文件夾結構。在 Orchestrator 中,在自定義活動中所有的空文件夾都會被移除。
在 UiPath Studio中加載 NuGet 包(自定義Activity)
只要將復制上述打包后的 .nupkg 文件到 UiPath Studio 安裝位置的 Packages 文件夾中,重啟 UiPath Studio 就可以在 Package Manager >Available > Local 中找到自定義的包

活動一旦被創建並打包成 .nupkg 文件之后,在Studio中安裝它與其他活動一模一樣。Package Manager >Available > Local 中找到自定義的包,點擊 Install 按鈕即可。安裝示例如下:

安裝成功后,就可以在 Activities 面板中搜到你定義的 Activity 了:

這意味着你可以像使用其它 Activity 一樣愉快地使用自定義的 Activity 了。添加自己的程序模塊到 UiPath 中就好像重新發明了 UiPath,快來試試吧!
注:本文由官方文檔 Creating a Custom Activity 改編而來。文中我指出和修正了官方文檔的一處錯誤,並增加了更多的圖片來降低理解的門檻,在原文基礎上添加了一些省略了的操作步驟。
作者:Creator_蔚藍
鏈接:https://www.jianshu.com/p/f40a04e95359
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。