Sitecore工作箱不跟踪更改,我可以覆盖它吗?

时间:2013-08-06 04:22:17

标签: sitecore

Sitecore工作箱不会创建新版本,因此它不会跟踪更改集。 (工作人员正在由员工使用,管理员需要跟踪这些更改。) 根据我的注意,当项目未处于最终工作流状态时,Sitecore允许覆盖内容,但如果项目处于最终工作流状态,它将创建一个跟踪所有这些更改的新版本。 / p>

是否可以为非最终工作流程状态创建新版本?这是个好主意吗?为什么Sitecore默认不这样做?

1 个答案:

答案 0 :(得分:2)

您描述的行为就是文档所说的。仅当项目处于最终工作流程状态且

时才会创建新版本的项目
  

下次内容作者单击此项目的编辑以将其锁定   在进行更改之前,Sitecore会自动创建新版本   项目并将新版本置于草稿状态,而   第一版仍然出版。

还有重要信息:

  

确保内容作者或其他工作流程用户没有   Sitecore管理员帐户。否则,工作流程将表现出来   不同。有关工作流行为原因的详细信息   与Sitecore管理员不同,请参阅使用a   工作流程。

根据工作流程参考文档,您可以使用__OnSave命令在用户保存对项目的更改时创建项目的新版本。

使用/ sitecore / templates / System / Workflow / Action模板创建自定义操作。

创建一个实现所需行为的类。

namespace OnAction
{
   public class WorkflowAction
   {
      public void Process(WorkflowPipelineArgs args)
      {

      }
   }
}

以下是创建新项目版本的示例:

var language = Sitecore.Globalization.Language.Parse("en");
var item = master.GetItem(itemPath, language);

using (new Sitecore.SecurityModel.SecurityDisabler())
{
    try
    {
        item .Versions.AddVersion();
        item .Editing.BeginEdit();
               ....
        item .Editing.EndEdit();
        item .Editing.AcceptChanges();
    }
    catch (Exception ex)
    {
        item .Editing.CancelEdit();
    }
} 

有关创建自定义操作here的详细信息。链接到workflow reference