您能告诉我处理上传到SharePoint(2010)MS Word文档的最佳方法是什么,该文档已包含由SharePoint添加的元数据?当用户从SharePoint库中获取某些文档,修改它并将它们作为新文件上载到同一个库时,我遇到了问题。我有一个表单在doc上传时打开以填充一些元数据,表单上的那些字段预先填充了SharePoint先前在文档上设置的值。最大的问题是,即使用户更改了这些值,文件也会保存为旧文件,并且还会创建一个新的列表项,其中包含不正确的(旧)值,这当然会导致错误和错误。
我正在考虑使用ItemAdding方法中的eventreceiver手动清除值:
public override void ItemAdding(SPItemEventProperties properties)
{
properties.AfterProperties["Title"] = String.Empty;
properties.AfterProperties["Adresat"] = "";
properties.AfterProperties["Nr_x0020_dziennika"] = "";
properties.AfterProperties["Budowa"] = "";
properties.AfterProperties["Osoba_x0020_odpowiedzialna"] = "";
properties.AfterProperties["Osoba_x0020_do_x0020_wiad"] = "";
properties.AfterProperties["Komentarz"] = "";
}
但它看起来像一个讨厌的解决方法,它还会在工作流程中上传文档时删除更高版本的文档。
答案 0 :(得分:0)
如果问题仅适用于新文档,那对您的问题来说并不是一个糟糕的解决方案。
你可以让你的事件接收者通过查看属性检查是否有以前的版本.ListItemVersion
由于Office文档的元数据实际上存储在文档中,您可能需要对此解决方案进行一些修改,实际上将其从文档中删除:http://sadomovalex.blogspot.com/2012/12/remove-sharepoint-metadata-from-ms.html