`
hongsoft
  • 浏览: 302464 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

WfProcessMgr接口

工作流管理器(WfProcessMgr)代表了一个特定流程的模板,它用来创建工作流流程的实例。逻辑上讲,它是工作流的创建工厂和定位器,它能提供一些元信息给外界访问,如流程所需的环境,流程产生的结果等等。

知识点一:WfProcessMgr的所有属性都是只读的,当WfProcessMgr被安装时,它的属性就被设定好,以后将不能再进行改动;这与其他对象和接口的属性不一样。

工作流管理器的名字用name表示,在一个业务域中,name唯一地标示了一个工作流管理器。

category属性用来对工作流管理器进行分类,它在工作流管理器初始化时被设置并且不能被修改。

Version属性表示工作流管理器的版本。

description属性表示工作流管理器的描述性内容。

代码示例如下:

    public String name() throws WfException {

        return processDef.getString("name");

}

public String category() throws WfException {

        return processDef.getString("category");

    }

    public String version() throws WfException {

        return processDef.getString("version");

    }

    public String description() throws WfException {

        return processDef.getString("description");

    }

知识点二:工作流管理器用来产生零到多个流程,并与他们关联。

代码说明如下:

public int howManyProcess() throws WfException {

        return processList.size();   //流程的个数

}

public List getSequenceProcess(int maxNumber) throws WfException {

        if (maxNumber > 0)  

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

        return processList;   //sequence方式返回processList

}

public Iterator getIteratorProcess() throws WfException {

        return processList.iterator();

}

public boolean isMemberOfProcess(WfProcess member) throws WfException {

        return processList.contains(member);  //流程列表中是否包括某个流程

}

知识点三:工作流管理器有两种状态:enableddisabledEnabled表示在当前状态可以产生新的流程;disabled表示在当前状态不能产生新的流程。

public List processMgrStateType() throws WfException {

        String[] list = {"enabled", "disabled"};  //String数组

        return Arrays.asList(list);

}

public void setProcessMgrState(String newState) throws WfException, TransitionNotAllowed {           

        if (!newState.equals("enabled") || !newState.equals("disabled"))

            throw new TransitionNotAllowed();  //只能有两种状态

        this.state = newState;

 }

知识点四:工作流管理器产生流程时,先产生流程实例,然后将流程实例与requester关联起来。流程实例产生时的状态为not_running.not_started

public WfProcess createProcess(WfRequester requester) throws WfException, NotEnabled,

            InvalidRequester, RequesterRequired {           

        if (state.equals("disabled"))

            throw new NotEnabled();  //工作流管理器当前的状态不容许产生新流程

 <!----><o:p></o:p>

        if (requester == null)

            throw new RequesterRequired(); //必须指定requester

 <o:p></o:p>

        // test if the requestor is OK: how?

        WfProcess process = WfFactory.getWfProcess(processDef, this); //用流程定义产生流程

 <o:p></o:p>

        try {

            process.setRequester(requester);  //设置requester

        } catch (CannotChangeRequester ccr) {

            throw new WfException(ccr.getMessage(), ccr);

        }

        processList.add(process);   //加入到队列中

        Debug.logVerbose("[WfProcessMgr.createProcess] : Process created.", module);

        return process

 }

分享到:
评论

相关推荐

    ofbiz--A Beginners Development Guide--Part 3

    OFBiz通常按照模块划分代码,每个模块有自己的服务组件、实体模型(Entity)、工作流(WorkEffort)和Web界面资源。源码的学习有助于理解OFBiz内部的工作流程,从而更好地进行开发。 对于初学者来说,熟悉OFBiz的...

    ofbiz--A Beginners Development Guide--Part 1

    组件是OFBiz中的基本组织单元,包含服务、实体模型、页面、工作流等。通过修改此文件,你可以控制哪些组件在特定环境中被加载,从而实现功能裁剪或扩展。 四、实践环节 在OFBiz学习过程中,实践尤为重要。`...

    ofbiz--A Beginners Development Guide--Part 2

    `component-load.xml`文件是加载这些组件的关键配置文件,它定义了组件的元数据,包括服务、实体模型、工作流和其他资源。 3. **component-load.xml解析** `component-load.xml`是Ofbiz系统启动时读取的配置文件之...

    OFBiz Tutorial - A Beginners Development Guide的Practice案例源代码

    Ofbiz 官网上的OFBiz Tutorial - A Beginners Development ...同时有一部分操作和源代码没有在教程中说明或者只是简单一提带过,此份案例源代码在13版上完整实现了整个案例,可以帮助初学者避免学习官网教程时的疑惑。

    apache-ofbiz-16.11.05

    最新版OFBiz,apache-ofbiz-16.11.05,apache-ofbiz-16.11.05

    ofbiz源代码,库

    刚一近公司就让我用ofbiz做项目,ofbiz中文版+中文文档,liferay中文版+中文文档

    CVE-2020-9496 ofbiz反序列化漏洞分析1

    然后,使用wget下载OFBiz的源代码,解压缩后,使用Gradle进行编译和运行。 POC id是CVE-2020-9496,info是Apache OFBiz XML-RPC Java Deserialization,author是dwisiswant0,severity是medium。该POC检测了OFBiz的...

    ofbiz安装与配置

    3. Ofbiz:我们需要下载 Ofbiz 的压缩包(ofbiz-release-12.04.02.zip),下载地址为:http://www.apache.org/dyn/closer.cgi/ofbiz/apache-ofbiz-12.04.02.zip。或者,我们可以使用 SVN 下载 Ofbiz 的源代码,下载...

    ofbiz学习文档

    ofbiz很好的学习资料,学习了很多,希望对你也能有帮助!

    OFBiz-manual-zh.doc

    OFBiz-manual-zh.docOFBiz-manual-zh.docOFBiz-manual-zh.docOFBiz-manual-zh.docOFBiz-manual-zh.doc

    Ofbiz-16-全量数据库873张表.rar

    这个压缩包文件"Ofbiz-16-全量数据库873张表.rar"包含了Apache Ofbiz 16版本的全量数据库结构,包括873个数据表的SQL脚本。这些脚本用于创建和初始化数据库,对于理解和开发基于Ofbiz的应用程序至关重要。 1. **...

    Apache OFBiz Development The Beginner's Tutorial

    - **流程中的更多细节**:深入探讨 OFBiz 中工作流的其他方面。 - **运行中的引擎可进行的更改**:讲解在系统运行状态下可进行的某些修改。 - **快速重置工作区域**:提供快速恢复初始状态的方法。 - **跳过某些...

    ofbiz学习笔记(自学整理)

    Ofbiz的核心概念包括组件、服务、实体、工作流和事件。组件是Ofbiz中的基本组织单元,它们封装了特定的业务功能。比如,“产品”组件处理与产品相关的所有事务,而“订单”组件则负责订单管理。服务是Ofbiz中执行...

    OFBiz-alipay 配置文档

    **OFBiz-alipay 配置文档** OFBiz(Open For Business Project)是一个开源的企业级应用框架,用于构建和管理电子商务网站、供应链管理、CRM、ERP等业务系统。它提供了全面的业务组件和服务,使得开发者可以快速...

    OFBiz-API-Docs

    OFBiz API 文档,英文html版。使用官方资源中的ant命令自动生成,无任何修改。有兴趣的朋友可以自己生成,ant命令是:docs-all,该命令生成帮助文档时会获取操作系统语言设置,要生成英文文档请先将操作系统语言改为...

    ofbiz资料大全

    OFBiz-技术文档.rar OFBiz API中文版.rar Apache OFBiz Cookbook Sep 2010.rar Opentaps widget使用说明.rar OFBiz.Development.2008.rar Groovy中文教程.rar freemarker中文手册.rar ofbiz10.04表结构.rar ...

    ofbiz 英文pdf

    - **OFBiz工作区简介**:介绍OFBiz项目的结构及基本文件组织方式。 - **安装Java开发工具包(JDK)**: - **下载JDK 5.0**:提供官方下载链接。 - **安装JDK 5.0**:给出安装过程中的注意事项及常见问题解决方案...

    Apache+OFBiz开发指南.chm

    Apache+OFBiz开发指南.chm,跟大家分享。

Global site tag (gtag.js) - Google Analytics