如何将项目从1工作流程移动到另一个工作流程,然后返回到Sitecore中的第一个工作流程?

问题描述:

我试图将2个工作流程链接在一起:如何将项目从1工作流程移动到另一个工作流程,然后返回到Sitecore中的第一个工作流程?

项目在工作流程“A”中创建/编辑。当提交该项目时,它会转到工作流程“B”进行审批。一旦获得批准,工作流程“B”将进入批准状态。

我想要的是让项目在工作流程“B”批准后返回工作流程“A”。这可能吗?如果是的话如何?

(使用Sitecore的7.2)

+0

您的工作流程B是否自动发布该项目?您是否想要发布并在工作流A中创建新草案?您是否希望不发布该项目并将其移至工作流程A中的状态Y? – 2014-09-04 16:11:24

+0

工作流程B将发布该项目。是的,希望在工作流程A中创建一个新草案,一旦它获得批准并发布。 – Harnamc 2014-09-04 16:16:47

这听起来像一个custom Workflow Action会做的伎俩。假设您的项目有工作流程A配置为模板标准值的默认工作流程,所有此工作流程操作需要执行的操作是添加新版本。新版本将自动置于工作流程A中的草稿状态。

public class AddVersionWorkflowAction 
{ 
    public void Process(WorkflowPipelineArgs args) 
    { 
     // TODO: check for nulls, assertions, etc. 

     args.DataItem.Versions.AddVersion(); 
    } 
} 
+0

项目工作流= masterDB.Items [“工作流项目路径”]; newVersion.Fields [FieldIDs.Workflow] .Value = workflow.ID.ToString();我正在尝试在验证后将该项目移动到另一个工作流程。但使用上面的代码不会改变sitecore。我错过了什么? – Harnamc 2014-09-05 11:40:46

您不需要实施自定义工作流程操作。您可以在属于不同工作流程的工作流程命令项目上定义“下一个状态”。刚刚测试过,它的工作。