如何获取在SDL Tridion C#TBB中发起发布操作的用户

如何获取在SDL Tridion C#TBB中发起发布操作的用户,tridion,tridion-2011,Tridion,Tridion 2011,从SDL Tridion 2011中模块化页面模板使用的C#TBB,是否可以访问发起发布操作的用户对象 查看TOM.NET 6程序员参考指南,我需要的属性似乎是PublicationTransaction对象的Creator属性,但我找不到从C#TBB访问该属性的方法,我看不到从引擎或包对象获取当前PublicationTransaction的明显方法,我只能找到使用发布引擎对象获取PublicationTransaction对象列表的方法 任何建议都将不胜感激。请查看Mihai Cadariu

从SDL Tridion 2011中模块化页面模板使用的C#TBB,是否可以访问发起发布操作的用户对象

查看TOM.NET 6程序员参考指南,我需要的属性似乎是
PublicationTransaction
对象的
Creator
属性,但我找不到从C#TBB访问该属性的方法,我看不到从
引擎
对象获取当前
PublicationTransaction
的明显方法,我只能找到使用
发布引擎
对象获取
PublicationTransaction
对象列表的方法


任何建议都将不胜感激。

请查看Mihai Cadariu的以下两篇博文:

  • (根据克里斯·萨默斯的一个技巧)
有了这两个,你应该能够找到你需要的东西

您在TBB中需要的基本功能如下:

PublishTransaction GetPublishTransaction(引擎)
{
字符串binaryPath=engine.PublishingContext.PublishInstruction。
RenderInstruction.BinaryStoragePath;
Regex tcmRegex=新的Regex(@“tcm\d+-\d+-66560”);
Match Match=tcmRegex.Match(二进制路径);
如果(匹配成功)
{
字符串transactionId=match.Value.Replace(“”,“:”);
TcmUri transactionUri=新的TcmUri(transactionId);
返回新的PublishTransaction(transactionUri,engine.GetSession());
}
返回null;
}

可能还值得注意的是,在PreviewMode中呈现编码器或从模板生成器中呈现编码器时,属性
engine.PublishingContext.PublishInstruction.RenderInstruction.BinaryStoragePath
将返回与在发布服务器中运行代码时不同的结果。要在BinaryStoragePath中查看PublishTransaction URI,必须将Visual Studio TBB调试项目附加到
TcmPublisher.exe
进程,以便实际存在PublishTransaction对象,否则,BinaryStoragePath将只包含一个通用路径,如../preview。

太好了,我添加了Mihai和Chris的代码,现在我有了PublishTransaction,非常感谢