Campaign: registerDeviceの追加パラメーターがappSubscriptionRcpにありません

Adobe Campaign Classic v8 FFDAでは、一般的なカスタマイズは、追加のサブスクリプション属性を追加し、mobile registerDevice APIを介して設定することです。 これは、nms:appSubscriptionRcpの拡張機能が、既にすぐに使用できるステージングスキーマを持つスキーマファミリーのautoStg="true"に依存している場合に失敗する可能性があります。 その場合、追加のパラメーターが正しく保存されず、ステージングスキーマが非動作状態に再生成される場合があります。

説明 description

カスタム実装では、nms:appSubscriptionRcpに新しいフィールドを追加し、additionalParametersを使用してmobile registerDevice呼び出しを通じて値を渡します。

症状には以下のものがあります。

  • registerDevice リクエストには追加のパラメーターが含まれていますが、値は保持されません。
  • ステージングテーブルに対する挿入または更新には、想定されるカスタム列が含まれていません。
  • appSubscriptionRcp拡張機能でautoStg="true"を有効にし、データベース構造を更新すると、デバイス登録が失敗し始めます。
  • 次のようなエラーが表示されることがあります。

*XSV-350023 タイプ ‘nms:appSubscriptionRcpStg’*のドキュメントを保存できません
QUE-370007要素「購読者アプリケーション (ステージング)」のキー値が見つかりません
要素’mobileApp’が不明

解決策 resolution

原因

autoStg="true"は、既存のステージングスキーマを既に使用している標準スキーマを拡張するための汎用メカニズムではありません。

カスタムスキーマとそのステージングモデルをゼロから作成する、サポートされているユースケースで機能します。 nms:appSubscriptionRcpを拡張するには正しいアプローチではありません。このスキーマは既に標準のステージングスキーマ nms:appSubscriptionRcpStgに依存しています。 この場合にautoStg="true"を有効にすると、予期したすぐに使用できる構造、リンク、キーが保持されないように、ステージングスキーマの自動再生成をトリガーできます。

解決策

次のアプローチを使用します。

ACC v8 FFDAで標準のサブスクリプションスキーマを使用する場合、appSubscriptionRcp拡張機能でautoStg="true"を有効にしないでください。
両方のスキーマを明示的に拡張します。

  • メインの購読スキーマ
  • デバイス登録の永続化に使用されるステージングスキーマ

registerDeviceで使用されるステージングパスに存在するフィールドにサブスクリプションパラメーターをマッピングします。
エンドツーエンドのフローを検証するには、次の点を確認します。

  • リクエストペイロードにはadditionalParametersが含まれています
  • ステージングスキーマには、必要なカスタムフィールドが含まれています
  • 値はデバイス登録後も保持されます

autoStg="true"が既に適用されている場合:

appSubscriptionRcp拡張機能からautoStg="true"を削除します。
nms:appSubscriptionRcpStgを標準の定義に戻します。
自動生成を使用する代わりに、ステージングスキーマの明示的な拡張機能を使用して、必須のカスタムフィールドを再適用します。
キャッシュを再読み込みし、必要に応じて関連サービスを再起動して、修正されたスキーマ定義を一貫して取得します。
registerDeviceを再テストします。

recommendation-more-help
experience-cloud-kcs-help-kbarticles