

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon Connect 中的流程區塊：資料表
<a name="data-table-block"></a>

## Description
<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>

下表列出此區塊如何轉接使用指定頻道的聯絡人。


| Channel | 支援？ | 
| --- | --- | 
| 語音 | 是 | 
| 聊天 | 是 | 
| 任務 | 是 | 
| Email | 是 | 

## 流程類型
<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_tw/connect/latest/adminguide/images/data-table-evaluate.png)


### 組態步驟
<a name="data-table-evaluate-steps"></a>

1. 選取**從資料表讀取**做為動作。

1. 從讀取動作下拉式清單中選取**評估資料表值**。

1. 設定查詢：
   + 每個資料表區塊最多可以設定 5 個查詢。每個評估資料表區塊至少需要一個查詢。
   + 對於每個查詢：
     + **查詢名稱 （必要）** – 提供查詢的描述性名稱。重要：查詢名稱在整個流程中必須是唯一的，而不只是在此特定區塊內。
     + **主要屬性** – 當您手動選取資料表時，UI 會自動填入該資料表結構描述中主要屬性的清單。所有主要屬性欄位都是必要的 - 您必須為每個顯示的主要屬性提供值。這些屬性可做為篩選條件，以識別資料表中的特定資料列 （多個）。
     + **查詢屬性** – 當您手動選取資料表時，下拉式清單會自動填入該資料表中的所有可用屬性。從下拉式清單中選取一或多個屬性。這些是將傳回並可用於流程中的資料欄位。您可以使用查詢名稱在後續區塊中參考擷取的值。

### 評估的金鑰詳細資訊
<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`
+ **請注意：**
  + 如果查詢未傳回結果或找不到屬性，則參考將為空或 null。
  + 不支援類型清單的資料表值。
  + 後續資料表區塊將從資料表命名空間中清除先前的查詢。
  + 資料表命名空間中的查詢結果僅適用於包含資料表流程區塊的流程。

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

使用列出動作，從符合指定條件的資料表擷取整個資料列。

下圖顯示設定為列出**資料表值之資料表**區塊的**屬性**頁面。

![針對清單動作設定的資料表區塊屬性頁面。](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/data-table-list.png)


### 組態步驟
<a name="data-table-list-steps"></a>

1. 選取**從資料表讀取**做為動作。

1. 從讀取動作下拉式清單中選取**列出資料表值**。

1. 設定主要值群組：
   + 您可以新增最多 5 個主要值群組，以定義不同的篩選條件集。
   + 對於每個主要值群組：
     + **群組名稱 （必要）** – 提供主要值群組的描述性名稱。此名稱將用於參考後續流程區塊中擷取的記錄集。重要：群組名稱在整個流程中必須是唯一的，而不只是在此特定區塊內。
     + **主要屬性** – 當您手動選取資料表時，UI 會自動填入該資料表結構描述中主要屬性的清單。所有主要屬性欄位都是必要的 - 您必須為每個顯示的主要屬性提供值。這些屬性可做為篩選條件，識別資料表中將傳回的特定資料列。

   注意：與擷取特定屬性值的評估動作不同，列出動作會傳回符合主要屬性條件的整個記錄 （所有屬性）。

### 清單的金鑰詳細資訊
<a name="data-table-list-details"></a>
+ **主要值群組限制** – 每個區塊最多 5 個主要值群組
+ **群組名稱唯一性** – 在整個聯絡流程中必須是唯一的
+ **屬性比對** – 主要屬性使用完全比對來尋找資料列
+ **傳回行為** – 傳回完整的記錄，而不只是選取的屬性。如果未設定主要值群組，則會以 32KB 限制載入整個資料表。

### 存取清單的擷取資料
<a name="data-table-list-accessing-data"></a>

執行清單動作後，擷取的資料會以結構化格式儲存。您可以使用下列命名空間模式存取資料：
+ **中繼資料存取：**
  + 資料表 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_tw/connect/latest/adminguide/images/data-table-write.png)


### 組態步驟
<a name="data-table-write-steps"></a>

1. 選取**寫入資料表**做為動作。

1. 設定主要值群組：
   + 您可以新增多個主要值群組，以定義要寫入或更新的不同記錄。每個寫入資料表區塊至少需要一個主要值群組。
   + 界面透過索引標籤提供兩種輸入方法：
     + 輸入索引標籤 – 結構式表單型組態 （建議大多數使用者使用）
     + 原始 JSON 索引標籤 – 進階使用者的直接 JSON 輸入
   + 對於每個主要值群組：
     + **群組名稱 （必要）** – 提供主要值群組的描述性名稱。此名稱將用於參考後續流程區塊中的寫入操作。重要：群組名稱在整個流程中必須是唯一的，而不只是在此特定區塊內。
     + **主要屬性** – 當您手動選取資料表時，UI 會自動填入該資料表結構描述中主要屬性的清單。所有主要屬性欄位都是必要的 - 您必須為每個顯示的主要屬性提供值。這些屬性可做為決定要建立或更新之記錄的索引鍵欄位。如果存在具有相符主要屬性值的記錄，則會進行更新，否則會建立新的記錄。
     + **設定要寫入的屬性**
       + **屬性名稱 （必要）** – 當您手動選取資料表時，下拉式清單會自動填入該資料表中的所有可用屬性。選取您要寫入或更新的屬性。您可以按一下要**寫入的新增屬性來新增多個屬性**。
       + **屬性值組態** – 針對每個屬性，選擇下列其中一個選項：
         + 設定屬性值 （預設為選取） – 指定要寫入屬性的值。選取此選項時，此欄位為必要欄位。值可以是靜態文字、聯絡人屬性或系統變數。
         + 使用預設值 – 使用資料表結構描述中定義的預設值。選取此選項時，不需要額外的值輸入。
     + **設定鎖定版本** – 鎖定版本設定控制如何處理對資料表的並行寫入操作：
       + 使用最新選項 – 一律寫入記錄的最新版本。適用於不太可能或可接受並行更新的大多數使用案例。
       + 動態設定選項 – 可讓您在執行時間透過 Lambda 或模組動態指定版本編號。

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

單一區塊中所有主要值群組的寫入動作總屬性限制為 25。此限制的計算方式如下：
+ 如果主要值群組未設定「要寫入的屬性」 – 該群組中主要屬性值的計數會計入總限制
+ 如果主要值群組已設定「要寫入的屬性」，則要寫入的屬性計數會計入總限制 （在此情況下不會計入主要屬性）

**範例**：
+ 範例 1：具有 3 個主要屬性且沒有要寫入屬性 = 3 朝向限制的主要值群組
+ 範例 2：具有 3 個主要屬性和 5 個要寫入屬性的主要值群組 = 5 至限制
+ 範例 3：三個主要值群組，每個群組都有 3 個主要屬性和 5 個要寫入的屬性 = 15 (5 \+ 5 \+ 5) 朝向限制

重要：所有主要值群組中所有計數屬性的總和不得超過 25。

### 寫入的金鑰詳細資訊
<a name="data-table-write-details"></a>
+ **最低需求** – 必須設定至少一個主要值群組
+ **主要值群組沒有限制** – 與列出動作不同，主要值群組的數量沒有固定限制
+ **屬性限制** – 所有主要值群組中計數的屬性總和不得超過 25
+ **屬性比對** – 主要屬性使用完全比對來識別目標記錄
+ **必要欄位** – 所有主要屬性和選取的屬性值 （當選擇「設定屬性值」時） 都是必要項目
+ **Upsert 行為** – 如果存在具有相符主要屬性的記錄，則會進行更新，否則會建立新的記錄

## 已設定的區塊
<a name="data-table-block-configured"></a>

設定時，此區塊具有**成功**和**錯誤的**分支。