使用事件接收器SharePoint在提交审批时发送电子邮件

使用事件接收器SharePoint在提交审批时发送电子邮件,sharepoint,sharepoint-2007,sharepoint-2010,Sharepoint,Sharepoint 2007,Sharepoint 2010,我有一个已启用内容审批的现有发布站点,并且已经实现了事件接收器。 审批人直接创建内容并发布。然而,作者也在创建内容,他们只能提交审批。 我想在有人提交项目供批准时发送电子邮件。听起来很简单。。。但是,如果项目是直接发布的,则不应发送电子邮件。 当我调试ItemUpdated并检查属性时,两个操作(发布和提交以供批准)上的properties.ListItem.ModerationInfo都会获得“待定”;发布时,再次触发事件ItemUpdate,状态为“已批准”。 我如何做到提交审批时只发送电子

我有一个已启用内容审批的现有发布站点,并且已经实现了事件接收器。 审批人直接创建内容并发布。然而,作者也在创建内容,他们只能提交审批。 我想在有人提交项目供批准时发送电子邮件。听起来很简单。。。但是,如果项目是直接发布的,则不应发送电子邮件。 当我调试ItemUpdated并检查属性时,两个操作(发布和提交以供批准)上的properties.ListItem.ModerationInfo都会获得“待定”;发布时,再次触发事件ItemUpdate,状态为“已批准”。 我如何做到提交审批时只发送电子邮件

我尝试了使用在SPDesigner中创建的自定义列表工作流,这是可行的,但它不可部署,而且过于复杂。我只想检查最终状态=待定。 请帮忙


我看到了这一点:这还不够……

您看过ItemUpdate事件了吗?然后,您可以拦截事件,并根据您的条件设置该项的属性


另一个选择是创建一个简单的自定义工作流。这甚至可以在SharePoint Designer中完成。然后,您可以将其设置为手动或自动。每当列表中的某个项目发生变化时,它能做的第一件事就是检查某个项目是否已提交审批。如果有,则发送电子邮件。使工作流挂起,直到电子邮件发送给谁的操作返回,或者根据您的详细要求让其异步继续进行。

商业工具来执行此操作-可以在ItemUpdate中检测到挂起状态更改,但在首次发布时,状态更改为挂起。。。使用列表工作流没有问题,但我必须重用工作流,在可重用工作流中,“批准状态”字段不可用,因为这取决于列表。。。然而,在列表工作流中,我只需将“Approval status=Pending”设置为条件,它就工作了!我已经看了工作流机制如何处理这个问题(使用reflector),但是运气不好。。。