【问题标题】:Sitecore Default Workflow Not Applying to ItemsSitecore 默认工作流程不适用于项目
【发布时间】:2015-07-29 08:30:00
【问题描述】:

在我的工作中,我们使用 Sitecore 7.2。我们有两种在线表格,可将提交内容转化为站点核心树中的项目。在将这些项目从“提交”文件夹拖到显示在实时站点上的文件夹之前,需要由编辑器进行审查/编辑。

我们最初遇到的问题是这些项目不是工作流程的一部分。因此,如果对它们进行了编辑,则不会触发发布作业。我创建了一个简单的工作流程,任何编辑/保存都会自动批准和发布项目。

我将它应用于模板 A 和模板 B 的标准值字段。使用模板 A 创建新项目时(无论是通过表单提交还是手动),项目被创建并附加工作流。

但是,对于模板 B,工作流永远不会附加。如果我手动将默认工作流程添加到项目本身,它可以正常工作 - 但我需要在创建项目时已经添加它 - 或者在创建项目的新版本时。

为什么添加到项目模板的“__标准值”中的“默认工作流程”不会成为使用该模板的项目的一部分?

http://i.imgur.com/QE5JuyP.png

【问题讨论】:

    标签: sitecore sitecore-workflow


    【解决方案1】:

    这是我上次遇到的同样问题。有些人说即使我们将工作流程更新到现有项目中它也能正常工作,但它不适用于其他一些项目。

    问题在于,即使您在标准值中设置了默认工作流程,项目属性中的“工作流程”和“状态”字段也是空的。所以,我所做的是使用 PowerShell 插件。如果您使用以下代码,它将完美运行。

    ##################################################################
    ##  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.
    ## Uncomment below two lines if you are ready to go for updating    
    #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】:

      我也面临同样的问题。我不明白为什么我的默认工作流程在锁定编辑或新创建时没有启动。 如果没有其他选择,那么我想我必须接受@Jay 的回答。

      除了上述解决方案之外,我们可能还需要检查工作流状态是否为空,以免覆盖现有的工作流状态(手动设置)。

      编辑: 我的场景: 我首先安装了一个带有模板的包,然后我安装了另一个包,其中只有标准值和默认工作流集。我认为这是导致问题的原因。

      我用标准值和默认工作流集重新打包了模板。 通过覆盖现有模板重新安装包。 现在,每当我创建一个新项目时,工作流程都会正确设置。 希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-05
        • 2012-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多