【UiPath 中文教程】02 - 创建自定义 Activity
在 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
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
【UiPath 中文教程】02 - 创建自定义 Activity的更多相关文章
- HTML5 UI框架Kendo UI Web教程:创建自定义组件(三)
Kendo UI Web包 含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等.在前面的2篇文章<HTML5 Web app开发工具Ke ...
- ModernUI教程:创建自定义主题
Modern UI WPF包括两个内置主题(dark与light).在1.0.3版本,您可以构建自定义的主题.Modern UI应用程序通常有在全局资源字典App.xaml中有如下定义 ...
- 创建自定义视图在Android矩阵效果画布教程
介绍 下面是一个快速教程,教你如何在Android中创建自定义视图.自定义视图创建一个矩阵雨效果. 本教程发布在http://www.androidlearner.com/. 背景 下面是关于如何工作 ...
- UiPath官网认证中文教程
RPA之家公众号:RPA之家 RPA之家官网:http://rpazj.com 斗鱼直播:http://www.douyu.com/rpazj UiPath中文社区QQ群:465630324 RPA& ...
- NGUI系列教程四(自定义Atlas,Font)
今天我们来看一下怎么自定义NGUIAtlas,制作属于自己风格的UI.第一部分:自定义 Atlas1 . 首先我们要准备一些图标素材,也就是我们的UI素材,将其导入到unity工程中.2. 全选我们需 ...
- Django REST FrameWork中文教程2:请求和响应
从这一点开始,我们将真正开始覆盖REST框架的核心.我们来介绍几个基本的构建块. 请求对象REST框架引入了Request扩展常规的对象HttpRequest,并提供更灵活的请求解析.Request对 ...
- 【转】(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout
原创至上,移步请戳:(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout 2. BasicLayout 在这一节我们会看到UI元素相对于画布的位置是怎样的. ...
- Python消息队列工具 Python-rq 中文教程
原创文章,作者:Damon付,如若转载,请注明出处:<Python消息队列工具 Python-rq 中文教程>http://www.tiangr.com/python-xiao-xi-du ...
- struts2官方 中文教程 系列十四:主题Theme
介绍 当您使用一个Struts 2标签时,例如 <s:select ..../> 在您的web页面中,Struts 2框架会生成HTML,它会显示外观并控制select控件的布局.样式和 ...
随机推荐
- day-11函数的形参与实参
形参与实参 参数介绍: 函数为什么要有参数:因为内部的函数体需要外部的数据 怎么定义函数的参数:在定义函数阶段,函数名后面()中来定义函数的参数 怎么使用函数的参数:在函数体中用定义的参数名直接使用 ...
- Combat 战斗任务
发售年份 1977 平台 VCS 开发商 雅达利(Atari) 类型 射击 https://www.youtube.com/watch?v=2LxPEdUZOkE
- jquery 获取name一样的值
$("input[name=test]").map(function(){return this.value;}).get().join(",")
- MessageFormat.format 包含单引号引起的不可替换
MessageFormat.format("region = '{0}'", "en");实际结果是region = {0}如果需要被替换的话,需要用双单引号 ...
- 【网络】IP子网划分详解
1.IP地址组成 IP地址组成示意图 IP地址由32位二进制组成,32位二进制分成了4字节,每字节8位,字节之间用符.(点)分隔,为了方便 ...
- JDK安装教程
打开我的电脑,在D盘中新建一个文件夹,名字为develop 进入develop,创建一个新文件夹,名字叫做jdk 双击JDK的安装包, .4.出如图所示的框,选择下一步 .5.更改安装路径,选择更改 ...
- 解决用低版本的客户端ORACLE 12提示ORA-28040的异常
用低版本的客户端访问ORACLE 12,无法连接,提示信息为ORA-28040.解决办法如下: 1.把sqlnet.ora文件添加两行(或者修改),修改文件后直接生效,不需要重启服务和监听的: SQL ...
- 怎么安装Scrapy框架以及安装时出现的一系列错误(win7 64位 python3 pycharm)
因为要学习爬虫,就打算安装Scrapy框架,以下是我安装该模块的步骤,适合于刚入门的小白: 一.打开pycharm,依次点击File---->setting---->Project---- ...
- C#使用AppDomain时的异常分析:Object ‘XXXX.rem’ has been disconnected or does not exist at the server.
在使用C#的应用程序域的时候,碰到这么一个异常: System.Runtime.Remoting.RemotingException: Object ‘/76e7cd41_2cd2_4e89_9c03 ...
- 初学者常用的LINUX命令
测试初学者常用的LINUX命令 一.常用管理命令:1. shutdown -h now 关机命令2. shutdown -r now (reboot) 立即重启命令 3. clear 清屏命令 4. ...