Campaign: la sincronizzazione dei modelli di AEM non riesce dopo la modifica della posizione dei modelli in AEM

Quando Adobe Campaign tenta di sincronizzare un modello e-mail di AEM tramite l’endpoint .campaign.link.json, l’operazione può non riuscire con un errore JST-310000 JSON.parse anche se il modello sembra esistere e la sincronizzazione di base sembra funzionare. Questo problema può verificarsi quando un componente della pagina e-mail di AEM personalizzato eredita dalla pagina dei componenti core E-mail utilizzando un percorso assoluto dell’archivio invece del tipo di risorsa relativo previsto dalla risoluzione del servlet Sling.

Descrizione description

Un cliente ha segnalato che i precedenti modelli e-mail di AEM continuavano a funzionare, ma i modelli più recenti basati su un componente pagina e-mail non riuscivano quando venivano aperti o sincronizzati da Campaign.

Il sintomo visibile in Campaign è stato un errore JST-310000 durante la compilazione dello script ‘nms:amcIntegration.js’ causato da JSON.parse.

Il cliente stava tentando di inviare da AEM una nuova pagina di modelli di campagna basati sul componente core e-mail e modificabili per sua natura.
Il tipo di risorsa utilizzato era : /apps/aem-crm/components/email/page and superType era : /apps/core/email/components/page/v1/page consigliato da Adobe in quanto i vecchi componenti mcm diventeranno obsoleti.

Nel complesso, la sincronizzazione tra AEM e Campaign funzionava e i modelli erano visibili nell’elenco di selezione, ma quando sono stati selezionati i nuovi modelli sul componente core e-mail, è stato visualizzato l’errore.

Il cliente ha aggiunto i valori appropriati all’opzione AEMResourceTypeFilter in 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/page/v1/page

Risoluzione resolution

Causa principale

La sincronizzazione non riesce perché LinkServlet di AEM (che gestisce l’endpoint .campaign.link.json e restituisce il JSON previsto da Campaign) non viene richiamato per un modello problematico. Viene invece eseguito il gestore POST predefinito di Sling e restituisce una risposta HTML, che Campaign non riesce ad analizzare (errore JSON.parse).

Ciò si verifica perché il componente del cliente /apps/aem-crm/components/email/page dichiara il proprio sling:resourceSuperType utilizzando un percorso assoluto:

sling:resourceSuperType = “/apps/core/email/components/page/v1/page”

LinkServlet è registrato per il modulo relativo core/email/components/page/v1/page (senza /apps/). Sling tratta questi elementi come chiavi diverse, pertanto non è in grado di trovare il servlet camminando nella gerarchia dei componenti.

Risoluzione

Nella definizione del componente personalizzato del cliente (/apps/aem-crm/components/email/page/.content.xml nella propria origine di progetto AEM), modifica sling:resourceSuperType dal percorso assoluto al modulo relativo:

< !— Prima di —>
sling:resourceSuperType=“/apps/core/email/components/page/v1/page”

< !— Dopo —>
sling:resourceSuperType=“core/email/components/page/v1/page”

Ridistribuisci il pacchetto dei componenti dopo questa modifica. Sling quindi percorrerà correttamente la catena dei superType e richiamerà LinkServlet, restituendo JSON a Campaign e risolvendo l’errore di sincronizzazione.

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