在我的工作中,我们使用Sitecore 7.2。我们在线有两种表单,可以将提交内容转换为sitecore树中的项目。这些项目需要由编辑器审阅/编辑,然后才能从“提交”文件夹拖动到实时网站上显示的文件夹中。
我们最初遇到的问题是这些项目不属于工作流程。因此,如果对它们进行了编辑,则不会触发发布作业。我创建了一个简单的工作流程,任何编辑/保存都会自动批准和发布项目。
我将其应用于模板A和模板B的标准值字段。使用模板A创建新项目时(无论是通过表单提交还是手动),都会创建项目并附加工作流程。
但是,使用模板B,永远不会附加工作流程。如果我手动将默认工作流添加到项目本身,它可以正常工作 - 但我需要在创建项目时添加它 - 或者在创建项目的新版本时添加。
有没有理由为项目模板的“__Standard Values”中添加的“默认工作流程”不会成为使用该模板的项目的一部分?
答案 0 :(得分:3)
这是我上次遇到的问题。有些人说,即使我们将工作流程更新为现有项目,它也能正常工作,但它对其他一些项目并不起作用。
问题在于,即使您将默认工作流程设置为标准值,"工作流程"和"州"项目属性中的字段为空。所以,我所做的是使用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"
答案 1 :(得分:0)
I am facing the same issue. I do not see why my default workflow is not kicking in when locked for Editing or when newly created. If there is no other option then I think I have to go with @Jay's answer.
In addition to the above solution we might also want a check, to see if the Workflow State is Empty, in-order not to override the existing Workflow State (which is set manually).
EDIT: My Scenario: I installed a package with template first, then I installed another package with ONLY the Standard Values with Default Workflow set. I assume this caused the issue.
I re-packaged the template with standard values and Default Workflow set. Re-Installed the package by Overriding the existing templates. Now whenever I create a new Item, workflow is set properly. Hope this helps you.