系统要求
- Windows 10
- Windows Server 2016
- Windows Server 2019
该连接器无法在装有 Windows Server 2012 R2、Windows 8.1 及更早版本操作系统的计算机上运行。
- ABBYY Vantage 2.3.2 或更高版本
- UiPath Enterprise Edition 2023.8.0
- UiPath Community Edition 2023.4.4 或更高版本
- Microsoft .NET Framework 4.8.1
- Microsoft .NET 8
我们建议您将 Windows-legacy 项目转换为 Windows 兼容模式,因为 legacy 兼容模式已不再受支持。有关如何将 Windows-legacy 项目转换为
Windows 兼容模式的信息,请参阅 将 Windows-legacy 项目转换为 Windows 兼容模式。
安装连接器
-
运行
ABBYYVantageConnectorForUiPath.<version>.exe并按照安装向导中的说明操作。在安装过程中,指定连接器的安装文件夹。默认路径为C:\Program Files\ABBYY Vantage Connector for UiPath。 - 在 UiPath Studio 中,打开现有项目或创建新项目。
-
在功能区的 Design 选项卡上,单击 Manage Packages:

-
确保已启用 nuget.org 包源。安装连接器包的某些依赖项时需要使用此包源。
如果您已经配置了包源并希望使用它,请跳过步骤 5。
-
转到 Manage Packages 窗口的 Settings 选项卡,并创建一个新的包源:
a. 输入新包源的名称。
b. 指定用于存放连接器 NuGet 包的文件夹路径。
c. 单击 Add 确认设置。
新包源会显示在 User defined package sources 区域中,以及 Manage Packages 窗口左侧窗格中。

-
将适用于 UiPath 的 ABBYY Vantage Connector 的所有 NuGet 包从安装文件夹复制到您的包源文件夹中。NuGet 包位于步骤 1 中创建的安装文件夹下的 UiPath Activities 子文件夹中 (默认位置为
C:\Program Files\ABBYY Vantage Connector for UiPath\UiPath Activities) 。 将 NuGet 连接器包添加到可用包源后,您就可以将连接器包安装为项目依赖项。 -
在 Manage Packages 窗口中,转到 All Packages 部分并执行以下操作:
a. 单击新创建的包源类别。
b. 在可用包列表中选择 Abbyy.UiPath.Vantage.Activities,然后单击 Install。License Acceptance 窗口将显示您安装的每个第三方包的许可条款。
c. 单击 View License 阅读许可条款。
d. 单击 I Accept 以同意许可条款并安装这些包。最后,单击 Save。

-
安装完成后,Vantage 活动将显示在项目可用活动列表的 ABBYY Vantage 部分中:
有关安装包的详细说明,请参阅 UiPath Studio Guide。
将 Windows-legacy 项目转换为 Windows
- 在 UiPath Studio 中,打开 Windows-legacy 项目。
- 单击功能区下方显示的消息中的 Convert to Windows 链接。


-
指定如何将 Windows-legacy 项目转换为 Windows:
- 若要使用 Windows 兼容性创建当前项目的副本,并保留原始的 Windows-legacy 项目,请选择 Create a new project。输入项目名称、所需位置,以及可选的新项目说明。
- 若要更新现有项目并将其转换为 Windows 兼容性,请清除 Create a new project 选项。如果清除此选项,将无法撤销对项目所做的更改。
- 单击 Convert。有关将 Windows-legacy 项目转换为 Windows 兼容性的更多信息,请参阅 UiPath Studio Guide。
在 UiPath 工作流中使用 ABBYY Vantage 活动
Vantage Scope Activity
Vantage Scope 活动支持使用 Resource Owner Password Credentials Flow 和 Client Credentials Flow 配置身份验证。如果您在 Vantage 中设置了外部身份提供程序,则
唯一可用的身份验证流程是 Client Credentials Flow。
活动属性
| 组 | 属性 | 类型 | 描述 |
|---|---|---|---|
| 连接设置 | 授权授予类型 | IEnumerable<AuthorizationGrantType> | 用于授权的授予类型:ResourceOwnerPassword 或 ClientCredentials |
| 连接设置 | 密码 | String | 用于连接 ABBYY Vantage 的密码。 |
| 连接设置 | 安全密码 | SecureString | 用于连接 ABBYY Vantage 的安全密码。 |
| 连接设置 | 服务器 URL | String | ABBYY Vantage 服务器地址。 |
| 连接设置 | 租户 | String | ABBYY Vantage 租户名称或租户标识符。重要! 仅当用于连接 ABBYY Vantage 服务器的凭据所属用户在该服务器上的多个 (多于一个) 租户中注册时,才需要此属性。输入密码时,可在浏览器中的 Vantage 登录页面找到租户名称。 |
| 连接设置 | 用户名 | String | 用于连接 ABBYY Vantage 的用户电子邮件地址。 |
| 代理设置 (可选) | 启用代理 | Boolean | 允许您使用代理服务器转发 HTTP 请求。 |
| 代理设置 (可选) | 服务器 URL | String | 代理服务器地址 (例如 http://127.0.0.1:8080) 。 |
| 代理设置 (可选) | 用户名 | String | 用于连接代理服务器的用户名。 |
| 代理设置 (可选) | 密码 | String | 用于连接代理服务器的密码。 |
| 代理设置 (可选) | 安全密码 | SecureString | 用于连接代理服务器的安全密码。 |
| Vantage Public API 客户端设置 (可选) | 客户端 ID | String | Vantage 应用程序标识符。 |
| Vantage Public API 客户端设置 (可选) | 客户端密钥 | String | 安全的 Vantage 应用程序密钥。 |
| Vantage Public API 客户端设置 (可选) | 安全客户端密钥 | SecureString | 以安全字符串形式存储的 Vantage 应用程序密钥。 |
SecureString 类型参数进行设置。
String 类型的密码会以纯文本形式存储在 XAML 项目文件中,因此并不安全。建议仅在配置 Use Skill 和 Map Fields 活动以获取技能列表,或调试 UiPath 流程时使用 String 密码。流程完全配置完成后:
- 如果您使用 Resource Owner Password Credentials Flow,请从 Vantage Scope 活动中删除 Password 属性,并设置 Secure Password 属性。
- 如果您使用 Client Credentials Flow,请从 Vantage Scope 活动中删除 Client Secret 属性,并设置 Secure Client Secret 属性。
Connection Settings、Proxy Settings 和 Client Settings 必须使用相同类型的密码。
-
Resource Owner Password Credentials Flow:
- 启用 Allow Resource Owner Password Credentials Flow 选项。
-
Client Credentials Flow:
- 启用 Allow issuing refresh tokens to refresh access tokens 选项。
- 启用 Allow client credentials flow 选项。
- 单击 Manage Roles 设置,选择应用程序登录 Vantage 时所需的角色。

如果 Vantage Public API Client 设置中的所有属性均为空,则会使用默认的 ABBYY Vantage 客户端。

代理设置
"true",然后在 Server URL 属性中指定代理服务器地址。
如果您使用的是 Basic 身份验证,请在 Username 和 Password / Secure Password 属性中指定代理连接凭据。
如果您使用的是 NTLM 身份验证,则 Username 和 Password 字段为可选。如果 Username 和 Password 字段为空,则会使用运行 UiPath 进程的用户凭据。
使用技能活动
活动属性
| 组 | 属性 | 类型 | 描述 |
|---|---|---|---|
| 连接设置 | Skill Name | String | Vantage 技能的名称。 |
| 输入 | Input Files | IReadOnlyDictionary<String,InputFile> | 一个字典集合,其中 String 表示文件名,InputFile 是描述输入文件的类。**注意:**向字典中添加文件之前,必须确保传递给 String 参数的值不重复。对于传递给 String 参数的名称相同的文件,不能向 Input Files 字典中添加多个。 |
| 输入 | Transaction Registration Parameters | IReadOnlyDictionary<String,String> | 事务注册参数的字典集合,用于传递每个参数的键和值。 |
| 输出 | Transaction Id | Guid | 已创建事务的标识符。随后,此 ID 将用作 Get Results 活动的 Transaction Id 输入属性,以获取事务状态和处理结果。 |
| 名称 | 类型 | 描述 |
|---|---|---|
| fileStream | Stream | 将传递给 ABBYY Vantage 的文件内容。可以将本地磁盘上的文件流作为此属性的值传递 (例如 System.IO.File.OpenRead("D:\images\Invoice1.pdf")) 。 |
| index (可选) | Integer | 文件在事务中的索引号。 |
| fileRegistrationParameters (可选) | IReadOnlyDictionary<String,String> | 文件注册参数的字典集合,用于传递每个参数的键和值。 |
- Resource Owner Password Credentials Flow — 指定 Vantage Scope 活动的 Password 属性,以获取可用技能列表。配置好 UiPath 工作流后,建议将 Password 属性改为 Secure Password。
- Client Credentials Flow — 指定 Vantage Scope 活动的 Client Secret 属性,以获取可用技能列表。配置好 UiPath 工作流后,建议将 Client Secret 属性改为 Secure Client Secret。

我们建议将大文件缩减到 30 MB 或以下,以加快文档处理速度。
在 Use Skill 活动的 Skill Name 参数中,您可以使用
String 类型的 UiPath 变量来存储技能名称。通过设计面板中该
活动的下拉列表选择技能时,新选择的技能将写入指定的变量。您也可以直接在该变量中存储技能名称。当前不支持在该变量的值中使用表达式或引用其他
变量。获取结果活动
活动属性
| Group | Property | Type | Description |
|---|---|---|---|
| Input | 事务 ID | Guid | 事务的标识符。请将 Use Skill 活动输出属性 Transaction Id 的值传递给此属性。 |
| Input | 删除事务 | Boolean | 指定是否删除已完成的事务,无论事务是否成功完成。默认值为 FALSE,表示不删除该事务。 |
| Output | 文档结果 | IEnumerable<DocumentResult> | 处理后的结果文档集合。 |
| Output | 审核链接 | String | 指向 ABBYY Vantage 人工审核客户端的链接,可在其中审核事务结果 (仅当所使用的流程技能包含 Review 活动时,才能获取此链接) 。 |
| Output | 事务状态 | TransactionStatus | 事务的状态。可能的状态包括:"New"、"Processing"、"Review"、"Processed"。你可以根据收到的状态配置 UiPath 流程以执行不同的逻辑。例如,如果事务状态为 "Processing",请等待几秒钟后再次调用该活动。 |
DocumentResult 类实例集合的形式,接收该事务中所有文档的处理结果。
DocumentResult 类属性:
| Name | Type | Description |
|---|---|---|
| DocumentId | String | 文档的标识符。 |
| ClassificationConfidences | IEnumerable<ClassificationConfidence> | 分类置信度值集合。列出应用于该文档的分类技能中的所有可用类别及其各自的分类置信度值。 |
| ClassName | String | 根据分类结果确定的文档类别。 |
| ExtractedData | String | 包含提取数据的 JSON 字符串。注意: 对于流程技能,如果在 Output Activity 中启用了 Values, metadata, and field structure for each document 选项,则可以获取此属性。 |
| IsClassificationConfident | Boolean | 如果此值为 TRUE,则表示系统对结果类别的判定具有足够高的置信度。 |
| ResultFiles | IReadOnlyDictionary<String,Stream> | 处理后的结果文件集合。 |
| DocumentFullText | String | ABBYY Vantage 捕获的文档全文文本层。注意: 如果技能配置中未包含全文导出设置,此属性将包含以下默认值:TXT export was not configured in the ABBYY Vantage skill settings. Please enable TXT export in the skill that you have selected. TXT 导出仅适用于 OCR 技能或流程技能。 |
列出的所有参数都会收集到 Document Results 集合中单独的一个
DocumentResult 内。即使只有一个输出文档,也可以从
Document Results 集合中的第一个 DocumentResult 获取其输出参数。| Name | Type | Description |
|---|---|---|
| ClassName | String | Vantage 文档类别。 |
| Confidence | Int | 文档属于此类别的置信程度。可能的值范围为 0 到 100。 |
"Processed") ,结果将保存在输出属性中。
如果事务仍在处理中 (即 Transaction Status = "New" / "Processing") ,请等待几秒钟后再次调用 Get Results 活动。
下面将介绍一种特殊情况,即 Transaction Status = "Review"。
Get Results 活动可能获取到的结果会因应用于文档的技能而异:
-
分类技能 (例如 Vantage Classifier) :
- 事务状态
- 文档结果 (对于每个
DocumentResult) :DocumentId、ClassificationConfidences、ClassName、IsClassificationConfident、ResultFiles(包含分类结果数据的 JSON 文件)
-
文档技能 (例如 Invoice US) :
- 事务状态
- 文档结果 (对于每个
DocumentResult) :DocumentId、ExtractedData、ResultFiles(结果包含在两个 JSON 文件中——第一个包含所有文档数据,第二个包含提取字段的值和规则错误,文件名以_fields.json结尾)
-
OCR 技能:
- 事务状态
- 文档结果 (对于每个
DocumentResult) :DocumentId、ResultFiles(将收到在 OCR 技能中配置为导出的文件) 、DocumentFullText(如果技能中启用了导出到 TXT)
-
流程技能:
如果某个流程技能包含 Classify 活动和 Extract 活动,则会同时获得上述分类技能和文档技能的结果。
如果某个流程技能包含多个 Classify 或 Extract 活动,则将获得对应类型中最后一个活动的结果。
如果在流程技能的某个 Output 活动的 Exported Data Settings 对话框中启用了 PDF 选项,则结果将包含提取结果的 JSON 文件,以及导出为带文本层的 PDF 文件的文档图像。对于事务中的每个文档,如果技能中启用了导出到 TXT,还会收到
DocumentFullText参数。 流程技能还可以包含 Review 活动。使用此类技能进行文档处理时,如果文档需要人工审核,处理可能会暂停。在这种情况下,Get Results 活动将获得以下结果:- 事务状态 =
"Review" - 审核链接
- 事务状态 =
映射字段活动
活动属性
| 组 | 属性 | 类型 | 说明 |
|---|---|---|---|
| 连接设置 | Skill Name | String | Vantage 文档技能的名称。 |
| 输入 | Extracted Data | String | 接受包含提取数据的 JSON 字符串。将 Get Results 活动中接收到的相应 DocumentResult 的 ExtractedData 属性值传递给此属性。要在这些属性之间传递值,请使用 UiPath 变量。 |
- Resource Owner Password Credentials Flow — 指定 Vantage Scope 活动的 Password 属性,以获取可用技能列表。配置完 UiPath 工作流后,建议将 Password 属性更改为 Secure Password。
- Client Credentials Flow — 指定 Vantage Scope 活动的 Client Secret 属性,以获取可用技能列表。配置完 UiPath 工作流后,建议将 Client Secret 属性更改为 Secure Client Secret。
在运行时,Map Fields 活动的 Extracted Data 属性必须接收 Get Results
活动中接收到的相应
DocumentResult 的 ExtractedData 属性值,该值包含为 Map Fields 活动所配置的文档技能提取的数据。接收到提取数据后,请检查应用于该文档的文档技能名称
是否与为 Map Fields 活动配置的文档技能名称一致;如果一致,则将提取的数据传递给 Map Fields。要获取文档
类型,可以使用 Get Results 活动中接收到的相应 DocumentResult 的输出 ClassName 属性。要将文档类型传递给此参数,请在
流程技能的 Extract 活动中,配置类与用于文档处理的文档技能之间的映射。进行映射时,必须满足以下条件:类
名称等于所选文档技能的名称。- 在 Designer 面板中打开 Map Fields 活动,然后单击 Skill Name 下方下拉列表右侧的按钮,以获取可用技能列表。
-
展开 Skill Name 下拉列表,然后选择要将其提取字段值保存到 UiPath 变量中的文档技能。
您只能选择文档技能。
- 单击 Refresh 按钮。Vantage Extracted Field 列中将显示字段树。
-
展开该树,然后单击要映射的字段旁边的 Plus 按钮。UiPath Variable 列中将显示 UiPath 变量名称和类型。默认情况下,变量名称与 Vantage 字段名称相同,但您可以根据需要更改该名称。
请确保在 Map Fields 活动中指定的 UiPath 变量名称符合 UiPath 流程中配置的 Variables Naming Convention。如果变量名称不符合命名 规则,它们将在 UiPath 变量列表中显示警告符号。有关 Variables Naming Convention 的更多信息,请参阅 UiPath documentation。

- 对所有其他需要映射的字段重复上一步。设置映射时,您也可以指定已存在的 UiPath 变量。在这种情况下,请确保变量类型与下表中建议的类型一致。
- 将文档字段映射到 UiPath 变量后,单击 Apply 保存更改。这样,当 Map Fields 活动在运行时被调用时,变量值将自动填入提取的数据。
指定的 UiPath 变量将在距离 Map Fields 活动最近的 Sequence 中创建 (例如,在 Flowchart 中) 。
String 类型的 UiPath 变量来存储技能名称。当您在设计面板中通过该活动的下拉列表选择某个技能时,新选择的技能会写入指定的变量。您也可以直接在该变量中存储技能名称。目前暂不支持在变量值中使用表达式或引用其他变量。
下表显示了每种 ABBYY Vantage 字段类型对应的 UiPath 变量类型:
| ABBYY Vantage 字段类型 | UiPath 变量类型 |
|---|---|
| 文本 | String |
| 日期 | String |
| 数字 | String |
| 金额 | String |
| 条码 | String |
| 勾选标记 | Boolean |
| 勾选标记组 (可作为独立的勾选标记获取) | FieldList |
| 组 | FieldList |
| 组 (用于重复组) | FieldList[] |
| 表格 | FieldList[] |
表格列以及重复字段都会映射到
String[] 类型的 UiPath 变量。所有重复字段以及属于重复组的字段 (或重复组中的任何其他重复字段
和重复组) 都会映射到 FieldList[] 类型的 UiPath 变量。也可以将该组的子对象映射到其他简单类型的变量。
GroupItem 是一种结构,包含某个重复对象 (字段或字段组) 的一个实例。
| Method/Property | Parameter | Type | Description |
|---|---|---|---|
| Keys | IEnumerable<string> | 键值。每个值都是特定嵌套级别的名称。 | |
| Values | IEnumerable<IReadOnlyList<FieldList>> | 各嵌套级别的字段值集合。 | |
| Count | Integer | 嵌套字段的数量。 | |
| ContainsKey | Key: String | Boolean | 指示某个嵌套字段是否存在。 |
| TryGetValue | Key: String, Value: IReadOnlyList<FieldList> | Boolean | 指示某个值是否存在。如果存在,则返回 True 及该值;否则返回 False。 |
| this[] | Name: String | IReadOnlyList<FieldList> | 返回指定嵌套字段的值。 |
| Find | Name: String | IEnumerable<FieldList> | 查找任意嵌套级别中所有具有指定名称的嵌套字段。 |
| Filter | Predicate: (Name: String, Node: FieldList) => Boolean | IEnumerable<FieldList> | 查找任意嵌套级别中所有满足谓词条件的嵌套字段。 |
| Descendents | NameItems: Params String[] | IEnumerable<FieldList> | 查找任意嵌套级别中名称与 nameItems 参数匹配的所有嵌套字段。 |
FieldList 是一种对应于字段或字段组 (同名的重复字段或重复组) 的结构,包含这些字段或组的值 (可能有多个实例) 。
| Method/Property | Parameter | Type | Description |
|---|---|---|---|
| Values | IEnumerable<Object> | 标量字段值集合。 | |
| Count | Integer | 嵌套 GroupItems 的数量。 | |
| Find | Name: String | IEnumerable<FieldList> | 查找任意嵌套级别中所有具有指定名称的嵌套字段。 |
| Filter | Predicate: (Name: String, Node: FieldList) => Boolean | IEnumerable<FieldList> | 查找任意嵌套级别中所有满足谓词条件的嵌套字段。 |
| this[] | Num: Integer | GroupItem | 返回 num 参数对应位置上带有嵌套字段 (如有) 的 GroupItem。 |
Sample Process 提供了一个使用
FieldList[] 类型变量的示例 (日志消息中会显示 LineItems 表的 Description 列) 。