Kampagne: registerDevice zusätzliche Parameter fehlen in appSubscriptionRcp
In Adobe Campaign Classic v8 FFDA besteht eine gängige Anpassung darin, zusätzliche Abonnementattribute hinzuzufügen und sie über die mobile registerDevice-API aufzufüllen. Dies kann fehlschlagen, wenn die Erweiterung von nms:appSubscriptionRcp in einer Schemafamilie, die bereits über ein vorkonfiguriertes Staging-Schema verfügt, auf autoStg=„true“ angewiesen ist. In diesem Fall können die zusätzlichen Parameter möglicherweise nicht korrekt gespeichert werden. In einigen Situationen kann das Staging-Schema in einen nicht funktionierenden Status regeneriert werden.
Beschreibung description
Eine benutzerdefinierte Implementierung fügt nms neue Felder hinzu :appSubscriptionRcp übergibt Werte mithilfe zusätzlicher Parameter über den mobilen registerDevice-Aufruf.
Symptome können sein:
- Die registerDevice-Anfrage enthält die zusätzlichen Parameter, die Werte werden jedoch nicht beibehalten.
- Einfügungen oder Aktualisierungen für die Staging-Tabelle enthalten nicht die erwarteten benutzerdefinierten Spalten.
- Nach der Aktivierung von autoStg=„true“ in der appSubscriptionRcp-Erweiterung und der Aktualisierung der Datenbankstruktur schlägt die Geräteregistrierung fehl.
- Es können Fehler wie die folgenden auftreten:
XSV-350023 Dokument vom Typ ‘nms’ kann nicht gespeichert :appSubscriptionRcpStg
QUE-370007 Schlüsselwerte für das Element ‘Abonnierte Anwendung (Staging)’ können nicht gefunden werden
Element ‘mobileApp’ unbekannt
Lösung resolution
Ursache
autoStg=„true“ ist kein allgemeiner Mechanismus zum Erweitern von vorkonfigurierten Schemas, die bereits ein vorhandenes Staging-Schema verwenden.
Es eignet sich für unterstützte Anwendungsfälle, in denen ein benutzerdefiniertes Schema und sein Staging-Modell von Grund auf neu erstellt werden. Es ist nicht der richtige Ansatz für die Erweiterung von nms:appSubscriptionRcp, da dieses Schema bereits von dem vorkonfigurierten Staging-Schema nms:appSubscriptionRcpStg abhängt. Durch die Aktivierung von autoStg=„true“ in diesem Fall kann der Trigger das Staging-Schema automatisch so neu erstellen, dass die erwartete vordefinierte Struktur, Links und Schlüssel nicht beibehalten wird.
Lösung
Verwenden Sie den folgenden Ansatz:
Aktivieren Sie autoStg=„true“ nicht für die appSubscriptionRcp-Erweiterung, wenn Sie mit dem vordefinierten Abonnementschema in ACC v8 FFDA arbeiten.
Beide Schemata explizit erweitern:
- Das Hauptabonnement-Schema
- Das für die Persistenz bei der Geräteregistrierung verwendete Staging-Schema
Ordnen Sie die Abonnementparameter Feldern zu, die im von registerDevice verwendeten Staging-Pfad vorhanden sind.
Validieren Sie den End-to-End-Fluss, indem Sie Folgendes bestätigen:
- Die Anfrage-Payload enthält zusätzliche Parameter
- Das Staging-Schema enthält die erwarteten benutzerdefinierten Felder
- Die Werte werden nach der Geräteregistrierung beibehalten
Wenn autoStg=„true“ bereits angewendet wurde:
Entfernen Sie autoStg=„true“ aus der appSubscriptionRcp-Erweiterung.
Stellen Sie :appSubscriptionRcpStg nms6 auf die vordefinierte Definition zurück.
Wenden Sie die erforderlichen benutzerdefinierten Felder über eine explizite Erweiterung des Staging-Schemas erneut an, anstatt die automatische Generierung zu verwenden.
Laden Sie die Caches neu und starten Sie bei Bedarf die relevanten Services neu, damit die korrigierte Schemadefinition konsistent übernommen wird.
Registergerät erneut testen.