ofbiz工作流源代码学习(1)---WfRequester接口

原创 2004年04月07日 14:35:00

WfRequester接口与实现

WfRequester接口是一个和工作流流程的执行及结果有直接关系的接口,它代表了对要做的工作的请求。

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

知识点:WfRequester接口的performerWfProcess,一个WfRequester接口可以对应好几个WfProcess

代码示例:

          protected Map performers = null;

          this.performers = new HashMap(); //构造procesrequesterMap

          performers.put(process, requester);// registerProcess( )requester注册process

下面的方法与performer有关:

    /**

*@see org.ofbiz.core.workflow.WfRequester#howManyPerformer()

*获取performersize

     */   

    public int howManyPerformer() throws WfException {

        return performers.size();

    }

 

    /**

     * @see org.ofbiz.core.workflow.WfRequester#getIteratorPerformer()

*获取performerIterator

*/

    public Iterator getIteratorPerformer() throws WfException {

        return performers.keySet().iterator();

    }

  

    /**

     * @see org.ofbiz.core.workflow.WfRequester#getSequencePerformer(int)

*获取List形式的performer

*/

    public List getSequencePerformer(int maxNumber) throws WfException {

        if (maxNumber > 0)

            return new ArrayList(performers.keySet()).subList(0, (maxNumber - 1));

        return new ArrayList(performers.keySet());

    }

 

 

知识点:WfRequester接口常作为启动process的对象的接口

作为流程的启动者它通常做三件事情:

1 setting up the context

2)       start the process

3)       get the status and results

 

知识点:WfRequester接口和WfProcess的关联,一般有两种应用场合:

1)  工作流过程的演化 :在这种场合下,WfActivity被精化为WfRequester,这样,它有一个执行者WfProcessWfProcess执行一个请求就是执行一个活动。

2)  WfRequesterWfProcess连接到其它应用。

 

知识点:WfProcess一般用void receiveEvent(WfEventAudit event)方法来将工作流事件(event)通知给request

在发生活动的完成,中断,中止等事件时,流程必须通知requester

代码示例:

       /**

        *@see org.ofbiz.core.workflow.WfRequester#receiveEvent()

        */

    public synchronized void receiveEvent(WfEventAudit event) throws WfException, InvalidPerformer {

        // Should the source of the audit come from the process? if so use this.

        WfProcess process = null;

 

        try {

            process = (WfProcess) event.source();  //事件来源于process

        } catch (SourceNotAvailable sna) {

            throw new InvalidPerformer("Could not get the performer", sna);

        } catch (ClassCastException cce) {

            throw new InvalidPerformer("Not a valid process object", cce);

        }

        //如果事件源不是与requester关联的process,则抛出异常

        if (process == null)

            throw new InvalidPerformer("No performer specified");

        if (!performers.containsKey(process))

            throw new InvalidPerformer("Performer not assigned to this requester");

 

        GenericRequester req = null;

        //如果事件源是与requester关联的process,则获取状态和结果

        if (performers.containsKey(process))

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

        if (req != null)

            req.receiveResult(process.result());

    }

 

 

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

ofbiz工作流源代码学习(1)---WfRequester接口

WfRequester接口与实现WfRequester接口是一个和工作流流程的执行及结果有直接关系的接口,它代表了对要做的工作的请求。 知识点:WfRequester接口的performer是Wf...
  • softstars
  • softstars
  • 2008年06月10日 16:50
  • 139

ofbiz工作流源代码学习(2)--WfExecutionObject接口

WfExecutionObject接口与实现1.概述WfExecutionObject接口是一个抽象基类接口,它定义了WfProcess和WfActivity公有的属性,状态和操作。WfExecu...
  • softstars
  • softstars
  • 2008年06月10日 16:50
  • 200

ofbiz工作流源代码学习(2)--WfExecutionObject接口

WfExecutionObject接口与实现1.概述WfExecutionObject接口是一个抽象基类接口,它定义了WfProcess和WfActivity公有的属性,状态和操作。WfExecuti...
  • hongbo781202
  • hongbo781202
  • 2004年04月07日 14:35
  • 2518

ofbiz工作流源代码学习(4)--WfProcess接口

 WfProcess接口WfProcess是工作流请求的执行者,执行工作的所有工作流对象都实现了这个接口,这个接口容许工作被异步地完成,并同时被监视和控制状态。当WfProcess被产生时,它进入...
  • softstars
  • softstars
  • 2008年06月10日 16:49
  • 202

ofbiz工作流源代码学习(3)--WfProcessMgr接口

WfProcessMgr接口工作流管理器(WfProcessMgr)代表了一个特定流程的模板,它用来创建工作流流程的实例。逻辑上讲,它是工作流的创建工厂和定位器,它能提供一些元信息给外界访问,如流...
  • softstars
  • softstars
  • 2008年06月10日 16:50
  • 139

ofbiz工作流源代码学习(4)--WfProcess接口

 WfProcess接口WfProcess是工作流请求的执行者,执行工作的所有工作流对象都实现了这个接口,这个接口容许工作被异步地完成,并同时被监视和控制状态。当WfProcess被产生时,它进入op...
  • hongbo781202
  • hongbo781202
  • 2004年04月18日 23:57
  • 2868

ofbiz工作流源代码学习(3)--WfProcessMgr接口

WfProcessMgr接口工作流管理器(WfProcessMgr)代表了一个特定流程的模板,它用来创建工作流流程的实例。逻辑上讲,它是工作流的创建工厂和定位器,它能提供一些元信息给外界访问,如流程所...
  • hongbo781202
  • hongbo781202
  • 2004年04月12日 12:51
  • 2595

ofbiz工作流学习(一)

1 Ofbiz概况OFBiz是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。 ...
  • hongbo781202
  • hongbo781202
  • 2004年03月15日 09:15
  • 6589

shark工作流学习(三)

Shark特征 Shark1.0是一款简洁、实用的完全符合WFMC规范的工作流引擎。它具备以下几个特点: 1   在使用过程中,把流程名字尝试改成中文,但是对流程的驱动有一些影响,表明shark1.0...
  • hongbo781202
  • hongbo781202
  • 2004年05月31日 16:50
  • 4480

Ofbiz学习经验谈

不可否认,OFBiz这个开源的系统功能是非常强大的,涉及到的东西太多了,其实对我们现在而言,最有用的只有这么几个:实体引擎、服务引擎、WebTools、用户权限管理。 最先要提醒各位的是,在配置...
  • chenshanhao2008
  • chenshanhao2008
  • 2014年05月14日 07:12
  • 982
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ofbiz工作流源代码学习(1)---WfRequester接口
举报原因:
原因补充:

(最多只允许输入30个字)