Sharepoint Web Service:更新基于Office的XML文件的内容类型

时间:2014-07-14 12:27:54

标签: web-services sharepoint

我们在SharePoint O365库中有文件,需要从Excel电子表格以编程方式设置自定义内容类型。内容类型在库中启用。电子表格包含文件名以及要分配的内容类型。这是Notes的迁移项目的一部分。

我正在使用来自Excel的Web服务(MSXML2.XMLHTTP,UpdateListItems),它在90%的文件上运行良好,除了基于Office XML的文档,例如:xlsx,docx,pptx,xlsm等。出于某种原因,我无法通过Web服务更新这些文件的内容类型。旧的2003到2007 Office文件(如xls,doc和ppt)工作得很好。

我可以手动更改库中这些文件的内容类型,但其中有17,000个(200多个站点),因此手动解决方案并不理想。当我手动更改类型,然后测试Web服务将其更改回Document(默认值),它可以工作。我甚至尝试将库的默认值更改为我需要设置的值,但没有运气。由于代码适用于大多数文件,而不是这些类型,我不确定发布代码是否重要,但如果你想看到任何内容,请告诉我。

有关如何使用Web服务将内容类型分配给基于Office XML的文档的任何帮助,将不胜感激。

更新:
我应该提一下,即使没有设置内容类型,Web服务响应也不会生成错误代码/消息。我已经验证了UpdateListItems请求的XML,它显示了正确的内容类型,只是没有为这些文件类型设置。

修正:
我不能在前8小时内“回答”我自己的问题,但我已经意外地解决了这个问题。我们还有一个Managed Metadata列(Term Set),我同时填充了这个列。我从XML请求中删除了托管元数据行,并填充了内容类型。

对于这些基于Office XML的文件,您必须单独更新每个字段;不在同一更新请求中,也不在特定顺序中。我必须首先填充内容类型,然后发送另一个更新请求以填充托管元数据列。奇怪的是其他文件没有这个问题。

此致 罗伯特

1 个答案:

答案 0 :(得分:0)

现在已经过了8个小时,正式结束了这个话题。请参阅原始帖子中“已修复”下的更新。