データテーブル

ボットビルダーのランディングページの「データ」タブで、「データテーブルの作成」をクリックしてデータテーブルを作成します。

作成

データテーブルの作成をクリックすると、以下の情報を入力する必要がある新規テーブルページが表示されます。

  • データテーブルの名前
  • データテーブルの説明
  • テーブルに含まれる
  • テーブルのインデックス
  • このテーブルのデータにアクセスするためのボットの割り当て
  • このテーブルのデータにアクセスするためのアプリの割り当て

データテーブルの定義に関する2つ目のステップは、テーブルを構成する列を追加することです。列の定義には以下が含まれます。

  • 列の名前(列の名前に使用できない予約語はこちらをご確認ください)。
  • この列に格納できるデータタイプ。以下のいずれかです。
    • 文字列
    • 日付
    • 数字
  • 列を必須とするための必須フラグ。
  • この列のデータを保護するための暗号化フラグ。
  • 別のテーブルの列との依存関係を作成する、つまり外部キー制約を追加する参照列。これにより、この列に入力された値が、参照されるテーブルの列に存在することが確認されます。
  • 列の値の最大の長さを制限する最大長
  • 行の追加時に値が見つからない場合のデフォルト値

デフォルトでは、プラットフォームによって以下の列が定義されます。

  • sys_Id: テーブルの各行に対してプラットフォームで生成された一意のID。
  • Created_On: このテーブルが作成された時のタイムスタンプ。
  • Updated_On: このテーブルが更新された時のタイムスタンプ。
  • Created_By: このテーブルを作成した開発者のユーザーID。
  • Updated_By: このテーブルを最後に更新した開発者のユーザーID。

インデックス

データの検索時のパフォーマンスを向上させるために、データテーブルにインデックスを定義することができます。これには以下が含まれます。

  • 参照用のインデックス名
  • インデックスに一意の値が含まれているかどうかを定義するためのIs Uniqueフラグ。
  • 列およびソート順 – インデックスに含まれる列一覧。複数の列を選択し、選択した各列のソート順(昇順または降順)を指定することができます。

割り当て

各データテーブルの割り当てを以下のように定義することができます。

  • ボットの割り当て:
    • 読み取り、書き込み、削除の各権限をボットに割り当てます。提示された一覧からボットを選択することができます。これらは、お客様が所有し、共有しているボット一覧になります。
    • 割り当てられたボットのみが、そのボットのダイアログタスクのサービスノードを使用して、データテーブルからデータにアクセスすることができます。
  • アプリの割り当て:
    • 読み取り、書き込み、削除の各権限をアプリに割り当てます。
    • リストから選択するか、新しくアプリを作成することができます。
    • データテーブルのCRUD APIは、アプリに割り当てられたテーブルにのみアクセスできるように制限されます。
  • プロセスアプリ割り当て:
    • 読み取り、書き込み、削除の各権限をプロセスアプリに割り当てます。提示された一覧からプロセスアプリを選択することができます。これらは、お客様が所有し、共有しているプロセスアプリ一覧になります。

インポートおよびエクスポート

データテーブルの定義は、JSON形式のファイルとしてエクスポートおよびインポートすることができます。エクスポート

  1. エクスポートしたいテーブル定義の上にカーソルを置きます。
  2. モアアイコン(省略)をクリックして、定義のエクスポートを選択します。
  3. JSONファイルが生成され、ダウンロードされます。

インポート

  1. 新規テーブルボタンの横にある下矢印をクリックします。
  2. テーブル定義をインポートオプションを選択します。
  3. テーブル名を入力し、テーブル定義を含むJSONファイルを選択します。
  4. インポートをクリックします。

データ定義JSONファイルのサンプル

{"name":"customertable",
 "description":"Table containing customer details",
 "indexes":[],
 "schemaDef":[{"name":"CustEmail",
               "type":"string",
               "isRequired":false,
               "isEncrypted":false,
               "reference":{},
               "maxLength":"",
               "default":""},
	      {"name":"CustType",
               "type":"string",
               "isRequired":false,
               "isEncrypted":false,
               "reference":{},
               "maxLength":"",
               "default":"Preferred"},
	      {"name":"Address",
               "type":"string",
               "isRequired":false,
               "isEncrypted":false,
               "reference":{},
               "maxLength":"",
               "default":""},
	      {"name":"CustName",
               "type":"string",
               "isRequired":true,
               "isEncrypted":false,
               "reference":{},
               "maxLength":"",
               "default":""},
	      {"name":"CustId",
               "type":"number",
               "isRequired":true,
               "isEncrypted":true,
               "reference":{},
               "maxLength":"5",
               "default":""},
	      {"name":"sys_Id","type":"string","isRequired":true,"readOnly":true},
	      {"name":"Created_On","type":"date","isRequired":true,"readOnly":true},
	      {"name":"Updated_On","type":"date","isRequired":true,"readOnly":true},
	      {"name":"Created_By","type":"string","isRequired":true,"readOnly":true},
	      {"name":"Updated_By","type":"string","isRequired":true,"readOnly":true}]}

予約語

以下は、予約語であり、列の名前として使用することができない単語の一覧です。

  • ACCESS
  • ADD
  • ALL
  • ALTER
  • AND
  • ANY
  • AS
  • ASC
  • AUDIT
  • BETWEEN
  • BY
  • CHAR\
  • CHECK
  • CLUSTER
  • COLUMN
  • COMMENT
  • COMPRESS
  • CONNECT
  • CREATE
  • CURRENT
  • DATE
  • DECIMAL
  • DEFAULT
  • DELETE
  • DESC
  • DISTINCT
  • DROP
  • ELSE
  • EXCLUSIVE
  • EXISTS
  • FILE
  • FLOAT
  • FOR
  • FROM
  • GRANT
  • GROUP
  • HAVING
  • IDENTIFIED
  • IMMEDIATE
  • IN
  • INCREMENT
  • INDEX
  • INITIAL
  • INSERT
  • INTEGER
  • INTERSECT
  • INTO
  • IS
  • LEVEL
  • LIKE
  • LOCK
  • LONG
  • MAXEXTENTS
  • MINUS
  • MLSLABEL
  • MODE
  • MODIFY
  • NOAUDIT
  • NOCOMPRESS
  • NOT
  • NOWAIT
  • NULL
  • NUMBER
  • OF
  • ONLINE
  • ON
  • OFFLINE
  • OPTION
  • ON
  • ORDER
  • PCTFREE
  • PRIOR
  • PRIVILEGES
  • PUBLIC
  • RAW
  • RENAME
  • RESOURCE
  • REVOKE
  • ROW
  • ROWID
  • RONUM
  • ROWS
  • SELECT
  • SESSION
  • SET
  • SHARE
  • SIZE
  • SMALLINT
  • START
  • SUCCESSFUL
  • SYNONYM
  • SYSDATE
  • TABLE
  • THEN
  • TO
  • TRIGGER
  • UID
  • UNION
  • UNIQUE
  • UPDATE
  • USER
  • VALIDATE
  • VALUES
  • VARCHAR
  • VARCHAR2
  • VIEW
  • WHENEVER
  • WHERE
  • WITH

데이터 테이블

봇 빌더 랜딩 페이지의 데이터 탭에서 데이터 테이블 생성을 클릭하여 데이터 테이블을 생성합니다.

생성

데이터 테이블 생성은 다음과 같은 세부 사항을 입력해야 하는 새 테이블 페이지를 엽니다.

  • 데이터 테이블 이름,
  • 데이터 테이블 설명,
  • 테이블에 포함될 ,
  • 테이블에 대한 색인,
  • 이 테이블의 데이터에 액세스하기 위한 봇 할당,
  • 이 테이블의 데이터에 액세스하기 위한 앱, 할당입니다.

데이터 테이블 정의의 두 번째 단계는 테이블을 구성하는 열을 추가하는 것입니다. 열 정의는 다음을 포함합니다:

  • 열의 이름(열의 이름으로 사용할 수 없는 예약어는 여기를 참조합니다.)
  • 이 열에 저장될 수 있는 데이터의 유형입니다. 이는 다음과 같을 수 있습니다.
    • 문자열,
    • 날짜, 또는
    • 숫자.
  • 필수로 열을 표시하기 위한 필수 플래그입니다.
  • 이 열의 데이터를 보호하기 위한 암호화된 플래그입니다.
  • 다른 테이블의 열로 종속성을 생성하기 위한 참조 열입니다. 즉, 외래키 제약 조건을 추가합니다. 이렇게 하면 참조된 테이블 열에 이 열에 대해 입력한 값이 존재하게 됩니다.
  • 열값에 대한 최대 길이를 제한하기 위한 최대 길이입니다.
  • 행을 추가하는 도중에 값이 누락되는 경우 사용되는 기본값입니다.

다음 열이 기본으로 플랫폼에 의해 정의됩니다.

  • sys_Id: 플랫폼이 생성한 테이블의 각 행에 대한 고유 식별자입니다.
  • Created_On: 해당 테이블이 생성된 타임 스탬프입니다.
  • Updated_On: 해당 테이블이 업데이트된 타임 스탬프입니다.
  • Created_By: 해당 테이블을 생성한 개발자의 사용자 ID입니다.
  • Updated_By: 해당 테이블을 마지막으로 업데이트한 개발자의 사용자 ID입니다.

색인

데이터 검색 도중 성능 개선을 위해 데이터 테이블에 대한 색인을 정의할 수 있습니다. 이 옵션은 다음을 포함합니다.

  • 참조에 대한 색인 이름.
  • 색인이 고윳값을 포함한 것으로 간주하는지 여부를 정의하기 위한 Is Unique 플래그.
  • 열 & 정렬 순서 – 색인에 포함될 열의 목록, 다수의 열을 선택할 수 있고 선택한 열에 대한 각각에 대해 정렬 순서(오름차순 또는 내림차순)를 지정할 수 있습니다.

할당

다음과 같이 데이터 테이블 각각에 대해 할당을 정의할 수 있습니다.

  • 봇 할당:
    • 읽기, 쓰기, 삭제 권한을 포함한 봇 할당입니다. 표시된 목록에서 봇을 선택할 수 있으며, 이 목록은 사용자가 소유하고 공유하는 봇의 목록입니다.
    • 오직 할당된 봇만 봇의 대화 작업에 있는 서비스 노드를 사용하여 데이터 테이블에서 데이터에 액세스할 수 있습니다.
  • 앱 할당:
    • 읽기, 쓰기, 삭제 권한을 포함한 앱 할당입니다.
    • 목록에서 선택하거나 새 앱을 생성할 수 있습니다.
    • 데이터 테이블 CRUD API는 앱에 할당된 테이블에만 액세스하도록 제한됩니다.
  • 프로세스 앱 할당:
    • 읽기, 쓰기, 삭제 권한을 포함한 프로세스 앱 할당입니다. 표시된 목록에서 프로세스 앱을 선택할 수 있으며, 이 목록은 사용자가 소유하고 공유하는 프로세스 앱의 목록입니다.

가져오기 & 내보내기

데이터 테이블 정의는 JSON 형식 파일로 내보내기 및 가져오기 할 수 있습니다. 내보내기 방법:

  1. 내보내고자 하는 테이블 정의에 마우스를 이동
  2. 더 보기(생략 부분) 아이콘을 클릭하고 정의 내보내기 선택
  3. JSON 파일이 생성되고 다운로드됩니다.

가져오기 방법:

  1. 새 테이블 버튼 옆의 아래 화살표를 클릭합니다.
  2. 테이블 정의 가져오기 옵션을 선택합니다.
  3. 테이블 이름을 입력하고 테이블 정의를 포함하는 JSON 파일을 선택합니다.
  4. 가져오기를 클릭합니다.

샘플 데이터 정의 JSON 파일

{"name":"customertable", "description":"Table containing customer details", "indexes":[], "schemaDef":[{"name":"CustEmail", "type":"string", "isRequired":false, "isEncrypted":false, "reference":{}, "maxLength":"", "default":""}, {"name":"CustType", "type":"string", "isRequired":false, "isEncrypted":false, "reference":{}, "maxLength":"", "default":"Preferred"}, {"name":"Address", "type":"string", "isRequired":false, "isEncrypted":false, "reference":{}, "maxLength":"", "default":""}, {"name":"CustName", "type":"string", "isRequired":true, "isEncrypted":false, "reference":{}, "maxLength":"", "default":""}, {"name":"CustId", "type":"number", "isRequired":true, "isEncrypted":true, "reference":{}, "maxLength":"5", "default":""}, {"name":"sys_Id","type":"string","isRequired":true,"readOnly":true}, {"name":"Created_On","type":"date","isRequired":true,"readOnly":true}, {"name":"Updated_On","type":"date","isRequired":true,"readOnly":true}, {"name":"Created_By","type":"string","isRequired":true,"readOnly":true}, {"name":"Updated_By","type":"string","isRequired":true,"readOnly":true}]}

예약어

다음 단어 목록은 예약어이며 열에 대한 이름으로 사용할 수 없습니다.

  • ACCESS
  • ADD
  • ALL
  • ALTER
  • AND
  • ANY
  • AS
  • ASC
  • AUDIT
  • BETWEEN
  • BY
  • CHAR\
  • CHECK
  • CLUSTER
  • COLUMN
  • COMMENT
  • COMPRESS
  • CONNECT
  • CREATE
  • CURRENT
  • DATE
  • DECIMAL
  • DEFAULT
  • DELETE
  • DESC
  • DISTINCT
  • DROP
  • ELSE
  • EXCLUSIVE
  • EXISTS
  • FILE
  • FLOAT
  • FOR
  • FROM
  • GRANT
  • GROUP
  • HAVING
  • IDENTIFIED
  • IMMEDIATE
  • IN
  • INCREMENT
  • INDEX
  • INITIAL
  • INSERT
  • INTEGER
  • INTERSECT
  • INTO
  • IS
  • LEVEL
  • LIKE
  • LOCK
  • LONG
  • MAXEXTENTS
  • MINUS
  • MLSLABEL
  • MODE
  • MODIFY
  • NOAUDIT
  • NOCOMPRESS
  • NOT
  • NOWAIT
  • NULL
  • NUMBER
  • OF
  • ONLINE
  • ON
  • OFFLINE
  • OPTION
  • ON
  • ORDER
  • PCTFREE
  • PRIOR
  • PRIVILEGES
  • PUBLIC
  • RAW
  • RENAME
  • RESOURCE
  • REVOKE
  • ROW
  • ROWID
  • RONUM
  • ROWS
  • SELECT
  • SESSION
  • SET
  • SHARE
  • SIZE
  • SMALLINT
  • START
  • SUCCESSFUL
  • SYNONYM
  • SYSDATE
  • TABLE
  • THEN
  • TO
  • TRIGGER
  • UID
  • UNION
  • UNIQUE
  • UPDATE
  • USER
  • VALIDATE
  • VALUES
  • VARCHAR
  • VARCHAR2
  • VIEW
  • WHENEVER
  • WHERE
  • WITH

Data Table

From the Data tab of the Bot Builder Landing Page, click Create Data Tables to create a data table.

Creation

Create Data Table would open New Table page where you have to enter the following details:

  • Name of the Data Table;
  • Description of the Data Table;
  • Columns to be included in the Table;
  • Indexes for the Table;
  • Bot Assignment for accessing the data in this table;
  • App Assignment for accessing the data in this table.

Columns

The second step in defining a Data Table would be to add columns that make up the table. Column definition includes:

  • Name of the column (see here for reserve words which cannot be used as the name of a column);
  • Type of the data that can be stored in this column. It can be:
    • string;
    • date; or
    • number.
  • Required flag to mark the column as mandatory.
  • Encrypted flag to secure the data in this column.
  • Reference Column to create a dependency with a column from another table ie to add a foreign key constraint. This would ensure that the value entered for this column exists in the referenced table column.
  • Max Length to limit the maximum length for the column values.
  • Default Values to be taken in case the value is missing while adding a row.

By default the following columns would be defined by the platform:

  • sys_Id: A platform generated unique identifier for each row in the table.
  • Created_On: Timestamp when this table was created;
  • Updated_On: Timestamp when this table was updated;
  • Created_By: User id of the developer who created this table;
  • Updated_By: User id of the developer who last updated this table.

Index

For an improved performance during Data search and retrieval, you can define Indices for your Data Table.

This includes:

  • Index Name for reference;
  • Is Unique flag to define if the index is expected to contain unique values;
  • Column & Sort Order – List of columns to be included in the index; you can select multiple columns and specify the sort order (ascending or descending) for each of the selected columns.

Assignments

You can define the assignments for each of the data tables as follows:

  • Assign bots:
    • Assign bots with Read, Write, and Delete permissions. You can select the bots from the list presented, these will be the list of bots owned by you and shared with you.
    • Only the assigned bots will be allowed to access the data from the data table using the Service Nodes in the Dialog Tasks of that bot.
  • Assign apps:
    • Assign apps with Read, Write, and Delete permissions.
    • You can select from the list or create a new app.
    • The data table CRUD APIs will be restricted to access only the tables that are assigned to the app.
  • Assign process apps:
    • Assign process apps with Read, Write, and Delete permissions. You can select the process apps from the list presented, these will be the list of process apps owned by you and shared with you.

Import & Export

Data Table definition can be exported and imported as JSON format files.

To Export:

  1. Hover over the table definition that you want to Export
  2. Click the more (ellipses) icon and select Export Definition
  3. JSON file would be generated and downloaded.

To Import:

  1. Click the down arrow next to the New Table button.
  2. Select the Import Table Definition option.
  3. Enter a Table Name and select the JSON file containing the table definition.
  4. Click Import.

Sample Data Definition JSON file

{"name":"customertable",
 "description":"Table containing customer details",
 "indexes":[],
 "schemaDef":[{"name":"CustEmail",
               "type":"string",
               "isRequired":false,
               "isEncrypted":false,
               "reference":{},
               "maxLength":"",
               "default":""},
	      {"name":"CustType",
               "type":"string",
               "isRequired":false,
               "isEncrypted":false,
               "reference":{},
               "maxLength":"",
               "default":"Preferred"},
	      {"name":"Address",
               "type":"string",
               "isRequired":false,
               "isEncrypted":false,
               "reference":{},
               "maxLength":"",
               "default":""},
	      {"name":"CustName",
               "type":"string",
               "isRequired":true,
               "isEncrypted":false,
               "reference":{},
               "maxLength":"",
               "default":""},
	      {"name":"CustId",
               "type":"number",
               "isRequired":true,
               "isEncrypted":true,
               "reference":{},
               "maxLength":"5",
               "default":""},
	      {"name":"sys_Id","type":"string","isRequired":true,"readOnly":true},
	      {"name":"Created_On","type":"date","isRequired":true,"readOnly":true},
	      {"name":"Updated_On","type":"date","isRequired":true,"readOnly":true},
	      {"name":"Created_By","type":"string","isRequired":true,"readOnly":true},
	      {"name":"Updated_By","type":"string","isRequired":true,"readOnly":true}]}

Reserve Words

Following is the list of words that are reserved and cannot be used as the names for a column:

  • ACCESS
  • ADD
  • ALL
  • ALTER
  • AND
  • ANY
  • AS
  • ASC
  • AUDIT
  • BETWEEN
  • BY
  • CHAR\
  • CHECK
  • CLUSTER
  • COLUMN
  • COMMENT
  • COMPRESS
  • CONNECT
  • CREATE
  • CURRENT
  • DATE
  • DECIMAL
  • DEFAULT
  • DELETE
  • DESC
  • DISTINCT
  • DROP
  • ELSE
  • EXCLUSIVE
  • EXISTS
  • FILE
  • FLOAT
  • FOR
  • FROM
  • GRANT
  • GROUP
  • HAVING
  • IDENTIFIED
  • IMMEDIATE
  • IN
  • INCREMENT
  • INDEX
  • INITIAL
  • INSERT
  • INTEGER
  • INTERSECT
  • INTO
  • IS
  • LEVEL
  • LIKE
  • LOCK
  • LONG
  • MAXEXTENTS
  • MINUS
  • MLSLABEL
  • MODE
  • MODIFY
  • NOAUDIT
  • NOCOMPRESS
  • NOT
  • NOWAIT
  • NULL
  • NUMBER
  • OF
  • ONLINE
  • ON
  • OFFLINE
  • OPTION
  • ON
  • ORDER
  • PCTFREE
  • PRIOR
  • PRIVILEGES
  • PUBLIC
  • RAW
  • RENAME
  • RESOURCE
  • REVOKE
  • ROW
  • ROWID
  • RONUM
  • ROWS
  • SELECT
  • SESSION
  • SET
  • SHARE
  • SIZE
  • SMALLINT
  • START
  • SUCCESSFUL
  • SYNONYM
  • SYSDATE
  • TABLE
  • THEN
  • TO
  • TRIGGER
  • UID
  • UNION
  • UNIQUE
  • UPDATE
  • USER
  • VALIDATE
  • VALUES
  • VARCHAR
  • VARCHAR2
  • VIEW
  • WHENEVER
  • WHERE
  • WITH