Batch file Sharepoint批量删除

Batch file Sharepoint批量删除,batch-file,sharepoint,Batch File,Sharepoint,我正在尝试对SharePoint 2007/2010执行批删除操作 当我使用List.asmx->UpdateListItems执行以下操作时,我会得到混合行为: `<Batch OnError="Return" PreCalc="TRUE"> <Method ID="87c970a3000c4e789a9c49ed43768865" Cmd="Delete"> <Field Name="ID">18</Field> <F

我正在尝试对SharePoint 2007/2010执行批删除操作

当我使用List.asmx->UpdateListItems执行以下操作时,我会得到混合行为:

`<Batch OnError="Return" PreCalc="TRUE">
  <Method ID="87c970a3000c4e789a9c49ed43768865" Cmd="Delete">
    <Field Name="ID">18</Field>
    <Field Name="FileRef">
    http://vs-dev-sp2010/list1/DocLib/New
    Document-2.docx</Field>
  </Method>
  <Method ID="46e335183be64367a34c178772a86d92" Cmd="Delete">
    <Field Name="ID">6</Field>
    <Field Name="FileRef">
    http://vs-dev-sp2010/ list1/DocLib /New
    Document.docx</Field>
  </Method>
</Batch>`
`
18
http://vs-dev-sp2010/list1/DocLib/New
文件-2.docx
6.
http://vs-dev-sp2010/ 列表1/DocLib/New
docx文件
`
对第一个项目的操作成功(已删除),第二个项目失败(已签出给其他用户)。这使得回滚事务非常困难(不可能?),因为删除的项目会将版本历史记录、作者和创建日期/时间带到坟墓中。因为SharePoint允许您“关闭”回收站,所以删除的项目可能会永远消失。我希望SharePoint回滚失败的操作,并返回整个批处理的成功或失败;然而,我观察到的行为是事务部分成功

我还注意到,如果上述项目位于容器(文件夹)中,则整个批处理将失败(这是我所期望的行为)

强制执行悲观并发不是一个选项,因为签出文件无法批处理(批处理中可能有数千个文件)。即使可以批量签出,签出操作本身也可能触发自定义工作流


是否有人知道会在SharePoint上强制执行批量删除操作的原子行为的属性,是否看到我发送的请求中存在缺陷,或者是否有更好的批量删除项目的解决方案?

不幸的是,事务是,根据我的经验,没有简单、通用的方法来实现此行为

据我所知,你的问题可以归结为类似的问题。对于在这里寻找答案的开发人员来说,这可能是一个很好的起点