1

我正在尝试使用 java webscript 在 Alfresco 中使用自定义值设置修饰符和修改后的属性。我正在使用下面的代码来实现这一点:

try{

    behaviourFilter.disableBehaviour(mainNodeRef, ContentModel.ASPECT_AUDITABLE);

    serviceRegistry.getNodeService().setProperty(mainNodeRef, ContentModel.PROP_MODIFIED, migValuesVO.getModified());
    serviceRegistry.getNodeService().setProperty(mainNodeRef, ContentModel.PROP_MODIFIER, migValuesVO.getModifier());

}

finally{
    behaviourFilter.enableBehaviour(mainNodeRef, ContentModel.ASPECT_AUDITABLE);
}

此代码在 Alfresco 社区版本中正常工作。此代码未设置我在 Alfresco 企业版中运行时传递给修饰符和修改的值。

请帮助我了解如何在 Alfresco 中将自定义值设置为修饰符和修改的属性。

4

1 回答 1

0

当您使用 Alfresco CE 测试您的代码时,您是否以管理员用户身份登录,而当您使用 Alfresco Enterprise 测试您的代码时,您是否以非管理员用户身份登录?

使用提升的权限运行您的代码,例如 runAsSystem 或 runAs Admin 用户,如下所示。

AuthenticationUtil.runAs(new RunAsWork<Void>() {
    @Override
    public Void doWork() throws Exception {
       try{
            behaviourFilter.disableBehaviour(mainNodeRef, ContentModel.ASPECT_AUDITABLE);
            serviceRegistry.getNodeService().setProperty(mainNodeRef, ContentModel.PROP_MODIFIED, migValuesVO.getModified());
            serviceRegistry.getNodeService().setProperty(mainNodeRef, ContentModel.PROP_MODIFIER, migValuesVO.getModifier());
        }
        finally{
            behaviourFilter.enableBehaviour(mainNodeRef, ContentModel.ASPECT_AUDITABLE);
        }
      return null;
    }
  }, ADMIN_USER_NAME);

注意,上面的代码没有经过测试。

希望这对您有所帮助。

于 2017-10-19T03:08:47.907 回答