这似乎比我最初猜测的要复杂得多。我有一个工作流,需要在代码中启动另一个工作流。这是怎么做的?是否必须先获取对当前工作流实例的WorkflowRuntime的引用?
发布于 2009-06-10 20:35:33
我想InvokeWorkflowActivity可能就是你要找的。我使用它从其他工作流中启动工作流,它工作得很好。
请注意,新工作流(就像所有工作流一样)是异步执行的,因此“父工作流”将在启动子工作流后直接继续执行。
如果您(无论出于何种原因)不能使用InvokeWorkflowActivity (例如,如果要从从父工作流调用的服务中的代码启动新工作流),您将以某种方式获取工作流运行时实例。
我处理此场景的方法是在服务接口中声明一个事件,并在将服务添加到运行时时让工作流宿主将侦听器附加到该事件。然后,您将拥有一个可以从服务调用的代码点(通过引发事件),该代码点还可以访问运行时;然后,您就拥有了启动新工作流所需的所有内容。
发布于 2009-06-11 03:27:26
如果您不需要显式的活动,则可以使用运行时提供的IStartWorkflow服务。
另外,如果你需要同步执行,我可以从这里开始:
http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,33cfb35c-aca7-4a5e-8b35-ff983b0b83e4.aspx
https://stackoverflow.com/questions/977941
复制相似问题