0

我将三个事件附加到我的 CustomLists:

  • 添加项目
  • 物品已更新
  • 项目删除

在一个列表上,我有一个工作流,它正在更改该列表中的列。因此,当我编辑该列表中的条目时,ItemUpdated-Event 会触发两次。在其他列表(没有任何工作流程)上,我的接收器工作正常。

如何确定工作流是否调用了我的事件接收器?

触发事件的工作流与触发事件的用户之间有区别吗?

4

2 回答 2

1

您可以将隐藏字段添加到始终由工作流(并且仅由工作流)设置的列表中。然后你会看到工作流是否调用了事件接收器。

或者

您可以在工作流项目中创建 HandleEventFiring 类,并在工作流更新前后使用 DisableAllEventFiring 和 EnableAllEventFiring

public class HandleEventFiring : SPItemEventReceiver
{

  public void DisableAllEventFiring()
  {
   this.DisableEventFiring();
  }

 public void EnableAllEventFiring()
 {
  this.EnableEventFiring();
 }

}
于 2013-08-14T08:48:27.307 回答
0

回答您的第一个问题:
是的,您可以找到您的工作流程。最简单的方法是使用 SharePointManager 2010 和

  1. 导航到您的网站集所在的位置
  2. 列表 -> [您的列表] -> 事件接收器
  3. 检查每个事件接收器的属性并删除触发两次的事件接收器。

我不知道我是否正确理解了您的第二个问题,但这里是:
工作流程可以由用户手动启动,或者如果列表项是自动启动

  • 添加
  • 更新或
  • 已删除

除此之外没有太大区别。

于 2013-08-14T08:29:07.023 回答