用好ProcessBatchData (2)批量创建

批量创建的格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Continue">
  <Method ID='0'>
    <SetVar Name="Cmd">Save</SetVar>
    <SetVar Name="ID">New</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">Item001</SetVar>
    <SetVar Name="owsfileref">/ProjectCenter/ATP/Lists/Schedules/folderLevel1/Item001</SetVar>
  </Method>
</ows:Batch>

上一篇已经以此例做了概述的说明,此处仅补充一些关键的地方

<SetVar Name="ID">New</SetVar>
此行是不可少的,表示创建一个新的条目

<SetVar Name="owsfileref">/ProjectCenter/ATP/Lists/Schedules/folderLevel1/Item001</SetVar>
此行表示创建到哪个位置下,“/ProjectCenter/ATP/Lists/Schedules/folderLevel1/“是相对于SiteCollection的路径,第一个斜杠“/”不要忘记加上,“Item001”在创建文档时,表示一个文档的文件名,如“mytxt.txt”;创建Item时,界面上是不可看到,也不可编辑,但是必须保证该值是唯一的,否则创建失败。

自定义的Field,前面必须要加上="urn:schemas-microsoft-com:office:office#“,而且必须是内部值,很多中文的名称变成如下的形式:“_x5de5__x671f_”。

有些资料上提到的变量“FSObjType”,我试过多次,没有发现有什么用处,有没有它,都能够创建成功。

创建Item和Folder类型有一定区别:

1. 在ContentType变量处写上对应的内容类型就可以了,这点Item和Folder类型的ContentType是一样的,如果仅是文件夹本身,甚至直接写上“文件夹”也可以创建成功,也许有更好的办法也未可知。

2. 创建Folder类型的ContentType时,owsfileref变量最后的Item001默认为Folder的标题,Title可以不需要,但是Item类型的是必须的,否则Title值为空(显示为“无标题”)。

在打开内容审批的列表下,使用Save是无法给“审批状态”赋值的,此时需要用到Moderate,实际上Moderate也可以给其他变量赋值,比如Title等,具体的区别单独讨论。

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