恢复到工作流之前的文档版本 - 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);
}
在我的自定义工作流程中,我在创建工作流程时对 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);
}