为什么要开发新功能?
UiPath的设计器(Studio)自带大量官方activity(活动),如果而这些官方活动不能满足你的要求,你可以通过开发工具,创建自定义活动,然后导入到你的流程中使用。
有不少组织专门给UiPath开发activity,发布到UiPath网站中,供用户使用,例如balareva。
开发过程综述
开发和使用新功能的UiPath Activity需要四步:
1、通过Microsoft Visual Studio(c#、VB.net均可)来编写你的Activity逻辑,编译生成.dll文件;
2、通过NuGet Package Explorer,把dll文件打包成nupkg格式;
3、打开你的流程,通过包管理功能,安装你打包的nupkg文件。
4、把新功能拖拽到流程中,进行使用。
部署开发环境
Microsoft Visual Studio(c#、VB.net均可) 给UiPath开发新功能,需要使用Microsoft Visual Studio(下文简称VS),VS中有很多种开发工具,可以选择c#或者VB.net,VS社区版下载地址:https://visualstudio.microsoft.com/zh-hans/vs/,下载完成后,安装c#或者VB.net即可(里面还有其他类型的工具)。
我安装的是Visual Studio2019,如下图(我之前安装的,也可以安装最新版本2022)
NuGet Package Explorer
NuGet Package Explorer是个开源工具,最新release下载地址:
https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/releases/download/v5.10.43/PackageExplorer.5.10.43.zip
下载后解压,打开解压后的目录,NuGetPackageExplorer.exe就是这个软件的可执行文件,打开即可。
UiPath Studio
既然是给UiPath开发新功能,想必您已经下载好这个软件了。
如果您还没有下载好这个软件,请移步
https://www.toutiao.com/a6958328063168004615
或者
https://www.ixigua.com/6958375693185090056,下载安装。
下载后的初始化过程,见:
https://www.toutiao.com/a6958358298148012556。
开发过程
下面以实现求平方的功能(向用户请求两个数字,然后输出其和的平方),介绍开发过程。
第一步:用VS写activity逻辑,编译成dll文件 创建C#项目,编写自定义Activity的实现代码。
打开Microsoft Visual Studio,点击 File > New >Project……(快捷方式:Ctrl + Shift + N)。将会显示 New Project 窗口,点击 Visual C#,将会显示使用C#的所有项目模板的列表,选择Class Library,项目取名为MathSquare。
添加引用
点击project >Add Reference
分别搜索System.Activities 和System.CompoentModel.Composition引用,并勾选,点击ok,
然后,在代码中就可以使用 System.Activities 和 System.ComponentModel.Composition 这两个包中的功能了。
编写功能逻辑
编写完成新功能逻辑后,我们的例子中代码如下.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.Activities;
using System.ComponentModel;
namespace MathSquare
{
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);
}
}
}
编译成dll文件
点击 Build > Build Solution
会自动显示Output窗口,通知您文件已经生成,并显示它的路径。
根据路径,找到MathSquare.dll文件所在位置,准备下一步打包使用:
? 第二步:用NuGet Package Explorer把dll及相关文件打包成nupkg格式
打开NuGet Package Explorer,点击Create a new package (Ctrl + N):
你会看到左右分割的两栏Package metadata和Package contents;
在右边Package contents栏的右键菜单单击 Add lib folder,之后在lib文件夹上右键,点击 Add Existing File… 添加 MathSquare.dll文件
?
点击顶部菜单栏 Edit > Edit Metadata,填写你的包信息。
在这个例子中,Id,Version,Authors,Description 是必须的,其它字段都可以不用理会。
填写完成之后,点击左上角的绿色勾勾
点击 File > Save ,保存你的包,文件名应该是类似这样:
ActivityMyPackage.1.0.3.nupkg
第三步:在你的流程中,引用这个nupkg
打开UiPath Studio,打开你的流程,打开Manage Packages(中文版:包管理),点击左上方的Settings,在Default packages sources栏中查看Local标签对应的路径。
把你的nupkg文件,放到这个文件夹内:
或者,在User defined package sources下,加入你的nupkg文件所在的目录。
在Manage Packages左侧点击All Packages > Local ,你应该可以直接看到你的包了,或者通过搜索来找到你的包,点击你的包,在右侧信息栏点击install,然后Save:
至此,你的包已经安装到你的UiPath Studio的Activities面板中了,就可以拖拽到流程中使用了。
在你的流程中使用你开发的新功能
在Activities(中文版:活动)中搜索Simple Formula(自定义包中,类的名字,可查看源代码)
定义一个变量:result,用于存放计算结果,如下图:
并将其拖至设计区
选中拖入设计区的该活动,修改属性,firstNumber属性输入2,SecondNumber属性输入3, ResultNumber属性输入自定义变量result,表示将2跟3的和的平方赋值给result 变量:
在Activities中搜索Log Message,并将其拖至设计区,在Message 属性中输入步骤13中返回的变量result:
运行流程,在Output中可以看到结果如下:
25就是通过Log Message显示到Output中的result的值。?
|