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

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

阅读更多
 

WfProcess接口

WfProcess是工作流请求的执行者,执行工作的所有工作流对象都实现了这个接口,这个接口容许工作被异步地完成,并同时被监视和控制状态。当WfProcess被产生时,它进入open.not_running.not_started状态,当它成功地完成处理时,它进入closed.completed状态。利用

WfExecutionObject提供的change_state()方法,我们可以改变WfProcess的其它状态。WfProcess是一种WfExecutionObject,如下代码所示:

   public String executionObjectType() {

        return "WfProcess";  //类型为WfProcess

}

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

流程的环境和结果

一般来讲,WfProcessMgr工厂产生一个流程时,它的环境已经被设置好了。WfProcess环境包含如下三种信息:流程相关数据,要使用的资源,流程产生的结果。当流程启动后,流程环境能否进行修改,这要依赖不同的Wfm的实现而定。流程结果由流程环境演化而来,它也依赖于流程包含的活动,它还可能返回一个NULL值。代码示例如下:

public synchronized void receiveResults(WfActivity activity, Map results) throws WfException, InvalidData {

        Map context = processContext();

        context.putAll(results);

        setSerializedData(context);

}

 <o:p></o:p>

Process Requester

当流程被WfProcessMgr产生时,它被关联到一个WfRequester,这个WfRequester可能是一个活动或一个外部的客户。一个流程总会有一个请求者,OFBIZ容许为一个流程重新分配一个请求者。

通过调用请求者的receive_event()方法,流程可以将自己的状态改变等信息通知给请求者。

 <o:p></o:p>

Process Steps

一个WfProcess有零到多个WfActivity, WfActivity代表了一个WfProcess中要执行的步骤。

WfActivity被分配给WfResource,或者被转变成请求者以便产生新的流程作为子流程。

代码示例如下:

 public List getSequenceStep(int maxNumber) throws WfException {

        if (maxNumber > 0)

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

        return activeSteps();

    }

 <o:p></o:p>

流程监控

start()方法可以启动流程,在它完成前,还可以被suspended,resumed,terminatedaborted。当然了,大多方法都是通过实现WfExecutionObject接口来实现的。

Result()被用来获取当前的流程结果数据,当流程的状态方式改变时,它发送状态改变事件给请求者,通知请求者状态的变化。

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

分享到:
评论

相关推荐

    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学习笔记(自学整理)

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

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

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

    Apache OFBiz Development The Beginner's Tutorial

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

    OFBiz-alipay 配置文档

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

    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-API-Docs

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

    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