中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 综合其他 > 临时文章
ofbiz工作流源代码学习(2)--WfExecutionObject接口
作者:hongbo781202 时间:2002-02-17 11:01 出处:互联网 责编:chinaitpower
              摘要:ofbiz工作流源代码学习(2)--WfExecutionObject接口

WfExecutionObject接口与实现

1.概述

WfExecutionObject接口是一个抽象基类接口,它定义了WfProcessWfActivity公有的属性,状态和操作。WfExecutionObject的操作返回的状态与流程状态是不同的。WfExecutionObject提供了方法来获取当前的状态并完成从当前状态向另一状态的转变。但WfExecutionObject的状态是执行对象的状态,WfProcess的状态是流程的状态,他们之间并没有必然的关系。

 

2.属性及相应方法

2.1 name

   name属性是工作流执行对象的描述性名字,name属性的获取和设置是通过GenericDelegatorworkEffortId来完成的:

    public String name() throws WfException {

        return getRuntimeObject().getString("workEffortName");

    }

    public void setName(String newValue) throws WfException {

        GenericValue dataObject = getRuntimeObject();

        try {

            dataObject.set("workEffortName", newValue);

            dataObject.store();

        } catch (GenericEntityException e) {

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

        }

    }

  

2.2 key

   key是工作流执行对象的唯一标示符。一个特定的工作流管理器产生的流程集合中,每个流程都有一个唯一的key;一个流程包含的活动集合中,每个活动都有一个唯一的key。当工作流执行对象产生时,由工作流管理器为它分配一个特定的key

   Key不同于对象标示符,它是工作流执行对象生命周期中流程或活动的reference。它由activityIdprocessId来表示。

2.3 process_context

   process_context是定义执行对象环境的流程相关数据,它由一系列的名字属性来描述。process_context由一系列的名值对来表达,process_context的获取和设置是通过runtimeDataIdGenericValue来实现的。

2.4 priority

   priority的有效值在05之间,一个为highest,三个为normal,另外一个为其它情况。

2.5 last_state_time

   表示上次状态改变的时间,如下:

    public Timestamp lastStateTime() throws WfException {

        GenericValue dataObject = getRuntimeObject();

 

        if (dataObject == null || dataObject.get("lastStatusUpdate") == null)

            throw new WfException("No runtime object or status has never been set.");

        return dataObject.getTimestamp("lastStatusUpdate");

}

 

3.状态

   总的状态分为openclosed

   Open分为open.runningopen.not_running

   Open.not_running分为not_running.not_startednot_running.suspended

   Closed分为closed.completedclosed.terminatedclosed.aborted

   not_running.suspendedopen.running应该用resume()方法。另外调用terminate()方法,abort()方法或complete()方法,suspend()方法可以到相应的状态。当然了,最通用的改变状态的方法是用changeState(int state)方法。

 

 

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有