1

OOB SharePoint 2010 Web サービスを使用して、URL を使用してドキュメントのメタデータを更新する必要があります。

URL 構造は次のようになります: [http://web/managedPath/siteCollection/library/folder1/folder2/..../doc.docx]

更新はサード パーティ アプリから行われ、SharePoint DLL は含まれません。

SharePoint .Net アプリを使用すると、[spweb.getlistitem(path)] を使用してドキュメントを操作できます。しかし、Web サービスを介して同じことを行うにはどうすればよいでしょうか。

4

1 に答える 1

1

Lists Web サービスは、次の場所で使用できます。

http:///_vti_bin/Lists.asmx

ドキュメントはこちら:

http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems(v=office.12).aspx

CAML クエリに基づいて ListItems のコレクションを取得する方法 (これは、Visual Studio によって生成されたプロキシ オブジェクトを使用します。他のテクノロジを使用している場合は、SOAP 要求オブジェクトなどを構築する必要があります):

Web_Reference_Folder.Lists listService = new Web_Reference_Folder.Lists();
listService.Credentials= System.Net.CredentialCache.DefaultCredentials;

XmlDocument xmlDoc = new System.Xml.XmlDocument();

XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element,"Query","");
XmlNode ndViewFields = 
    xmlDoc.CreateNode(XmlNodeType.Element,"ViewFields","");
XmlNode ndQueryOptions = 
    xmlDoc.CreateNode(XmlNodeType.Element,"QueryOptions","");

ndQueryOptions.InnerXml = 
    "<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" + 
    "<DateInUtc>TRUE</DateInUtc>";
ndViewFields.InnerXml = "<FieldRef Name='Field1' />
    <FieldRef Name='Field2'/>";
ndQuery.InnerXml = "<Where><And><Gt><FieldRef Name='Field1'/>" + 
    "<Value Type='Number'>5000</Value></Gt><Gt><FieldRef Name='Field2'/>" + 
    "<Value Type=
        'DateTime'>2003-07-03T00:00:00</Value></Gt></And></Where>";
try
{
    XmlNode ndListItems = 
        listService.GetListItems("List_Name", null, ndQuery, 
        ndViewFields, null, ndQueryOptions, null);
    MessageBox.Show(ndListItems.OuterXml);
}

catch (System.Web.Services.Protocols.SoapException ex)
{
    MessageBox.Show("Message:\n" + ex.Message + "\nDetail:\n" + 
        ex.Detail.InnerText + 
         "\nStackTrace:\n" + ex.StackTrace);
}
于 2013-10-15T03:42:00.960 に答える