システムオブジェクトの拡張

システムオブジェクトの拡張

利用可能な Liferay 7.4 U46+/GA46+

Liferay Objectを使用すると、サポートされているシステムサービスを拡張することができます。 現在、Objects フレームワークと統合されているのは、以下のサービスのみです。Account、Commerce Order、Commerce Product、Commerce Product Group、Postal Address、Userです。

note

Postal Address オブジェクトは、アカウントアドレスを格納するためにのみ使用される。 このため、Accountsオブジェクトに関連するカスタムオブジェクトにのみ関連付けることができます。 詳しくは、カスタムオブジェクトを使用したアカウントの使用を参照してください。

オブジェクトフレームワークと統合されたシステムサービスを拡張します。

システムオブジェクトを拡張する場合、 フィールドリレーションアクションバリデーション を追加することができます。

機能 システムオブジェクト カスタムオブジェクト
項目
リレーションシップ
レイアウト
操作
閲覧数
入力値の検証

フィールドの追加

システムオブジェクトにフィールドを追加することができます。 追加のデータベースカラムは、サービスの元のテーブル名に _x を付加したものを使用する別のデータベーステーブルに追加されます(例: AccountEntry_x)。 システムオブジェクトは、利用可能なすべてのフィールドタイプ をサポートしています。 システムオブジェクトはカスタムレイアウトやビューをサポートしないため、これらのカスタムフィールドにはヘッドレスAPIを介してのみアクセスできます。 詳細については、オブジェクトへのフィールドの追加を参照してください。

note

Liferay の Custom Fields アプリケーションは Expando フレームワークを使ったほとんどの Liferay システムアプリケーションへのフィールド追加用のものです。 Objects は Expando ベースのカスタム フィールドをサポートしていないため、Objects 機能 ( relationships , actions , および validations など) で使用することはでき ません。

リレーションシップの追加

システムオブジェクトとカスタムオブジェクトの間にリレーションシップを作成し、それらのエンティティをリンクさせることができます。 システムオブジェクトは、1対多と多対多の両方の関係をサポートしています。 詳細については、オブジェクトリレーションシップの定義を参照してください。

important

システムオブジェクトはカスタムレイアウトをサポートしていないので、多対多の関係や1対多の関係の親側を表示するための レイアウトタブ はオブジェクトには付加できない。

アクションの追加

システムオブジェクトにカスタムアクションを追加して、エントリーが追加、更新、削除されたときにトリガーされるようにすることができます。 システムオブジェクトは、 Webhook , Groovy Script , および Notification アクションをサポートしています。 オブジェクトエントリーの追加 システムオブジェクトでは、アクションはサポートされていません。 詳しくは、 オブジェクトアクションの定義 をご覧ください。

バリデーションの追加

システムオブジェクトにGroovyおよびExpression Builderの検証機能を追加することができます。 これらのバリデーションは、トリガーされると、フィールドの入力が有効かどうかをチェックし、無効な入力に対してはカスタムエラーメッセージを表示します。 現在、Objects はシステムオブジェクトのデフォルトフィールドに対する検証のみをサポートし、そのカスタムフィールドに対する検証はサポートしていません。 詳細は、カスタムバリデーションの追加を参照してください。

追加情報