在 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
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。