由于fmPostProcessedAt属性过时,DITA映射或主题引用中断

在具有AEM Guides的Adobe Experience Manager as a Cloud Service (AEMaaCS)或AEM 6.5中工作时,DITA映射或主题引用可能显示为已损坏,并且UI中可能缺少输出预设。 这通常发生在资产因fmPostProcessedAt属性过期而无法同步时 — 通常在手动部署或迁移之后。 要解决此问题,请使用DAM更新资产工作流重新处理受影响的资产。

描述 description

环境

  • 产品: Adobe Experience Manager (AEM) — 站点
  • 版本: AEM 6.5、AEM as a Cloud Service (AEMaaCS)

问题/症状

  • 部署后,即使存储库中存在主题,DITA映射主题引用在创作UI中显示为损坏(红色)。

  • 由于主题引用未解析或损坏,PDF或其他输出生成失败。

  • 在刷新页面或生成文档后,新创建的输出预设从AEM Guides UI中消失,但在CRXDE中可见。

  • /bin/guides/presets终结点返回受影响映射的​ 500服务器 ​错误。

  • 警告/错误日志包含如下消息:

    • 已找到ref GUID-xxxx.ditamap的节点……但由于不同步而返回null
    • com.adobe.fmdita.rest.presets.PresetsAPI错误: {"errorCode":"DXML_MESSAGE_0004"}
    • java.lang.NullPointerException…
  • 在环境之间手动DITA内容包部署或迁移会导致DITA资产不同步。

原因

当DITA资产不同步(通常是由于jcr:createdfmPostProcessedAt属性不匹配)时,会出现此问题。 这种不匹配会导致Guides UI和API无法正确解析主题引用和输出预设。

导致这种不同步状态的常见原因包括:

  • 通过包或管道迁移DITA内容而不触发后处理。
  • 在AEM中手动导入或编辑DITA资源。
  • 部署后资源工作流处理不完整或失败。

解决方法 resolution

要解决此问题,请执行以下步骤:

  1. 通过检查错误日志中是否存在不匹配的​ ​值,识别标记为jcr:created不同步fmPostProcessedAt的资源。

  2. 使用AEM中的标准DAM更新资产工作流重新处理受影响的资产,该工作流包括DXML后处理启动器(com.adobe.fmdita.postprocess.PostProcessJobInitiator)步骤,可确保fmPostProcessedAt值正确更新。

  3. 创建自定义工作流(如有必要):

    • 在AEM中配置仅包含 DXML后处理启动器 步骤的新工作流模型。
    • 在受影响的映射或主题上执行此工作流以更新其同步状态。
  4. 验证中断的主题引用是否已得到解析,输出生成是否成功完成,预设是否在AEM Guides UI中正确显示,/bin/guides/presets是否返回预期的结果。

相关阅读

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f