我已将文档版本应用于顶层空间..我将6个文档复制到空间&随机编辑&它是创建版本..我想删除空间中的所有以前的版本..我怎么能实现这一个..
这不是一个疯狂的问题,这是我的客户要求之一......
请提出任何建议来实现这一目标......
由于 穆拉利
答案 0 :(得分:4)
我想这很简单:
import java.util.List;
import org.alfresco.repo.action.executer.ActionExecuterAbstractBase;
import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.ParameterDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.version.VersionService;
public class DeleteVersionHistoryActionExecuter extends ActionExecuterAbstractBase{
private VersionService versionService;
@Override
protected void executeImpl(Action action, NodeRef actionedUponNodeRef) {
versionService.deleteVersionHistory(actionedUponNodeRef);
}
@Override
protected void addParameterDefinitions(List<ParameterDefinition> paramList) {
// TODO Auto-generated method stub
}
public void setVersionService(VersionService versionService) {
this.versionService = versionService;
}
}
在* .context.xml文件中定义ActionExecuter
<?xml version='1.0' encoding='UTF-8'?>
<bean name="deleteVersionHistoryAction" class="com.your.package.DeleteVersionHistoryActionExecuter" parent="action-executer">
<property name="versionService" ref="versionService" />
</bean>
现在重新启动你的Alfresco,你现在可以使用你的ActionExecter了。 使用runas功能,或在文件夹上定义规则,触发操作。
答案 1 :(得分:2)
VersionService同时提供deleteVersion和deleteVersionHistory。目前无法通过Javascript访问此类方法,因此您需要编写一些Java代码。我建议你编写一个调用这些方法的自定义Java Action。