0

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

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

4

1 回答 1

2

您描述的行为就是文档所说的。仅当项目处于最终工作流程状态时才会创建项目的新版本,并且

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

还有一个重要信息:

确保内容作者或其他工作流用户没有 Sitecore 管理员帐户。否则,工作流将表现不同。有关 Sitecore 管理员的工作流行为为何不同的更多信息,请参阅使用工作流部分。

根据工作流参考文档,当用户保存对项目的更改时,您可以使用 __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();
    }
} 

有关在此处创建自定义操作的更多信息。链接到工作流参考

于 2013-08-06T06:30:29.877 回答