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を再テストします。