关闭超出交易范围的Alfresco政策

时间:2016-03-07 15:27:28

标签: java alfresco

我想创建一个服务,通过QName从外部系统打开和关闭策略。首先,我想禁用可审计的策略,以防止我的外部系统推送内容并设置修改/创建的日期。我知道BehaviourFilter,但这些更改仅限于当前事务。 我希望能够在不重新启动系统的情况下控制开启和关闭政策。

除了单个交易之外,如何防止策略在指定的时间内触发?

2 个答案:

答案 0 :(得分:3)

Alfresco的可审计政策经常受到骚扰,所需的工作是不必要的浪费时间。我想讨论一个更有效的解决方案,但由于Alfresco结合了两个不应该合并的东西,因此可以避免将来更加灵活的麻烦:

  • 修改并创建日期
  • 审核修改日期和创建日期

第一个暴露于文件协议,应该可以从客户端写入。有太多的用例我们需要设置日期(从露天移动文件到本地应用程序,如果日期由服务器更改则会生效)

第二个仅适用于管理员和合规人员,应该通过服务API和Web UI公开为独立属性 - 而不是通过文件协议。

由于Alfresco只将一个用例集合在一个数据库列/一个属性中,我们总是遇到麻烦。文件协议用例无法正常工作,或者我们无法信任审计属性。

我的建议是通过在模型中引入2个新属性来区分它:

  • createdDate,modifiedDate(目前仅保留审核时间)

并将这些属性映射到文件协议的日期。 如果客户端没有设置策略,那么策略将管理这些属性的更新(所有文件协议除外?)

我的目的是将其置于社区模块/补丁中。

对此方法的任何反馈?也许有人赞助这个?

答案 1 :(得分:2)

您很了解BehaviourFilter很不错,但您可能错过了为什么您不应该在一段时间内完全禁用该政策然后重新启用 - 启用它。如果外部系统偶然发送信号以禁用策略并且并行用户正在使用Alfresco并上传,则意味着它不再被触发。

因此,你真的应该在外部系统的写作交易中使用 BehaviourFilter

如何: 创建自定义webscript,禁用QNAME / Node的BehaviourFilter并再次重新启用它。如果你看一下Alfresco的RecordsManagement代码,它就会使用相同的原则。