エンティティの編集
ここでは、作成済みのエンティティを後から編集する方法について説明します。
アプリケーションの開発が進行している段階でエンティティを編集する場合は、影響範囲やテーブル定義との関係性に十分注意しながら作業を行ってください。特に、主キーやデータ型の変更、エンティティ間の関連設定などは、画面やロジックなどに影響を与える可能性があります。
画面変数にエンティティを利用している場合は、IM-Repositoryでエンティティを編集した後、IM-BloomMakerの画面変数に変更内容を反映してください。詳細は「画面変数の設定 - 応用操作 > データ定義の変更を反映する」を参照してください。
基本操作
作成済みのエンティティ定義を編集する場合は、変更が必要な項目を選び、それぞれ適切に修正してください。

- 編集したいエンティティ定義をクリックします。
 └ 「エンティティ」画面が表示されます。
- 対象のタブをクリックして、編集内容に応じた情報を表示します。
 └ 「エンティティ」タブ:エンティティ情報を表示
 └ 「関連一覧」タブ:メイン・サブエンティティの関連項目を一覧表示
 └ 「データ定義」タブ:テーブル情報および定義情報を表示
- 各タブで必要な編集を行います。
 └ 操作手順の詳細は、下記の各項目を参照してください。
- 新しくエンティティを作成したい場合は、カテゴリを選択した後、[エンティティ新規作成]をクリックしてください。
- 既存のエンティティをコピーして作成したい場合は、カテゴリを選択した後、[エンティティコピー作成]をクリックしてください。
いずれの場合も、エンティティIDを入力した後、下記の手順に従って設定を進めてください。
エンティティ情報を編集する
「エンティティ」タブを開くとエンティティ情報が表示されます。ここでは、必要に応じて各項目を編集できます。ただし、エンティティIDは一度設定すると変更できません。変更が必要な場合は、新しくエンティティを作成し直してください。



エンティティの有効・無効を切り替える
エンティティは、初期状態で「有効」に設定されています。有効にすると、アプリケーション内でエンティティが利用でき、さらに他のアプリケーションからも定義を追加できます。
必要に応じて特定のエンティティを無効にしたい場合は、「エンティティの有効化」のチェックを外してください。無効にすると、他のアプリケーションから定義を追加できません。

エンティティ項目を編集する
エンティティ定義を新規作成すると、まず設定された辞書項目がエンティティ項目として登録され、その内容に基づいてテーブル構造(カラム)が確定します。
辞書項目の追加やエンティティ項目の主キー・必須設定の変更をしたい場合は、以下の手順を行ってください。

辞書項目を追加する
- [エンティティ項目編集]をクリックします。
 └ 「辞書項目/エイリアス検索」画面が表示されます。
- 使用したい辞書項目を選択します。
 └ 「選択済み項目」に辞書項目が追加されます。
- [決定]をクリックします。
 └ 「エンティティ項目」に辞書項目が追加されます。
 └ 必要に応じて、主キー・必須設定を行ってください。

エンティティ間で同じ名前や属性を持つ項目が複数ある場合は、「重複しているエンティティ項目のみを表示する」にチェックを入れると、該当項目だけに絞って表示できます。
主キー・必須設定を変更する
「主キー」欄では、テーブル内で各レコードを識別する項目にチェックを入れます。
「必須」欄では、レコード登録時に必ず値を入力しなければならない項目にチェックを入れます。

- エンティティ項目の詳細を確認したい場合は、[ ]をクリックしてください。 
 └ 「エンティティ項目詳細」ダイアログが表示されます。
- エンティティ項目を削除したい場合は、[ ]をクリックしてください。 
 └ 「削除確認」ダイアログから、[決定]をクリックしてください。
- サブエンティティの情報を確認したい場合は、エンティティ項目名のリンクをクリックしてください。
 └ 対象のエンティティ情報の詳細に切り替わります。
エンティティ項目を変更すると、対応するデータ定義(テーブル)との間に差分が発生します。そのため、変更後はデータ定義を修正する必要があります。詳細は、下記「データ定義を編集する」を参照してください。
関連項目を編集する
「関連一覧」タブをクリックすると、メイン・サブエンティティの関連項目が一覧で表示されます。ここでは、必要に応じて各項目を編集できます。ただし、関連IDは一度設定されると変更できません。変更が必要な場合は、新しく関連項目を登録し直してください。

Accel Studioから「データ定義」リソースを追加し、メインエンティティとサブエンティティの関連付けを設定した場合、関連IDは自動で付与されます。
関連項目を追加する
選択したエンティティに他のエンティティとの関連付けを設定したい場合は、エンティティ項目に必要な辞書項目を追加した後、以下の手順を行ってください。
- [関連登録]をクリックします。
 └ 「関連項目」ダイアログが表示されます。
- 関連項目の設定を行います。
操作手順の詳細は、下記「 「関連項目」ダイアログの操作(編集)」を参照してください。

関連項目を追加する場合、メインエンティティとサブエンティティという組み合わせに制限されず、すべてのエンティティが対象となります。
関連項目を編集する
選択したエンティティの関連項目を編集したい場合は、以下の手順を行ってください。
- 編集したいエンティティの[ ]を選択します。 
 └ 「関連項目」ダイアログが表示されます。
- 関連項目の設定を行います。
操作手順の詳細は、下記「 「関連項目」ダイアログの操作(編集)」を参照してください。

- 関連項目を削除したい場合は、[ ]をクリックしてください。 
- 関連先エンティティの情報を確認したい場合は、リンクをクリックしてください。
 └ 対象のエンティティ情報の詳細に切り替わります。
「関連項目」ダイアログの操作(編集)
「関連項目」ダイアログのウィザード表示に従って、操作を進めていきます。
- 1 基本情報の入力
- 2 エンティティ項目の指定
- 3 追加内容確認
関連項目に関する基本情報や多重度を設定します。
(1) 「関連ID」を入力します。
└ 使用できる文字は、以下のとおりです。
  【半角英数字】 A B C D E... a b c d e... 0 1 2 3 4 5...
  【半角記号】 - _ . @ + !  
(2) 設定したい「エンティティ」の「関連先」を選択します。
└ 設定可能なエンティティの辞書項目が表示されます。 
(3) 設定したい多重度を選択します。
└ 1:1:エンティティ1つに対して、他のエンティティが1つだけ
└ 1:n:エンティティの1つに対して、他のエンティティが複数
└ n:1:複数のエンティティに対して、他のエンティティが1つだけ
└ n:n:複数のエンティティに対して、他のエンティティも複数
(4) [次へ]をクリックします。
└ 「2 エンティティ項目の指定」の画面が表示されます。

設定画面によって、選択できる多重度の項目数が異なります。
- 「データ定義 - 新規作成」画面では、サブエンティティ設定時に選択できる多重度は「1:1」または「1:n」のみであり、メインエンティティに対してサブエンティティを関連付けることを前提としています(関連する操作は、「メイン・サブエンティティの関連付けを設定する」を参照)。
- 「関連項目」ダイアログでは、メイン/サブといったエンティティの区別やデータカテゴリにとらわれず、より柔軟にエンティティ同士を関連付けることができます。「1:1」や「1:n」だけでなく、「n:1」や「n:n」といった多重度も設定可能です。
設定したエンティティに紐づく辞書項目を設定します。辞書項目は、エンティティ項目として登録されます。
(1) 「関連元」エンティティの辞書項目を選択します。
└ 設定可能な辞書項目が表示されます。
└ 選択すると、関連先の辞書項目がフィルタリングされます。
(2) 「関連先」エンティティの辞書項目を選択します。
└ 関連元と同じ辞書項目が表示されます。  
(3) 「関連先」エンティティをサブエンティティにしたい場合は、「サブエンティティを設定する」にチェックを入れてください。
└ 入力欄(テーブル)が表示されます。  
(4) サブエンティティを表す「変数名」を入力します。
└ 使用できる文字は、以下のとおりです。
  【半角英数字】 A B C D E... a b c d e... 0 1 2 3 4 5...
  【半角記号】 _
 先頭文字に使用できるのは、半角英字と半角記号のみです。
(5) [次へ]をクリックします。
└ 「3 追加内容確認」の画面が表示されます。

- 関連項目を追加したい場合は、[追加]をクリックしてください。
- 関連項目を削除したい場合は、[ ]をクリックしてください。 
- サブエンティティ変数名は、コードの自動生成時に利用されます。これにより、手動でコードを記述する手間を省くことができます。
サブエンティティを設定できるのは、以下の条件を満たしている場合です。
- 「関連元」エンティティと「関連先」エンティティが異なること
- 多重度として「1:1」または「1:n」が選択されていること
なお、すでに「関連先」または「関連元」のいずれかにサブエンティティが設定されている場合、チェックボックスはグレーアウトされます。
基本情報や追加した関連項目の内容を確認します。
(1) 設定内容を確認します。
└ 修正する場合は、[戻る]をクリックしてください。
(2) [追加]をクリックします。
└ 「追加確認」ダイアログで[決定]をクリックしてください。
└ 「関連一覧」画面に関連項目が追加されます。

データ定義を編集する
「データ定義」タブをクリックすると、「テーブル情報」および「定義情報」が表示されます。「テーブル情報」には「エンティティと辞書項目の設定」で設定したデータベース種別やテーブル名が表示されます。また、「定義情報」には、エンティティ項目に対応するテーブル情報が表示されます。

エンティティ定義とテーブルの情報の一致状況について、次のいずれかのメッセージが表示されます。
- エンティティとテーブルの情報は一致しています。(緑色の表示)
- エンティティとテーブルの情報が一致していません。差分を確認してください。(黄色の表示)
エンティティ項目(辞書項目)を編集すると、テーブル定義との間に差分が発生します。
差分がある場合、「テーブル定義」に相違箇所が色分けで表示されます。赤色は削除や差分のある項目、緑色は更新された項目を示しています。
たとえば、エンティティ項目の「sample_顧客ID」の最大桁数を「500」から「10」に変更した場合、テーブルカラムはまた「500」のまま更新されていないため、エンティティ項目とテーブルカラムに差分が生じています。
また、「差分」列には差異の理由が表示されます。内容を確認し、エンティティ項目の修正またはテーブル定義の更新を行う必要があります。

定義情報を編集する
テーブル定義などの定義情報を編集したい場合は、以下の手順を行ってください。
- [編集]をクリックします。
 └ 「データ定義」ダイアログが表示されます。
- 定義情報を編集します。
操作手順の詳細は、下記「 「データ定義」ダイアログの操作(編集)」を参照してください。

「データ定義」ダイアログの操作(編集)
「データ定義」ダイアログのウィザード表示に従って、操作を進めていきます。
- 1 テーブル定義の設定
- 2 検索条件の設定
- 3 楽観的排他制御の設定
- 4 更新内容確認
テーブルのカラム設定を確認し、差分を反映します。
(1) 差分を反映したい場合は、「適用」にチェックを入れます。
└ 更新時に項目の変更がテーブルのカラムに反映されます。
└ 差分を反映せず、エンティティ項目を修正したい場合は、上記「エンティティ項目を編集する」を参照してください。
(2) [次へ]をクリックします。
└ 「2 検索条件の設定」の画面が表示されます。

データ定義で設定されているテーブルとは別のテーブルから値を参照したい場合は、[参照項目設定を追加]をクリックしてください。参照項目を設定することで、異なるテーブル間でデータの整合性を保つことができます。
参照先として設定できるのは、以下の3種類です。
- 同じデータベース内にある他のエンティティ
- 同じデータベース内にあるテーブル
- intra-mart Accel Platformの共通マスタ
設定の詳細は、「IM-Repositoryユーザ操作ガイド - 7.6.4. 参照項目設定」を参照してください。
テーブルのレコードを絞り込むための検索条件を設定します。
(1) [条件を追加]をクリックします。
└ 入力フォームが表示されます。
(2) 条件を追加したい「エンティティ項目」を選択します。
└ エンティティ項目の一覧が表示されます。
(3) 設定したい「条件」を選択します。
└ 設定可能な条件の一覧が表示されます。
(4) [次へ]をクリックします。
└ 「3 楽観的排他制御の設定」の画面が表示されます。

設定可能な条件は、エンティティ項目のデータ型によって異なります。
- 文字列:完全一致、前方一致、後方一致、部分一致、複数条件(いずれかの値と一致)
- 長い文字列:前方一致、後方一致、部分一致
- 数値:完全一致、以上、以下、範囲指定
- 日付、日時、時刻:完全一致、以前、以降、範囲指定
- 真偽値:完全一致
楽観的排他制御とは、データを更新する前に、他のユーザがそのデータを変更していないかを確認してから更新する仕組みです。データ型が「数値」のエンティティ項目がある場合、たとえばデータベースのテーブルにバージョン管理用の項目(バージョン番号やタイムスタンプ)がある場合に設定できます。

楽観的排他制御を利用する場合:
(1) 「楽観的排他制御を利用する」を選択します。
(2) 「楽観的排他制御に利用するエンティティ項目」にある[]をクリックし、エンティティ項目を選択します。
└ データ型が「数値」のエンティティ項目のみが表示されます。
(3) エンティティ項目の値を自動採番するかどうかを選択します。
└ 自動採番しない場合は、チェックを入れてください。
└ 自動採番する場合は、チェックを外してください。
(4) [次へ]をクリックします。
└ 「4 更新内容確認」の画面が表示されます。

エンティティ更新時に、エンティティ項目の値を自動で増やす(インクリメント)設定にしたい場合は、「自動採番を無効化する」のチェックを外します。自動採番が有効となり、更新ごとに値が1つずつ増え、バージョン管理に利用されます。
逆に、自動採番を行わず手動で値を設定したい場合は、「自動採番を無効化する」にチェックを入れます。この場合、値は画面やロジック側で別途設定する必要があります。
カラム設定の差分や追加した各種設定などの内容を確認します。
(1) 設定内容を確認します。
└ 修正する場合は、[戻る]をクリックしてください。
(2) [反映]をクリックします。
└ 「反映確認」ダイアログで[決定]をクリックしてください。
└ 「データ定義」画面に戻ります。

データ定義を削除する
データ定義を見直す必要がある場合などは、古いデータ定義を削除してから新しい定義を作成します。テーブルやカラムが不要になった場合は、データベースから削除することも可能です。
- [削除]をクリックします。
 └ 「削除確認」ダイアログが表示されます。
- 必要に応じて、「データベースからテーブルを削除する」にチェックを入れます。
- [決定]をクリックします。
 └ データ定義が削除されます。

データ定義を追加する
データ定義を削除して、新しい定義を追加します。
- [データ定義の追加]をクリックします。
 └ 「データ定義」ダイアログが表示されます。
- 定義情報を設定します。
操作手順の詳細は、下記「 「データ定義」ダイアログの操作(追加)」を参照してください。

「データ定義」ダイアログの操作(追加)
「データ定義」ダイアログのウィザード表示に従って、操作を進めていきます。
- 1 テーブルの設定
- 2 テーブル定義の設定
- 3 検索条件の設定
- 4 楽観的排他制御の設定
- 5 追加内容確認
エンティティに紐づけるテーブルを設定します。
テナントデータベースを利用する場合:
テナントデータベースでは、intra-mart Accel Platformのテナント内で利用するデータを保存します。
(1) 既存のテーブルを利用する場合は、チェックを入れます。
(2) 「データベース種別」で「テナントデータベース」を選択します。
(3) 「テーブル名」を設定します。
└ 新規でテーブルを作成する場合は、テーブル名を入力します。
└ 既存のテーブルを利用する場合は、[▼]をクリックしてテーブルを選択します。
(4) [次へ]をクリックします。
└ 「2 テーブル定義の設定」の画面が表示されます。

シェアードデータベースを利用する場合:
シェアードデータベースでは、intra-mart Accel Platform外のデータを保存します。外部システムと連携したい場合に利用するデータベースです。
(1) 「データベース種別」で「シェアードデータベース」を選択します。
└ 「接続ID」の項目が表示されます。
(2) 「接続ID」でデータベースの接続IDを選択します。
(3) 「テーブル名」を入力します。
(4) [次へ]をクリックします。
└ 「2 テーブル定義の設定」の画面が表示されます。

新規でテーブルを作成する場合に、テーブル名で使用できる文字は、以下のとおりです。
 【半角英数字】 a b c d e... 0 1 2 3 4 5...
 【半角記号】 _
先頭文字に使用できるのは、半角英字のみです。
テーブルに紐づくカラムを設定します。
(1) カラムとして利用できるエンティティ項目を確認します。
(2) [次へ]をクリックします。
└ 「3 検索条件の設定」の画面が表示されます。

データ定義で設定されているテーブルとは別のテーブルから値を参照したい場合は、[参照項目設定を追加]をクリックしてください。参照項目を設定することで、異なるテーブル間でデータの整合性を保つことができます。
参照先として設定できるのは、以下の3種類です。
- 同じデータベース内にある他のエンティティ
- 同じデータベース内にあるテーブル
- intra-mart Accel Platformの共通マスタ
設定の詳細は、「IM-Repositoryユーザ操作ガイド - 7.6.4. 参照項目設定」を参照してください。
テーブルのレコードを絞り込むための検索条件を設定します。
(1) [条件を追加]をクリックします。
└ 入力フォームが表示されます。
(2) 条件を追加したい「エンティティ項目」を選択します。
└ エンティティ項目の一覧が表示されます。
(3) 設定したい「条件」を選択します。
└ 設定可能な条件の一覧が表示されます。
(4) [次へ]をクリックします。
└ 「4 楽観的排他制御の設定」の画面が表示されます。

設定可能な条件は、エンティティ項目のデータ型によって異なります。
- 文字列:完全一致、前方一致、後方一致、部分一致、複数条件(いずれかの値と一致)
- 長い文字列:前方一致、後方一致、部分一致
- 数値:完全一致、以上、以下、範囲指定
- 日付、日時、時刻:完全一致、以前、以降、範囲指定
- 真偽値:完全一致
楽観的排他制御とは、データを更新する前に、他のユーザがそのデータを変更していないかを確認してから更新する仕組みです。データ型が「数値」のエンティティ項目がある場合、たとえばデータベースのテーブルにバージョン管理用の項目(バージョン番号やタイムスタンプ)がある場合に設定できます。

楽観的排他制御を利用する場合:
(1) 「楽観的排他制御を利用する」を選択します。
(2) 「楽観的排他制御に利用するエンティティ項目」にある[]をクリックし、エンティティ項目を選択します。
└ データ型が「数値」のエンティティ項目のみが表示されます。
(3) エンティティ項目の値を自動採番するかどうかを選択します。
└ 自動採番しない場合は、チェックを入れてください。
└ 自動採番する場合は、チェックを外してください。
(4) [次へ]をクリックします。
└ 「5 追加内容確認」の画面が表示されます。

エンティティ更新時に、エンティティ項目の値を自動で増やす(インクリメント)設定にしたい場合は、「自動採番を無効化する」のチェックを外します。自動採番が有効となり、更新ごとに値が1つずつ増え、バージョン管理に利用されます。
逆に、自動採番を行わず手動で値を設定したい場合は、「自動採番を無効化する」にチェックを入れます。この場合、値は画面やロジック側で別途設定する必要があります。
カラム設定の差分や追加した各種設定などの内容を確認します。
(1) 設定内容を確認します。
└ 修正する場合は、[戻る]をクリックしてください。
(2) [追加]をクリックします。
└ 「追加確認」ダイアログで[決定]をクリックしてください。
└ 「データ定義」画面に戻ります。

影響範囲を適用する(設定を保存する)
エンティティの編集が終了した後は、必ず影響範囲を確認してください。影響範囲の確認を行わないと、変更内容が保存されません。

- [影響範囲確認]をクリックします。
 └ 「影響範囲」画面が表示されます。
- 変更による影響範囲を確認します。
- 「コメント」に変更理由を入力します。
 └ 必ず入力してください。
- [適用]をクリックします。
 └ 「適用確認」ダイアログで[決定]をクリックします。
 └ 「タスク一覧」画面が表示されます。
- [閉じる]をクリックします。
 └ 「アプリケーション管理」画面が表示されます。
エラーメッセージが表示された場合
[影響範囲確認]をクリックしても「影響範囲」画面に遷移しない場合は、画面に表示されているエラーメッセージを確認してください。以下は、代表的なエラーメッセージと対処方法について記載しています。
エラーメッセージ一覧と対処方法
エラーメッセージ 原因 対処方法 エンティティ更新の前処理に失敗しました。 エンティティの更新処理時に問題が発生している 更新対象のデータに不整合がないか確認してください。必須項目の未入力、データ型の誤り、参照整合性の不一致などが原因となる場合があります。 適用に失敗しました。 データ定義の適用処理中に問題が発生している あわせて表示されているエラーメッセージの内容を確認し、原因に応じて対応してください。 カラムの追加に失敗しました。 データ定義の適用処理中に、新しいカラムの追加に失敗している 該当のテーブルに同名のカラムが存在していないか確認してください。また、カラムの定義(データ型・長さ・制約など)が正しいか確認してください。 
応用操作
エンティティの編集では、用途に応じて、次のような応用操作が可能です。基本的な操作とあわせて確認してみましょう。
エンティティの操作ログを設定する
エンティティ定義を編集する際は、同時にエンティティの操作ログも設定しておくことをおすすめします。操作ログを有効にしておくことで、データの追加・更新・削除などの操作履歴を記録でき、エラー発生時の原因調査や対応にも役立ちます。
多くの業界では、データ操作の記録保持が法的に義務付けられている場合があります。操作ログを適切に管理することで、コンプライアンス要件を満たし、法的リスクの軽減にもつながります。
ログ出力設定を有効にする
「エンティティ」画面の「データ定義」タブからログ出力設定を変更できます。
- ログを有効にしたい場合は、トグルをオンに切り替えます。
 └ トグルが緑色になれば、ログ出力が有効な状態です。

ログ出力設定は、下記「エンティティ操作ログ一覧」画面からも行うことが可能です。この画面を利用すると、複数のエンティティに対して一括で設定ができるため、効率的に操作ログを管理できます。
エンティティの操作ログを確認する
- [ ]をクリックします。 
 └ サイトマップが表示されます。
- 「Repository」内にある[エンティティ操作ログ一覧]をクリックします。
- ログを確認したいエンティティを選択します。
- ログ内容を確認します。
 └ 出力される項目は以下のとおりです。
- 更新日時:ログの更新日時
- リクエストID
- 操作:INSERT, UPDATE, DELETEのいずれかが表示
- 更新ユーザコード:エンティティを更新したユーザを表示
- エンティティデータ:主キーを表示

操作ログをエクスポートしたい場合は、[エクスポート]をクリックしてください。
└ 「im-repository-{エンティティID}.json」ファイルが、お使いのPCの「ダウンロード」フォルダに保存されます。