Skip to main content

 

 

 

 
Language:
 
 
 
OutSystems

静的エンティティ

静的エンティティからデータを移行する場合に必要な考慮事項がいくつかあります。まず、OutSystemsプラットフォームで、静的エンティティレコードがどのように管理されているかを把握し、対応する物理テーブルとの関係を理解することが重要です。

考慮事項

以下の点を考慮してください。

  • 新しい静的エンティティをパブリッシュすると、OutSystemsプラットフォームでは以下が作成されます。
    • 新しい静的エンティティのエンティティ情報(OSSYS_ENTITY
    • エンティティアトリビュート情報(OSSYS_ENTITY_ATTR
    • エンティティレコード(OSSYS_ENTITY_RECORD)。物理的なアプリケーションテーブルIDの対応する値を含むData IDという特別なアトリビュートがあります。
    • 各レコードに対して設定されたアトリビュート値を含むアプリケーションの物理テーブル
    • 静的エンティティはOutSystemsプラットフォームで管理され、公開されている場合は他のアプリケーションから利用できます。この情報をデータベースで直接変更しないでください。
    • 静的エンティティレコードは環境ごとに異なるData IDを持つことができる(つまり、物理テーブルでIDが異なる)ため、この情報は環境間で一致している必要があり、静的エンティティの外部キーを使用してアプリケーション情報を移行する際に考慮する必要があります。
    • エンティティレコードSS_Keyは一意ではありません。一意にするには、関連するeSpaceのSS_Keyと組み合わせる必要があります。この方法を使用して、2つの異なる環境間で同じエンティティレコードを照合してマッピングします。
    • Is_Activeフラグを確認し、非アクティブな(ソフトデリートされた)情報を含めるか、除外します。
    • 静的エンティティからレコードを削除するとIs_Activeフラグが設定されますが、情報はエンティティレコードから削除されません。

OutSystemsプラットフォームによる静的エンティティの管理の仕組み - 例

このセクションでは、OutSystemsプラットフォームによる静的エンティティの管理の仕組みの例を示します。

静的エンティティを作成する

CityManagerという名前のeSpaceと、MinSizeMaxSizeの2つのInteger型アトリビュートを持つCitySizeという名前の静的エンティティを作成します。以下の表のように、SmallMediumBigHugeの4つのレコードを追加します。

Record Name MinSize MaxSize
Small 0 5000
Medium 5001 100000
Big 100001 1000000
Huge 1000001 99999999

eSpaceをパブリッシュした後、作成されたエンティティの情報を検索できます。

SELECT 
    OSSYS_ENTITY.NAME,
    OSSYS_ENTITY.DATA_KIND,
    OSSYS_ENTITY.PHYSICAL_TABLE_NAME
FROM OSSYS_ENTITY
WHERE OSSYS_ENTITY.NAME = 'CitySize' 
    AND OSSYS_ENTITY.ESPACE_ID = (
        SELECT ID FROM OSSYS_ESPACE WHERE NAME = 'CityManager'
    の利用の有無を問わない)
Id Data_Id Name SS_Key Entity_SS_Key Espace_Id Is_Active
8567 1 Huge 6fac2fbc-ea92-46e3-9402-6332b7bf3f13 b2257cc9-9454-40cd-845f-dc065e5e5551 679 1
8568 2 Medium "a7123828-b174-4959-a1d3-04ea47d5d081", b2257cc9-9454-40cd-845f-dc065e5e5551 679 1
8569 3 Small b4e90a62-b31c-46ea-bd22-74103b86e600 b2257cc9-9454-40cd-845f-dc065e5e5551 679 1
8570 4 Big d4364e1a-51a3-43cd-9f5e-1706831b5796 b2257cc9-9454-40cd-845f-dc065e5e5551 679 1

物理テーブルで、物理アトリビュート情報を取得します。

SELECT
    Id,
    Name,
    Order,
    Is_Active,
    MinSize,
    MaxSize
FROM OSUSR_5Z9_CITYSIZE 
ORDER BY [ORDER]
Id Name Order Is_Active MinSize MaxSize
3 Small 1 1 0 5000
2 Medium 2 1 5001 100000
4 Big 3 1 100001 1000000
1 Huge 4 1 1000000 99999999

静的エンティティレコードを削除する

CitySizeエンティティからSmallレコードを削除します。

これは、削除するレコードが別のエンティティの外部キーとしてまだ使用されていない場合にのみ実行できます。外部キーとして使用されている場合は、この操作を行う前に依存関係をすべて削除する必要があります。依存関係を削除しない場合は、レコードを非アクティブに設定することのみが可能です。

レコードを削除できる場合、レコードを非アクティブにするため、Entity_RecordのIs_ActiveアトリビュートがFalse0)に変更されます。

Id Data_Id Name SS_Key Entity_SS_Key Espace_Id Is_Active
8569 3 Small b4e90a62-b31c-46ea-bd22-74103b86e600 b2257cc9-9454-40cd-845f-dc065e5e5551 679 0

その後、物理テーブルの対応する行が削除されます。

Id Name Order Is_Active MinSize MaxSize
2 Medium 2 1 5001 100000
4 Big 3 1 100001 1000000
1 Huge 4 1 1000000 99999999

以前に削除したレコードと同じ名前の静的エンティティレコードを作成する

先ほど削除したレコードと同じ名前のSmallという名前のレコードを作成します。サイズパラメータは101~5000にします。 eSpaceをパブリッシュした後、エンティティレコードの情報は以下のようになります。

Id Data_Id Name SS_Key Entity_SS_Key Espace_Id Is_Active
8569 3 Small b4e90a62-b31c-46ea-bd22-74103b86e600 b2257cc9-9454-40cd-845f-dc065e5e5551 679 0
8567 1 Huge 6fac2fbc-ea92-46e3-9402-6332b7bf3f13 b2257cc9-9454-40cd-845f-dc065e5e5551 679 1
8568 2 Medium "a7123828-b174-4959-a1d3-04ea47d5d081", b2257cc9-9454-40cd-845f-dc065e5e5551 679 1
8570 4 Big d4364e1a-51a3-43cd-9f5e-1706831b5796 b2257cc9-9454-40cd-845f-dc065e5e5551 679 1
8588 5 Tiny 260e479c-5c4c-4fe7-986a-bdf116b8e4f4 b2257cc9-9454-40cd-845f-dc065e5e5551 679 1
8589 6 Small 611d1096-61be-4fbb-9303-66a0c56eacf7 b2257cc9-9454-40cd-845f-dc065e5e5551 679 1

新しいレコードが作成され、先ほど削除したレコードが非アクティブになっています。 静的エンティティの物理テーブルには、新しいエンティティレコードと関連付けられた新しいレコードがあります。

Id Name Order Is_Active MinSize MaxSize
2 Medium 2 1 5001 100000
4 Big 3 1 100001 1000000
1 Huge 4 1 1000000 99999999
5 Tiny 5 1 0 100
6 Small 6 1 101 5000

静的エンティティレコード

このセクションでは、OutSystemsプラットフォームによる静的エンティティレコードの管理の仕組みの例を示します。

エンティティレコード

名前 物理テーブル名 説明
Entity_Record OSSYS_ENTITY_RECORD Service Studioで定義された各静的エンティティのレコード。古いレコードは非アクティブとして保持されます
プロデューサ
OSSYS_ESPACE
コンシューマ
-

次のセクションに進む