none
如何在两个相同类型的工作流实例中交互触发事件? RRS feed

  • 问题

  • 考虑这样一种情况:

    流转对象OBJA、OBJB,OBJA与OBJB在逻辑上是父子关系。

    在OBJA加入工作流后,它被自然地持久化等待事件触发。

    其后,OBJB也加入工作流(新的工作流实例),在OBJB的一个参数改变后,需要推动OBJA所在的工作流实例进入下一个状态,即要触发事件给OBJA所在的工作流,请问如何实现?

    2010年4月29日 9:30

答案

  • hi,

    工作流和外部交互,可以通过本地通信机制来完成,两个工作流也可以通过本地通信机制来交互。

    obja启动后持久化,等待外部事件进入。

    objb启动后运行,直到某一个参数改变,此时,objb可以调用一个本地服务的方法来这一改变通过本地通信机制传递出去,那么本地服务的方法内部就可以去触发obja所等待的事件。


    My blog: http://xiaoshatian.cnblogs.com
    2010年4月29日 13:30
    版主
  • hi,

    当然有差别,InvokeWorkflowActivity是启动一个新的外部工作流实例,而不是和现有的实例交互。

    而你的需求是obja在启动后等待objb的事件,那么objb就不能用InvokeWorkflowActivity来和obja交互了。


    My blog: http://xiaoshatian.cnblogs.com
    2010年5月6日 8:27
    版主

全部回复

  • hi,

    工作流和外部交互,可以通过本地通信机制来完成,两个工作流也可以通过本地通信机制来交互。

    obja启动后持久化,等待外部事件进入。

    objb启动后运行,直到某一个参数改变,此时,objb可以调用一个本地服务的方法来这一改变通过本地通信机制传递出去,那么本地服务的方法内部就可以去触发obja所等待的事件。


    My blog: http://xiaoshatian.cnblogs.com
    2010年4月29日 13:30
    版主
  • 你是说在活动内部执行本地服务的相关方法来通知事件吧,那么这与异步执行InvokeWorkflowActivity 相比,哪一种更理想呢?或者说它们这间有何差异?
    2010年4月30日 8:26
  • hi,

    当然有差别,InvokeWorkflowActivity是启动一个新的外部工作流实例,而不是和现有的实例交互。

    而你的需求是obja在启动后等待objb的事件,那么objb就不能用InvokeWorkflowActivity来和obja交互了。


    My blog: http://xiaoshatian.cnblogs.com
    2010年5月6日 8:27
    版主
  • 谢谢,你是对的。
    2010年5月7日 0:47