【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控件的布局.样式和 ...
随机推荐
- Just nothing
I know that's I should do what I can to find a job But I can't focus on it I am always sad and I can ...
- 20175202 《Java程序设计》第八周学习总结
20175202 2018-2019-2 <Java程序设计>第八周学习总结 教材知识点总结 1.泛型: 主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 泛型类的声 ...
- CentOs 设置静态IP
1.修改网卡配置 编辑:vi /etc/sysconfig/network-scripts/ifcfg-eno49 通过ifconfig命令,查看在用的网卡(特别是网卡别名).也可以进入/etc/sy ...
- Win10 使用MinGW-w64编译Tesseract4.0
一开始尝试使用mingw+msys编译tesseract, 但是苦于mingw-get安装的软件版本都太旧,要安装新版本只能下载源码编译安装. 在编译过程中遇到了很多麻烦,最后还遇到了包直接循环依赖问 ...
- 转载 修改oracle用户密码永不过期
1.查看用户的proifle是哪个,一般是default: sql>SELECT username,PROFILE FROM dba_users; 2.查看指定概要文件(如default)的密码 ...
- 初次使用BAT,请检查Chrome浏览器和ChromeDriver兼容性
ChromeDriver可以理解为Chrome驱动,它是架在BAT程序和Chrome之间的桥梁.但是ChromeDriver的问题是,每个版本的兼容范围很窄,通常只能兼容3个Chrome版本. 因此, ...
- rabbit原理及项目应用
1.rabbitMQ是什么? mq是由erlang语言开发的开源的amqp的实现. 2.rabbitMQ的基本原理是什么? 使用RabbitMQ,首先需要与rabbitMQ的visiu host建立连 ...
- Spark RDD 操作
1. Spark RDD 创建操作 1.1 数据集合 parallelize 可以创建一个能够并行操作的RDD.其函数定义如下: ) scala> sc.defaultParallelism ...
- git push 本地项目推送到远程分支
大家有的时候,会在本地新建项目,这里说一下在本地项目建立本地git仓库,然后push到远程仓库的步骤 1.在本地项目的文件夹下,git仓库初始化 git init 初始化本地git仓库 2. git ...
- Java异常处理——受控(checked)的异常(throws语句)
受控与不受控的异常 1.throws语句中声明的异常称为受控(checked)的异常,通常直接派生自Exception类. 2.RuntimeException(其基类为Exception) 和Err ...