如何删除特定空间/文档的版本

时间:2011-03-08 08:37:31

标签: alfresco

我已将文档版本应用于顶层空间..我将6个文档复制到空间&随机编辑&它是创建版本..我想删除空间中的所有以前的版本..我怎么能实现这一个..

这不是一个疯狂的问题,这是我的客户要求之一......

请提出任何建议来实现这一目标......

由于 穆拉利

2 个答案:

答案 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同时提供deleteVersiondeleteVersionHistory。目前无法通过Javascript访问此类方法,因此您需要编写一些Java代码。我建议你编写一个调用这些方法的自定义Java Action