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

オブジェクトエントリバージョンの管理

Liferay DXP 2025.Q4+/Portal 2026.Q1+

重要

オブジェクトエントリのバージョン管理は、Liferay の コンテンツ管理システム (CMS) で使用されています。 バージョン管理機能は、CMS機能フラグを有効にした後にのみ利用可能です。 ヘッドレス CMS をアクティブ化するには、 Liferay CMS のアクティブ化 を参照してください。

カスタム オブジェクトのエントリでバージョン管理を使用するには、API を使用してオブジェクト定義でバージョン管理を有効にする必要があります。そのためには、 objectEntryVersioning 属性を true に設定します。 その後、バージョン管理APIのエンドポイントを呼び出すことができます。 バージョン管理機能は、コレクション、フォームコンテナ、データセットマネージャなどの標準搭載のオブジェクトエントリ管理機能や表示機能には対応していません。

オブジェクト定義を公開すると、そのエントリを管理するためのREST APIが生成されます。 これらのAPIには、バージョン管理エンドポイントが含まれています。 オブジェクト定義でバージョン管理が有効になっている場合は、バージョン管理エンドポイントを使用できます。

定義でバージョン管理が有効になっている場合、PATCHまたはPUTを使用してエントリを更新すると、オブジェクトエントリの新しいバージョンが作成されます。 個々のエントリのバージョン管理エンドポイントの概要は以下のとおりです。

操作エンドポイントの例バージョン管理の動作
PATCHまたはPUTを使用してエントリを更新します。/o/c/ables/by-external-reference-code/新しいエントリーバージョンが作成されます。
エントリのバージョンを取得する/o/c/ables/by-external-reference-code//versionsERCを渡すと、エントリの既存のすべてのバージョンを取得できます。
バージョンを取得する/o/c/ables/by-external-reference-code//by-version/ERCとバージョン番号を渡すと、単一のバージョンが取得されます。
特定のバージョンを復元する/o/c/ables/by-external-reference-code//by-version//restore以前のバージョンを復元して、最新バージョンにします。 これは、古いバージョンに基づいてエントリの新しいバージョンを作成します。 エントリを復元している間は、エントリのフィールドを更新することはできません。
バージョンをコピーする。/o/c/ables/by-external-reference-code//by-version//copyエントリのバージョンに基づいて、固有のERCを持つ新しいエントリを作成します。
バージョンを削除します。/o/c/ables/by-external-reference-code//by-version/以前のバージョンが最新バージョンになりました。 該当するエントリが存在しない場合は、削除されます。

さらに、 /o/c/ables/approved エンドポイントを使用して、定義の最新の承認済みバージョンをすべて取得できます。

エンドポイントをテストできます。 まず、Liferayインスタンスをセットアップします。

Liferayの準備

新しいLiferay インスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.132-ga132

http://localhost:8080 で Liferay にサインインしてください。 メールアドレス test@liferay.com とパスワード test を使用してください。 プロンプトが表示されたら、パスワードを learnに変更します。

以下のコマンドを実行して、提供されたサンプルコードをダウンロードし、解凍してください。

curl https://resources.learn.liferay.com/examples/liferay-j5b2.zip -O
unzip liferay-j5b2.zip

次に、 liferay-j5b2/curl に移動し、このスクリプトを実行してデータをいくつか入力します。

./populate_j5b2.sh

これにより、バージョン管理が有効になったオブジェクト定義が作成され、3つのエントリが作成され、そのうちの1つがPUT呼び出しによって更新され、新しいバージョンが作成されます。 応募作品のうち1つは下書き状態です。

オブジェクトのバージョン管理APIをテストするための様々なエントリが利用可能です。

バージョン管理APIの呼び出し

curl コマンドを実行するシェルスクリプトを実行して、これらの GET エンドポイントを調べることができます。

  1. ERCに一致するエントリのすべてのバージョンを取得します。

    ./Ables_GET_Versions_ByExternalReferenceCode.sh ABLE_1
    

    ABLE_1 には、Able 1.0 と Able 1.1 という 2 つのバージョンがあります。

  2. バージョン番号を指定してエンドポイントを使用して、1つのバージョンを返すようにします。

    ./Ables_GET_Version_ByExternalReferenceCode.sh ABLE_1 1
    

    Able 1.0 という名前の ABLE_1 バージョンのみが返されます。

  3. 次に、オブジェクト定義の最新の承認済みバージョンをすべて入手します。

    ./Ables_GET_Approved.sh
    

    Able 1.1 と Able 2.0 という 2 つの Able エントリ バージョンが返されます。 Able 3.0 には、ステータスが ドラフトのバージョンが 1 つあるため、返されません。 Able 1には2つのバージョンがありますが、このエンドポイントは最新の承認済みバージョンのみを返します。

これらの呼び出しは、オブジェクトエントリのバージョンに対する追加のアクションを示しています。

  1. Able 1.0を最新バージョンに復元する:

    ./Ables_PUT_Restore_ByExternalReferenceCode.sh ABLE_1 1
    

    この呼び出しで以前のバージョンを復元することはできますが、同時にフィールドを更新することはできません。

  2. Able 1.1 (つまり、 ABLE_1 エントリのバージョン 2) をコピーします。

    ./Ables_POST_Copy_ByExternalReferenceCode.sh ABLE_1 2
    

    これは、バージョンを新しい下書きエントリとしてコピーします(オブジェクト定義で下書きが有効になっている場合)。

    コピーされたバージョンは、新しい下書きとして追加されます。

  3. ABLE_1からバージョン2を削除します。

    ./Ables_DELETE_Version.sh ABLE_1 2
    
  4. 最初のバージョン ABLE_1 のステータスを 期限切れ に設定します。

    ./Ables_POST_Expire_ByExternalReferenceCode.sh ERC 1
    

    最新バージョンの有効期限が切れると、有効期限切れ(3)のステータスが付けられ、エントリの有効期限が現在の日付に設定されます。