领导就是发疯,就是商人任意,看啥就吹啥,UIPATH究竟是啥,这就是RPA还是炒剩饭。
看来中国的人工费太贵了,RPA有噱头,有搞头。
-
UIPATH的技术研究
说UIPATH好牛逼的,样子。我花三天研究了一下,看了老板吹牛,我吐槽一下。
UIPATH的包含哪些技术。3个hook+WPF+WCF+WF的开发的带界面的按键精灵而已。
UIPATH开发技术和平台。
1)开发平台是给予VB.NET开发的(老外VB流比较多),最新19版本为.NET Framework 4.6.1开发的。并且提供了社区版本。开发工具Visual Studio 2017开发的。
2)模拟按键和系统控制能力,内置按键HOOK和鼠标HOOK等系统控制功能,模拟按键和系统控制。领导吹的很大,也未必能够攻破网银。本身和按键精灵,以及开源的RPA差不多一个控制能力级别。不一定能够模拟控制。本身提供了“安全输入”的功能,未测试,但是估计技术都差不过了。很多网银都有反HOOK的能力,实践最好了,还是不要了。
3)给予NUGET可以直接导入.NET 4.6的包,UIPATH STUDIO 可以进行开发。
4)自带AAHOOK的钩子直接获得屏幕句柄,借助PIPE进行IPC通讯,,有个AAHOOK可以直接抓屏捕获句柄,进行录入,点击选择窗口,可以直接抓取IE上的WEB组件。借助这个可以直接选择窗口获得WEB元素,看起来蛮吊的。
本身技术就那样子而已,关键UIPATH提供了非常齐全的WEB浏览器插件,包含Chrome等插件进行注入控制,技术难度不高,但是UIPATH满齐全的
5)程序安装目录为C:\Users\{USER}\.nuget\packages\uipath.uiautomation.activities\19.7.0\lib\目录下,原来界面是第三方的WPF组件包ActiproSoftware产品,而已,界面的流程图就是WF(Window workflow foundation)开发。
6)orchestrator就是网络调度控制和协调的东西吧(我只完了两天),我感觉就是不错的创意,可以通过网络的方式,这个技术一般,但是创意可以让远程网络借助网络控制机器人运行,把按键精灵插上了RPA的翅膀了。
7)网页不可避免的提供了验证码吧,有动作的,还有图片的,OCR是主要的,UIPATH提供了各种集成第三方的OCR引擎。还算简单好用。包含HP的那个OCR文字识别,图像识别,这个相对国内的按键精灵,还算不错的进步。
这些东西和之前的抓屏差不过,噱头而已。
本身UIPATH就是以前在游戏领域玩家玩的按键精灵的,对于表单的输入,本身的流程图花的人人吐血,还不如开源的AUTOHOTKEY,直接脚本输入配置,表单轻松配置,还不如按键精灵直接写脚本。
后来我想想,可以UIPATH看来面向的是非计算机的普通用用户了。
-
搞一个大一点RPA,就是键精灵脚本
现在要模拟输入整理EXCEL表录入到网页上。难道我要一个字段一个字段的配置,等等,我要吐了。
我来编写脚本。和微软自带的Invoke flow,直接添加脚本,还算不错,不过内置的语法器还是DEMO。
直接在Visual studio开发好,再填写到里面了。
分模块管理做单元测试,是程序员的本能吧。
本身提供的LINQ和DATABLE支持,有烂的了。
如果要做好UIPATH的开发,一定要具备一定的编程能力,否则根本不具备可以可移植性,否则无法复制。
录制时或者确定按钮的唯一性,比处理异常更加重要。尽可能勾选,并且去除无法确定元素的地方。
如图:
我要往网页很多单元格录入值,本来UIPATH默认的那个东西太烂了,怎么支持脚本能,快速开发呢?官方文档都没有,也许里面的论坛有,没有那个功夫看。只要是.NET就好办了。
官方也提供给了对于他的扩展:
https://activities.uipath.com/lang-zh/docs/creating-a-custom-activity
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);
}
}
}
===根据这个Context自己扩展,也是相对于脚本比较好的方式了。
不知道有没有直接写脚本的方式呢,三天没有在UIPATH STUDIO发现。反正就这样了。
大佬让做DEMO,之后好做PPT,好,就这样了,我可没有兴趣搞这个RPA的东西。
另外可以借助开源的RPA机器人,例如AUTOHOTKEY,利用本身的脚本语言,可以做出非常丰富功能的功能哦,甚至是开发工具都可以做出来。就这点UIPATH非常不爽。用过的人,估计就没有兴趣玩UIPATH了。
当然AUTOHOTKEY的 脚本语言,掌握起来难度也是相对UIPATH比较高的。而且还很多控制等,UIPATH除了自身特色外,还有很多的东西都没有。看来起码一两年成熟吧。
国内的RPA还有很多,据说不行,UIPATH都不行,其他的估计也好不哪里去,不看了。还是踏实的学技术吧。
我估计UIPATH,看到了中国人多,成本太高了,做的给非开发人员的普通产品罢了。