首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sitecore不起作用

Sitecore不起作用
EN

Stack Overflow用户
提问于 2015-03-25 18:15:59
回答 2查看 1.5K关注 0票数 2

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

如果我转到内容项的工作流部分,只有“默认工作流”更新。"Workflow“和"State”字段是空的,即使我在工作流的属性中设置了“初始状态”,如下面的屏幕快照所示。因此,工作流流程不适用于该项。

但是,如果我使用模板已经设置的工作流创建新项,则可以根据其初始工作流设置看到所有已填充的工作流字段。因此,工作流过程是完美工作的。

我有许多没有工作流设置的页面,我将在它的模板中分配新的工作流。

我如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-26 18:33:53

我使用了Powershell脚本,它看起来像这样。它更新空字段并完美地工作。

代码语言:javascript
复制
##################################################################
##  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"
票数 2
EN

Stack Overflow用户

发布于 2015-03-26 05:02:23

当您在标准值项上设置默认工作流值时,它不会自动完成并将现有的项版本添加到特定的工作流状态。这是因为以前发布的任何内容都将成为未发布的,因为它将进入工作流的默认状态,这通常是一个草案状态。

下一次当您将一个版本添加到现在具有工作流的项(或者显式地或者通过“编辑”作为一个低级用户)时,它的状态应该按照您的预期设置为草案。

如果您需要将现有版本的项迁移到特定状态下的工作流中,那么您可能需要通过代码来实现这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29263398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档