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

Can't set workflow and workflow state properties on sitecore items

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

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

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

下一步是对现有项目设置工作流设置。幸运的是,我们可以使用 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($_) }

此脚本运行无误。

现在有趣的事情开始了:当我打开项目时,我 运行 这个关于工作流和工作流状态属性的脚本没有改变。奇怪的是,小编说空值是继承自标准值的,虽然标准值不为空,但我已经设置了这些!

您会说脚本可能已失败并且未设置任何值。除了当我在 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.

我尝试手动设置项目的工作流和工作流状态属性。这有点管用,我可以完成一次工作流程。添加新版本后,工作流和工作流状态属性默认恢复为 'empty' 标准值,这会破坏该项目的工作流。

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

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

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

Assigning Workflows to Items

By default, items are not placed in a workflow when created. Sitecore only places items in a workflow if the “Initial” workflow is set for the corresponding data template standard values item. The Initial workflow corresponds to the Default Workflow field in the Standard Template.