如何检查当前组件是否结帐以及使用tridion coreservices结帐的用户详细信息

Man*_*ngh 3 tridion tridion-2011 tridion-core-services

我想写一个小函数来检查传递的Item对象是否在Tridion中结帐,如果是,那么它将返回"true",并且我还想获​​得使用Tridion 2011核心服务结账项目的用户的详细信息.

我知道我们和我们TryCheckout一样Checkout,CoreServiceClient但它只返回可识别对象.

Chr*_*ers 11

您需要查看项目上的LockType.考虑做这样的事情

SessionAwareCoreService2010Client client = new SessionAwareCoreService2010Client();
ComponentData data = (ComponentData)client.Read("tcm:300-85609", new ReadOptions());
FullVersionInfo info = (FullVersionInfo)data.VersionInfo;
Run Code Online (Sandbox Code Playgroud)

完整版本信息包含您需要的所有信息(即CheckOutUser和LockType).LockType是由Tridion.ContentManager.Data.ContentManagement.LockType定义的枚举,包括以下标志集:

  • - 项目未锁定.
  • CheckedOut - 项目已签出.这可能意味着临时(编辑)锁定,永久锁定(由用户执行显式检出)或工作流程锁定.
  • 永久 - 项目永久签出,即使用明确的签出操作.
  • NewItem - 该项目是一个新项目,即它已创建,但尚未首次签入.
  • InWorkflow - 该项目位于工作流程中.