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

フォームストレージアダプターについて

Liferay DXP 7.3 および Liferay DXP 7.2 バージョンには、 LPS-97208 の修正が含まれています (Liferay DXP 7.2 SP3 で計画されています)

ユーザーがフォーム レコードを追加すると、フォーム API は、ストレージ アダプタ API を介して要求の処理をルーティングします。 これは、フォームエントリーに対して行われる他のCRUD操作(読み取り、更新、削除)についても同様です。 ストレージ サービスのデフォルトの実装は DefaultDDMStorageAdapterと呼ばれ、その名前が示すように、フォーム入力データを JSON 形式で保存するための DDMStorageAdapter インターフェイスを実装します。

ダイナミック データ マッピング (DDM) バックエンドは、フォーム レコードの他の保存形式に 適応 できます。 これにより、フォームデータをデフォルトのJSONではなく、XMLやYAML(または希望する形式)として簡単にシリアライズできます。 そして、フォームデータをLiferayデータベースを含む任意の場所に保存することを選択できます。

重要

新しく追加されたストレージアダプターは、新しいフォームでのみ使用することができます。 既存のすべてのフォームは、作成時に選択されたアダプター(デフォルトではJSON)を引き続き使用し、異なるストレージアダプターを選択することはできません。

フォームレコードの保存

デフォルトのJSON実装では、保存リクエストに格納されているブール値isInsertに応じて、異なる応答をします。 trueの場合は、新しいフォームレコードを追加するロジックが呼び出され、falseの場合は、代わりに更新が行われます。 このロジックは、insertupdateというメソッドに含まれています。 DDMStorageAdapterの の実装がこのパラダイムにも対応していることを確認してください。

フォームレコードのシリアライズとデシリアライズ

フォームレコードのシリアライズとデシリアライズのデフォルトフォーマットはJSONです。 サンプル プロジェクト では、このデフォルト形式の使用方法を示しています。 DDMContentを異なるフォーマットで保存するには、追加のインターフェイスを実装する必要があります。

シリアライズ:DDMcontentを保存するときは、DDMFormValuesオブジェクトをターゲットストレージ形式に変換する必要があります。

逆シリアル化: DDMContent を読み取る際 (ストレージ アダプタの get メソッド内)、ストレージ形式から、 DDMStorageAdapterGetResponseBuilder コンストラクターに必要な DDMFormValues オブジェクトに変換する必要があります。

このシリアライズのロジックに実装するDDMFormValuesSerializerインターフェイスと、デシリアライズのロジックに実装するDDMFormValuesDeserializerインターフェイスがあります。 Liferay のデフォルトの実装は、 DDMFormValues オブジェクトから JSON への変換、およびその逆の変換をサポートしており、それぞれ こちらこちらにあります。

完全な例については、 フォーム ストレージ アダプターの作成を参照してください。