Sharepoint 2010 Sharepoint 2010事件接收器项已更新两次
我将三个事件附加到我的CustomList:Sharepoint 2010 Sharepoint 2010事件接收器项已更新两次,sharepoint-2010,sharepoint-workflow,event-receiver,Sharepoint 2010,Sharepoint Workflow,Event Receiver,我将三个事件附加到我的CustomList: 添加项目 项目更新 项目删除 在一个列表中,我有一个工作流,它正在更改该列表中的列。因此,当我编辑该列表中的条目时,ItemUpdated事件会触发两次。在其他列表中(没有任何工作流),我的接收器工作正常 如何确定工作流是否调用了我的事件接收器 触发事件的工作流与触发事件的用户之间有区别吗?回答第一个问题: 是的,您可以找到您的工作流程。最简单的方法是使用SharePointManager 2010和 导航到您所在的网站集 列表->[您的列表]-
- 添加项目
- 项目更新
- 项目删除
触发事件的工作流与触发事件的用户之间有区别吗?回答第一个问题:
是的,您可以找到您的工作流程。最简单的方法是使用SharePointManager 2010和
工作流可以由用户手动启动,也可以在列表项不可用时自动启动
- 增加
- 更新或
- 删除
除此之外,没有太大区别。您可以将隐藏字段添加到列表中,该列表始终由工作流设置(并且仅由工作流设置)。然后您将看到工作流是否调用了事件接收器 或 您可以在工作流项目中创建HandleEventFiling类,并在工作流更新之前和之后使用DisableAllEventFiling和EnableAllEventFiling
public class HandleEventFiring : SPItemEventReceiver
{
public void DisableAllEventFiring()
{
this.DisableEventFiring();
}
public void EnableAllEventFiring()
{
this.EnableEventFiring();
}
}
问题不是如何查找我的工作流,问题是“如何查找称为我的事件接收器的工作流?”示例:用户编辑一个项目,然后工作流编辑同一个项目,因为用户编辑了该项目。(困惑?!)-->因此事件接收器被调用了2次。(我的工作流总是在编辑项目时启动)只需在浏览器中打开列表项目,单击工作流按钮并查看工作流历史记录。我们应该看看发生了什么。但是你也可以使用我回答中的信息来添加评论或查看工作流。隐藏字段将是一个很好的解决方法。HandleEventFireing将是一个问题,因为我没有工作流的项目。工作流是使用Sharepoint Designer 2010创建的…然后隐藏字段就是解决方案