2009-06-24 60 views
1

我有一个工作流在列表中的某个项目上运行。工作流程中有一个OnWorkflowItemChanged活动位于While活动中。我知道工作流程会进入While循环,如果我通过UI更新项目,它会触发OnWorkflowItemChanged活动。但是,如果我通过编程方式更新项目(通过控制台应用程序),它不仅不会触发OnWorkflowItemChanged活动,还会通过UI停止响应更新。以编程方式更新列表项时,工作流会停止响应

有没有人见过这个?有没有办法以编程方式更新列表项目,并让工作流程对事件做出响应并继续响应未来事件?

编辑:它工作正常,如果我使用列表Web服务来更新项目。为什么如果我使用对象模型会搞砸了?

回答

0

看起来让事件触发的唯一方法是使用列表Web服务。

0

我知道通过对象模型中的事件接收器可以调用SPEventReceiverBase.DisableEventFiring()更新列表项等时,SPEventReceiverBase.DisableEventFiring()你有没有尝试过,还是有相当的工作流程?

下面就来禁用事件在未从事件接收器内触发更新发射一个黑客:link text

+0

DisableEventFiring()和EnableEventFiring()用于事件接收器以防止递归调用。它们不适用于工作流程或外部代码。此外,我不明白为什么调用SPListItem.Update()方法会禁用事件firint开始 - 它不应该。 – zimdanen 2009-06-24 13:57:48

0

是啊,我同意这个问题是该事件完全不开火。我注意到,如果您重置IIS,它会首次运行,但之后没有更新。

相关问题