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