无法在 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.
我目前正在从事一个项目,该项目要求我设置一个非常简单的 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.