【发布时间】:2020-02-28 11:28:01
【问题描述】:
我需要在 OTB 删除工作流物理删除节点之前审核 JCR 节点的属性。
AEM 提供了几种侦听已删除事件的方法。我已经尝试过 EventListener 和 ResourceChangeListner。当触发删除时,这两种情况都会提醒我的代码。但是,在 onChange 路径上执行 session.getNode 时,我收到“不存在”。
为了验证我使用的是正确的会话/用户/等,我测试了我 AM 能够检索节点的父节点。因此,这证明我拥有正确的权限,并且在节点已经消失后通知我的侦听器。此外,我至少看过一次这项工作,所以这显然是一种竞争条件。有时我会在节点消失之前收到警报,有时我不会。
那么,我如何保证我的代码将在 JCR 节点实际消失之前被调用?
在您引用this post 之前,我将应用解决方案#2 和#3。两者都有相同的比赛条件结果。 #1 没有描述如何与现有的 OTB AEM“删除”“工作流程”联系起来,这可能吗?
【问题讨论】:
-
我不是 100% 确定...但您可能想查看观察 JCR API:docs.adobe.com/docs/en/spec/jcr/2.0/12_Observation.html.If,这无济于事:复制 OTB 工作流,禁用 OTB 工作流启动器,创建您自己的工作流程并通过启动器启用它并在那里添加您的要求。