Campaign: La sincronización de plantillas de AEM falla después de cambiar la ubicación de las plantillas en AEM

Cuando Adobe Campaign intenta sincronizar una plantilla de correo electrónico de AEM a través del punto de conexión .campaign.link.json, la operación puede fallar con un error JST-310000.parse aunque la plantilla parezca existir y la sincronización básica parezca funcionar. Este problema se puede producir cuando un componente de página de correo electrónico de AEM personalizado hereda de la página Componentes principales de correo electrónico mediante una ruta de repositorio absoluta en lugar del tipo de recurso relativo esperado por la resolución del servlet de Sling.

Descripción description

Un cliente informó de que las plantillas de correo electrónico de AEM anteriores seguían funcionando, pero que las más recientes basadas en un componente de página de correo electrónico fallaban al abrirse o sincronizarse desde Campaign.

El síntoma visible en Campaign fue un error JST-310000 al compilar el script ‘nms:amcIntegration.js’ causado por JSON.parse.

El cliente intentaba insertar una nueva página de plantillas de campaña desde AEM, que se basaba en el componente principal de correo electrónico y que era editable.
El tipo de recurso que se estaba utilizando era : /apps/aem-crm/components/email/page y superType era : /apps/core/email/components/page/v1/page, recomendado por Adobe, ya que los componentes mcm antiguos van a quedar obsoletos.

En general, la sincronización entre AEM y Campaign funcionaba y las plantillas eran visibles en la lista de selección, pero cuando se seleccionaron las nuevas plantillas del componente principal de correo electrónico, apareció el error.

El cliente añadió valores adecuados a la opción AEMResourceTypeFilter en 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

Resolución resolution

Causa raíz

La sincronización falla porque LinkServlet de AEM (que administra el extremo .campaign.link.json y devuelve el JSON que Campaign espera) no se invoca para la plantilla problemática. En su lugar, se ejecuta el controlador POST predeterminado de Sling y devuelve una respuesta de HTML, que Campaign no analiza (error JSON.parse).

Esto sucede porque el componente /apps/aem-crm/components/email/page del cliente declara su sling:resourceSuperType mediante una ruta absoluta:

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

LinkServlet está registrado para el formulario relativo core/email/components/page/v1/page (sin /apps/). Sling las trata como claves diferentes, por lo que no puede encontrar el servlet recorriendo la jerarquía de componentes.

Resolución

En la definición de componente personalizada del cliente (/apps/aem-crm/components/email/page/.content.xml en su origen del proyecto de AEM), cambie sling:resourceSuperType de la ruta absoluta al formulario relativo:

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

< !— Después de —>
sling:resourceSuperType=“core/email/components/page/v1/page”

Vuelva a implementar el paquete de componentes después de este cambio. Sling recorrerá correctamente la cadena superType e invocará el LinkServlet, devolviendo JSON a Campaign y resolviendo el error de sincronización.

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