如何迁移 MetaBots
- Updated: 2022/12/04
如何迁移 MetaBots
将 MetaBot 迁移到 Automation 360 时,将为 MetaBot 中可用的各种逻辑创建等效 bots,应用程序屏幕除外。 成功迁移后,.mbot 文件中的每个逻辑都将转换为 Task Bot 文件。
MetaBot 包含资产和逻辑。 资产是用于在应用程序上自动执行任务的应用程序屏幕或 DLL。 逻辑是一组命令,用于执行操作并与其他逻辑和 bots 交互。
- 在使用 Bot Migration Wizard 迁移 .atmx 或 .mbot 之前,请确保与之前迁移的 MetaBots 或 Task Bots 相关的所有逻辑、dll、.mbot、.atmx文件和其他依赖项均未处于已签出状态。 否则,在重新迁移期间会发生以下错误:
Bot 尚未准备好进行迁移。
- 如果您要迁移的 bot 已被签出或之前已迁移,请确保要迁移的 bot 处于已签入状态。 此外,要重用迁移的机器人,在 Bot Migration Wizard 中,选择如果存在同名机器人则覆盖选项。 要使用更新的 bot,请禁用如果存在同名机器人则覆盖选项。
- 将 MetaBot 逻辑转换为相应的 Task Bots。
- 在执行迁移后维护 MetaBots 的文件夹结构。 在 Automation 360 中创建的新文件夹包含迁移至 Automation 360 的每个逻辑的 Task Bots。
- 更新使用 Task Bots 逻辑的 MetaBot,以引用为已迁移的 MetaBot 逻辑创建的新 Task Bots。
您无需手动更新 Task Bots。
DLL 的使用、输入和输出变量以及仅用于 MetaBots 的执行权限等功能现在可用于所有 Task Bots。
- MetaBot 名称: MetaTask
- 资产:
- 登录屏幕
- General.dll
- DLL\Binary.dll
- 逻辑:
- Common
- Process1\Connect
- Process1\Disconnect
- Process1\Operations\Numeric
Automation 360 中可重复使用的 Task Bots 的好处
Automation 360 可重复使用的 Task Bots | v11 MetaBots |
---|---|
您可以使用查找器组件通过较少的单击次数来导航到子 bot,从而节省时间。 导航到 以到达子级 bot。 | 必须在bot。 | 操作中导航,以到达子级
您可以从私有工作区和公共工作区搜索子级 bots,以便将它们用于 Task Bots。 | 必须将 MetaBots 下载到本地存储库中,以便在 Task Bots 中使用子级 bot。 |
在任务中使用时,将只部署特定的 Logic,这样可以节省时间和带宽。 | 整个 MetaBot 将部署到 Bot Runner 计算机,即使任务中只使用一个 Logic。 |
提供更好的 RBAC,使您能够自定义权限。 | MetaBots 强制所有 Logic 拥有相同的权限,即使多个 Logic 分布在不同的文件夹里。 |
MetaBot 迁移流程
系统将创建一个文件夹,其名称与 Bots 文件夹中可用的 My MetaBots 文件夹中的 MetaBot 相同,且保留与 Enterprise 11 相同的文件夹结构。 例如,如果 Enterprise 11 中的文件夹结构是 Accounts/Tax/MetaTask.mbot,则系统会将文件夹结构保留为 Accounts/Tax/MetaTask.mbot。 MetaBot 的所有组件都存储在为该 MetaBot 创建的文件夹中。 在此示例中,系统会在 Bots\My MetaBots 文件夹中创建 MetaTask 文件夹,并将 MetaBot 的所有组件存储在该文件夹中。
在 MetaBot 中直接调用 DLL 和屏幕而不使用 MetaBot 逻辑的 Enterprise 10 bots 将迁移到 Automation 360 中的等效 Task Bots 和 actions。 在 Enterprise 10 中,如果 DLL 返回列表或数组类型的参数,并且该 DLL 的输出映射为值类型的参数,那么在输出值的开始处会增加一个额外的空格。 bot 迁移后,额外的空格不会添加到输出值中。
迁移 DLL
为了维护 DLL 之间的参考,系统不会维护资产的文件夹结构。 对于上述示例,General.dll 和 Binary.dll 存储在 MetaTask 文件夹中,但 Binaary.dll 存储在 DLL 子文件夹中。
请参阅以下视频,了解如何将带有 DLL 的 MetaBots 迁移到 Automation 360:
MetaBot 迁移流程概述
- 迁移后的 bot 中的 DLL 会话概念
-
在迁移后的 bot 中观察到以下 DLL 更改:
- 当您迁移包含多个具有相同名称的 DLL的 MetaBots 的 Task Bot 时,会创建一个使用第一个 DLL 名称的会话名称。 当来自另一个 MetaBot 的具有相同名称的后续 DLL 被迁移时,DLL 所在文件夹的 ID 将用作会话名称。
例如:
M_DLL_Session-<MetabotFolderId>_<DLLName>.
- 当 Enterprise 11 中的执行 DLL 命令迁移到 Automation 360 时,该命令会转换为打开和运行函数操作,以及 Dll 会话不存在的条件判断。
- DLL 会话名称是通过将 DLL 名称附加到 "M-DLL-Session-" 令牌后创建的。 例如,如果 DLL 名称是 Sample.dll,迁移后,DLL 会话名称将是 M-DLL-Session-Sample。
- DLL 会话表示它用于运行 DLL 函数的 DLL。
- 要运行同一个 DLL 中的多个函数,必须在会话名称字段中提供相同的 DLL 会话名称。
- 当您迁移包含多个具有相同名称的 DLL的 MetaBots 的 Task Bot 时,会创建一个使用第一个 DLL 名称的会话名称。 当来自另一个 MetaBot 的具有相同名称的后续 DLL 被迁移时,DLL 所在文件夹的 ID 将用作会话名称。
- 检查迁移的 bot 中是否存在 DLL 会话的条件
-
在迁移之后,当同一个 DLL 在同一个 MetaBot 的多个逻辑中使用时,为每个 DLL 添加一个检查 DLL 会话是否已经打开的条件,以确保 DLL 会话只打开一次。 一些在 MetaBot 中使用的 DLL 在多个 DLL 函数之间共享会话或全局变量。 如果从不同的逻辑调用这样的 DLL 函数,只有在 DLL 会话仅打开一次并添加一个检查 DLL 会话是否已经打开的条件的情况下,才可能共享这些会话和变量。 如果缺少 DLL 会话,Automation 360 将创建一个类型为全局的 DLL 会话。
- 迁移的 Task Bot 在引用来自同一或不同 MetaBot 逻辑的两个 DLL 函数时会发生什么?
-
在 Enterprise 11 中,如果一个 Task Bot 引用了一个使用运行逻辑命令调用两个函数的逻辑,那么在 Automation 360 中,将在 Task Bot 中创建一个 DLL 会话(逻辑被迁移为 Task Bots),并将在运行函数操作中使用。 此外,当一个 Task Bot 引用调用多个函数的多个逻辑时,Task Bots 将使用相同的 DLL 会话名称来执行这些函数。 DLL 会话条件检查将确保在此类逻辑中只创建一个会话。
例如,如果一个 Task Bot 正在使用 MetaBot1 逻辑和 MetaBot2 逻辑,其中 MetaBot1 逻辑和 MetaBot2 逻辑调用多个函数,当您运行 TaskBot 时,会创建一个 DLL 会话名称来运行 MetaBot1 逻辑。 用于运行 MetaBot1 逻辑的 DLL 会话名称也将用于运行 MetaBot2 逻辑。
迁移屏幕
MetaBot 中的每个屏幕都将转换为窗口变量,并且在屏幕上执行的 actions 将迁移到 Automation 360 中的等效 actions。
浏览器 |
Internet Explorer
Google Chrome(仅适用于对象播放类型) |
屏幕类型 | 标准 |
科技 | Java、HTML、MSAA、.Net、UI 自动化(仅适用于对象播放类型) |
播放类型 | 对象、图像、坐标 |
您还可以从基于 Java、UI 自动化和 MSAA 技术的应用程序迁移带有(在 Citrix 环境中捕获的)屏幕的 MetaBots。
使用对象播放类型捕获的 MetaBot 屏幕上的链接对象将迁移到 Recorder package 的捕获 action。 源对象将显示在主选项卡中,而链接的对象显示在捕获操作的锚点选项卡中。
播放类型 | Enterprise 11 操作 | Automation 360 操作 |
---|---|---|
对象 | 获取属性、获取项总计、获取选定索引、获取选定文本、按文本选择项目、按索引选择项目、单击、左键单击、右键单击、双击、设置文本、附加文本、获取属性、选中、取消选中、切换、展开、选择、获取状态, | 已迁移至 Recorder
package 的捕获
action。 Enterprise 11 / Enterprise 10 中的 GetAllChidrenName 和 GetAllChidrenValue 命令返回字符串类型变量值。 在 Automation 360 中,它们返回列表值。 迁移流程加入了列表值,并将其存储至字符串变量中,从而保持跨不同版本的 bot 行为的一致性。 在 Enterprise 11 / Enterprise 10 中使用导出到 CSV 操作的对象克隆命令将迁移到:
|
播放类型 | Enterprise 11 操作 | Automation 360 操作 |
---|---|---|
图像 | 左键单击 | 通过在操作列表中选择左键单击,迁移至 Image Recognition package 的在窗口中查找窗口 action。 |
右键单击 | 通过在操作列表中选择右键单击,迁移至 Image Recognition package 的在窗口中查找窗口 action。 | |
双击 | 通过在操作列表中选择双击,迁移至 Image Recognition package 的在窗口中查找窗口 action。 | |
中键单击 | 通过在操作列表中选择左键单击,迁移至 Image Recognition package 的在窗口中查找窗口 action。 | |
设置文本 | 迁移至:
|
|
获取文本 | 迁移至 OCR package 的捕获区域 action。 | |
GetVisibility | 迁移到带有以下 Image Recognition 条件的 IF 操作:在窗口中查找窗口。 根据图像中的对象是否可见,GetVisibility 操作将返回 True 或 False 值。 同样,根据是否可在另一个窗口中找到该窗口,对 IF 操作中的条件进行评估。 结果存储在临时变量中。 |
播放类型 | Enterprise 11 操作 | Automation 360 操作 |
---|---|---|
坐标 | 单击 | 通过选中左键按钮和单击选项,迁移至 Mouse package 的单击 action。 |
左键单击 | 通过选中左键按钮和单击选项,迁移至 Mouse package 的单击 action。 | |
右键单击 | 通过选中右键按钮和单击选项,迁移至 Mouse package 的单击 action。 | |
中键单击 | 通过选中中间按钮和单击选项,迁移至 Mouse package 的单击 action。 | |
双击 | 通过选中左键按钮和单击选项,迁移至 Mouse package 的单击 action。 | |
设置文本 | 迁移至:
|
|
获取文本 | 迁移至:
|
播放类型 | Enterprise 11 操作 | Automation 360 操作 |
---|---|---|
坐标 | 单击 | 通过选中左键按钮和单击选项,迁移至 Mouse package 的单击 action。 |
左键单击 | 通过选中左键按钮和action单击Mouse选项,迁移至 package 的单击。 | |
中键单击 | 通过选中中间按钮和单击选项,迁移至 Mouse package 的单击 action。 | |
双击 | 通过选中左键按钮和单击选项,迁移至 Mouse package 的单击 action。 | |
设置文本 | 迁移到以下内容:
|
|
获取文本 | 迁移到以下内容:
|
播放类型 | Enterprise 11 操作 | Automation 360 操作 |
---|---|---|
文本 | 单击 | 通过在操作列表中选择左键单击,迁移至 Image Recognition package 的在窗口中查找窗口 action。 |
左键单击 | 通过在操作列表中选择action左键单击Image Recognition,迁移至 package 的在窗口中查找窗口。 | |
双击 | 通过在操作列表中选择双击,迁移至 Image Recognition package 的在窗口中查找窗口 action。 | |
设置文本 | 迁移到以下内容:
|
|
获取文本 | 迁移至 OCR package 的捕获区域 action。 |
迁移逻辑
MetaBot 中的每个逻辑都将转换为 Task Bot,并且逻辑中使用的每个命令都将转换为 Automation 360 中的等效操作。 逻辑中使用的变量将在 Automation 360 中转换为等效变量。 逻辑中使用的凭据变量将迁移到 Automation 360 并在迁移后的 bots 中的等效操作中使用。 如果变量的参数类型是输入或输出,则在该变量迁移到 Automation 360 之后将保持不变。 例如,如果变量 ABC 的参数类型设置为输入,则在 Automation 360 中创建的变量 ABC 在迁移后将选择作为输入使用选项。 系统保留逻辑的内部文件夹结构。 对于上述示例,所有已迁移的逻辑都按照下表所列进行存储:
Automation 360 中的文件夹结构 | 条目 |
---|---|
MetaTask | 通用 |
MetaTask\Process1 | 连接 |
MetaTask\Process1 | 断开 |
MetaTask\Process1\Operations | Numeric |
播放类型 | Enterprise 11 操作 | Automation 360 操作 |
---|---|---|
对象 | 获取属性、获取总项目、获取选定索引、获取选定文本、按文本选择项目、按索引选择项目、单击、左键单击、右键单击、双击 | 已迁移至 Recorder package 的捕获 action。 |
图像 | 左键单击 | 通过在操作列表中选择左键单击,迁移至 Image Recognition package 的在窗口中查找窗口 action。 |
右键单击 | 通过在操作列表中选择action右键单击Image Recognition,迁移至 package 的在窗口中查找窗口。 | |
双击 | 通过在操作列表中选择action双击Image Recognition,迁移至 package 的在窗口中查找窗口。 | |
中键单击 | 通过在操作列表中选择action左键单击Image Recognition,迁移至 package 的在窗口中查找窗口。 | |
设置文本 | 迁移至:
|
|
坐标 | 单击 | 通过选中左键按钮和单击选项,迁移至 Mouse package 的单击 action。 |
左键单击 | 通过选中左键按钮和action单击Mouse选项,迁移至 package 的单击。 | |
中键单击 | 通过选中中间按钮和单击选项,迁移至 Mouse package 的单击 action。 | |
双击 | 通过选中左键按钮和单击选项,迁移至 Mouse package 的单击 action。 | |
设置文本 | 迁移至:
|
播放类型 | Enterprise 11 操作 | Automation 360 操作 |
---|---|---|
对象 | 获取属性、获取总项目、获取选定索引、获取选定文本、按文本选择项目、按索引选择项目、单击、左键单击、右键单击、双击 | 已迁移至 Recorder package 的捕获 action。 |
图像 | 左键单击 | 通过在操作列表中选择左键单击,迁移至 Image Recognition package 的在窗口中查找窗口 action。 |
右键单击 | 通过在操作列表中选择action右键单击Image Recognition,迁移至 package 的在窗口中查找窗口。 | |
双击 | 通过在操作列表中选择action双击Image Recognition,迁移至 package 的在窗口中查找窗口。 | |
中键单击 | 通过在操作列表中选择action左键单击Image Recognition,迁移至 package 的在窗口中查找窗口。 | |
获取文本 | 迁移至 的action捕获区域OCR package。 | |
坐标 | 单击 | 通过选中左键按钮和action单击Mouse选项,迁移至 package 的单击。 |
左键单击 | 通过选中左键按钮和action单击Mouse选项,迁移至 package 的单击。 | |
中键单击 | 通过选中中间按钮和action单击Mouse选项,迁移至 package 的单击。 | |
双击 | 通过选中左键按钮和action单击Mouse选项,迁移至 package 的单击。 | |
获取文本 | 迁移至:
|
运行逻辑命令迁移
运行逻辑命令在 bot 中用于从 Enterprise 11 中的 MetaBot 运行特定逻辑。 迁移该 bot 时,运行逻辑命令将转换为 Task Bot package 的运行操作。
输入变量将在 Automation 360 中转换为等效变量,输出变量将迁移到字典变量。 您可以使用字典变量中的键来使用关联的值。 字典变量可能包含其他变量类型,例如列表、值、整数和数组。 您可以使用其他变量类型来映射字典变量中可用的变量。 例如,您可以使用列表、值和数组类型变量来映射字典变量中可用的列表类型变量。
迁移“执行”命令
MetaBots 中的 DLL 使用执行命令从该 DLL 运行函数。 迁移至 Automation 360 之后,每个执行命令将转换为 DLL 包中的打开、运行函数和关闭操作。 有关要从 DLL 运行的函数、要使用的参数的信息以及执行命令中的其他详细信息将迁移到运行操作。
MetaBot 变量类型 | DLL 函数返回类型 |
---|---|
值 | 二维数组、列表、数组字节 (Byte[])、无符号整数(UInt32、UInt64)、有符号整数、IDictionary、IList、数组无符号整数(UInt16[]、UInt32[]、UInt64[])、有符号字节 |
数组 | 二维数组、列表、无符号整数(UInt16[]、UInt32、UInt64)、有符号整数、IList、有符号字节和 IDictionary |
MetaBot 变量类型 | 输入 DLL 接受的变量类型 |
---|---|
列表 | 二维数组、列表、字节、无符号整数(UInt16、UInt32、UInt64)、有符号整数、有符号字节、数组字节 (Byte[])、数组无符号整数(UInt16[]、UInt32[]、UInt64[]) |
数组 | 二维数组、列表、字节、无符号整数(UInt16、UInt32、UInt64)、有符号整数、有符号字节、数组字节 (Byte[])、数组无符号整数(UInt16[]、UInt32[]、UInt64[]) |
值 | 字节、无符号整数(UInt16、UInt32、UInt64)、有符号整数、有符号字节 |
字典 | 字节、无符号整数(UInt16、UInt32、UInt64)、有符号整数、有符号字节 |