【发布时间】:2011-10-02 10:01:02
【问题描述】:
我有自定义批准状态 machibe 工作流程,此工作流程附加到列表并启用在根据要求添加或更改任何项目时启动,当我的工作流程达到发布状态时,我编写自定义代码将其审核状态更改为已批准然后工作流程完成(项目状态会根据我的需要改变)但是我的工作流程再次作为新实例开始的问题:(。
【问题讨论】:
标签: sharepoint workflow
我有自定义批准状态 machibe 工作流程,此工作流程附加到列表并启用在根据要求添加或更改任何项目时启动,当我的工作流程达到发布状态时,我编写自定义代码将其审核状态更改为已批准然后工作流程完成(项目状态会根据我的需要改变)但是我的工作流程再次作为新实例开始的问题:(。
【问题讨论】:
标签: sharepoint workflow
如果我理解您的问题,您有一个从添加或更改开始的工作流程。但是在某些情况下,您不希望工作流开始时项目发生更改。您无法在代码中启动工作流,因为您需要最终用户将您的工作流添加到列表中。
唯一的选择是让工作流中的第一个活动检查工作流实例是否应该运行。如果不是,则退出工作流实例。如果您在 SharePoint Designer 中构建工作流并且没有此类活动,您可以在 Visual Studio 2008 中为此构建自定义活动,然后将其与 SharePoint Designer 一起使用。如果您在 Visual Studio 2008 中构建整个工作流,那么您可以在 Visual Studio 中创建一个自定义活动来使用它。
【讨论】:
你有两个选择:
1) 保持工作流在添加或更改时开始,并将活动添加到工作流的开头,检查审核状态,如果已经批准,则立即退出。
2) 让工作流从您编写的事件接收器中的代码开始,并在启动之前检查项目。
【讨论】:
我创建了一个小解决方案来解决这个问题。我已经创建了直接重定向到最终状态的预最终状态。然后我在这种状态下创建一个自定义代码活动并制作它的代码:
Thread.Sleep(300);
我的问题已经解决了:)
【讨论】: