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

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

ライフレイ 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対多と多対多の両方のリレーションシップをサポートしています。 詳細については、 オブジェクト関係の定義 を参照してください。

重要

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

リレーションシップAPI

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

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

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

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

アクションの追加

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

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

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

バリデーションの追加

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

追加の構成オプション

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

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