Campaign : la synchronisation des modèles AEM échoue après avoir modifié l’emplacement des modèles dans AEM

Lorsqu’Adobe Campaign tente de synchroniser un modèle d’e-mail AEM avec le point d’entrée .campaign.link.json, l’opération peut échouer avec une erreur JSON.parse JST-310000, même si le modèle semble exister et que la synchronisation de base semble fonctionner. Ce problème peut se produire lorsqu’un composant de page d’e-mail AEM personnalisé hérite de la page des composants principaux d’e-mail en utilisant un chemin de référentiel absolu au lieu du type de ressource relative attendu par la résolution du servlet Sling.

Description description

Un client a signalé que les anciens modèles d’e-mail AEM continuaient à fonctionner, mais que les modèles plus récents basés sur un composant de page d’e-mail échouaient lorsqu’ils étaient ouverts ou synchronisés à partir de Campaign.

Le symptôme visible dans Campaign était une erreur JST-310000 lors de la compilation du script ‘nms:amcIntegration.js’ causée par JSON.parse.

Le client tentait de pousser une nouvelle page de modèles de campagne à partir d’AEM qui était construite sur le composant principal d’e-mail et modifiable par nature.
Le type de ressource utilisé était : /apps/aem-crm/components/email/page et superType était : /apps/core/email/components/page/v1/page, recommandé par Adobe car les anciens composants mcm vont être abandonnés.

Dans l’ensemble, la synchronisation entre AEM et Campaign fonctionnait et les modèles étaient visibles dans la liste de sélection, mais lorsque les nouveaux modèles sur le composant principal d’e-mail ont été sélectionnés, l’erreur s’est produite.

Le client a ajouté les valeurs appropriées à l’option AEMResourceTypeFilter dans Campaign :
mcm/campaign/components/newsletter,mcm/campaign/components/campaign_newsletterpage,mcm/neolane/components/newsletter,/apps/aem-crm/templates/campaign-newsletter-template-2025,/apps/aem-crm/components/email/page,/apps/core/email/components/page/v1/page

Résolution resolution

Cause première

La synchronisation échoue, car le LinkServlet AEM (qui gère le point d’entrée .campaign.link.json et renvoie le fichier JSON attendu par Campaign) n’est pas appelé pour le modèle problématique. Au lieu de cela, le gestionnaire POST par défaut de Sling s’exécute et renvoie une réponse HTML, que Campaign ne parvient pas à analyser (erreur JSON.parse).

Cela se produit, car le composant du client /apps/aem-crm/components/email/page déclare son sling:resourceSuperType à l’aide d’un chemin absolu :

sling:resourceSuperType = « /apps/core/email/components/page/v1/page »

LinkServlet est enregistré pour le formulaire relatif core/email/components/page/v1/page (sans /apps/). Sling les traite comme des clés différentes et ne peut donc pas trouver le servlet en parcourant la hiérarchie des composants.

Résolution

Dans la définition de composant personnalisé du client (/apps/aem-crm/components/email/page/.content.xml dans leur source de projet AEM), remplacez sling:resourceSuperType du chemin absolu vers le formulaire relatif :

< !— Avant —>
sling:resourceSuperType=« /apps/core/email/components/page/v1/page »

< !— Après —>
sling:resourceSuperType=« core/email/components/page/v1/page »

Redéployez le package de composant après cette modification. Sling parcourt alors correctement la chaîne superType et appelle le LinkServlet, renvoyant le JSON à Campaign et résolvant l’erreur de synchronisation.

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