用好ProcessBatchData (3)批量更新

批量更新的格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Continue">
  <Method ID='0'>
    <SetVar Name="Cmd">Save</SetVar>
    <SetVar Name="ID">14796</SetVar>
    <SetList>af653a38-7a6a-455c-a295-1604c4104a61</SetList>
    //<SetVar Name="urn:schemas-microsoft-com:office:office#ContentType">Item子类型</SetVar>
    <SetVar Name="urn:schemas-microsoft-com:office:office#Title">MyItem002</SetVar>
    //<SetVar Name="owsfileref">/ProjectCenter/ATP/Lists/Schedules/folderLevel1/MyItem002</SetVar>
  </Method>
</ows:Batch>

上面的操作实际上就是更新一下Item对象的Title值,比较一下前面批量创建的脚本,会发现实际上也就是“New”变成了对应的ID值“14796”,就成为更新操作了,非常简单。

其他设置,比如自定义属性值什么的,都是一样的。是不是很简单呀,不过马上你就会发现上更新还是存在一些不怎么被我们关注的玄机的,假设我们现在的列表“内容审批”没有打开,现在你把该选项打开,再执行一下上面的脚本,看看还能成功吗?

image

答案是能,那你再更新执行一次,还能成功吗?

答案是不能,你会得到一个错误:

<Results>
  <Result ID=\"0\" Code=\"-2130239095\">
    <ErrorText>操作失败,由于发生意外错误。(结果代码: 0x81072189)</ErrorText>
  </Result>
</Results>

或者你再重新创建一个新的条目,然后,再把New改成创建好的Item ID,你又会得到一个错误:

<Results>
  <Result ID=\"0\" Code=\"-2130575338\">
    <ErrorText>项目不存在\n\n所选的网页包含一个不存在的项目。该项目可能已被其他用户删除。</ErrorText>
  </Result>
</Results>

原文地址:https://www.cnblogs.com/poissonnotes/p/1803260.html