Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell Can';t在sitecore项目上设置工作流和工作流状态属性_Powershell_Workflow_Sitecore_Sitecore7.2 - Fatal编程技术网

Powershell Can';t在sitecore项目上设置工作流和工作流状态属性

Powershell Can';t在sitecore项目上设置工作流和工作流状态属性,powershell,workflow,sitecore,sitecore7.2,Powershell,Workflow,Sitecore,Sitecore7.2,我目前正在从事一个项目,该项目要求我设置一个非常简单的sitecore工作流。在修改现有项目以使用新工作流时,我遇到了一些困难。这就是我所做的: 当contentmanager开始编辑项目时,工作流将创建一个新版本,并在单击“提交”按钮时发布该项目 我已将这些工作流项添加到模板的标准值中: 下一步是对已经存在的项目设置工作流设置。幸运的是,我们可以使用sitecore powershell为我们做到这一点 function SetWorkflow($item) { $item.__W

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

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

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

下一步是对已经存在的项目设置工作流设置。幸运的是,我们可以使用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.
我尝试手动设置项目的工作流和工作流状态属性。这是可行的,我可以通过一次工作流程。添加新版本后,工作流和工作流状态属性默认恢复为其“空”标准值,从而中断该项目的工作流


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

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

更多信息请参见本手册第3.3.1节:

为项目分配工作流

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


很高兴看到您为它使用了PowerShell扩展,并且它似乎正在验证其结果。然而,让我担心的是,你不会在内容编辑器中看到它们。我的问题是,情况是否仍然如此。我在检查时经常犯的一个错误是,我检查了调用Get ChildItem-Recurse on的项,而脚本只对其子项起作用。:)我不是说这里是这样,但我已经运行了这个脚本,内容编辑器显示了您期望的结果,只是想知道为什么在您的情况下会有所不同。哎呀。。。我想我编辑了回复,而不是添加我自己的评论。。。对此我真的很抱歉:(嗨,Adam,sitecore内容编辑器可能无法显示powershell脚本设置的值,因为_工作流和_工作流状态字段是这些“当前状态”如jammykam所述的字段。Sitecore powershell一直是我其他powershell脚本的魅力所在。感谢您创建了这个很棒的工具!感谢您的好话。我无法忘记为什么您看不到结果。我已使用您的脚本在本地对其进行了测试(仅使用我的工作流ID)它在内容编辑器中显示得很好。还有一种可能性-如果您有多个版本的项目,则可能会在项目的另一个版本上设置值,这可能是这种情况吗?嗨,Adam,很抱歉延迟响应,我确认这些项目确实有多个版本。我检查并旧版本的改动很好。