简介

rpa-无侵入:如果一个软件本身不支持自动化的功能,rpa不需要对这个软件进行任何修改,而是通过模拟人的阅读和操作软件的方式,让这个软件实现自动化

rpa平台-三个组成部分
开发工具:主要用来制作“软件机器人”,当然也可以运行和调试这些机器人
运行工具:当开发完成后,普通用户使用rpa平台,来运行搭建好的机器人,也可以查阅运行结果
控制中心:当需要在多台电脑上运行“软件机器人”的时候,可以对这些“软件机器人”进行集中控制,比如统一分发,统一设定启动条件等

rpa平台-概念:所谓rpa平台,就是把“软件机器人”分解成很多零件,让不懂it的业务专家能以搭积木的方式,把这些零件在自己的工作台上搭起来,而不需要it人员的参与,让普通工作人员能看到机器人的基本原理和执行的情况,还能进行简单的维护

rpa平台-关键指标
要足够强大,零件数量要多,复杂的场景也能应付
要足够简单,不需要it专家的参与,普通人就可以轻松掌握
要足够快捷,普通人稍微熟练一些以后,可以用最便捷的方式,快速实现自己的机器人

uibot-组成部分:开发工具-creator-生产机器人、运行工具-worker-执行机器人、控制中心-commander-管理机器人
如果只需要少量的电脑运行流程,可以由creator制作出流程后,直接打包分发给worker使用,commander不需要参与;如果需要大量的电脑运行流程,比较适合的方式是creator把流程先上传到commander,再由commander统一发给各个worker,并统一指挥各个worker执行流程

基本概念

流程
所谓流程,是指要用uibot来完成一项任务,一个任务对应一个流程。虽然可以用uibot陆续建立多个流程,但同一时刻,只能编写和运行一个流程。将来在使用worker和commander的时候,也是以流程为基本单元来使用的

流程图
在流程图中,包含了“开始”、“流程块”、“判断”、“结束”,他们之间是用箭头连起来的
每个流程图中必须有一个,且只能有一个“开始”组件。顾名思义,流程从这里开始运行,并且沿着箭头的指向,依次运行到后续的各个组件
每个流程图中,可以有一个或多个“结束”组件,流程一旦运行遇到“结束”组件,自然就会停止运行。当然也可以没有“结束”组件,当流程运行到某个流程块,而这个流程块没有箭头指向其他流程块时,流程也会停止运行
每个流程图中,可以有一个或多个“判断”组件,当然也可以没有“判断”组件。当流程运行的过程中,“判断”组件将根据一定的条件,使后面的运行路径产生分叉。条件为真的时候,沿着“yes”箭头运行后续组件;否则,沿着“no”箭头运行后续组件
最重要的,流程图中必须有一个或多个“流程块”
流程块可以很粗,甚至一个流程里面甚至可以只有一个流程块
流程块也可以很细,把一个流程拆分成很多流程块
一是把相对比较独立的流程逻辑放在一个流程块里
二是流程块的总数不宜太多,一个流程中最好不要超过20个流程块
工具栏上,有一个“运行”按钮。在流程图界面中,按下这个按钮以后,会从“开始”组件开始,依次运行流程中的各个组件。而每个流程块上还有一个蓝色小三角形,实际上也是一个按钮,按下之后,就会只运行当时的流程块

可视化视图
命令:所谓命令,是指在一个流程块当中,需要告知uibot具体每一步该做什么动作、如何去做。uibot会遵循我们给出的一条条命令,去忠实的执行
uibot所能完成的几乎所有命令,都分门别类的列在左侧的“命令区”;中间是“组装区”,可以把命令在这里进行排列组合,形成流程块的具体内容
属性:如果说命令只是一个动词的话,那么属性就是和这个动词相关的名词、副词等

源代码视图
实际上也展现了当前流程块中所包含的命令,以及每条命令的属性。但没有方块把每个命令标识出来,也没有属性区把每个属性整齐的罗列出来,而是全部以程序代码的形式来展现

可视化视图和源代码视图描述的都是同一个流程块,它们实际上是同一事物的两种不同展现方式,其内涵都是一模一样的。可视化视图以图形化的方式,突出了各个命令,以及它们之间的关系,适合展现流程块的整体逻辑;源代码视图是以程序代码的方式,突出了流程块的本质,并充分展现了其中的所有细节

进阶

流程图变量
流程图和流程块中都可以使用“变量”来存储数据:流程块中的变量,使用范围仅限于当前流程块中,在流程图和其他流程块中无法直接使用;从uibot creator5.0版本开始,在流程图中也可以定义变量,在流程图中定义的变量,在流程图所包含的所有流程块中,都可以直接使用

流程图的输入输出-可以在流程图和流程块之间传递数据。当一个流程块开始运行的时候,可以把一个值“输入”到流程块中,这个值可以是变量也可以是表达式;而当一个流程块运行结束的时候,也可以把一个值“输出”到流程图中的某个变量中

流程图数据传递方式对比-流程图变量和流程图的输入输出是流程块之间传递数据的两种方式,通常来说,流程图变量使用起来更加方便、直观、快捷,而采用流程图的输入输出方式,变量仅限于单个流程块使用,逻辑上更加清晰一些。一般情况下,我们推荐使用流程图变量的方式

顺序结构-在顺序结构中,各个步骤是按先后顺序执行的,这是一种最简单的基本结构。它们是按顺序执行的,即完成上一个框中的指定操作才能再执行下一个动作
选择结构-选择结构又称分支结构,选择结构根据某些条件来判断结果,根据判断结果来控制程序的流程。在实际应用中,某一条分支路线可以为空
循环结构又称为重复结构,指的是流程在一定的条件下,反复执行某一操作的流程结构。循环结构下又可以分为当型结构和直到型结构
循环结构-可以看成是一个条件判断和一个向回转向的组合,使用流程图表示时,判断框内写上条件,两个出口分别对应着条件成立和条件不成立时的执行路径,其中一条路径要回到条件判断本身
当型结构-先判断所给条件P是否成立,若P成立,则执行A(步骤);再判断条件P是否成立;若P成立,则又执行,若此反复,直到某一次条件P不成立时为止。流程结束
直到型结构:先执行A,再判断所给条件P是否成立,若P不成立,则再执行A,如此反复,直到P成立,该循环过程结束

有目标命令

rpa特色-无侵入:虽然rpa是配合其他软件一起工作的,但并不需要其他软件提供接口。而是直接针对其他软件的操作界面,模拟人的阅读和操作

界面元素
在uibot,界面元素的作用,就是作为“有目标”的命令中的目标使用
“界面元素”和“文本”类别下的所有命令,都是有目标的;“鼠标”和“键盘”下面的包含“目标”两个字的命令,也都是有目标的
所谓有目标的命令,就是在命令中指定了一个界面元素,在运行的时候,会先查找这个元素是否存在。如果存在,则操作会针对这个界面元素进行
对于无目标的命令,在命令中就不需要指定界面元素了
在使用uibot时,应该优先使用有目标的命令,因为有目标的命令会准确很多。只有当找不到目标的时候,才会退而求其次,使用无目标的命令

命令
对界面元素的操作通过命令进行,除了命令本身之外,命令的属性也是组成命令不可或缺的部分。甚至可以说,只有把命令的关键属性描述清楚,一条命令才能称之为一条完整的命令
命令=(对什么事务)+(用什么东西)+(做什么操作)+(得到什么结果)
对什么事务:指的是命令的操作对象,也就是我们本节所说的目标,对于界面元素而言,操作对象包括单选框、多选框、文本框、下拉框等。可以通过uibot的“查找目标”来确定命令的操作对象
做什么操作:指的是对目标能够进行的操作。一般来说,对目标能够进行的操作是由目标本身的类型决定的,当目标确定了以后,能够对目标进行哪种操作,也就基本确定了
用什么东西:指的是对这个目标进行操作的时候,还需要用户提供哪些信息,这个同样取决于目标本身的类型
得到什么结果:指的是命令的返回结果
本质上,uibot是对真人操作的模拟,是将一个一个的操作封装成一条一条的命令,而这些命令的关键属性都是由目标决定的

判断元素是否存在
这一命令可以检查当前屏幕上是否出现了某个特定的界面元素,并且把检查的结果放置在一个变量里面。界面元素存在时,变量里面保存的是True,否则是False
设置/获取元素勾选
用来自动化操作界面,自动完成表单填写、自动操作等功能,操作的元素主要是单选框和多选框

小结
-使用uibot的时候,应该优先使用有目标的命令,因为有目标的命令更加准确
-使用uibot的时候,如何准确选取一个目标是很关键的,只要准确的选到了目标,模拟操作相对来说就比较简单了
-uibot提供了一种全自动选取目标的方法,在全自动选取目标完成后,还可以手动修改目标的特征,以便尽量减少错选和漏选

无目标命令

我们在查找、操作界面元素的时候,实际上都是在调用界面元素所在的软件给我们提供的接口。uibot所做的,实际上是把这些不同种类的接口统一起来,让编写流程的人不需要关注这些细节。但是,仍然会有一些软件,没有给我们提供查找、操作界面元素的接口;或者虽然提供了接口,但在最终发布时关闭了,这些软件包括:虚拟机和远程桌面、基于directui的软件、游戏
无目标命令
如果遇到了没用目标的windows软件,“有目标命令”自然就不能再用了,但仍然可以用“无目标命令”。比如“模拟移动”,“模拟移动”需要我们在命令中指定一个坐标点,在执行这条命令的时候,鼠标指针也会移动到这个坐标点;移动之后,我们再使用“模拟点击”命令,模拟按下左键,才能正确的按下某个按钮;或者正确的在某个输入框上设置焦点,之后,再使用“输入文本”命令,才能在焦点的输入框里面输入一段文本

在具体完成一个流程任务时,该优先选择有目标的命令,还是优先无目标的命令呢?
-优选有目标命令。只要能获得恰当的界面元素作为目标,就应该优先考虑有目标的命令。因为无目标的命令,特别是使用无目标命令的过程中,依赖图像类命令,这些命令有以下缺点:
速度远远慢于有目标的命令
可能受到遮挡的影响,当图像被遮挡时,即使只遮挡了一部分,也可能受到很大影响
往往需要依赖图像文件,一旦丢失图像文件就不能正常运行
某些特殊的图像命令必须连接互联网才能运行
-缓解:
·在截图时,尽量截取较小的图像,只要能表达出所操作界面元素的基本特征即可。在指定查找的区域时,尽量缩小区域。这样不仅速度会有所改善,而且也不容易受到遮挡的影响
·大部分图像命令都支持“相似度”属性,这个属性的初始值是0.9,如果设置过低,可能会造成“错选”,如果设置过高,可能会造成“漏选”
·屏幕的分辨率和屏幕的缩放比例对图像命令可能有非常关键的影响。因为在不同的分辨率下,软件的界面显示可能完全不一样,导致图像命令失效

uibot worker

三种工作方式
-人机交互-绑定机器
指的是一个worker与一台计算机的机器码进行紧密绑定,这个worker只能运行在这台计算机上,且一旦绑定就无法修改。这种情况下不需要commander对worker进行管理,多个worker之间也无法协同工作共同完成复杂的任务
-人机交互-绑定用户
有一个command指挥官作为整体的协调者,任务统一由command下发到worker,worker再根据自身的情况进行执行。在这个过程中,用户只需要用指定的用户名登录,worker是通过用户名(而不是机器码)与commander进行交互,因此worker可以不拘泥于某台特定的计算机,而是可以根据计算资源的情况,合理部署,统一调度
-无人值守
worker受commander控制,忠实的执行commander的指令

流程编组
指的是将两个或多个有依赖关系的流程放置到一个编组中,编组中的流程顺序执行,一个流程执行完,再顺序执行下一个流程。这样,流程与流程之间,既不会出现冲突,也不会出现等待。这样就完美的解决了流程依赖的问题。
需要注意的是,可以把流程编组当做普通流程看待,也就是说,流程编组既可以直接立即运行,也可以通过计划任务安排运行,和普通的流程是一样的

rpa-uibot-初级开发指南学习记录相关推荐

  1. Html5和CSS3开发指南学习

    Html5和CSS3开发指南学习 1. 为什么学习HTML5 跨平台运行--PC/手机/Pad跨平台使用 硬件要求低 flash之外的选择,尤其是手机端开发 2. HTML介绍 2-1 什么是HTML ...

  2. Freemaker_入门+深入+开发指南+学习笔记

    freemaker的基本语法 freemaker的基本语法: <# ... > 中存放所有freemaker的内容,之外的内容全部原样输出. <@ ... /> 是函数调用 两 ...

  3. STM32开发指南阅读记录

    一.STM32的开发方式:标准库,HAL库,寄存器开发 1.寄存器开发:通过直接操作寄存器进行开发,但是由于STM32的寄存器数量众多,逐个查询比较繁琐. 2.标准库:ST公司为每一款芯片都编写了一份 ...

  4. Dango Web 开发指南 学习笔记 3

    ListView 学习 今天的目标是想完成我的任务列表功能.ListView可以很好的完成这个功能.它是使用方法非常简单好用. 1 添加TaskView 首先第一步,在views.py中添加TasVi ...

  5. Qt VTK软件开发问题学习记录

    1. 0x00000000000000处有未经处理的异样 程序运行时出现下面问题肯定是内存错误,但到底是数组越界(数组边界溢出),指针错误,链接库问题......就需要进一步调试(debug). 链接 ...

  6. 海思开发板学习记录2----- 开发板配置tftp 服务

    前言: 虚拟机下通过tftp 将boot .kernel . root 镜像文件导入到开发板.之后通过烧录指令进行固件烧录 1.首先需要设置虚拟机,电脑,开发板处于同一个局域网内,这样才能通过tftp ...

  7. 微信小程序开发(学习记录1.0)

    首先,把遇到的问题贴出来,主要是这个解决问题的思路,供大家参考. 现在的问题是将下面的导航栏做出来,但是在自己做的时候 遇到的问题 在app.json文件中输入tarBar,就会生成模板代码,默认会生 ...

  8. 搭建Ubuntu的51单片机开发环境(学习记录)

    首先安装VMware虚拟机,创建Ubuntu操作系统 这个可以直接百度 下面进入正题 1.首先下载sdcc编译器,可以理解为gcc/g++编译器. sudo apt-get install sdcc ...

  9. micro-app-vue2 vue3 超详细快速入门指南 学习记录

    micro-app-vue 快速入门指南 简介 micro-app是京东零售推出的一款微前端框架,它基于类WebComponent进行渲染,从组件化的思维实现微前端,旨在降低上手难度.提升工作效率.它 ...

最新文章

  1. TCP的三次握手和四次分手
  2. Arxiv最新论文,深度学习热点论文,Arxiv每日更新
  3. Qt学习笔记之QString
  4. 关于字符串比较时候出现的空指针问题的坑
  5. JDK 9中不推荐使用Java的Observer和Observable
  6. 面试官 | 讲一下如何给高并发系统做限流?
  7. appbarlayout 折叠后 不允许滑动_还在纠结要不要建阳光房?看看可折叠阳光房,或许你就能做选择了...
  8. Python中的全局变量与局部变量2
  9. hadoop报错 java home_hadoop的常见报错日志以及解决方案
  10. router锚点和html锚点,react-router 环境使用锚点的方法
  11. 2106. [NOIP2015] 斗地主
  12. 等到小牛电动车出N2再买的原因
  13. mysql注入攻击getshell_[漏洞案例]thinkcmf 2.x从sql注入到getshell实战
  14. 通过池塘配置ip实验
  15. MSP430F149;二、TIMEA
  16. 【板栗糖GIS】DOS—如何在当前文件夹内部批量建子文件夹
  17. 解析力 (1 )MTF SFR
  18. 20150802厦门大学华为校园提前批招聘机试体验题三:Word Maze(单词迷宫)
  19. 计算机错误651是什么故障,宽带连接错误651是什么意思?
  20. Learning OpenCV的中文版

热门文章

  1. 并发编程-操作系统简史,多道技术
  2. 数据是一种资产|如何实现数据价值最大化
  3. 泰坦尼克号船员获救数据分析
  4. Ble蓝牙开发助手 —— 一个小程序版蓝牙调试工具
  5. 朴素炮轰网络文学:催生海量文字垃圾
  6. 图解 偏向锁,轻量锁,重量锁
  7. 从8个方面深度分析figma和sketch的优缺点
  8. 使用 Go API 快速下载 excel 文件
  9. eja智能压力变送器工作原理_告诉你横河EJA变送器原理和故障分析!
  10. 电子台账:模板制作之四——抓取多行数据后自动进行数据合并(脑力活版本)