2017-10-18 78 views
1

我想在使用java webscript的Alfresco中设置修改和修改属性的自定义值。我正在使用以下代码来实现此目的:如何使用Java在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中将自定义值设置为修饰符和修改属性。

+0

日志中有错误吗? – Akah

+0

日志Akah没有错误。 –

回答

0

当您正在测试与露天CE你的代码,你有没有登录为管理用户,当你与露天企业测试代码,你的身份登录 非管理员用户?

使用像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); 

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

希望这有助于你。

+0

我在Alfresco的CE和企业版本中使用runAsSystem执行web脚本,并仍然面临Murali这个问题。 –