AEMaaCS でのオーサリングの変更とレプリケーション時のカスタム JCR プロパティの損失
最終更新日: 2025年2月5日
この記事では、オーサリング上の変更が加えられるとカスタム JCR プロパティが失われ、コンテンツがAdobe Experience Manager as a Cloud Service(AEMaaCS)にレプリケートされる問題に対処する方法について説明します。 このガイドでは、問題が発生する理由を説明し、これらのプロパティの持続性を確認するための詳しい手順を説明します。
説明
環境
Adobe Experience Manager as a Cloud Service(AEMaaCS)
問題
カスタム JCR プロパティが、エクスペリエンスフラグメント内の複数フィールドコンポーネントに関連付けられたノードに直接追加されると、変更のオーサリングまたはレプリケーション後に保持されない場合があります。 次の症状が発生します。
- オーサリングの変更を保存すると、カスタムプロパティが失われます。
- レプリケーションプロセスは、これらのプロパティを上書きまたは削除します。
このような動作が発生するのは、複数フィールドコンポーネントが、保存および複製される内容を指示するダイアログ設定に基づいて、それらのプロパティを動的に管理するからです。
解決策
-
更新ダイアログの設定:
- すべてのカスタムプロパティが、コンポーネントのダイアログ XML 設定で明示的に定義されていることを確認します。
- カスタムプロパティに対応するフィールドをダイアログ構造に追加して、認識および保存されるようにします。
-
複数フィールドコンポーネントの処理:
- 複数フィールドコンポーネントは、エントリを個別の子ノードとして、JCR の親ノードの下に保存します。
- 処理中の上書きを防ぐために、コンポーネントのダイアログまたは設定ファイル内で必要なプロパティを定義します。
-
コンポーネントの拡張
- 必要な各カスタムプロパティのフィールドを追加して、既存のコンポーネントを拡張します。 例えば、拡張コンポーネント設定を使用する場合は、
tariffItem
フィールドを含めます。
- 必要な各カスタムプロパティのフィールドを追加して、既存のコンポーネントを拡張します。 例えば、拡張コンポーネント設定を使用する場合は、
-
非表示のフィールド設定を使用して、手順を直接記述する – UI には表示されないが、プログラムによって保持する必要があるプロパティの場合は、次の設定を使用して非表示のフィールドを設定します。
Name: granite:hidden
Type: Boolean
Value: true
-
テストと検証
- 実稼動環境にデプロイする前に、更新された設定をローカル環境でテストします。
- 標準のAEM プロジェクト(例:WKND)を初期テストに使用して、追加のカスタマイズレイヤーから干渉されずに変更を検証します。
3d58f420-19b5-47a0-a122-5c9dab55ec7f