恢复到工作流之前的文档版本 - Alfresco

Revert to the version of the document before workflow - Alfresco

在我的自定义工作流程中,我在创建工作流程时对 PDF 进行了一些更改:

<activiti:executionListener event="start" class="pt.entp.fields.CreateFields"></activiti:executionListener>

我想,当我取消工作流时,工作流会清除创建时所做的更改。没有办法做到这一点?

首先将您的当前版本存储在启动工作流侦听器中:

    NodeRef myPdfnode = ...
    String currentversion = serviceRegistry.getVersionService.getCurrentVersion(myPdfnode).getVersionLabel(); 
    execution.setVariable("mynode_currentversion", currentversion);

您将需要使用结束工作流侦听器恢复 pdf 文档的版本

 <activiti:executionListener event="end"
 class="pt.entp.fields.WorkflowEnded"></activiti:executionListener>

在那里,检查工作流是否确实被取消,然后恢复到您保存的版本:

 String deleteReason = execution.getDeleteReason();

     if ("cancelled".equals(deleteReason)){
       NodeRef myPdfnode = ...
       String initialversionLabel = execution.getVaraible("mynode_currentversion");
       Version initialversion = serviceRegistry.getVersionService.getVersionHistory(myPdfnode).getVersion(initialversionLabel );
       serviceRegistry.getVersionService.revert(myPdfnode, initialversion);
     }