我在 SharePoint 2007 中对 spfile 对象的 checkincomments 遇到了问题。在 itemadding、itemadded、itemupdating 和 itemupdated eventreceivers 中具有自定义内容类型和自定义代码的自定义 doclib 上的 checkincomments 未存储。
我找到了有关此问题的以下链接 http://social.technet.microsoft.com/Forums/en-SG/sharepointgeneral/thread/e7c42f6b-1dab-419a-aee6-010845b31ea0
和 http://www.theblackknightsings.com/HowToChangeCheckinCommentAfterSave.aspx
但我不想直接更改数据库,所以我没有尝试过最后的链接解决方案。
在 itemupdating 事件中,您可以通过 properties.AfterProperties["vti_sourcecontrolcheckincomment"] 获取评论。在 itemupdated 中,此属性为空。
因此,在第一次喜欢之后,我将评论存储在 itemupdating 中的一个自定义内容字段中,从 itemupdated 中获取它并制作一个 file.CheckIn("mycomment", SPCheckinType.OverwriteCheckIn) 并禁用事件触发。
当我第二次将文件上传到文档库并将版本增加一个(启用主要版本控制)时,itemupdating 和 itemupdated 被触发两次。
在第二个 itemupdated 之后,异步 itemupdated 似乎还没有准备好,我得到一个信息,表明该文件当前正在由我自己使用。所以更新失败。
有没有更简单的方法来确保自定义文档库中的签入注释正确存储?
事件第二次触发的解决方案是什么?
任何帮助都会很棒!