【UiPath Studio 中文文档】创建自定义 Activi
活动 (Activity) 是流程自动化的基石。 UiPath Studio 自带了大量内置的 Core Activities(核心活动),你还可以根据你的需要,通过 Package Manager 安装一些专用的活动(如处理 PDF,Mail,Excel 等)。你可以阅读 The UiPath Activities Guide 了解更多细节和例子,以及知道怎样管理活动包(Manage Activities Packages)。另外,你可以根据你的需求来创建自定义活动实现自动化流程。
创建自定义活动需要两个主要步骤:
- 编写自定义活动的代码
- 在UiPath内添加外部程序集(.dll)
请注意,创建自定义活动需要以下组件:
- Microsoft Visual Studio 以及安装了.NET 桌面开发组件
- NuGet Package Explorer.
你可以编写继承自 CodeActivity 或者 NativeActivity 的自定义活动。这两类活动看起来很相似,但是它们是不一样的。你可以从 这里 查看一个详细的 NativeActivity 例子。
CodeActivity 提供了一个 Execute 方法,该方法可以被重写来作为你的实现。它还提供了对跟踪、变量和参数的访问。您可以将 CodeActivity 用于以下方面:
- 简单的自定义活动
- 同步的活动
- 单脉冲执行
- 调度其他活动
- 使用高级WF运行时功能
NativeActivity 提供了 CodeActivity 的所有功能,而且允许你终止活动的执行,取消子活动的执行,调度多个活动,使用书签,以及活动动作和函数。您可以将 NativeActivity 用于以下方面:
- 复杂的自定义活动
- 运行长的自定义活动
- 多脉冲执行
- 调度其他活动
- 使用高级WF运行时功能
注意:
只有使用 CodeActivity 来创建活动时不要求 WF Runtime 的兼容性。
编写自定义活动的代码
为了让你更好地理解怎么编写自定义活动的代码,我们将会创建一个活动,向用户请求两个数字,然后输出其平方的总和。
新建项目注意:
为了编写自定义活动,你需要安装 Microsoft Visual Studio 以及 .NET 桌面开发组件
-
启动 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 的类成为可能。
现在你可以决定使用 CodeActivity 还是 NativeActivity。在这个例子中,我们使用 CodeActivity。
- 在 Using 指令中,添加下面的代码
using System.Activities;
using System.ComponentModel;
10.编写自定义活动的代码。在我们的例子中,它需要看起来像这样:
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 包。
-
启动 NuGet Package Explorer。
-
点击 Create a new package (Ctrl + N) 。将显示一个拆分窗口,它显示 Package metadata 和 Package contents。我们需要在后面添加所有依赖项。
-
右击 Package contents 部分,将会显示一个上下文菜单
-
点击 Add lib folder。注意到,将在 Package contents 创建一个 lib 项
-
右击 lib 并选中 Add Existing File ……
-
加载上面创建的外部程序集(.dll)。在这个例子中,应该为MathSquareOfSum.dll.
-
点击 Edit > Edit Metadata。将会显示 Package metadata部分。
-
填写您认为合适的字段,以便更好地描述您的自定义活动。
-
填写 id 字段。在这个例子中,可以是 ActivitiesCustomMathFunction
非常重要!
NuGet 包的 id 字段必须包含关键词 Activities 才能显示在 UiPath Studio 的 Manage Packages 窗口中
- 复制上述打包后的文件到 Uipath Studio 安装位置的 Packages 文件夹中。包含你自定义 Activity 的 Nuget 包现在已经准备好,可以在 UiPath 中加载了。
注意:
必须为你的活动创建一个直观的文件夹结构。在 Orchestrator 中,在自定义活动中所有的空文件夹都会被移除。
在 UiPath Studio中加载 NuGet 包(自定义Activity)
e55d3a2-adding-custom-activity-in-studio.gif活动一旦被创建并打包成 .nupkg 文件之后,在Studio中安装它与其他活动类似。了解有关 Adding your own Packages 的更多信息。
更多 UiPath 相关的资讯,请关注公众号:UiPath教程
由于简书禁止直接在文章中插入公众号二维码,请点击 这里 了解添加该公众号的细节。