折腾wwf有段时间了,一直都是东看点,西瞧点,折腾来折腾去。
把系统的底层数据实现都搞好了,然后做了个简单的状态机,创建工作流,调用事件,然后执行callExternalMethod活动,执行数据操作,比较顺利:)
然后在每个状态活动中,就按照事件(handleExternalEvent)-》方法(callExternalMethod)-》SetState的思路搞起来,一切挺顺利。
但是在测试第二个活动的时候卡壳了:开始是没有将实例钝化到数据库,就重新创建了新的workflow,调试失败;解决了钝化问题,将实例从数据库重新load到host中后,发现没有办法通过传参的办法将值带入工作流:(
郁闷,看来还得折腾事件:大概的思路是自定义事件,通过事件将需要的值带入。
昨天晚上将上面的思路做了实验,呵呵通过了。
处理流程如下:首先定义自定义事件类,设置其属性,这些属性用来和方法的参数进行绑定;
其次在loacalservice接口中声明自定义事件,并实现之;
最后在workflow类中定义一个自定义事件类的属性,在handleExternalEvent活动的e属性中绑定这个属性。
这样在通过事件调用工作流时就可以把需要传递的数据通过事件的e参数传递给工作流,让工作流的callExternalMethod活动使用
把系统的底层数据实现都搞好了,然后做了个简单的状态机,创建工作流,调用事件,然后执行callExternalMethod活动,执行数据操作,比较顺利:)
然后在每个状态活动中,就按照事件(handleExternalEvent)-》方法(callExternalMethod)-》SetState的思路搞起来,一切挺顺利。
但是在测试第二个活动的时候卡壳了:开始是没有将实例钝化到数据库,就重新创建了新的workflow,调试失败;解决了钝化问题,将实例从数据库重新load到host中后,发现没有办法通过传参的办法将值带入工作流:(
郁闷,看来还得折腾事件:大概的思路是自定义事件,通过事件将需要的值带入。
昨天晚上将上面的思路做了实验,呵呵通过了。
处理流程如下:首先定义自定义事件类,设置其属性,这些属性用来和方法的参数进行绑定;
其次在loacalservice接口中声明自定义事件,并实现之;
最后在workflow类中定义一个自定义事件类的属性,在handleExternalEvent活动的e属性中绑定这个属性。
这样在通过事件调用工作流时就可以把需要传递的数据通过事件的e参数传递给工作流,让工作流的callExternalMethod活动使用