`
keren
  • 浏览: 1580645 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Compiere 工作流引擎

阅读更多
[转]http://blog.csdn.net/songgz/archive/2007/09/10/1778688.aspx
  Compiere 工作流引擎用于管理 Compiere 的核心事务处理。并且 Compiere 中所有的流程都自动启用了工作流,使流程易于扩展和修改。
  具体看一下引擎的类图。

   MWorkflow类负责定义工作流;WMFProcess类负责定义工作流的流程;WMFNode类负责定义工作流的节点点;MWFActivity类负责定义工作流的活动,即工作项;MWFNextCondition类负责定义下一工作节点的触发条件;StateEngine类负责定义工作流的状态及状态转换;DocAction接口定义单据的处理标准,参与流程处理的文档Model需要实现此接口;其它的一些辅助类没有在图中给出如:WMFAccess类负责工作流的访问权限;WorkflowValidate类为负责工作流合法性验证;

  了解类的职能后,再来看一个典型的工作流程:
  
  Compiere工作流由ProcessCtl类的startWorkflow()方法启动,这个方法需要参数AD_Workflow_ID。接下来startWorkflow()方法调用了MWorkflow类的start()方法,start()方法调用了MWFProcess类的startWork()方法,在个方法中得到工作流的节点,并通过这个节点ID调用MWFActivity类的run()方法。run()方法又调用了本类的performWork()方法来执行一个工作任务(工作项)。

  Compiere工作流引擎的核心机制(调度):


  Compiere的调度机制并不复杂,从上图可以看出。当创建一个工作流(MWorkflow)实例的时候,在MWorkflow (Properties ctx, int AD_Workflow_ID, String trxName)构造方法中调用loadTrl()方法装载迁移,调用loadNodes()方法装载任务(工作项即MWFNode实例)。当创建MWFNode实例的时候,在MWFNode (Properties ctx, ResultSet rs, String trxName)构造方法中调用loadNext()和loadTrl()方法装载下一步要执行的任务和迁移。在创建下一任务(MWFNodeNext)实例后,要设置这个任务的分支类型(即OR、AND)。到此就装载了整个流程的所有可能执行的任务。而任务的执行是通过MWFActivity类中的performWork (Trx trx)方法来执行的,这个方法反回一个布尔值。在这个方法中首先判断工作项(任务)的执行类型(文档或报表),然后执行DocAction.processIt (String action)方法,到此才真执行一个任务。我想这个方法大家非常熟悉,当在Compiere中定制一个工作流时就要实现这个方法了。
  有人会问了,这是什么调度啊!下一节点(工作项)执行是怎么触发的呢?这个秘密就隐藏在MWFActivity.run()方法中,在这个方法中调用了设置活动状态的setWFState()方法,此方法中调用了MWFProcess实例的checkActivities()方法,这个方法用来检查活的状态。如果当前活动的状态为已完成,则在此开启下一个活动(任务或工作项),开启方法就是startNext()方法。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/songgz/archive/2007/09/10/1778688.aspx
  • 大小: 20.3 KB
  • 大小: 8.2 KB
  • 大小: 10.2 KB
分享到:
评论

相关推荐

    compiere 工作流审批界面修改

    在Compiere系统中,工作流审批界面的修改是一项重要的优化任务,其目标是提升用户体验并提高审批效率。这个修改主要涉及到Compiere3.1版本,以及Adempiere-stable分支。以下是具体修改步骤和涉及的知识点: 1. **...

    Compiere工作流的代码研究

    Compiere工作流的代码研究,Compiere工作流的代码研究,Compiere工作流的代码研究.

    compiere工作流设置(图解)

    Compiere是一款开源的企业资源规划(ERP)和客户关系管理(CRM)系统,它提供了全面的业务流程自动化功能,包括工作流系统。在本场景中,我们将深入理解如何在Compiere中设置工作流,特别是在单据审核方面的应用。 ...

    compiere工作流设置2(图解)

    工作流设置是Compiere系统中的一个重要组成部分,它允许企业根据自身需求定制审批流程,确保业务操作的准确性和效率。 在Compiere中设置工作流主要包括以下几个关键步骤: 1. **定义工作流节点**:首先,你需要...

    Compiere3.3中文语言包

    开源ERP软件 Compiere3.3中文语言包 含中文会计科目、Compiere ERP使用手册、compiere工作流、compiere操作文档等

    compiere中文说明

    Compiere是一款开源的企业资源规划(ERP)和客户关系管理(CRM)系统,它提供了全面的业务解决方案,包括财务管理、采购管理、销售管理、库存管理等多个模块。这份“compiere中文说明”资料集合,虽然少见,但对于...

    compiere开发文档

    本开发文档详细介绍了如何在各种环境中配置、安装和部署Compiere系统,同时也深入探讨了Compiere的工作流设置、代码结构以及窗口和窗体的实现,对于理解和开发Compiere系统具有极高的参考价值。 1. **环境配置**:...

    compiere 3.0中文包

    8. AD_Process_Para_Trl_zh_CN.xml:处理流程参数的中文翻译,这些参数可能涉及到工作流或自定义业务逻辑,确保用户理解流程设置。 9. AD_Menu_Trl_zh_CN.xml:菜单的中文翻译,让用户能够识别和访问系统中的各项...

    Compiere workflow

    在对Compiere工作流进行任何修改之前,有几点重要的事项需要注意: 1. **缓存重置:** 修改工作流后,必须运行缓存重置(cache reset),以确保所有更改生效。 2. **窗口刷新:** 关闭并重新打开正在工作的窗口,以确保...

    compiere中文科目代码

    compiere中文科目代码 compiere中文科目代码 compiere中文科目代码

    Compiere 安装步骤详解

    Compiere是一款开源的企业资源规划(ERP)和客户关系管理(CRM)系统,适用于中小型企业。在本文中,我们将详细探讨Compiere的安装步骤,包括必要的前置软件、数据库配置和系统设置。 首先,安装Compiere之前,需要...

    compiere 中文说明书

    - **工作流功能**: Compiere的工作流功能强大,文档中对此进行了概述,帮助用户理解如何设置和管理工作流。 - **帮助功能**: 文档还包含了如何使用系统的在线帮助功能,包括屏幕帮助、在线支持以及互动培训课程等...

    Compiere安装手顺(日文版)

    通过上述步骤,您可以顺利完成Compiere系统的安装与配置工作。需要注意的是,在安装过程中应仔细核对每个步骤的设置信息,确保正确无误。此外,建议在安装前备份原有数据,以防万一出现任何意外情况。希望这份指南...

    compiere

    ERP管理软件,适应分销行业,具有基本的进销存和财务管理,程序可以扩展,强大的数据仓库利用了SOA的基本的思想,加强了数据分析能力,开创了ERP发展的新的纪元

    compiere中文包

    compiere中文包compiere中文包compiere中文包

    Compiere ERP使用手册

    Compiere ERP使用手册

    Compiere白皮书

    这不仅提升了工作效率,还减少了人为错误,确保了数据的准确性和实时性。 **2. 开放源代码与自由许可** 作为一款开放源代码软件,Compiere采用了免费且无限制的许可模式,这意味着用户无需支付昂贵的软件授权费用...

    compiere虚拟列的写法

    compiere虚拟列的写法,compiere虚拟列的写法,compiere虚拟列的写法

Global site tag (gtag.js) - Google Analytics