如何使用SharePoint Web服务确定用户是否已签出文档?

时间:2011-11-07 08:55:56

标签: web-services sharepoint

(注意我需要一个适用于2007和2010的解决方案)

我们有一个桌面应用程序,我们正在添加Sharepoint签入和退出功能以使用Web服务。

我们遇到的一个问题是确定(桌面应用程序的)当前用户是否签出了文档。

我们当前的方法是通过Lists GetListItems 调用获取有关文档的信息,如果文档已签出,将返回 ows_CheckoutUser 字段。

然后,我们想要将结帐用户的名称与用户名称进行比较。

问题是ows_CheckoutUser中的名称似乎是用户的显示名称而不是帐户名称,因此对于此检查而言不是唯一且不可靠。

我注意到ows_CheckoutUser也为用户返回了一个ID值,但我似乎无法找到如何获取当前用户的ID,所以我可以对此进行比较。

有没有人对此有任何想法?这是正确的方法,还是有更好的方法?

我曾考虑尝试通过GetListItems运行一个匹配文档名称的查询,结帐用户等于我的当前用户,看看我是否得到任何结果,但我认为这会遇到同样的问题。

或者我可能需要访问Web服务并使用author.dll?

修改

我开始通过Author.dll FP扩展程序使用RPC调用getDocsMetaInfo。

此调用实际上为您提供了签出文档的用户的帐户名称。

我仍然对使用Web服务的解决方案感兴趣

1 个答案:

答案 0 :(得分:1)

不确定sharepoint的原生回复是什么,但我想它应该与使用Camelot .NET Connector for SharePoint时相同。

您有一些可能包含此信息的字段

  • CheckedOutUserId,具有已检出项目的用户的ID(查找)
  • IsCheckedoutToLocal,(查询)
  • CheckoutUser,Checked Out To(User)
  • CheckedOutTitle,Checked Out To(User) -
  • LinkCheckedOutTitle,Checked Out To(Computed)

实际上 LinkCheckedOutTitle 包含对检出文档的用户的可视引用。在我的情况下,它被列为trikksdomain \ trikks,或者如果localadmin将doc检出其机器\ administrator。

以下是SharePoint 2010文档库列参考指南。 http://www.bendsoft.com/download.php?id=b05c062a401cf8bc221ea5df63cc9570