如何使用Java在Alfresco中编辑修改和修饰符属性
问题描述:
我想在使用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中将自定义值设置为修饰符和修改属性。
答
当您正在测试与露天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这个问题。 –
日志中有错误吗? – Akah
日志Akah没有错误。 –