oo

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

利用可能: LPS-97208 の修正(Liferay DXP 7.2 SP3で計画)を含むLiferay DXP 7.3およびLiferay DXP 7.2バージョン。

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

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

important

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

フォームレコードの保存

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

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

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

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

デシリアライズ:(ストレージアダプターのgetメソッドで)DDMContentを読み取るときは、ストレージ形式からDDMStorageAdapterGetResponseBuilderコンストラクターが必要とするDDMFormValuesオブジェクトに変換し直す必要があります。

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

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

Capability:
Feature: