

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 | はい | 
| タスク | はい | 
| E メール | はい | 

## フロータイプ
<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/ja_jp/connect/latest/adminguide/images/data-table-evaluate.png)


### 設定手順
<a name="data-table-evaluate-steps"></a>

1. データ**テーブルからの読み取り**をアクションとして選択します。

1. 読み取りアクションドロップダウンから**データテーブル値の評価**を選択します。

1. クエリの設定:
   + データテーブルブロックごとに最大 5 つのクエリを設定できます。データテーブルの評価ブロックごとに少なくとも 1 つのクエリが必要です。
   + 各クエリについて:
     + **クエリ名 (必須)** – クエリのわかりやすい名前を指定します。重要: クエリ名は、この特定のブロック内だけでなく、フロー全体で一意である必要があります。
     + **プライマリ属性** – データテーブルを手動で選択すると、UI はそのテーブルのスキーマからプライマリ属性のリストを自動的に入力します。すべてのプライマリ属性フィールドは必須です。表示される各プライマリ属性の値を指定する必要があります。これらの属性は、データテーブル内の特定の行 (複数可) を識別するフィルターとして機能します。
     + **クエリ属性** – データテーブルを手動で選択すると、ドロップダウンにそのテーブルから使用可能なすべての属性が自動的に入力されます。ドロップダウンから 1 つ以上の属性を選択します。これらは、返され、フローで使用できるデータフィールドです。取得された値は、クエリ名を使用して後続のブロックで参照できます。

### Evaluate の主な詳細
<a name="data-table-evaluate-details"></a>
+ **クエリ制限** – ブロックあたり最大 5 つのクエリ
+ **最小要件** – 少なくとも 1 つのクエリを設定する必要があります
+ **クエリ名の一意性** – 問い合わせフロー全体で一意である必要があります
+ **属性マッチング** – プライマリ属性は完全一致を使用して行を見つけます
+ **必須フィールド** – すべてのプライマリ属性が必須です

### Evaluate 用に取得したデータへのアクセス
<a name="data-table-evaluate-accessing-data"></a>

評価アクションを実行した後、取得した属性値には、名前空間形式 を使用してアクセスできます`$.DataTables.{{QueryName}}.{{AttributeName}}`。括弧と一重引用符を使用して、特殊文字で属性名を参照します。例えば、`$.DataTables.CustomQuery['my attribute name with spaces']`。**データテーブル**名前空間の動的ドロップダウン選択を使用する場合、ルート名前空間 は省略`$.DataTables.`できます。
+ **コンポーネント:**
  + `QueryName` – 設定でクエリに割り当てた一意の名前
  + `AttributeName` – 取得するために選択した属性の名前
+ **使用状況** – これらの値は、次のような後続のフローブロックで参照できます。
  + 問い合わせ属性ブロックを確認する (条件分岐の場合)
  + 問い合わせ属性ブロックを設定する (他の名前空間に保存するため)
  + プロンプトブロックを再生する (パーソナライズされたメッセージを提供するため)
  + Lambda 関数ブロックを呼び出す (入力パラメータとして渡す)
+ **例** – 属性accountStatus」とloyaltyTier」を取得するCustomerLookup」という名前のクエリを設定した場合:
  + アクセスアカウントのステータス: `$.DataTables.CustomerLookup.accountStatus`
  + ロイヤルティ階層にアクセスする: `$.DataTables.CustomerLookup.loyaltyTier`
+ **メモ:**
  + クエリが結果を返さないか、 属性が見つからない場合、参照は空または null になります。
  + タイプリストのデータテーブル値はサポートされていません。
  + 後続のデータテーブルブロックは、データテーブル名前空間から以前のクエリをクリアします。
  + データテーブル名前空間のクエリ結果は、データテーブルフローブロックを含むフローでのみ使用できます。

## データテーブル値を一覧表示する
<a name="data-table-block-list"></a>

リストアクションを使用して、指定した条件に一致するデータテーブルから行全体を取得します。

次の図は、**データテーブル**値を一覧表示するように設定されたデータテーブルブロックの**プロパティ**ページを示しています。

![リストアクション用に設定されたデータテーブルブロックのプロパティページ。](http://docs.aws.amazon.com/ja_jp/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 の制限で にロードされます。

### List 用に取得したデータへのアクセス
<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/ja_jp/connect/latest/adminguide/images/data-table-write.png)


### 設定手順
<a name="data-table-write-steps"></a>

1. データ**テーブルへの書き込み**をアクションとして選択します。

1. プライマリ値グループの設定:
   + 複数のプライマリ値グループを追加して、書き込みまたは更新するさまざまなレコードを定義できます。書き込みデータテーブルブロックごとに少なくとも 1 つのプライマリ値グループが必要です。
   + インターフェイスには、タブを介して 2 つの入力方法があります。
     + 入力タブ – 構造化フォームベースの設定 (ほとんどのユーザーに推奨)
     + Raw JSON タブ – 上級ユーザーの直接 JSON 入力
   + プライマリ値グループごと:
     + **グループ名 (必須)** – プライマリ値グループのわかりやすい名前を指定します。この名前は、後続のフローブロックで書き込みオペレーションを参照するために使用されます。重要: グループ名は、この特定のブロック内だけでなく、フロー全体で一意である必要があります。
     + **プライマリ属性** – データテーブルを手動で選択すると、UI はそのテーブルのスキーマからプライマリ属性のリストを自動的に入力します。すべてのプライマリ属性フィールドは必須です。表示される各プライマリ属性の値を指定する必要があります。これらの属性は、どのレコードを作成または更新するかを決定するキーフィールドとして機能します。一致するプライマリ属性値を持つレコードが存在する場合は更新されます。存在しない場合は、新しいレコードが作成されます。
     + **書き込む属性を設定する**
       + **属性名 (必須)** – データテーブルを手動で選択すると、ドロップダウンにそのテーブルから使用可能なすべての属性が自動的に入力されます。書き込みまたは更新する属性を選択します。Add attribute **to write **をクリックして、複数の属性を追加できます。
       + **属性値設定** – 属性ごとに、次のいずれかのオプションを選択します。
         + 属性値を設定する (デフォルトで選択) – 属性に書き込む値を指定します。このフィールドは、このオプションが選択されている場合は必須です。値は、静的テキスト、問い合わせ属性、またはシステム変数です。
         + デフォルト値を使用する – データテーブルスキーマで定義されたデフォルト値を使用します。このオプションを選択した場合、追加の値の入力は必要ありません。
     + **ロックバージョンの設定** – ロックバージョン設定は、データテーブルへの同時書き込みオペレーションの処理方法を制御します。
       + 最新オプションを使用する – 常に最新バージョンのレコードに書き込みます。同時更新の可能性が低い、または許容できるほとんどのユースケースに適しています。
       + 動的設定オプション – Lambda またはモジュールを使用して、実行時にバージョン番号を動的に指定できます。

### 書き込みの属性制限
<a name="data-table-write-attribute-limit"></a>

書き込みアクションの合計属性制限は、1 つのブロック内のすべてのプライマリ値グループで 25 です。この制限は次のように計算されます。
+ プライマリ値グループに「書き込み属性」が設定されていない場合 – そのグループのプライマリ属性値の数は、合計制限にカウントされます。
+ プライマリ値グループに「書き込む属性」が設定されている場合 – 書き込む属性の数は合計制限にカウントされます (この場合、プライマリ属性はカウントされません）。

**例:**
+ 例 1: 3 つのプライマリ属性を持ち、書き込む属性がないプライマリ値グループ = 制限に対して 3
+ 例 2: 書き込む 3 つのプライマリ属性と 5 つの属性を持つプライマリ値グループ = 制限に対して 5
+ 例 3: 3 つのプライマリ値グループ。それぞれ 3 つのプライマリ属性と 5 つの書き込み属性を持つ = 制限に対して 15 (5 \+ 5 \+ 5)

重要: すべてのプライマリ値グループでカウントされたすべての属性の合計が 25 を超えることはできません。

### 書き込みの主な詳細
<a name="data-table-write-details"></a>
+ **最小要件** – 少なくとも 1 つのプライマリ値グループを設定する必要があります
+ **プライマリ値グループに制限なし** – List アクションとは異なり、プライマリ値グループの数には固定制限はありません。
+ **属性制限** – すべてのプライマリ値グループでカウントされた属性の合計が 25 を超えることはできません
+ **属性マッチング** – プライマリ属性は完全一致を使用してターゲットレコードを識別します
+ **必須フィールド** – すべてのプライマリ属性と選択した属性値 (「属性値の設定」を選択した場合) は必須です
+ **アップサート動作** – 一致するプライマリ属性を持つレコードが存在する場合は更新されます。存在しない場合は、新しいレコードが作成されます。

## 設定されているブロック
<a name="data-table-block-configured"></a>

設定すると、このブロックには**成功**と**エラー**のブランチがあります。