我目前正在从事一个项目,该项目需要我建立一个非常简单的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($_) }
该脚本运行无错误。
现在开始有趣了:当我打开项目时,我在Workflow上运行了该脚本,并且Workflow状态属性没有更改。奇怪的是,编辑器说空值是从标准值继承的,尽管标准值不为空,但我已经设置了这些值!
您可能会说脚本可能已失败,并且未设置任何值。除了当我在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.
我尝试手动设置项目的工作流和工作流状态属性。可以,我可以一次完成工作流程。添加新版本后,工作流和工作流状态属性默认恢复为“空”标准值,这会破坏该项目的工作流。
有人知道这里发生了什么吗?如何一劳永逸地设置工作流程和工作流程状态属性?
在基本模板的“标准值”上,您是否在Workflow
现场设置了工作流程?实际上,它需要在Default workflow
现场设置。其他3个字段是“当前状态”字段,即,它存储该项目当前处于工作流的哪个阶段,应在模板和标准值中将这些字段留空。
来自Sitecore工作流程参考的3.3.1节的更多信息:
为项目分配工作流程
默认情况下,项目在创建时不放置在工作流中。如果为相应的数据模板标准值项目设置了“初始”工作流程,则Sitecore仅将项目放置在工作流程中。初始工作流程对应于标准模板中的默认工作流程字段。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句