执行迁移时的变量映射
- Updated: 2022/12/19
在迁移中,部分变量直接从此前的产品版本映射至 Automation 360,而其他人行为各异或包含配置更改。
$Prompt-Assignment$ ($5)
],迁移后,变量字段会显示错误。 要修复错误,请编辑变量字段,添加另一个美元符号,如下所示:[$Prompt-Assignment$ ($5)
]。用户定义的变量
在 Automation 360 中,当迁移至父 bots 和子 bots 之间的交换值时,bots 中定义的所有变量的创建类型为用作输入和用作输出。
如果变量在 Enterprise 11 中的父 bot 和子 bot 之间映射,而一些映射的变量在父 bot 或子 bot 中都不可用,则迁移流程将移除这些变量。 对于与父 bots 一起迁移的子 bots 以及迁移后的子 bots,迁移流程会移除这些变量。
有关支持的变量列表的信息,请参阅 变量支持。
查看以下用户定义的变量是如何迁移的。
本节解释了如何将数组变量迁移到 Automation 360。 在某些情况下,您可能必须在迁移之前或之后执行一些操作或确保一些事情。
- 子类型“值”
- 具有此子类型的变量将迁移到表中,所有的列值都是字符串。
- 子类型“读取自文本文件”
- 具有此子类型的变量将迁移到表中,所有的列值都是字符串。
以下操作作为迁移的一部分添加,以配置变量中的数据:
Automation 360 操作 功能 打开文件进行读取。 返回表变量中的值。 关闭文件。 - 子类型“读取自数据库”
- 具有此子类型的变量将迁移到表包中,所有的列值都是字符串。
以下操作作为迁移的一部分添加,以配置变量中的数据:
Automation 360 操作 功能 用相应的连接字符串添加连接操作。 添加导出到数据表操作,以将结果返回至数据表变量。 添加断开连接操作以断开数据库的连接。 另请参阅:Database package。
- 子类型“读取自 Excel/CSV 文件”
- 具有此子类型的变量将迁移到表中,所有的列值都是字符串。
以下操作作为迁移的一部分添加,以配置变量中的数据:
Automation 360 操作 功能 打开文件进行读取。 如果变量声明中选择了所有单元格或范围选项,则返回表变量的值。 如果变量声明中选择了整行选项,则返回表变量值。 如果变量声明中选择了整列选项,则返回表变量。 此外,将列表分配至列表数据表包用于将返回的值存储至变量。
关闭文件。 重要: 在 Automation 360 中,空的表变量返回运行时错误。 如果您迁移的 bot 中包含空的表变量,则必须在 Automation 360 中解决此问题。 - 数组变量: DLL 函数接受的输入类型
- 当系统将数组变量从 Enterprise 11
bot 传递至不同类型的 DLL 函数时,DLL 函数接受以下变量作为输入类型:
- UInt16[]、Int16[]、Int32[]、Int64[]、Int[]、Char[]、Single[]、Decimal[]、Float[]、Double[]、Boolean[]、bool[]、Byte[]、String[] 和 Datetime[]
- UInt16、Int16、Int32、Int64、Int、Char、Single、Decimal、Float、Double、Boolean、bool、Byte、String 和 Datetime
- List<UInt16>、List<Int16>、List<Int32>、List<Int64>、List<Int>、List<Char>、List<Single>、List<Decimal>、List<Float>、List<Double>List<Boolean>、List<bool>、List<Byte>、List<String>、List<Date-Time>
- UInt16[,]、Int16[,]、Int32[,]、Int64[,]、Int[,]、Char[,]、Single[,]、Decimal[,]、Float[,]、Double[,]、Boolean[,]、bool[,]、Byte[,]、String[,] 和 Datetime[,]
- 详细信息
- 您可以迁移包含数组变量的 Enterprise 10 或 Enterprise 11
bots。
以下是一些关键的行为差异:
- 在 Enterprise 10 和 Enterprise 11 中,索引位置从 1 开始;在 Automation 360 中,索引位置从 0 开始。 例如
$arrayVariable(1,1)$
变为$arrayVariable[0][0]$
- 如果数组包含 10 行/列,且循环运行 10 次以上,则 Enterprise 10/Enterprise 11 将返回数组变量的名称以及索引位置。
- 在 Enterprise 11 中,如果将常量字符串值传递到任何命令中的任何数组索引(例如
$array(field1)
,其中 field1 不是一个变量),则将按原样使用该值(例如$array(field1)
)。 然而,在 bot 迁移到 Automation 360 后,如果命令有非变量值,则会发生编译时错误。 - 在 Enterprise 11 中,如果您传递的数组变量没有任何索引(例如缺少索引的
"$arrayquot;
、"$array()quot;
),则按原样使用该值(例如,"$arrayquot;、"$array()quot;
)。 但是,将 bot 迁移到 Automation 360 后,会出现编译时错误。
重要: 如果使用无效的索引访问了 Enterprise 11 中的任何数组,请确保在迁移之前或之后解决 bot 错误。 - 在 Enterprise 10 和 Enterprise 11 中,索引位置从 1 开始;在 Automation 360 中,索引位置从 0 开始。 例如
本节解释了如何将字典变量迁移到 Automation 360。 在某些情况下,您可能必须在迁移之前或之后执行一些操作或确保一些事情。
- 运行逻辑
- 在 Enterprise 11 中,当您执行运行逻辑操作时,您可以从 Dictionary 变量中选择一个特定键并将其映射到所需的值变量。
在 Automation 360 中,您只能直接映射变量,不能将 Dictionary(键)变量映射到字符串。
- 子类型“值”
- 系统将这些变量迁移至 Automation 360 中的、含字符串子类型的字典类型。
- 子类型“读取自 CSV 文件”
- 迁移流程中,通过 CSV/Text 包添加操作,以读取 CSV 文件,并在表变量中存储数据。 该流程还可添加操作,以在表变量中执行循环,并使用字典包的“放置”操作在字典变量中添加键和值。
- 字典变量: DLL 函数接受的输入类型
- 当系统将字典变量从 Enterprise 11 bot 传递至不同类型的 DLL 函数时,DLL 函数接受以下变量作为输入类型: UInt16、Int16、Int32、Int64、Int、Char、Single、Decimal、Float、Double、Boolean、bool、Byte、String 和 Datetime。
- 详细信息
- 您可以迁移包含字典变量的 Enterprise 10 或 Enterprise 11
bots。
下表描述了一些键行为差异以及它们如何在 Automation 360 中运作:
Enterprise 10 或 Enterprise 11 行为 Automation 360 行为 字典键在 Enterprise 10 或 Enterprise 11 中不区分大小写。 字典键在 Automation 360 中区分大小写。 为了保持 bot 执行弹性,迁移流程将所有字典键转换为小写值。 字符串表达小写字母在变量被用作字典键时使用,以获得小写的键名。
本节解释了如何将列表迁移到 Automation 360。 在某些情况下,您可能必须在迁移之前或之后执行一些操作或确保一些事情。
- 子类型“值”
- 这些变量迁移至含子类型字符串的列表。
- 子类型“数组”
- 这些变量迁移至含子类型字符串的列表。
- 子类型“从文本文件读取”
- 当调用通过读取文件声明的变量时,旧式自动化包的导入来自文本文件的列表操作将添加至待迁移的操作上方。
- 声明为“随机发布”
- 列表变量可在 Enterprise 10 或 Enterprise 11 中声明为随机发布,以从列表中返回随机项目。 迁移流程中,将新的大小操作添加至列表包,以获取列表大小,并将分配随机数字操作添加至数字包,以查找随机位置,并将其用于获取随机列表项目。
- 详细信息
-
- 在 Enterprise 10 和 Enterprise 11 中,不需要指定任何索引即可访问列表。 在 Automation 360 中,您必须制定相应的索引,以从列表中检索特定值。
示例: 列表变量可以通过以下方式按索引访问:
$listVariable[0]$
其中 0 表示列表中的第一个值。
- Enterprise 10 或 Enterprise 11 中的索引位置从 1 开始,Automation 360 中的索引位置从 0 开始。
-
Enterprise 11 行为: 在 Enterprise 11 中,当使用具有固定索引的列表时,系统返回列表第一个索引中的可用值。
示例: 例如,假设您的列表包含值 1、2、3 和 4,且您使用
$IntList(3)$
在列表的第三个索引位置检索值。 系统返回列表第一个索引位置 (1) 中的可用值,而非指定的索引位置 (3)。Automation 360 行为: 在 Automation 360 中,系统在指定索引位置返回可用值(如上述示例,其返回 3)。
迁移的 bots 的行为:在列表中使用具有固定索引的此类表达式且已迁移至 Automation 360 的 Enterprise 11 bots 返回指定的索引位置中的可用值。
- 如果列表包含 10 个项目,且循环运行超过 10 次,则 Enterprise 10 或 Enterprise 11 在第 10 次迭代后返回列表的第一个值。
- 在 Enterprise 10 和 Enterprise 11 中,不需要指定任何索引即可访问列表。 在 Automation 360 中,您必须制定相应的索引,以从列表中检索特定值。
- 列表变量: DLL 函数接受的输入类型
- 当系统将列表变量从 Enterprise 11
bot 传递至不同类型的 DLL 函数时,DLL 函数接受以下变量作为输入类型:
- UInt16[]、Int16[]、Int32[]、Int64[]、Int[]、Char[]、Single[]、Decimal[]、Float[]、Double[]、Boolean[]、bool[]、Byte[]、String[] 和 Datetime[]
- UInt16、Int16、Int32、Int64、Int、Char、Single、Decimal、Float、Double、Boolean、bool、Byte、String 和 Datetime
- List<UInt16>、List<Int16>、List<Int32>、List<Int64>、List<Int>、List<Char>、List<Single>、List<Decimal>、List<Float>、List<Double>List<Boolean>、List<bool>、List<Byte>、List<String>、List<Date-Time>
- UInt16[,]、Int16[,]、Int32[,]、Int64[,]、Int[,]、Char[,]、Single[,]、Decimal[,]、Float[,]、Double[,]、Boolean[,]、bool[,]、Byte[,]、String[,] 和 Datetime[,]
另请参阅:List package。
本节解释了如何将随机变量迁移到 Automation 360。 在某些情况下,您可能必须在迁移之前或之后执行一些操作或确保一些事情。
- 子类型“随机字符串”
- 如果子类型字符串中包含随机变量,则迁移流程可添加字符串包的生成随机字符串操作,以按 If 条件生成随机字符串,并在 Automation 360 中为相应的迁移变量分配值
- 子类型“随机数字”
- 如果子类型数字中包含随机变量,则迁移流程可添加数字包的分配随机数字操作,以按 If 条件生成随机字符串,并在 Automation 360 中为相应的迁移变量分配值。
本节解释了如何将值迁移到 Automation 360。 在某些情况下,您可能必须在迁移之前或之后执行一些操作或确保一些事情。
- 子类型“值”
- 这些变量始终在 Automation 360 中作为字符串迁移,即使其包含数值、布尔值或日期时间值也不例外。 表达式用于 Automation 360,以按需将字符串转换为其他类型。
- 子类型“读取自文本文件”
- 为了保证迁移期间 bot 执行的完整性,当调用通过读取文件声明的变量时,字符串包的从文本文件中导入字符串操作将添加至待迁移操作上方。
- 详细信息
- Bots 在变量中使用值类型变量,可以迁移到 Automation 360。 对于在 Insert Keystrokes 命令中使用变量中的变量的 Enterprise 11 bots,String package 的评估值 action 会添加到迁移的 bot 中
另请参阅:String package | Number package | 布尔值 package | 日期时间 package
系统变量
在某些情况下,错误行编号、错误描述和操作系统名称等系统变量可在 Automation 360 中返回不同值。对于将此变量用于决策或字符串运算的 Bots,其需要在迁移后进行审核。
循环内使用的部分系统变量是迁移后循环中的用户定义变量。 在某些情况下,用户定义的变量可能需要在迁移的 bot 中进行一些配置。
部分系统变量将作为 Automation 360 中的操作迁移。 这些操作将添加至使用这些变量的操作上方。
- $Filedata Column$
- $Dataset Column$
- $XML Data Node$
- $Excel Column$
- $FolderName$
- $FileName$
- $Extenstion$
系统变量 | 它们如何迁移到 Automation 360 |
---|---|
$Day$ | 在 Automation 360 中变为 $System:Day.Number:toString$
|
$FileName | 迁移后,系统会根据 Automation 360 命名约定自动创建此变量,以成功运行已迁移的 bots。 |
$Error Description | 迁移后,系统会根据 Automation 360 命名约定自动创建此变量,以成功运行已迁移的 bots。 |
$Error Line Number$ | 迁移后,系统会根据 Automation 360 命名约定自动创建此变量,以成功运行已迁移的 bots。 |
$Extension$ | 迁移后,系统会根据 Automation 360 命名约定自动创建此变量,以成功运行已迁移的 bots。 |
$Folder Name$ | 迁移后,系统会根据 Automation 360 命名约定自动创建此变量,以成功运行已迁移的 bots。 |
$Month$ | 在 Automation 360 中变为 $System:Month.Number:toString$
|
$Year$ | 在 Automation 360 中变为 $System:Year.Number:toString$
|
$Date$ | 在 Automation 360 中变为 $System:Date$
为 Enterprise 11 或 Enterprise 10 bot 中的变量设置的日期格式存储在 AADefaultDateFormat 全局值内。 |
$Hour$ | 在 Automation 360 中变为 $System:Hour.Number:toString$
|
$Minute$ | 在 Automation 360 中变为 $System:Minute.Number:toString$
|
$Clipboard$ | 在 Automation 360 中变为 $System:Clipboard$
|
$Machine$ | 在 Automation 360 中变为 $System:Machine$
|
$MiliSecond$ | 在 Automation 360 中变为 $System:MiliSecond.Number:toString$
|
$ArrayColumns($arrayVariable$)$ | 表达式变为 Automation 360: $arrayVariable.DataTable:columnCount$
|
$ArrayRows($arrayVariable$)$ | 变为 Automation 360 中的表达式:$arrayVariable.DataTable:rowCount$
|
$AAControlRoom$ | 在 Automation 360 中变为 $System:AAControlRoom$
|
$RAMUsage$ | 在 Automation 360 中变为 $System:RAMUsage$
|
$TotalRAM$ | 在 Automation 360 中变为 $System:TotalRAM$
|
$OSName$ |
Enterprise 10 或 Enterprise 11 返回 Microsoft Windows 10 Pro 64 位值。 在 Automation 360 中,此变量变为 $System:OSName$ ,并返回 Windows 10 64 位。 |
$CPUUsage$ | 在 Automation 360 中变为 $System:CPUUSage$
|
$Counter$ | 这些系统变量在 Automation 360 中已弃用。 迁移流程创建了用户定义的变量类型数字,并修改了 bot,以确保其提供与 11.x bot 相同的输出。 如果您在循环中使用 $Counter$ 变量,则迁移流程会将此变量替换为已完成迁移的 bot 中的 $Condition-Counter$ 变量,并将其值设置为 1。 |
$Dataset Column$ | 此系统变量现在是循环中对于 SQL 查询数据集中的每一行迭代器的组成部分。 系统在循环中创建新变量,当存在 $Dataset Column$ 时,其用于循环内部。如果变量在循环之外使用,它将被转换为记录类型的用户定义变量,并被分配给记录操作,这使您能够将源记录变量的值分配给目标记录变量。 因此,在运行包含此变量的迁移后的 bots 时,将显示最后一行的数据。 |
$Excel Column$ | 此系统变量现在是循环中对于工作表中的每一行迭代器的组成部分。 系统在循环中创建新变量,当存在 $Excel Column$ 时,其用于循环内部。如果变量在循环之外使用,它将被转换为记录类型的用户定义变量,并被分配给记录操作,这使您能够将源记录变量的值分配给目标记录变量。 因此,在运行包含此变量的迁移后的 bots 时,将显示最后一行的数据。 |
$Extension$ 和 $FileName$ | 这些系统变量用于循环中的对于文件夹中的每个文件迭代器。 但在 Automation 360 中,字典类型变量用于捕获扩展名和文件名,可分别通过“扩展名”和“名称”键名来进行检索。 |
$Email$ $Email From$ $Email Message$ $Email Received Date$ $Email Received Time$ $Email Subject$ $Email To$ $Email Sent date$ $Email Sent time$ |
这些系统变量用于循环中的对于邮箱中的每封邮件迭代器。 在 Automation 360 中,字典类型变量用于捕获所有可通过相应键进行检索的电子邮件值。 请参阅 将字典变量用于电子邮件属性。 |
$Filedata Column$ | 此系统变量现在是循环中对于 CSV/TXT 中的每一行迭代器的组成部分。 系统在循环中创建新变量,当存在 $Filedata Column$ 时,其用于循环内部。如果变量在循环之外使用,它将被转换为记录类型的用户定义变量,并被分配给记录操作,这使您能够将源记录变量的值分配给目标记录变量。 因此,在运行包含此变量的迁移后的 bots 时,将显示最后一行的数据。 |
$FolderName$ | 这些系统变量用于循环中的对于文件夹中的每个文件夹迭代器。 在 Automation 360 中,该值返回至在循环中指定的字符串变量。 |
$Excel Cell Row$ | 此系统变量迁移至 Automation 360 的 Excel 软件包中的获取行号操作,并添加到使用它的操作的上方。 在 Enterprise 11 中,最后执行的 Excel 会话被用作 Excel 单元格行变量中的会话名称值。 但是,在 Automation 360 中,不存在 Excel 单元格行变量。 因此,在迁移过程中,Excel 单元格行 之前使用的最后一个 Excel 会话被视为获取行号的值。 解决方法: 创建一个字符串变量,给它赋一个名称,并将其添加到迁移的 bot 中的 Excel 命令之后。 在获取行号中使用新创建的字符串变量。 |
$Excel Cell Collumn$ | 此系统变量迁移至 Automation 360 的 Excel 软件包中的获取列名称操作,并添加到使用它的操作的上方。
Enterprise 10/Enterprise 11 返回
$Excel Cell Column$ 的第一列(例如 A 列),即使活动单元格不在循环内部的 A 列(例如 F10 列)也不例外。 在 Automation 360 中,同样的配置返回活动单元格(例如 F10 列)。 以下为导致上述行为变化的场景:
重要: 考虑到行为差异,您可能需要更改部分 bots。
|
$Excel Cell$ | 此系统变量迁移至 Automation 360 的 Excel 软件包中的获取单元格地址操作,并添加到使用它的操作的上方。 |
$AATaskExecutor$ | 此系统变量在 Automation 360 中变为 $AATaskExecutor$ 和 $AATaskInvoker$。 在 Enterprise 11 中,此变量返回关于任务调用者和执行者的各种值(例如调用者和执行者的名字、姓氏、电子邮件地址和用户名)。 在 Automation 360 中,$AATaskInvoker$ 变量返回以下值:
|
$AATaskName$ | 此系统变量在 Automation 360 中变为 $System.AATaskName$。 在 Enterprise 10/Enterprise 11 中,此变量将值返回至您的计算机路径目录(例如 Automation Anywhere\My Tasks\My Folder\My Folder2\AATaskName.atmx)。 在 Automation 360 中,将值返回至 Control Room 相关的 bot 路径(例如 Bots/AATaskName)。 操作要求: 由于不同版本返回的值不同,您可能需要更改部分 bots。
|
$AAApplicationPath$ |
Enterprise 11 特定: 此 Enterprise 11 系统变量将返回用户在所谓的“客户端应用程序”的工具 > 选项设置中设置的路径。 在 Automation 360 中,变量变为全局值。 迁移流程会自动映射此更改,每位用户在 Enterprise 11 中设置的值可复制到全局值变量 @AAApplicationPath。 注: 用户不需要操作 Enterprise 11,因为如果您已在安装 Automation 360 时使用已恢复的 Enterprise 11 数据库,则系统变量可在迁移期间自动映射为全局值。
Enterprise 10 特定: 此 Enterprise 10 系统变量不会作为全局值自动迁移到 Automation 360,因此需要在迁移后执行某些操作。 重要:
请参阅 全局值。 |
$AAInstallationPath$ | 此系统变量在 Automation 360 中变为 $System:AAInstallationPath$。
Enterprise 10/Enterprise 11 行为: 返回
Enterprise Client
安装路径(例如
Automation 360 行为: 返回
Bot Agent
安装路径(例如 操作要求: 由于不同版本返回的值不同,您可能需要更改部分 bots。
|
$Current Directory$ | 此系统变量在 Automation 360 中已弃用,且在迁移期间自动转换为用户定义的变量。 变量的值根据 和对于文件夹中的每个文件夹中定义的值进行设置。 |
$Date$ | 此系统变量在 Automation 360 中变为 $System:Date$。 Enterprise 10 和 Enterprise 11 行为: $Date$ 变量以 AA.Settings.XML 文件中指定的格式返回当前日期和时间。 Automation 360 行为: $System:Date$ 变量返回日期时间类型的值,用户必须使用操作将其更改为“字符串”。 为最大限度地减少对用户的干扰,迁移流程对每个 $Date$ 实例执行以下操作:
根据 bot 的配置方式,可能需要更新日期/时间配置。 操作要求: 如果日期格式不是
MM/dd/yyyy HH:mm:ss,请更改 bot。
|
$Error Line Number$ $Error Description$ |
在 Enterprise 10 或 Enterprise 11 中,这些系统变量用于错误处理命令之后。 在 Automation 360 中,值返回至 Catch 操作中指定的用户定义变量。 |
$PDFFileName$ $PDFTitle$ $PDFAuthor$ $PDFSubject$ |
在 Enterprise 10 或 Enterprise 11 中,这些系统变量用于任何 PDF 命令之后。 在 Automation 360 中,字典类型变量用于捕获所有可通过相应键进行检索的 PDF 值。 每个 PDF 操作都通过相应的 PDF 值返回此字典变量。 请参阅 将字典变量用于 PDF 属性。 |
$System$ | 在 Enterprise 11 或 Enterprise 10 中,此系统变量用于检索关于设备设置及其性能的信息。 在 Automation 360 中,将使用 System
package 的 获取环境变量
action。 请参阅 获得环境变量 action。 |
$WorkItem$ |
注: 对于“日期时间”类型,您尚无法迁移包,因此必须在其他时间迁移关联的 bot。
|
$Trigger Value$ | 在 Automation 360 中变为 $TriggerValue$。 对于使用该变量的 Enterprise 11
bots,请执行以下任务,成功运行迁移后的 bots:
|
$Table Column$ | 此系统变量现在是循环中对于表中的每一行迭代器的组成部分。 系统在循环中创建新变量,当存在 $Table Column$ 时,其用于循环内部。如果变量在循环之外使用,它将被转换为记录类型的用户定义变量,并被分配给记录操作,这使您能够将源记录变量的值分配给目标记录变量。 因此,在运行包含此变量的迁移后的 bots 时,将显示最后一行的数据。 |
$XML Data Node$ | 此系统变量用于循环中的对于 XML 数据集中的每个节点迭代器内。 在 Automation 360 中,该值返回至在循环中指定的字符串变量。 如果变量在循环之外使用,它将被转换为字符串类型的用户定义变量,并被分配给记录操作,这使您能够将源记录变量的值分配给目标记录变量。 因此,在运行包含此变量的迁移后的 bots 时,将显示最后一行的数据。 |
凭据变量
用于 Enterprise 10 和 Enterprise 11 中的用户名和密码字段的凭据变量在 Automation 360中作为凭据变量迁移。
Enterprise 10 和 Enterprise 11 的迁移方法不同。
要了解如何迁移 Enterprise 10 凭据,请参阅 如何将 Enterprise 10 数据复制到 Automation 360 中的凭据部分。
用户名和密码字段以外的字段中使用的凭据变量将作为全局值迁移。 这些字段包括主机名、端口号等。 迁移的全局值包含以下语法:<credentialname>_<attributename>
. 例如,在 Enterprise 11 中,带属性 hostname
的凭据 FTPConnection
作为 FTPConnection_hostname
迁移。
下表提供了有关支持将凭据变量从 Enterprise 11 迁移到 Automation 360 的 packages 和 actions 的信息:
Package | Actions |
---|---|
Active Directory |
|
Database |
|
Email Automation |
|
Excel | 打开电子表格 |
FTP / SFTP | 连接 |
Insert Keystrokes | 所有需要使用凭据的击键 |
Legacy Automation | 在管理网页控件操作中设置文本 |
Manage Window Controls |
|
|
|
PGP |
|
Recorder |
注: 已从 Object Cloning 命令迁移为“捕获”操作。
|
REST Web Services |
注: 域名作为全局值进行迁移。
|
SOAP Web Service |
|
Terminal Emulator |
|
Web Recorder | 通过设置文本和附加文本功能管理网页控件 |