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