変更不可能なシステムオブジェクトの拡張
ライフレイ 7.4 U86+/GA86+
Liferay Objectを使用すると、サポートされているシステムサービスを拡張することができます。 これらのサービスは、 変更不可能なシステム オブジェクトとしてオブジェクト フレームワークに統合されています。
- アカウント
- コマース注文
- コマース製品
- コマース製品グループ
- 組織
- 住所
- ユーザー
郵便住所オブジェクトには、アカウントの住所が保存されます。 このため、[Accounts]オブジェクトに関連するカスタムオブジェクトにのみ関連付けることができます。 詳細については、「 カスタム オブジェクトでのシステム アカウントの使用 」を参照してください。

システム オブジェクトを拡張する場合、それらに フィールド、 リレーションシップ、 アクション、および 検証 を追加できます。
| 機能 | システムオブジェクト | カスタムオブジェクト |
|---|---|---|
| 項目 | ✔ | ✔ |
| 関連 | ✔ | ✔ |
| レイアウト | ✔ | |
| 操作 | ✔ | ✔ |
| 閲覧数 | ✔ | |
| 検証 | ✔ | ✔ |
フィールドの追加
システムオブジェクトにフィールドを追加することができます。 追加のデータベースカラムは、サービスの元のテーブル名に_xを付加したものを使用する別のデータベーステーブルに追加されます(例: AccountEntry_x)。 システム オブジェクトは、使用可能なすべての フィールド タイプをサポートします。 システムオブジェクトはカスタムレイアウトやビューをサポートしないため、これらのカスタムフィールドにはHeadless APIを介してのみアクセスできます。 詳細については、「 オブジェクトへのフィールドの追加 」を参照してください。
システム オブジェクトにフィールドを追加すると、フィールド構成に 検索可能 構成が表示されます。 ただし、システム オブジェクトはオブジェクトのインデックス コードをバイパスするため、カスタム フィールドは検索できません。
Commerce Order Itemのようなシステムオブジェクトにフィールドを追加すると、Liferay API Explorer のサンプル JSON にフィールドが表示される場合があります。 ただし、値が含まれている場合にのみ、実際の API 応答に表示されます。 フィールドが応答に表示されるようにするには、更新されたスキーマを使用してオブジェクト エントリを作成または更新するときに、カスタム フィールドに値を割り当てます。
Liferay の カスタム フィールド アプリケーションは、 Expando フレームワークを使用して、ほとんどの Liferay システム アプリケーションにフィールドを追加するためのものです。 Objects は Expando ベースのカスタム フィールドをサポートしていないため、Objects 機能 (例: リレーションシップ、 アクション、 検証) で使用することはできません。
リレーションシップの追加
システム オブジェクトとカスタム オブジェクトの間に関係を追加して、それらのエンティティをリンクできます。 システムオブジェクトは、1対多と多対多の両方のリレーションシップをサポートしています。 詳細については、 オブジェクト関係の定義 を参照してください。
リレーションシップAPI
システム オブジェクトが多対多の関係にある場合、または 1 対多の関係の親側にある場合、Liferay は関係を照会および管理するための REST エンドポイント を生成します。 これには、関連オブジェクト エントリを返す GET エンドポイント、エントリを関連付ける PUT エンドポイント、および関連エントリの関連付けを解除する DELETE エンドポイントが含まれます。
この例では、User システム オブジェクトは、カスタム オブジェクト (timeOffRequest) と 1 対多の関係 (userRequests) にあります。 これらのエンドポイントは、 headless-admin-user サービスに表示されます。

入門チュートリアルについては、「 リレーションシップ REST API の使用 」を参照してください。
アクションの追加
エントリの追加、更新、削除などのイベントでトリガーされるアクションをシステム オブジェクトに追加できます。 下の表は、システムオブジェクトがサポートするアクションを示したものです。
| アクションの種類 | システムオブジェクトでのサポートの有無 |
|---|---|
| Webhook | ✔ |
| Groovy スクリプト | ✔ |
| 通知 | ✔ |
| オブジェクトエントリーを追加 | ✔ |
| オブジェクトエントリーを更新 | ✔ |
詳細については、 オブジェクトアクションの定義 を参照してください。
バリデーションの追加
Groovyおよびエクスプレッションビルダーの検証機能をシステムオブジェクトに追加できます。 トリガーされると、これらのバリデーションは、フィールドエントリーが有効かどうかを確認し、無効なエントリーに対してはカスタムエラーメッセージを表示します。 現在、オブジェクトはシステムオブジェクトのデフォルトフィールドに対する検証のみをサポートし、そのカスタムフィールドに対する検証はサポートしていません。 詳細については、 フィールド検証の追加 を参照してください。
追加の構成オプション
システム オブジェクトを編集するときに、 詳細 タブで次の設定を構成することもできます。
| 項目 | 説明 | システムオブジェクトでのサポートの有無 |
|---|---|---|
| タイトルフィールド | オブジェクト エントリのタイトルとして使用されるフィールドを決定します。 | ✔ |
| パネルリンク | アプリケーションが UI のどこに表示されるかを決定します。 | ✖ |
| ページビルダーのウィジェット | オブジェクトのページ ウィジェットがサイトで使用できるかどうかを決定します。 | ✖ |
| オブジェクトエントリの分類 | オブジェクト エントリに分類ツールを使用できるかどうかを決定します。 | ✖ |
| ページビルダーのコメント | ユーザーがオブジェクト エントリにコメントを追加できるかどうかを決定します。 | ✖ |
| 監査フレームワークのエントリー履歴 | オブジェクト イベントが監査履歴に表示されるかどうかを決定します。 | ✖ |