Sitecore工作流程不起作用

时间:2015-03-25 18:16:00

标签: workflow sitecore

我已经有一个带有模板A的内容项(项目)。 模板A最初没有设置任何工作流程,我在模板的标准值中设置了新的工作流程。

如果我转到内容项的工作流程部分,则只有"默认工作流程"更新。字段"工作流"和"州"即使我设置了#34;初始状态"在工作流程的属性中,如下面的屏幕截图所示。因此,工作流程不适用于该项目。

但是,如果我使用已设置工作流程的模板创建新项目,我可以根据其初始工作流程设置查看所有已填充的工作流程字段。因此,工作流程非常有效。

我有许多没有工作流程设置的网页,我即将在其模板中分配新的工作流程。

我该如何解决这个问题???????


enter image description here

2 个答案:

答案 0 :(得分:2)

我使用的是Powershell Script,它看起来像这样。 它会更新空字段并完美运行。

##################################################################
##  1. Set default workflow state in template's standard value  ##
##  2. Before running script, must set correct Context Item     ##
##################################################################

function SetWorkflow($item)
{
    ## Update only items assigned __Default workflow
    if ($item."__Default workflow" -eq "{A5BC37E7-ED96-4C1E-8590-A26E64DB55EA}") {
        $item.__Workflow = "{A5BC37E7-ED96-4C1E-8590-A26E64DB55EA}";
        $item."__Workflow state" = "{190B1C84-F1BE-47ED-AA41-F42193D9C8FC}";
    }
}

## Update correct workflow information.
get-item . -Language * | foreach-object { SetWorkFlow($_) }
get-childitem . -recurse -Language * | foreach-object { SetWorkFlow($_) }

## Show Updated Result
get-item . -Language * | Format-Table Id, Name, Language, __Workflow, "__Workflow state", "__Default workflow"
get-childitem . -recurse -Language * | Format-Table Id, Name, Language, __Workflow, "__Workflow state", "__Default workflow"

答案 1 :(得分:1)

在标准值项目上设置默认工作流程值时,它不会自动执行并将现有项目版本添加到特定工作流程状态。这是因为之前发布的任何内容都将取消发布,因为它将进入工作流的默​​认状态,这通常是草稿状态。

下次将项目添加到现在具有工作流程的项目时(显式或通过“编辑”作为较低级别用户),应将其状态设置为草稿,如您所料。

如果您需要将现有版本的项目迁移到特定州的工作流程中,您可能需要通过代码执行此操作。