项目的新版本在 Sitecore 中显示 "Changed from ? to Draft"。我怎样才能让他们正确地显示最后的状态?

New versions of items show "Changed from ? to Draft" in Sitecore. How can I get them to show the last state properly?

我在 Sitecore 7.2(修订版 140228)中创建了一个非常简单的工作流程,它遵循开箱即用的示例工作流程,除了保存 "Draft" 项目不会自动推送item 进入某个角色的review 状态。我已通过 默认工作流程 字段将此工作流程应用于基本模板上的标准值项。

每当用户(非管理员)创建从继承的基本模板派生的项目时,工作流定义的新项目的初始状态就会适当地设置为 "Draft"。然后我可以通过工作流程 运行 该项目达到 "Done" 状态。基本上,工作流程似乎按预期工作!

但是,当用户点击编辑创建项目的新版本时,项目的历史就会显示用户的项目历史具有 "Changed from ? to Draft"。

我无法确定如何将给定项目版本的初始状态设置为不会导致版本状态最初显示为“? " 在项目历史记录中。

举个例子:我可以(错误地,我相信)在我的基本模板的标准值项上设置 State 字段(许多其他项目继承自)到 "Draft" 状态但是,当我检查从该基本模板继承的项目模板的标准值时,它们不会在 状态中继承该值 字段。

我可以在项目模板本身的标准值中设置 State 字段,并且在创建新版本时该项目的新版本仍然显示 "Changed from ? to Draft"。

谁能解释一下如何让新版本的物品在历史记录中表明它们 "Changed from Done to Draft"?这里有什么我完全想念的吗?

我已经尝试了下面 Jay 的建议,结果是一样的:

我按照建议修改了工作流程

我通过工作流程开始一个项目,然后 运行 它一直到 "Done"

去编辑项目(这会创建一个新版本),我仍然收到“?”

只是从权限的角度补充一下,我正在测试此工作流程的两个角色确实具有 full access to the workflow across the board.

我注意到工作流状态名称显示“?”当一个角色对该状态的访问受到各种方式的限制时,但当谈到为什么事情没有像现在这样以权限正确显示时,我感到很困惑。

我认为 jRobbins 有它的规模。虽然从 用户理解 的角度来看,这并没有多大意义,但我可以理解为什么工作流状态会以现在的方式显示。我只希望 Sitecore 将来能提供一种更简单的方式来解决这个问题!

在 Sitecore 的默认工作流程中,__OnSave 命令处于草稿状态,__OnSave 的下一个状态又是草稿。在这种情况下,项目的版本信息是“? to Draft”,因为 "Draft to Draft" 没有意义。

我创建了一个新的工作流程并使 __OnSave 命令处于已批准(完成)状态。此 __OnSave 命令的下一个状态是 "Draft"。因此,您会看到项目的版本信息为 "Done to Draft"

根据设计,项目的新版本是在其模板工作流的初始状态下创建的,而不是在其先前版本的状态下创建的。因此,您将无法在项目历史记录中获得所需的 "Changed from Done to Draft" 条目。

我同意 "Changed from ? to Draft" 不是一个准确的条目,但我认为您可能不得不接受它,除非您想在创建新项目版本的函数上编写一些自定义代码。

此外;

"As an example: I can (wrongly, I believe) set the State field on the Standard Values item for my base template."

你是对的,设置模板标准值的状态字段实际上将该标准值项输入到工作流本身。您应该只设置 "Default workflow".

查看此 link 了解更多信息 - http://sdn.sitecore.net/upload/sitecore6/workflow_cookbook_a4.pdf