Junky's IT Notebook

统计

留言簿(8)

积分与排名

WebSphere Studio

阅读排行榜

评论排行榜

Work Flow 学习笔记

                     Work Flow 学习笔记

1.    WfRequester

WfRequester is the interface that has a direct concern with the execution and results

of a workflow process - it represents the request for some work to be done. Its

performer, a WfProcess, is expected to handle its request and communicate significant

status changes; in particular to inform the requester when it has completed performing

the requested work. A single requester can have many processes associated with it.

 
  
 
 

说明: WfRequester 接口是一个和工作流流程的执行及结果有直接关系的接口;它代表了对一些工作执行的请求;它的一个主要功能是把 WfProcess 链接到一个其它应用;其中 WfRequester 会关联到多个 WfProcee, WfProcess 发生 complete terminate abort 事件时会通过回调 receiveEvent() 方法来通知 WfRequest ;在 receiveEvent(event) 方法中,参数 event 是一个 WfEventAudit 对象,其中 WfEventAudit 中有一个方法 source(), 通过这个方法我们可以得知是哪个 WfExecutionObject 对象触发了事件源;得到了 WfExcutionObject WfProcess 我们也进而 得到了和这个 WfProcess 相关联的其它应用;

主要步骤 :

(1)    自定义一个自己的类或接口,如 GenericRequester, 这个 GenericRequester 类代表用户自定义的一个请求者;

(2)    在启动 WfProcess 是,把这个请求者和 WfProcess 进行绑定注册到 WfRequester 中;

 

WfReuester registerProcess() 就是做这个功能,主要代码如下

protected Map performers = null;

public void registerProcess(WfProcess process, Map context, GenericRequester requester){

               performers.put(process, requester);

 

}

(3)    当工作流程在执行的过程中发生 complete terminate abort 事件时会回调 WfRequest 中的 receiveEvent() 方法:

      requester.receiveEvent(audit);

(4)    receiveEvent() 中首先根据 WfEventAudit source() 获取触发事件的 WfProcess 对象;

receiveEvent(WfEventAudit event){

        // 获取事件源 process 对象

WfProcess  process = (WfProcess) event.source();

// 根据 prcocess 对象获取在注册时绑定的自定义请求者 GenericRequester

GenericRequester  req = (GenericRequester) performers.get(process);

// 执行自定义请求者的方法

req.receiveResult(process.result());

}

其它:在这里 GenericRequester 也可是一个 WfProcess WfActivity 对象,这样可以在 WfProcess 完成操作后又启动另一个子流程或某个活动;    

posted on 2006-05-25 20:23 junky 阅读(345) 评论(0)  编辑  收藏 所属分类: Work Flow


只有注册用户登录后才能发表评论。


网站导航: