システムオブジェクトの拡張
利用可能な Liferay 7.4 U46+/GA46+
Liferay Objectを使用すると、サポートされているシステムサービスを拡張することができます。 現在、Objects フレームワークと統合されているのは、以下のサービスのみです。Account、Commerce Order、Commerce Product、Commerce Product Group、Postal Address、Userです。
Postal Address オブジェクトは、アカウントアドレスを格納するためにのみ使用される。 このため、Accountsオブジェクトに関連するカスタムオブジェクトにのみ関連付けることができます。 詳しくは、カスタムオブジェクトを使用したアカウントの使用を参照してください。
システムオブジェクトを拡張する場合、 フィールド 、 リレーション 、 アクション 、 バリデーション を追加することができます。
機能 | システムオブジェクト | カスタムオブジェクト |
---|---|---|
項目 | ✔ | ✔ |
リレーションシップ | ✔ | ✔ |
レイアウト | ✔ | |
操作 | ✔ | ✔ |
閲覧数 | ✔ | |
入力値の検証 | ✔ | ✔ |
フィールドの追加
システムオブジェクトにフィールドを追加することができます。 追加のデータベースカラムは、サービスの元のテーブル名に _x
を付加したものを使用する別のデータベーステーブルに追加されます(例: AccountEntry_x
)。 システムオブジェクトは、利用可能なすべてのフィールドタイプ をサポートしています。 システムオブジェクトはカスタムレイアウトやビューをサポートしないため、これらのカスタムフィールドにはヘッドレスAPIを介してのみアクセスできます。 詳細については、オブジェクトへのフィールドの追加を参照してください。
Liferay の Custom Fields アプリケーションは Expando フレームワークを使ったほとんどの Liferay システムアプリケーションへのフィールド追加用のものです。 Objects は Expando ベースのカスタム フィールドをサポートしていないため、Objects 機能 ( relationships , actions , および validations など) で使用することはでき ません。
リレーションシップの追加
システムオブジェクトとカスタムオブジェクトの間にリレーションシップを作成し、それらのエンティティをリンクさせることができます。 システムオブジェクトは、1対多と多対多の両方の関係をサポートしています。 詳細については、オブジェクトリレーションシップの定義を参照してください。
アクションの追加
システムオブジェクトにカスタムアクションを追加して、エントリーが追加、更新、削除されたときにトリガーされるようにすることができます。 システムオブジェクトは、 Webhook , Groovy Script , および Notification アクションをサポートしています。 オブジェクトエントリーの追加 システムオブジェクトでは、アクションはサポートされていません。 詳しくは、 オブジェクトアクションの定義 をご覧ください。
バリデーションの追加
システムオブジェクトにGroovyおよびExpression Builderの検証機能を追加することができます。 これらのバリデーションは、トリガーされると、フィールドの入力が有効かどうかをチェックし、無効な入力に対してはカスタムエラーメッセージを表示します。 現在、Objects はシステムオブジェクトのデフォルトフィールドに対する検証のみをサポートし、そのカスタムフィールドに対する検証はサポートしていません。 詳細は、カスタムバリデーションの追加を参照してください。