无法在sitecore项目上设置工作流程和工作流程状态属性

时间:2015-03-09 15:20:50

标签: powershell workflow sitecore sitecore7.2

我目前正在开展一个项目,要求我设置一个非常简单的sitecore工作流程。在修改现有项目以使用我的新工作流程时,我遇到了一些困难。这就是我所做的:

当contentmanager开始编辑项目时,工作流会创建一个新版本,并在单击提交按钮时发布该项目。

Sitecore workflow items

我将这些工作流程项添加到模板的标准值中:

Workflow settings of standard values of templates

下一步是在现有项目上设置工作流程设置。幸运的是,我们可以使用sitecore-powershell为我们做这件事。

function SetWorkflow($item)
{
    $item.__Workflow = "{DE29E564-3157-4CAB-81B1-87DF2E983517}";
    $item."__Workflow state" = "{27633BF0-B76A-4450-A139-BA53F6943778}";
}

get-childitem . -recurse -Language * | foreach-object { SetWorkFlow($_) }

此脚本运行时没有错误。

现在开始有趣了:当我打开项目时,我在工作流和工作流状态属性上运行此脚本没有改变。奇怪的是,编辑说空值是从标准值继承的,虽然标准值不是空的,我设置了这些值!

Workflow settings of the items

你会说脚本可能已经失败并且没有设置任何值。除非我在sitecore-powershell中查看值,否则我可以看到值存在。

get-childitem . -recurse -Language * | Format-Table Id, Language, __Workflow, "__Workflow state"

ID                                                          Language                                                    __Workflow                                                  __Workflow state
--                                                          --------                                                    ----------                                                  ----------------
{208D79B1-5B42-4713-A7F9-F2109588F639}                      en                                                          {DE29E564-3157-4CAB-81B1-87DF2E983517}                      {27633BF0-B76A-4450-A139-BA53F6943778}
{208D79B1-5B42-4713-A7F9-F2109588F639}                      nl-NL                                                       {DE29E564-3157-4CAB-81B1-87DF2E983517}                      {27633BF0-B76A-4450-A139-BA53F6943778}
{3F3B1132-02DA-4E75-928F-BDB8AED5C3CD}                      nl-NL                                                       {DE29E564-3157-4CAB-81B1-87DF2E983517}                      {27633BF0-B76A-4450-A139-BA53F6943778}
{8AF23DC5-E7FE-47E3-AC65-AA3D41D81F97}                      en                                                          {DE29E564-3157-4CAB-81B1-87DF2E983517}                      {27633BF0-B76A-4450-A139-BA53F6943778}
{8AF23DC5-E7FE-47E3-AC65-AA3D41D81F97}                      nl-NL                                                       {DE29E564-3157-4CAB-81B1-87DF2E983517}                      {27633BF0-B76A-4450-A139-BA53F6943778}

etc.etc.

我尝试手动设置项目的工作流程和工作流程状态属性。这有点工作,我可以通过工作流程一次。添加新版本时,工作流和工作流状态属性默认返回其“空”标准值,这会破坏该项目的工作流程。

有谁知道这里发生了什么?如何一劳永逸地设置工作流和工作流状态属性?

1 个答案:

答案 0 :(得分:3)

在基本模板的标准值上,您是否在Workflow字段上设置了工作流程?它实际上需要在Default workflow字段上设置。其他3个字段是“当前状态”字段,即它存储项目当前所在工作流程的哪个阶段,这些字段应在模板和标准值中保留为空白。

Sitecore Workflow Reference的第3.3.1节中的更多信息:

  

将工作流程分配给项目

     

默认情况下,项目在创建时不会放置在工作流程中。 Sitecore仅将项目放置在工作流程中   如果为相应的数据模板标准值项设置了“初始”工作流程。最初的   工作流程对应于标准模板中的默认工作流程字段。