我继承了一个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的新手!
答案 0 :(得分:1)
从描述中,听起来似乎是两个批准同时完成。这是可能的,因为它可能同时处理两个批准,并且副本列表尚未填充第一个项目,因此没有任何东西可以比较第二个项目。 (想象一个列表在写第一个项目时被锁定,读取第二个项目总是会失败)。
使用工作流程,您无法保证或预测处理时间或事件顺序。
为了解决这个问题,我建议您在批准时添加类似“批准时间戳”的内容到当前项目。然后,您可以通过检查当前项目中是否存在批准时间戳来阻止它获得批准(如果存在,则拒绝批准)。
然后,您可以确定不能在单个项目上多次触发批准机制,其余的任务创建和复制列表功能也应该遵循。