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

UiPath Studio 中有 3 类包:

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

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

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

 
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文件。

操作步骤的录屏:

 
新建项目

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

  1. 点击 Project > Add Reference….

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

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

 
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 中添加外部程序集之前,首先需要创建 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

 
 
  1. 右击 lib 并选中 Add Existing File ……
 
 

注意 !

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

 
 
  1. 添加上面创建的外部程序集(.dll) 文件。在这个例子中,应该为 MathSquareOfSum.dll.

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

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

 
 

非常重要!

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

  1. 在这个例子中,Id, Version, Authors,Description 是必须的,其它字段都可以不用理会。填写完成之后,点击左上角的绿色勾勾。
 
 

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 中找到自定义的包

 
自定义 Activity

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

 
e55d3a2-adding-custom-activity-in-studio.gif

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

 
自定义Activity

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

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

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

【UiPath 中文教程】02 - 创建自定义 Activity的更多相关文章

  1. HTML5 UI框架Kendo UI Web教程:创建自定义组件(三)

    Kendo UI Web包 含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等.在前面的2篇文章<HTML5 Web app开发工具Ke ...

  2. ModernUI教程:创建自定义主题

            Modern UI WPF包括两个内置主题(dark与light).在1.0.3版本,您可以构建自定义的主题.Modern UI应用程序通常有在全局资源字典App.xaml中有如下定义 ...

  3. 创建自定义视图在Android矩阵效果画布教程

    介绍 下面是一个快速教程,教你如何在Android中创建自定义视图.自定义视图创建一个矩阵雨效果. 本教程发布在http://www.androidlearner.com/. 背景 下面是关于如何工作 ...

  4. UiPath官网认证中文教程

    RPA之家公众号:RPA之家 RPA之家官网:http://rpazj.com 斗鱼直播:http://www.douyu.com/rpazj UiPath中文社区QQ群:465630324 RPA& ...

  5. NGUI系列教程四(自定义Atlas,Font)

    今天我们来看一下怎么自定义NGUIAtlas,制作属于自己风格的UI.第一部分:自定义 Atlas1 . 首先我们要准备一些图标素材,也就是我们的UI素材,将其导入到unity工程中.2. 全选我们需 ...

  6. Django REST FrameWork中文教程2:请求和响应

    从这一点开始,我们将真正开始覆盖REST框架的核心.我们来介绍几个基本的构建块. 请求对象REST框架引入了Request扩展常规的对象HttpRequest,并提供更灵活的请求解析.Request对 ...

  7. 【转】(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout

    原创至上,移步请戳:(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout 2. BasicLayout 在这一节我们会看到UI元素相对于画布的位置是怎样的. ...

  8. Python消息队列工具 Python-rq 中文教程

    原创文章,作者:Damon付,如若转载,请注明出处:<Python消息队列工具 Python-rq 中文教程>http://www.tiangr.com/python-xiao-xi-du ...

  9. struts2官方 中文教程 系列十四:主题Theme

    介绍 当您使用一个Struts 2标签时,例如 <s:select ..../>  在您的web页面中,Struts 2框架会生成HTML,它会显示外观并控制select控件的布局.样式和 ...

随机推荐

  1. day04 迭代器&生成器&装饰器

    目录   1.迭代器 2.生成器 3.推导式 4.匿名函数 5.内置函数 6.递归 7.闭包 8.装饰器 一.迭代器 特点: 1. 省内存 2. 只能向前. 不能反复 3. 惰性机制 让不同的数据类型 ...

  2. JavaWeb数据库长时间不访问断开链接解决思路

    这几天开发的线上商超系统长时间不操作,会频繁的出现第一次登陆或者跟数据库操作有关的方法都会报500错误,很是鸡肋啊这个问题. 经过网上不断的探索,在知识的海洋里畅游了几分钟后我自己总结出一套方法,我用 ...

  3. Kivy中文编程指南--https://cycleuser.gitbooks.io/kivy-guide-chinese/content/

    Kivy 是一个开源的 Python 框架,用于快速开发应用,实现各种当前流行的用户界面,比如多点触摸等等. + Kivy 可以运行于 Windows, Linux, MacOS, Android, ...

  4. 将centos的yum源修改为阿里云的yum源

    CentOS系统更换软件安装源 第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentO ...

  5. 在已安装64位oracle的服务器安装32位客户端

    应用场景:服务器操作系统是win2012 64位,原先安装了64位oracle12,后来系统增加导入excel的功能,网站必须启用32位兼容模式,这时候发现原有的页面打不开,提示: 试图加载格式不正确 ...

  6. webRTC中音频相关的netEQ(四):控制命令决策

    上篇(webRTC中音频相关的netEQ(三):存取包和延时计算)讲了语音包的存取以及网络延时和抖动缓冲延时的计算,MCU也收到了DSP模块发来的反馈报告.本文讲MCU模块如何根据网络延时.抖动缓冲延 ...

  7. 报错:Exception in thread "main" java.lang.NoClassDefFoundError: Lorg/apache/hadoop/fs/FileSystem

    报错现象: Exception in thread "main" java.lang.NoClassDefFoundError: Lorg/apache/hadoop/fs/Fil ...

  8. Python量化分析,计算KDJ

    Python: v3.6 Pandas: v0.23.4 使用以下方法计算与国内财经软件显示一致 low_list = df['最低价'].rolling(9, min_periods=9).min( ...

  9. ICE框架双工通讯+MVVM框架测试案例

    准备 开发工具 VS2015 ICE框架 https://zeroc.com/ MVVMLight框架 ICE接口文件 #include "./Identity.ice" #inc ...

  10. 执行yum提示错误:rpmdb: BDB0113 Thread/process 424227/139826856310848 failed

    [问题]在执行yum安装或者其他命令时,有如下提示: [解决办法:重新构建rpm数据库] [root@cly ~]# cd /var/lib/rpm [root@cly rpm]# ls Basena ...