Creating and Managing Objects
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

変更不可能なシステムオブジェクトの拡張

Liferay 7.4 U86+/GA86+

Liferay Objectを使用すると、サポートされているシステムサービスを拡張することができます。 これらのサービスは、オブジェクトフレームワークに 変更不可能なシステムオブジェクト として統合されています。

  • アカウント
  • コマース注文
  • コマースの注文メモ
  • コマース製品
  • コマース製品グループ
  • 組織
  • 住所
  • ユーザー

郵便住所オブジェクトには、アカウントの住所が格納されます。 このため、[Accounts]オブジェクトに関連するカスタムオブジェクトにのみ関連付けることができます。 詳細については、 カスタムオブジェクトでのシステムアカウントの使用 を参照してください。

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

システム オブジェクトを拡張する場合、 フィールドリレーションシップアクション、および バリデーション をそれらに追加できます。

機能システムオブジェクトカスタムオブジェクト
項目
関連
レイアウト
操作
閲覧数
検証

フィールドの追加

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

警告

システム オブジェクトにフィールドを追加すると、フィールド構成に 検索可能な 構成が表示されます。 しかし、システムオブジェクトはオブジェクトのインデックス作成コードをバイパスするため、そのカスタムフィールドは検索対象になりません。

Commerce Order Itemのようなシステムオブジェクトにフィールドを追加すると、Liferay API Explorer のサンプル JSON にフィールドが表示される場合があります。 ただし、実際のAPIレスポンスに表示されるのは、値が含まれている場合のみです。 レスポンスにフィールドが表示されるようにするには、更新されたスキーマを使用してオブジェクトエントリを作成または更新する際に、カスタムフィールドに値を割り当ててください。

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

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

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

重要

システム・オブジェクトはカスタムレイアウトや カスタムビューをサポートしていないため、システム・オブジェクトのUIにリレーションシップを追加することはできません。 ヘッドレスAPIを介してのみ、それらとやり取りできます。

リレーションシップAPI

システムオブジェクトが多対多の関係にある場合、または一対多の関係の親側にある場合、Liferay は関係を照会および管理するための REST エンドポイント を生成します。 これには、関連オブジェクトエントリを返すためのGETエンドポイント、エントリを関連付けるためのPUTエンドポイント、および関連エントリの関連付けを解除するためのDELETEエンドポイントが含まれます。

この例では、User システム オブジェクト (userRequests) はカスタム オブジェクト (timeOffRequest ) と一対多の関係にあります。 これらのエンドポイントは、 headless-admin-user サービスに表示されます。

Liferayは、関係性を照会および管理するためのRESTエンドポイントを生成します。

入門チュートリアルについては、 リレーションシップ REST API の使用 を参照してください。

アクションの追加

システムオブジェクトにアクションを追加することができ、そのアクションはエントリの追加、更新、削除などのイベントをトリガーとして実行されます。 下の表は、システムオブジェクトがサポートするアクションを示したものです。

アクションの種類システムオブジェクトでのサポートの有無
Webhook
Groovy スクリプト
通知
オブジェクトエントリーを追加
オブジェクトエントリーを更新

詳細については、 オブジェクトアクションの定義 を参照してください。

バリデーションの追加

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

追加の設定オプション

システムオブジェクトを編集する際には、 詳細 タブで以下の設定を構成することもできます。

項目説明システムオブジェクトでのサポートの有無
タイトルフィールドオブジェクトエントリのタイトルとして使用されるフィールドを決定します。
パネルリンクアプリケーションがユーザーインターフェースのどこに表示されるかを決定します。
ページビルダーのウィジェットオブジェクトのページウィジェットがサイトで利用可能かどうかを判断します。
オブジェクトエントリの分類オブジェクトエントリに対して分類ツールが利用可能かどうかを判断します。
ページビルダーのコメントユーザーがオブジェクトのエントリにコメントを追加できるかどうかを判断する。
監査フレームワークのエントリー履歴オブジェクトイベントが監査履歴に表示されるかどうかを判断します。