13.4. ファイルフォーマット(エンティティ)¶
エンティティのインポートファイルのファイルフォーマットを説明します。
エンティティのインポートファイルは JSON 形式です。
エンティティカテゴリ、エンティティ、関連情報、データ定義、表示セットを配列の要素として記述します。
- エンティティカテゴリには以下のキーを指定します。
- parentId
- 親カテゴリIDを指定します。
- categoryId
- エンティティカテゴリIDを指定します。
- sortNumber
- ソート番号を数値で指定します。
- defaultName
- 標準のカテゴリ名称を指定します。
- defaultDescription
- 備考(日本語)を指定します。
- description
- 標準の備考を指定します。
- names
- 国際化項目
- descriptions
- 国際化項目
- reserved
- 予約状態をtrue または falseで指定します。エンティティでは常に false です。
- type
- “entityset-entity-category” を指定します。
- エンティティには以下のキーを指定します。
- id
- エンティティIDを指定します。
- parentId
- 親カテゴリIDを指定します。
- sortNumber
- ソート順を数値で指定します。
- defaultName
- エンティティ名(標準)を指定します。
- defaultDescription
- 備考(標準)を指定します。
- name
- エンティティ名(日本語)のを指定します。
- description
- 備考(日本語)を指定します。
- names
- 国際化項目
- descriptions
- 国際化項目
- items
- エンティティ項目を配列の要素として記述します。
- enabled
- このエンティティが有効か無効化を true または false で指定します。
- type
- “entityset-entity-entity” を指定します。
- エンティティ項目には以下のキーを指定します。
- id
- エンティティ項目IDを指定します。
- type
- エンティティ項目の種別を指定します。
- エンティティ項目が辞書項目の場合は “dictionary-item” を指定します。
- エンティティ項目がエイリアスの場合は “dictionary-alias” を指定します。
- エンティティ項目がサブエンティティの場合は “entityset-entity” を指定します。
- primaryKey
- このエンティティ項目がPK項目かどうかを true または false で指定します。
- required
- このエンティティ項目が必須項目かどうかを true または false で指定します。
- array
- このエンティティ項目が配列かどうかを true または false で指定します。
- エンティティとサブエンティティの多重度が “1 : n”の場合は true を指定します。
- エンティティとサブエンティティの多重度が “1 : 1”の場合は false を指定します。
- variableName
- エンティティ項目がサブエンティティとして定義されている場合、サブエンティティ変数名を指定します。
- relationId
- エンティティ項目がサブエンティティとして定義されている場合、関連IDを指定します。
- sortNumber
- ソート順を数値で指定します。
- 関連情報には以下のキーを指定します。
- relationId
- 関連IDを指定します。
- sourceEntityId
- 関連元エンティティIDを指定します。
- targetEntityId
- 関連先エンティティIDを指定します。
- multiplicity
- この関連情報の多重度を指定します。
- 多重度が “1 : 1”の場合は”one-to-one” を指定します。
- 多重度が “1 : n”の場合は”one-to-many” を指定します。
- 多重度が “n : 1”の場合は”many-to-one” を指定します。
- 多重度が “n : n”の場合は”many-to-many” を指定します。
- comments
- コメントを指定します。
- sortNumber
- ソート順を数値で指定します。
- items
- 関連項目を配列の要素として記述します。
- 関連項目には以下のキーを指定します。
- relationId
- 関連IDを指定します。
- sourceId
- 関連元エンティティ項目IDを指定します。
- sourceType
- 関連元エンティティ項目の種別を指定します。
- 関連元エンティティ項目が辞書項目の場合は “dictionary-item” を指定します。
- 関連元エンティティ項目がエイリアスの場合は “dictionary-alias” を指定します。
- targetId
- 関連先エンティティ項目IDを指定します。
- targetType
- 関連先エンティティ項目の種別を指定します。
- 関連先エンティティ項目が辞書項目の場合は “dictionary-item” を指定します。
- 関連先エンティティ項目がエイリアスの場合は “dictionary-alias” を指定します。
- sortNumber
- ソート順を数値で指定します。
- データ定義には以下のキーを指定します。
- entityId
- エンティティIDを指定します。
- databaseKind
- データベース種別を指定します。
- データベース種別がテナントデータベースの場合は “tenant” を指定します。
- データベース種別がシェアードデータベースの場合は “shared” を指定します。
- connectionId
- シェアードデータベースの場合に接続IDを指定します。
- tableName
- テーブル名を指定します。
- enableChangeLog
- ログ出力設定を true または false で指定します。 ( true : 出力する、false : 出力しない)
- disableDifferenceTable
- 差分表示の無効化設定を true または false で指定します。 ( true : 無効化する、false : 無効化しない)
- entitySearchDefinitions
- 検索条件を指定します。
- targetId
- 検索条件となるエンティティ項目IDを指定します。
- targetType
- 検索条件となるエンティティ項目の種別を指定します。
- エンティティ項目が辞書項目の場合は “dictionary-item” を指定します。
- エンティティ項目がエイリアスの場合は “dictionary-alias” を指定します。
- searchType
- エンティティ項目 のデータベースのデータ型に応じた検索条件を指定します。
- 文字列型
- 完全一致 : “exact-match”
- 前方一致 : “forward-match”
- 後方一致 : “backward-match”
- 部分一致 : “partial-match”
- 複数条件 : “multiple-conditions”
- 長い文字列型
- 前方一致 : “forward-match”
- 後方一致 : “backward-match”
- 部分一致 : “partial-match”
- 数値型
- 完全一致 : “exact-match”
- 以下 : “less-than”
- 以上 : “greater-than”
- 範囲指定 : “range”
- 日付型、日時型、時刻型
- 完全一致 : “exact-match”
- 以前 : “before”
- 以降 : “after”
- 範囲指定 : “range”
- 真偽型
- 完全一致 : “exact-match”
- sortNumber
- ソート順を数値で指定します。
- externalReferenceDefinitions
- 参照項目設定を指定します。参照先「referenceType」の設定値に応じて、一部の指定項目が異なります。
- referenceType
- 参照先を指定します。
- 参照先がエンティティの場合は “entity” を指定します。
- 参照先がテーブルの場合は “table” を指定します。
- 参照先が共通マスタの場合は “im_master” を指定します。
- referenceEntryId [参照先:エンティティ]
- 参照先のエンティティIDを指定します。
- referenceTableName [参照先:テーブル]
- 参照先のテーブル名を指定します。
- referenceMaster [参照先:共通マスタ]
- 参照先の共通マスタを指定します。
- ユーザ : “imm_user”
- 会社 : “imm_company”
- 組織 : “imm_department”
- 主所属組織 : “imm_department_ath”
- items
- 参照項目の設定をするエンティティ項目を指定します。
- itemId
- 参照元のエンティティ項目IDを指定します。
- itemType
- 参照元のエンティティ項目の種別を指定します。
- エンティティ項目が辞書項目の場合は “dictionary-item” を指定します。
- エンティティ項目がエイリアスの場合は “dictionary-alias” を指定します。
- referenceEntryId [参照先:エンティティ]
- 参照先のエンティティ項目IDを指定します。
- referenceEntryType [参照先:エンティティ]
- 参照先のエンティティ項目の種別を指定します。
- エンティティ項目が辞書項目の場合は “dictionary-item” を指定します。
- エンティティ項目がエイリアスの場合は “dictionary-alias” を指定します。
- referenceColumnName [参照先:テーブル]
- 参照先のテーブルのカラム名を指定します。
- referenceMasterItem [参照先:共通マスタ]
- 参照先共通マスタの項目名を指定します。
- ユーザ
- ユーザ名 : user_name
- フリガナ : user_search_name
- 性別 : sex
- 国コード : country_cd
- 郵便番号 : zip_code
- 住所1 : address1
- 住所2 : address2
- 住所3 : address3
- 電話番号 : telephone_number
- 内線番号 : extension_number
- FAX番号 : fax_number
- 内線FAX番号 : extension_fax_number
- 携帯電話番号 : mobile_number
- メールアドレス1 : email_address1
- メールアドレス2 : email_address2
- 携帯メールアドレス : mobile_email_address
- URL : url
- 備考 : notes
- 会社、組織、主所属組織
- 組織名 : department_name
- 組織略称 : department_short_name
- 組織検索名 : department_search_name
- 国コード : country_cd
- 郵便番号 : zip_code
- 住所1 : address1
- 住所2 : address2
- 住所3 : address3
- 電話番号 : telephone_number
- 内線番号 : extension_number
- FAX番号 : fax_number
- 内線FAX番号 : extension_fax_number
- メールアドレス1 : email_address1
- メールアドレス2 : email_address2
- URL : url
- 備考 : notes
- sortNumber
- ソート順を数値で指定します。
- filters
- 結合条件、または絞り込み条件を指定します。
- referenceEntryId [参照先:エンティティ]
- 条件を設定する参照先のエンティティ項目IDを指定します。
- referenceEntryType [参照先:エンティティ]
- 条件を設定する参照先のエンティティ項目の種別を指定します。
- エンティティ項目が辞書項目の場合は “dictionary-item” を指定します。
- エンティティ項目がエイリアスの場合は “dictionary-alias” を指定します。
- referenceColumnName [参照先:テーブル]
- 条件を設定する参照先のテーブルのカラム名を指定します。
- referenceMasterItem [参照先:共通マスタ]
- 条件を設定する参照先共通マスタの項目名を指定します。参照するマスタにより filters に設定する条件の項目が決定します。filters には各マスタのキー項目と共通項目の条件をそれぞれ指定する必要があります。
- キー項目
- ユーザ : user_cd
- 会社 : company_cd
- 組織 : company_cd、department_set_cd、department_cd
- 主所属組織 : user_cd
itemId / itemType にはデータ型が文字列の参照元エンティティ項目を指定します。
- 共通項目
- 検索言語 : locale_id
- 参照元エンティティ項目を検索言語に指定する場合は itemId / itemType にデータ型が文字列の参照元エンティティ項目を指定します。
- アカウントコンテキストのロケールを指定する場合は valueType に “account-context” 、 valueSourceに “locale” を指定します。
- 検索基準日 : base_date
- 参照元エンティティ項目を検索言語に指定する場合は itemId / itemType にデータ型が日付または日時の参照元エンティティ項目を指定します。
- 環境情報の実行日時を指定する場合は valueType に “environment” 、 valueSourceに “now” を指定します。
- 無効化された情報の参照 : delete_flag論理削除された情報を参照しない場合は、 valueType に “string-constant”、valueSourceに “0” を指定します。未指定時は、論理削除された情報含めて参照します。
- itemId
- 結合条件の場合、参照元のエンティティ項目IDを指定します。 データ型が 長い文字列型 または バイナリ型 のエンティティ項目は指定できません。
- itemType
- 結合条件の場合、参照元のエンティティ項目の種別を指定します。
- エンティティ項目が辞書項目の場合は “dictionary-item” を指定します。
- エンティティ項目がエイリアスの場合は “dictionary-alias” を指定します。
- filterType
- 条件の抽出方法を指定します。指定可能な抽出方法はデータ型に依存します。参照先がエンティティ、またはテーブルの場合に指定します。
- 文字列、真偽値
- 一致 : “equal”
- 数値、日付、日時、時刻
- 一致 : “equal” ※参照元・先のデータ型が日付と日時の組み合わせ以外の場合に指定可
- 未満 : “less-than”
- 以下 : “less-equal”
- 以上 : “greater-equal”
- 超過 : “greater-than”
- valueType
- 条件の種別を指定します。
結合条件の場合は “entity-item” を指定します。
- 絞り込み条件の場合
- 環境情報 : “environment”
- アカウントコンテキスト : “account-context”
- 固定値(文字列) : “string-constant”
- valueSource
- 絞り込み条件の場合に、条件の種別に応じて条件値を指定します。
- 各値のデータ型は、週の開始曜日は数値、 実行日時・ログイン日時は日時、以外は文字列です。
- 環境情報
- 実行日時 : “now”
- アカウントコンテキスト
- テナントID : “tenant-id”
- ユーザ種別 : “user-type”
- ユーザコード : “user-cd”
- 認証状態 : “authenticated”
- ロケール : “locale”
- エンコーディング : “encoding”
- タイムゾーン : “time-zone”
- 週の開始曜日 : “first-day-of-week”
- カレンダーID : “calendar-id”
- テーマID : “theme-id”
- ホームURL : “home-url”
- ログイン署名 : “signature”
- ログイン日時 : “login-time”
- 数値形式のID : “decimal-format-id”
固定値(文字列) : 任意の値
- sortNumber
- ソート順を数値で指定します。
- 表示セットには以下のキーを指定します。
- displaysetId
- 表示セットIDを指定します。
- name
- 表示セット名を指定します。
- sortNumber
- ソート順を数値で指定します。
- entities
- 表示セットに設定するエンティティIDを配列の要素として記述します。
- 国際化項目には以下のキーを指定します。
- ロケールID
- ロケールIDを指定します。
- 名称
- ロケールIDに応じた名称を指定します。
ファイルの例
{
"categories": [
{
"parentId": null,
"reserved": false,
"sortNumber": 0,
"categoryId": "category",
"names": {
"zh_CN": { "locale": "zh_CN", "value": "chinese name" },
"en": { "locale": "en", "value": "english name" },
"ja": { "locale": "ja", "value": "japanese name" }
},
"descriptions": {
"zh_CN": { "locale": "zh_CN", "value": "chinese description" },
"en": { "locale": "en", "value": "english description" },
"ja": { "locale": "ja", "value": "japanese description" }
},
"defaultName": "カテゴリ",
"description": "備考",
"type": "entityset-entity-category",
"defaultDescription": "備考"
}
],
"entities": [
{
"parentId": "category",
"reserved": false,
"sortNumber": 0,
"id": "entity",
"names": {
"zh_CN": { "locale": "zh_CN", "value": "chinese name" },
"en": { "locale": "en", "value": "english name" },
"ja": { "locale": "ja", "value": "japanese name" }
},
"descriptions": {
"zh_CN": { "locale": "zh_CN", "value": "chinese description" },
"en": { "locale": "en", "value": "english description" },
"ja": { "locale": "ja", "value": "japanese description" }
},
"enabled": true,
"items": [
{
"id": "entity-item1",
"type": "dictionary-item",
"sortNumber": 0,
"primaryKey": true,
"required": true,
"array": false,
"variableName": null,
"relationId": null
},
{
"id": "entity-item2",
"type": "dictionary-alias",
"sortNumber": 1,
"primaryKey": false,
"required": true,
"array": false,
"variableName": null,
"relationId": null
}
],
"defaultName": "エンティティ",
"description": "備考",
"name": "エンティティ",
"type": "entityset-entity",
"defaultDescription": "備考"
}
],
"relations": [
{
"relationId": "relation1",
"sourceEntityId": "entity",
"targetEntityId": "entity",
"multiplicity": "one-to-many",
"comments": "関連情報のコメント",
"sortNumber": 0,
"items": [
{
"relationId": "relation1",
"sourceId": "entity-item1",
"sortNumber": 0,
"sourceType": "dictionary-item",
"targetId": "entity-item1",
"targetType": "dictionary-alias"
}
]
}
],
"tableDefinitions": [
{
"entityId": "entity",
"databaseKind": "tenant",
"connectionId": null,
"tableName": "entity_table",
"entitySearchDefinitions": [
{
"targetId": "entity-item1",
"targetType": "dictionary-item",
"searchType": "exact-match",
"sortNumber": 0
},
{
"targetId": "entity-item2",
"targetType": "dictionary-alias",
"searchType": "exact-match",
"sortNumber": 1
}
],
"enableChangeLog": false,
"disableDifferenceTable": false,
"externalReferenceDefinitions": [
{
"referenceType": "entity",
"sortNumber": 0,
"referenceEntityId": "entity",
"items": [
{
"itemId": "entity-item1",
"itemType": "dictionary-item",
"referenceEntryId": "entity-item1",
"referenceEntryType": "dictionary-item",
"sortNumber": 0
}
],
"filters": [
{
"referenceEntryId": "entity-item1",
"referenceEntryType": "dictionary-item",
"filterType": "equal",
"valueType": "entity-item",
"valueSource": null,
"itemId": "entity-item1",
"itemType": "dictionary-item",
"sortNumber": 0
},
{
"referenceEntryId": "entity-item1",
"referenceEntryType": "dictionary-item",
"filterType": "equal",
"valueType": "account-context",
"valueSource": "user-cd",
"itemId": null,
"itemType": null,
"sortNumber": 1
}
]
},
{
"referenceType": "table",
"sortNumber": 1,
"referenceTableName": "table_name",
"items": [
{
"itemId": "entity-item2",
"itemType": "dictionary-item",
"referenceColumnName": "column_name",
"sortNumber": 0
}
],
"filters": [
{
"referenceColumnName": "column_name",
"filterType": "equal",
"valueType": "entity-item",
"valueSource": null,
"itemId": "entity-item2",
"itemType": "dictionary-item",
"sortNumber": 0
},
{
"referenceColumnName": "column_name",
"filterType": "equal",
"valueType": "string-constant",
"valueSource": "fixed value",
"itemId": null,
"itemType": null,
"sortNumber": 1
}
]
},
{
"referenceType": "im_master",
"sortNumber": 2,
"referenceMaster": "imm_user",
"items": [
{
"itemId": "create_user_name",
"itemType": "dictionary-item",
"referenceMasterItem": "user_name",
"sortNumber": 0
}
],
"filters": [
{
"referenceMasterItem": "user_cd",
"valueType": "entity-item",
"itemId": "im_tenant_account.user_cd",
"itemType": "dictionary-item",
"sortNumber": 0
},
{
"referenceMasterItem": "base_date",
"valueType": "environment",
"valueSource": "now",
"sortNumber": 1
},
{
"referenceMasterItem": "locale_id",
"valueType": "account-context",
"valueSource": "locale",
"sortNumber": 2
},
{
"referenceMasterItem": "delete_flag",
"valueType": "string-constant",
"valueSource": "0",
"sortNumber": 3
}
]
}
]
}
],
"displaysets": [
{
"displaysetId": "displayset1",
"name": "表示セット",
"sortNumber": 0,
"entities": ["entity"]
}
]
}