如何在Adobe Experience Manager中删除JCR节点之前读取其属性?



在OTB删除的工作流物理删除JCR节点之前,我需要审核该节点的属性。

AEM提供了几种监听已删除事件的方法。我已经尝试了EventListener和ResourceChangeListner。当触发删除时,这两种情况都会提醒我的代码。但是,在onChange路径上执行session.getNode时,我收到一个"不存在"。

为了验证我使用的是正确的会话/user/etc,我测试了IAM是否能够检索节点的父节点。因此,这证明了我拥有正确的权限,并且在节点离开后,我的侦听器会得到通知。此外,我至少看过一次这部作品,所以这显然是一种比赛条件。有时我会在节点消失之前收到警报,有时我不会。

那么,我如何保证在JCR节点实际消失之前,我的代码将被调用

在你参考这篇文章之前,我正在应用解决方案#2和#3。两者的比赛条件结果相同#1没有描述如何绑定到现有的OTB AEM"删除"工作流"中,这可能吗?

要回答最后一个问题,是的,这是可能的,在我看来是最简单的方法
请在此处查看如何扩展工作流
请参阅官方文档中的此处,了解如何以编程方式与工作流交互。

如果您需要读取特定节点上的数据,也可以编写自己的工作流,并使用工作流启动器将其应用于这些节点。查看此

最新更新