Sharepoint工作流程两次创建新任务项目? (SP 2007)

时间:2012-01-15 06:25:17

标签: sharepoint-2007 sharepoint-workflow

我继承了一个sharepoint工作流程,但它似乎有一个间歇性问题,我不知道从哪里开始调试。

用户在列表中创建新项目并保存 - 他们可以编辑项目直到批准(下一步)。

管理员批准该项目 - 触发第一个工作流程

Create new Task Item in relevant list

新建任务项工作流会在创建

时自动触发
IF
  matching item in Copy list, send warning email and exit.
ELSE
  Create item in "Copy" list

这意味着,如果由于某种原因,项目获得批准两次,并且创建了两个任务(例如,两个管理员同时批准),则会发送警告电子邮件以防止两个任务都被执行。

然而,偶尔,在我无法解决的情况下,不会发送警告电子邮件。创建了两个任务,该项目位于副本列表中,但没有警告电子邮件到达。

这种情况很少发生,但由于这些任务与金融交易有关,后果可能很大。

我查看了任务和复制的时间戳,复制项目创建和第一项创建是相同的...第二个任务创建日期是一分钟后。这意味着,据我所知,第二个任务WF 应该每次都找到复制项目?

我尝试了很多场景,让用户和两位管理员同时批准/保存该项目。这正确触发了3个工作流程(新任务)并生成了两个警告电子邮件。我无法弄清楚如何让工作流程触发NOT发送电子邮件警告。

关于如何解决此问题和调试的任何想法?

或者更好的是,如何防止这种情况发生?

BTW:我是SharePoint / SP Designer的新手!

1 个答案:

答案 0 :(得分:1)

从描述中,听起来似乎是两个批准同时完成。这是可能的,因为它可能同时处理两个批准,并且副本列表尚未填充第一个项目,因此没有任何东西可以比较第二个项目。 (想象一个列表在写第一个项目时被锁定,读取第二个项目总是会失败)。

使用工作流程,您无法保证或预测处理时间或事件顺序。

为了解决这个问题,我建议您在批准时添加类似“批准时间戳”的内容到当前项目。然后,您可以通过检查当前项目中是否存在批准时间戳来阻止它获得批准(如果存在,则拒绝批准)。

然后,您可以确定不能在单个项目上多次触发批准机制,其余的任务创建和复制列表功能也应该遵循。