Q:RPA 反对多线程吗?如何实现?
A:在 UiBot 中,既反对多个流程并行运行(多个流程同时运行),也反对多个流程串行运行(先运行一个,再运行另一个)。
前者称之为“辅助流程”,后者称之为“子流程”,两者各有不同的用处。
首先,咱们先来理解“辅助流程”。
辅助流程
辅助流程能够了解为主流程的“助手”。
多个流程同时运行,有“主流程”就有“辅助流程”。在 UiBot 中,辅助流程的用处通常是帮忙主流程实现一些额定的工作,起到“辅助”的作用。
在 UiBot Creator 的流程图上,有且仅有一个称为“主流程开始”的组件。这是流程的终点。能够把多个流程块用箭头连贯到“主流程开始”的前面,让这些流程块顺次运行,形成一个主流程。
如何创立辅助流程?
在流程图左侧的组件面板中,设有“辅助流程开始”组件,能够拖动到流程图中。
在一个流程图中,能够没有,也能够有一个或多个“辅助流程开始”的组件。创立了多少个“辅助流程开始”组件,在运行的时候就产生多少个辅助流程。
创立辅助流程,同样须要先创立若干个流程块,并用箭头将其顺次连贯到“辅助流程开始”之后。
图 1:一个主流程和一个辅助流程
值得注意的是:在流程图中可能有多个流程块,每个流程块要么隶属于主流程,要么隶属于某个辅助流程,却不能同时隶属于主流程和辅助流程,也不能同时隶属于多个辅助流程。
换言之,一个流程块一旦被连贯到了“主流程”前面,就无奈再将其连贯到“辅助流程”前面了。
辅助流程如何工作?
当流程开始运行时,主流程和所有的辅助流程都会同时开始,同时从“主流程开始”和每个“辅助流程开始”的组件处,依据箭头指向,顺次运行每个流程块中的内容。
如果主流程完结了,会主动告诉每个辅助流程,要求它们也完结。而辅助流程完结后,则不会影响到主流程或者其余辅助流程。
辅助流程数量越多越好?
并非如此。
UiBot 的辅助流程是采纳操作系统的多线程机制实现的,每个辅助流程都是一个独立的线程。
线程的数量减少并不一定会带来工作效率的晋升,甚至线程数量过多,反而会带来效率的降落。因而,辅助流程的数量不宜过多。
++++++++++++++++ 分 +++++ 割 +++++ 线 +++++++++++++++++++++
在理解了“辅助流程”后,咱们在一起来理解下“子流程”。
在开发较为简单的流程时,为了能提高效率,确保流程尽快实现,通常把流程划分为多个步骤,由不同的人去编写不同的步骤,再把这些步骤组装在一起。
如果将每个步骤用流程块实现,再将流程块逐个导入到同一张流程图中,则可能存在以下问题:
• 若流程块内容有更新,须要每次在流程图中,删掉旧的流程块,从新导入新的流程块;
• 若一个步骤比较复杂,用一个流程块形容起来不太不便,必须要用多个流程块才更清晰;
• 若在流程图中定义了一个变量(每个流程块都能应用这个变量),但如果两个人之间不足协调,相互不晓得彼此是如何应用这个变量的,会造成数据互相笼罩等抵触。
正确地应用 UiBot Creator 中的子流程,可能防止上述问题,更有助于多人合作。
子流程
子流程是蕴含在“总流程”中的相干步骤的组件,能够将子流程视为独自的新流程。每个子流程都有一张残缺的流程图,外面能够蕴含多个流程块,以及条件判断等。
当子流程完结时,只是跳出子流程返回“总流程”,并不会完结整个流程。直到总流程遇到“完结”块,才会真正完结。
值得注意的是:总流程及各个子流程的变量都是彼此隔离的。也就是说,如果在总流程和子流程外面都定义一个变量 a,无论 a 是流程图变量,还是流程块变量,它们在总流程或者子流程外面各有各的取值,不会相互影响。
如此一来,在编写流程或子流程的时候,即便由不同的人实现,也不必放心大家凑巧给变量起了雷同的名字而导致抵触。
如何创立子流程?
应用 UiBot,能够先创立子流程(蕴含其中的流程块),而后再在总流程中去援用子流程;也能够在总流程编写的过程中,创立一个子流程并援用它。而且,子流程中还能够再创立其余子流程,创立程序没有限定。
图 2:多级子流程示意
在 UiBot Creator 右边的组件面板中,有个“子流程”组件图标,能够引入“子流程”。
如果之前曾经建好了子流程,可抉择“关上”,并抉择已有的子流程;否则,能够抉择“空白创立⇒流程”或者“从模板创立⇒企业级流程模板”来创立一个子流程。
图 3:创立或关上子流程
如何批改子流程?
在流程图中退出一个子流程之后,在示意子流程的方块上,有一个显示为纸和笔的按钮(如下图所示)。点击此按钮即可对子流程进行批改。
图 4:批改子流程的按钮
嵌套层数太多,遗记子流程层级构造?
不用放心,UiBot Creator 记得清清楚楚。
无论是编辑流程图还是编辑流程块,左侧都有一个“流程”选项卡(能够通过拖动,搁置到其余地位,但默认地位在左侧)。
切换到该选项卡,会显示一个树形构造:从总流程到子流程,再到每个子流程外面的流程块,都清清楚楚。
“流程”选项卡有两个次要作用:
• 显示整个流程的构造,并且以加粗的字体来示意以后正在编辑的流程图或流程块在整个流程外面的地位;
• 双击其中的任何一个流程图或者流程块,能够马上开始编辑(不便在不同子流程间疾速跳转)。
情谊揭示:若在 UiBot Creator 中编写好总流程和子流程,并心愿在 UiBot Worker 中应用,须要应用 UiBot Creator 的企业版,并将流程打包成一个独立的、扩大名为.bot 的文件。