使用SharePoint就像小时候玩藏宝游戏,不停的去找,总能找到新东西。
以前使用CAML很多次,虽然知道他很强大,但只是局限于查询。今天读了一篇文章,才知道他还可以用来批量更新。不多说,直接上XML sample.
<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Return">
<Method ID="{0}">
<SetList>{1}</SetList>
<SetVar Name="Cmd">Save</SetVar>
<SetVar Name="ID">{2}</SetVar>
<SetVar Name="urn:schemas-microsoft-com:office:office#Processed">{3}</SetVar>
<SetVar Name="urn:schemas-microsoft-com:office:office#Processed_Date">{4}</SetVar>
</Method>
</ows:Batch>
据SDK记载,Batch标签有如下描述。
<Batch
OnError = "Return" | "Continue"
ListVersion = ""
Version = ""
ViewName = "">
<Method>
...
</Method>
...
</Batch>
Return :在第一次出错后不再执行后续的Methiod.
Continue :在出错后继续执行后续的Methiod.
ListVersion :List的版本号。(可选)
Version :SharePoint的版本号。(可选)
在sample中,{1}为List ID.{2}为Item ID.{3}和{4}为要更新的属性值。其中属性的名称为<schema>#<internal_field_name>.
比如,你的List名字为Processed,那么,这里的名称为urn:schemas-microsoft-com:office:office + # + Processed。
<Method ID="Text" Cmd = "Text">
</Method>
Cmd
Delete — Delete the specified item.
New — Create the specified item.
Update — Modify the specified item.