

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Connect 中的流程块：数据表
<a name="data-table-block"></a>

## 说明
<a name="data-table-block-description"></a>

Amazon Connect 中的数据表区块使您能够在联系流程中评估、列出或写入数据表中的数据。此区块通过与 Amazon Connect 数据表中存储的结构化数据进行交互，促进动态决策、个性化客户体验和数据管理。

## 使用案例
<a name="data-table-block-use-cases"></a>

数据表块可用于：
+ **配置检索**-访问存储在数据表中的业务规则、路由参数或操作设置。
+ **动态路由决策**-查询数据表，根据客户属性确定适当的队列、座席或流程路径。
+ **状态检查**-在继续执行特定操作之前，请先验证账户状态、资格或其他条件。

## 支持的渠道
<a name="data-table-block-channels"></a>

下表列出了此数据块如何路由正在使用指定渠道的联系人。


| 频道 | 是否支持？ | 
| --- | --- | 
| 语音 | 是 | 
| Chat | 是 | 
| 任务 | 是 | 
| 电子邮件 | 是 | 

## 流类型
<a name="data-table-block-types"></a>

您可以在以下[流类型](create-contact-flow.md#contact-flow-types)中使用此数据块：
+ 所有流

## 配置概述
<a name="data-table-block-configuration"></a>

### 选择操作
<a name="data-table-block-select-action"></a>

选择要执行的操作类型：
+ 从数据表读取-查询或检索数据（评估或列出操作）
+ 写入数据表-创建新记录或更新现有记录

### 定义数据表
<a name="data-table-block-define-table"></a>
+ 选择 “**手动设置**” 可直接选择数据表
+ 从下拉列表中选择您的目标数据表
+ 重要：选择特定数据表后，界面会自动在相关配置部分填充该表中的可用属性

## 评估数据表值
<a name="data-table-block-evaluate"></a>

使用 “评估” 操作查询数据表并根据定义的条件检索特定的属性值。

下图显示了配置为评估数据表值**的数据表**模块的 “**属性**” 页面。

![\[为 “评估” 操作配置的数据表块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/data-table-evaluate.png)


### 配置步骤
<a name="data-table-evaluate-steps"></a>

1. 选择 “**从数据表读取**” 作为 “操作”。

1. 从 “读取操作” 下拉列表中选择 “**评估数据表值**”。

1. 配置查询：
   + 每个数据表块最多可以设置 5 个查询。每个 “评估数据表” 模块至少需要一个查询。
   + 对于每个查询：
     + **查询名称（必填）**-为查询提供描述性名称。重要：查询名称在整个流程中必须是唯一的，而不仅仅是在此特定区块中。
     + **主要属性**-手动选择数据表时，用户界面会自动填充该表架构中的主要属性列表。所有主要属性字段均为必填字段，您必须为显示的每个主要属性提供值。这些属性充当筛选器，用于识别数据表中的特定行。
     + **查询属性**-手动选择数据表时，下拉列表会自动填充该表中的所有可用属性。从下拉列表中选择一个或多个属性。这些是将返回并可供在流程中使用的数据字段。可以使用查询名称在后续块中引用检索到的值。

### 评估的关键细节
<a name="data-table-evaluate-details"></a>
+ **查询限制**-每个区块最多 5 个查询
+ **最低要求**-必须至少配置一个查询
+ **查询姓名唯一性**-在整个联系流程中必须是唯一的
+ **属性匹配**-主属性使用精确匹配来定位行
+ **必填字段**-所有主要属性均为必填字段

### 访问检索到的数据以进行评估
<a name="data-table-evaluate-accessing-data"></a>

执行 “评估” 操作后，您可以使用以下命名空间格式访问检索到的属性值：`$.DataTables.QueryName.AttributeName`。使用方括号和单引号来引用带有特殊字符的属性名称。例如 `$.DataTables.CustomQuery['my attribute name with spaces']`。如果使用**数据表**命名空间动态下拉选项，则可以省略根命名空间。`$.DataTables.`
+ **组件：**
  + `QueryName`— 您在配置中为查询分配的唯一名称
  + `AttributeName`-您选择要检索的属性的名称
+ **用法**-可以在后续流程块中引用这些值，例如：
  + 检查联系人属性块（用于条件分支）
  + 设置联系人属性块（存储在其他命名空间中）
  + 播放提示块（提供个性化消息）
  + 调用 Lambda 函数块（作为输入参数传递）
+ **示例**-如果您配置了一个名为 “” 的查询来检索 CustomerLookup “AccountStatus” 和 “LoyaltyTier” 属性：
  + 访问账户状态：`$.DataTables.CustomerLookup.accountStatus`
  + 访问忠诚度等级：`$.DataTables.CustomerLookup.loyaltyTier`
+ **注意：**
  + 如果查询未返回任何结果或未找到该属性，则引用将为空或为空。
  + 不支持列表类型的数据表值。
  + 后续的数据表块将从数据表命名空间中清除之前的查询。
  + 数据表命名空间中的查询结果仅在包含数据表流程块的流程中可用。

## 列出数据表值
<a name="data-table-block-list"></a>

使用 “列表” 操作从数据表中检索符合指定条件的整行。

下图显示了配置为列出**数据表值的数据表**块的 “**属性**” 页面。

![\[为 “列表” 操作配置的数据表块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/data-table-list.png)


### 配置步骤
<a name="data-table-list-steps"></a>

1. 选择 “**从数据表读取**” 作为 “操作”。

1. 从 “读取操作” 下拉**列表中选择 “列出数据表值**”。

1. 配置主要值组：
   + 您最多可以添加 5 个主要值组来定义不同的筛选条件集。
   + 对于每个主要价值组：
     + **组名（必填）**-为主要值组提供描述性名称。此名称将用于引用后续流程块中检索到的记录集。重要：群组名称在整个流程中必须是唯一的，而不仅仅是在此特定区块中。
     + **主要属性**-手动选择数据表时，用户界面会自动填充该表架构中的主要属性列表。所有主要属性字段均为必填字段，您必须为显示的每个主要属性提供值。这些属性充当筛选器，用于识别数据表中将返回的特定行。

   注意：与检索特定属性值的 “评估” 操作不同，“列出” 操作会返回符合主要属性标准的全部记录（所有属性）。

### 清单的关键细节
<a name="data-table-list-details"></a>
+ **主要价值组限制** — 每个区块最多 5 个主要价值组
+ **群组名称唯一性** — 在整个联系流程中必须是唯一的
+ **属性匹配**-主属性使用精确匹配来定位行
+ **返回行为**-返回完整的记录，而不仅仅是选定的属性。如果未配置主值组，则整个表的加载限制为 32KB。

### 访问列表中检索到的数据
<a name="data-table-list-accessing-data"></a>

执行 List 操作后，检索到的数据将以结构化格式存储。您可以使用以下命名空间模式访问数据：
+ **元数据访问权限：**
  + 数据表 ID：`$.DataTableList.ResultData.dataTableId`
  + 锁定版本：`$.DataTableList.ResultData.lockVersion.dataTable`
+ **列表数据访问权限**-要访问列表中的特定数据，请执行以下操作：
  + 按索引访问特定行：`$.DataTableList.ResultData.primaryKeyGroups.GroupName[index]`
  + 访问主键值：`$.DataTableList.ResultData.primaryKeyGroups.GroupName[index].primaryKeys[index].attributeValue`
  + 访问属性值：`$.DataTableList.ResultData.primaryKeyGroups.GroupName[index].attributes[index].attributeValue`
+ **用法**-可以在后续流程块中引用这些值，例如：
  + 设置联系人属性块（用于提取和存储特定值）
  + 调用 Lambda 函数块或模块（传递整个结果集进行处理）
+ **示例**-如果您配置了名为 OrderHistory “” 的主值组：
  + 访问第一行：`$.DataTableList.ResultData.primaryKeyGroups.OrderHistory[0]`
  + 访问第一行的第一个属性值：`$.DataTableList.ResultData.primaryKeyGroups.OrderHistory[0].attributes[0].attributeValue`
+ **注意：**
  + 列表返回完整记录（所有属性），而不仅仅是选定的记录
  + 如果未找到匹配的记录，则 primaryKeyGroups 数组将为空
  + 如果未配置主键组，则会加载整个表，并且可以使用 “默认” 组名访问结果：`$.DataTableList.ResultData.primaryKeyGroups.default[index]`
  + 在流块中访问数组元素时，请使用反引号来封装引用： JSONPath ``$.DataTableList.ResultData.primaryKeyGroups.<GroupName>[index]``

## 写入数据表
<a name="data-table-block-write"></a>

使用 “写入” 操作在数据表中创建新记录或更新现有记录。

下图显示了配置为写入**数据表的数据表**块的 “**属性**” 页面。

![\[为 “写入” 操作配置的数据表块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/data-table-write.png)


### 配置步骤
<a name="data-table-write-steps"></a>

1. 选择 “**写入数据表**” 作为 “操作”。

1. 配置主要值组：
   + 您可以添加多个主要值组来定义要写入或更新的不同记录。每个 “写入数据表” 块至少需要一个主值组。
   + 该界面通过选项卡提供了两种输入法：
     + “输入” 选项卡-基于表单的结构化配置（建议大多数用户使用）
     + 原始 JSON 选项卡 — 高级用户可直接输入 JSON
   + 对于每个主要价值组：
     + **组名（必填）**-为主要值组提供描述性名称。此名称将用于在后续流程块中引用写入操作。重要：群组名称在整个流程中必须是唯一的，而不仅仅是在此特定区块中。
     + **主要属性**-手动选择数据表时，用户界面会自动填充该表架构中的主要属性列表。所有主要属性字段均为必填字段，您必须为显示的每个主要属性提供值。这些属性充当决定要创建或更新哪条记录的关键字段。如果存在具有匹配主属性值的记录，则会对其进行更新；否则，将创建一条新记录。
     + **配置要写入的属性**
       + **属性名称（必填）**-手动选择数据表时，下拉列表会自动填充该表中的所有可用属性。选择要写入或更新的属性。您可以通过单击 “添加**要写入的属性” 来添加多个属性**。
       + **属性值配置**-对于每个属性，选择以下选项之一：
         + 设置属性值（默认情况下处于选中状态）-指定要写入属性的值。选择此选项时，此字段为必填字段。值可以是静态文本、联系人属性或系统变量。
         + 使用默认值-使用数据表架构中定义的默认值。选择此选项时，无需输入其他值。
     + **配置锁定版本**-锁定版本设置控制如何处理数据表的并发写入操作：
       + 使用 “最新” 选项 — 始终写入记录的最新版本。适用于大多数不太可能或无法接受并发更新的用例。
       + 动态设置选项-允许您在运行时通过 Lambda 或模块动态指定版本号。

### 写入的属性限制
<a name="data-table-write-attribute-limit"></a>

写入操作对单个区块中所有主要值组的总属性限制为 25。此限制的计算方法如下：
+ 如果主值组未配置 “要写入的属性”，则该组中的主要属性值计入总限制
+ 如果主值组配置了 “要写入的属性” — 要写入的属性计入总限制（在本例中不计算主要属性）

**示例：**
+ 示例 1：具有 3 个主要属性且没有要写入的属性的主值组 = 3 接近极限
+ 示例 2：具有 3 个主要属性和 5 个要写入的属性的主值组 = 5，接近极限
+ 示例 3：三个主要值组，每个组有 3 个主要属性和 5 个要写入的属性 = 15（5 \$1 5 \$1 5）接近极限

重要：所有主要值组中所有已计数属性的总和不得超过 25。

### Write 的关键细节
<a name="data-table-write-details"></a>
+ **最低要求**-必须至少配置一个主要值组
+ **对主要值组没有限制**-与 “列表” 操作不同，对主要值组的数量没有固定的限制
+ **属性限制**-所有主要值组中已计数属性的总和不得超过 25
+ **属性匹配**-主属性使用精确匹配来识别目标记录
+ **必填字段**-所有主要属性和选定的属性值（选择 “设置属性值” 时）均为必填字段
+ **Upsert 行为**-如果存在具有匹配主属性的记录，则会对其进行更新；否则，将创建一条新记录

## 已配置的数据块
<a name="data-table-block-configured"></a>

配置完成后，此区块将有 “**成功**” 和 “**错误**” 分支。