【UiPath 中文教程】02 - 创建自定义 Activity

时间:2021-12-13 11:03:29

在 UiPath Studio 中,活动 (Activity) 是流程自动化的基石,是构成自动化程序的最小模块。它们被包含在一个个 NuGet 包中。

UiPath Studio 中有 3 类包:

  • 官方提供的包
  • 来自社区的包
  • 自定义的包

UiPath Studio 自带了大量内置的核心活动,而这些内置活动仅仅包含了一些基本的操作元素。一些常见的操作,如处理 PDF,Mail,Excel 等都没有包含在核心活动里面。即使这些操作是官方提供的,你仍然需要通过 Manage Activities Packages 来安装它们才能使用。

你可以在 Package Mananger 中找到大量来自 UiPath 官方和社区的包,点击 Install 即可使用。

 
【UiPath 中文教程】02 - 创建自定义 Activity
Manage Packages

如果所有这些活动还不能满足你的要求,你还可以创建自定义活动,然后导入到 UiPath Studio 中使用。自定义的活动有两种形式,你可以编写继承自 CodeActivity 或者 NativeActivity 的自定义活动。这两类活动看起来很相似,但是它们是不一样的,NativeActivity 更加强大。如果需要了解它们之间的差异,请异步官网文档。这里以 CodeActivity 为例创建一个简单的自定义活动。

总的来说,创建自定义活动需要两个步骤:

  1. 编写自定义活动的代码
  2. 在 UiPath 内添加外部程序集(.dll)

从编程角度来看,Activity 其实是一个类。因此,创建自定义活动就需要相应的编程工具。在这里,我们需要使用以下组件来创建自定义活动:

请在实践之前准备好上述工具。


编写自定义活动的代码

为了让你更好地理解怎么编写自定义活动的代码,我们将会创建一个活动,向用户请求两个数字,然后输出其平方的总和。(这个例子来自官方文档)

请按照一下的步骤新建一个 C# 类库的项目:

  1. 启动 Microsoft Visual Studio

  2. 点击 File > New >Project……(快捷方式:Ctrl + Shift + N)。将会显示 New Project 窗口

  3. 点击 Visual C#.将会显示使用c#的所有项目模板的列表。

  4. (可选),为你的自定义活动填写合适的名称到 Name 字段。在这个例子中,我们使用 "MathSquareOfSum" 这个名字

  5. 选择 Class Library (.NET Framework) 并点击 OK。这有助于我们将自定义活动导出为.dll文件。

操作步骤的录屏:

 
【UiPath 中文教程】02 - 创建自定义 Activity
新建项目

项目创建好了之后,接着添加相关的依赖

  1. 点击 Project > Add Reference….

  2. 寻找 System.ActivitiesSystem.ComponentModel.Composition 并勾选它们。

  3. 点击 OK 按钮。这使得使用来自 System.ActivitiesSystem.ComponentModel.Composition 的类成为可能。

 
【UiPath 中文教程】02 - 创建自定义 Activity
cad03e5-add-references.gif

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 中文教程】02 - 创建自定义 Activity
 

在 Uipath 中添加外部程序集之前,首先需要创建 Nuget 包。

  1. 启动 NuGet Package Explorer.

  2. 点击 Create a new package (Ctrl + N) 。将显示一个拆分窗口,它显示 Package metadataPackage contents

  3. 右击 Package contents 部分,将会显示一个上下文菜单

  4. 点击 Add lib folder。注意到,将在 Package contents 创建一个 lib

 
【UiPath 中文教程】02 - 创建自定义 Activity
 
  1. 右击 lib 并选中 Add Existing File ……
 
【UiPath 中文教程】02 - 创建自定义 Activity
 

注意 !

步骤 4,5 非常重要,如果省略这两步,可以得到 NuGet 包,也可以导入到 UiPath Studio 中,但是无法在 Activities 中找到你定义的 Activities。这个过程中 UiPath 也不会报告任何错误。

 
【UiPath 中文教程】02 - 创建自定义 Activity
 
  1. 添加上面创建的外部程序集(.dll) 文件。在这个例子中,应该为 MathSquareOfSum.dll.

  2. 点击 Edit > Edit Metadata。将会显示 Package metadata 部分。

  3. 填写 Id, Version, Authors,Description 字段,填写 id 字段要特别注意,字段中需包含有关键词 Activities。在这个例子中,可以是 ActivitiesCustomMathFunction

 
【UiPath 中文教程】02 - 创建自定义 Activity
 

非常重要!

NuGet 包的 id 字段必须包含关键词 Activities 才能显示在 UiPath Studio 的 Manage Packages 窗口中。这是成功创建自定义 Activity 的要点之一。

  1. 在这个例子中,Id, Version, Authors,Description 是必须的,其它字段都可以不用理会。填写完成之后,点击左上角的绿色勾勾。
 
【UiPath 中文教程】02 - 创建自定义 Activity
 

10.点击 File > Save As 将会把文件打包好,然后弹框让你选择包的存放文件夹。

  1. 复制上述打包后的文件到 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 中找到自定义的包

 
【UiPath 中文教程】02 - 创建自定义 Activity
自定义 Activity

活动一旦被创建并打包成 .nupkg 文件之后,在Studio中安装它与其他活动一模一样。Package Manager >Available > Local 中找到自定义的包,点击 Install 按钮即可。安装示例如下:

 
【UiPath 中文教程】02 - 创建自定义 Activity
e55d3a2-adding-custom-activity-in-studio.gif

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

 
【UiPath 中文教程】02 - 创建自定义 Activity
自定义Activity

这意味着你可以像使用其它 Activity 一样愉快地使用自定义的 Activity 了。添加自己的程序模块到 UiPath 中就好像重新发明了 UiPath,快来试试吧!

注:本文由官方文档 Creating a Custom Activity 改编而来。文中我指出和修正了官方文档的一处错误,并增加了更多的图片来降低理解的门槛,在原文基础上添加了一些省略了的操作步骤。

作者:Creator_蔚蓝
链接:https://www.jianshu.com/p/f40a04e95359
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。