如何获取Revisor详细信息?

use*_*019 2 tridion tridion-2011

我试图采取RevisorCheckOutUser对页面用户详细信息.以下是我的代码

Page page = engine.GetObject(package.GetValue("Page.ID")) as Page;
string revisor = page.Revisor.Description;
string currentuser = page.CheckOutUser.Description;
Run Code Online (Sandbox Code Playgroud)

目前,页面由用户"A"更新,用户"B"现在签出页面.但我得到了RevisorCheckOutUser作为"B",但主管应该是"A"

"page.Revisor.Description"正在考虑签出版本而不是当前版本.

如何获得正确的revisor详细信息?

Bar*_*man 7

TOM.NET API文档为VersionedItem.RevisorProperty 指出以下内容:获取一个值,该值指示上次修改此(此版本)项的用户.

所以你确实会得到此时签出该项目的用户而不是之前修改过它的用户.

因此,如果您需要拥有以前的Revisor,则应该打开该项目的版本,并从其历史记录中读取它.您可以使用Session.GetObject(TcmUri)以前的版本简单地使用创建TcmUri的新实例的位置:TcmUri(itemId, itemType, publicationId, version)

顺便提一下,您提供的代码示例来自模板,但您指示您在事件处理程序中使用它(事件处理程序中没有引擎).在模板中,您不会得到此结果,因为在发布时应使用项目的最后一个签入版本.对于预览,您将看到与现在相同的结果,因为它再次与当前(检出)版本一起使用.