intra-mart Accel Platform IM-共通マスタ 仕様書 第7版 2019-04-01

4.1. IM-共通マスタとアプリケーションデータの整合性について

IM-共通マスタに登録、更新および削除を行う場合、データの整合性を保つ必要があります。
また、IM-共通マスタは比較的汎用的に設計されていますが、独自に拡張したい場合もあります。
この場合、直接データベースにデータを登録、更新および削除したり、テーブル構造を変更したりすると、同じ情報を共有するアプリケーションへ想定外の影響を及ぼしたり、様々な不具合を併発してしまう可能性が考えられます。
これらの問題を解決するため、intra-mart ではIM-共通マスタに対する API を用意しています。
API を利用すると、以下の利点があります。
  • IM-共通マスタ間の整合性の考慮が必要なくなる
  • テーブルを拡張したい場合に、拡張したい対象のテーブルと同期して独自に拡張した情報を取り扱うことが可能になる

注意

各アプリケーションおよびテンプレートは、IM-共通マスタで使用しているテーブルに対してデータを直接登録、更新および削除してはいけません。
IM-共通マスタで使用しているテーブルのデータに変更する処理を行う場合、必ずこの API で行う必要があります。

4.1.1. IM-共通マスタ間の整合性の確保

IM-共通マスタはデータベース上の複数のテーブルから構成されますが、APIを利用することで整合性の考慮は不要になります。
例えば組織の登録、更新および削除時には組織テーブルと組織内包テーブル等、複数のテーブルにアクセスする必要がありますが、APIを利用すると1回の呼び出しで全てのテーブルが更新されます。
また、組織テーブルや組織内包テーブル内に保持している期間の操作をする必要がある場合、その期間の整合性を維持するためにテーブル内の複数のレコードを更新する必要がありますが、これもAPIを使用することによって整合性が確保されます。

4.1.2. テーブル拡張の実現

テーブルの情報を拡張したい場合は、APIが登録・更新・削除などを行った際に、それぞれのタイミングで呼び出される「リスナー」を設定しておくことで、IM-共通マスタの内容変更に対し同期を取って拡張情報を処理することが出来るようになります。
この仕組みにより、 intra-mart のマスタメンテナンス画面を使用してIM-共通マスタに対する変更を行っても、インストールされているすべてのプロダクトに対してデータの整合性が維持されます。
アプリケーションからIM-共通マスタのデータを登録および編集する場合でも、APIを使用することで同様にデータの整合性を保つことが出来るようになります。