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

OSWorkflow讲解系列(三)Function与workitem

阅读更多

<o:p></o:p>

接下来说说,如何利用OSWorkflow的function进行任务的分配:

      OSWorkflow
是只是一个workflow engine的内核体。我们都说osworkflow非常的易扩展,但是这也同样说明了,用osworkflow去实现一个能够运行的工作流系统是非常繁琐的事情。繁琐并不是难,因为你要想实现一个流程,不得不自己去实现大量的conditionfunction

       既然说到工作流,那么肯定会涉及到“任务交给谁做”的问题。但是OSWorkflow压根就没有管这种需求,对于其来说,其提供了cf,如果再有什么额外的需求和功能,那么就扩展conditionfunction。于是,你不得不扩展一些function类去处理“角色”“任务分配”“提交任务”等等诸如此类的操作。

<o:p> </o:p>

       在我的标题中提到了workitem,这个概念几乎在其他工作流引擎都有所体现,但是对osworkflow来说,这是一个空白区域。至于workitem的含义,请参考wfmc的《Terminology & Glossary》。

<o:p> </o:p>

       OSWorkflow引擎只负责了“流程的运转”,当然这个运转会根据你所定义的Actioncondtion来判断。Funtionosworkflow来说,只是stepactionresult执行过程需要调用的功能,至于这个功能作什么,OSWorkflow并不关心,引擎只是负责提供几个参数接口。

<o:p> </o:p>

public interface FunctionProvider {<o:p></o:p>

  public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException;
}

<o:p> </o:p>

       所有的Function实现类都必须实现这个FunctionProvider接口中execute方法,而且能够处理的信息,也全部来自这个方法中的三个参数:

<o:p> </o:p>

transientVars

这个是最为核心的参数,记录非常重要的一些对象,比如WorkflowContextWorkflowEntry,输入参数等等。

args

这个是function配置中的arg参数,具体请参考osworkflow dtd

ps

PropertySet对象,记录了流程实例所需要保存的数据,可以理解成osworkflow所描述的流程相关数据。

<o:p> </o:p>

      




       
具体transienVars中包含哪些对象,请参考 FunctionProvider api doc

<o:p> </o:p>

       下面就说说如何利用Function进行任务的分配。

<o:p> </o:p>

       个人建议你在Steppre-function中做处理,配置如下:

    <step id="4" name="Assign"><o:p></o:p>

      <pre-functions><o:p></o:p>

        <function type="class"><o:p></o:p>

          <arg name="class.name">nucleus.assign.AssignmentFunction</arg><o:p></o:p>

          <arg name="Participant">A</arg><o:p></o:p>

          <arg name="ParticipantType">role</arg>
          <arg name="actionID">22</arg><o:p></o:p>

        </function><o:p></o:p>

      </pre-functions><o:p></o:p>

      <actions><o:p></o:p>

         ······<o:p></o:p>

      </actions><o:p></o:p>

    </step>

<o:p> </o:p>

看了这个配置形式,我想大家应该明白如何去处理。你可以在function中获取自己所定义的角色、根据角色获取人员、根据人员产生workitem······ 。你在function 所作的这一切操作对osworkflow engine来说都是透明的—— 你所产生的worklist所代表的含义只有你自己知道。

其中我为什么会附加了一个arg属性:actionID?这是因为我需要告诉每一个workitem在其应该处理哪一个动作。 因为外部程序都是通过Workflow.doAction(long, int, java.util.Map) 这个接口来激活流程的运转或改变实例的状态。

<o:p> </o:p>

总体来说,利用osworkflow去实现一个完整的工作流例子,还是比较麻烦的。主要是要扩展和自己实现的太多。

分享到:
评论

相关推荐

    OSWorkflow

    OSWorkflow

    OSWorkFlow

    4. 第三方教程:网上有许多关于OSWorkFlow的教程和博客文章,深入讲解各个功能和最佳实践。 总的来说,OSWorkFlow为Java开发者提供了一个强大且易用的工作流解决方案,能够有效地提升企业的业务流程管理水平。通过...

    OSWorkFlow 工作流系统设计知识的详细讲解

    ### OSWorkFlow 工作流系统设计知识的详细讲解 #### 概述 本文档将对OSWorkFlow工作流系统的设计知识进行详细讲解。OSWorkFlow是一个开源的工作流引擎,适用于构建灵活、高效的企业级应用。它提供了一套完整的解决...

    osworkflow中文入门指南,osworkflow+hibernate+spring集成配置,osworkflow-2.8.0.jar

    **OSWorkflow扩展讲解.doc** 可能详细介绍了osworkflow的高级特性和自定义方法,如如何创建自定义动作、监听器或者工作流事件处理器,这对于深度定制工作流系统至关重要。 **利用osworkflow实现业务流程.doc** 可能...

    OSWorkflow中文手册 OSWorkflow中文手册

    虽然OSWorkflow本身不提供完整的用户界面,但提供了API和事件机制,允许开发者根据需求构建自定义的用户界面,实现与业务系统的无缝对接。 9. **社区与资源** OSWorkflow有活跃的开发者社区,提供文档、示例代码...

    OSWorkflow的开发指导与指南.pdf

    综上所述,OSWorkflow开发指导与指南为开发者提供了一套完整的工作流管理方案,包括了工作流引擎的基本概念、组件结构、存储方式、配置和高级操作等多个方面,旨在帮助开发者快速理解和掌握OSWorkflow的开发与应用。

    osworkflow

    这个系统的核心功能是管理、跟踪和执行一系列步骤,这些步骤构成了一个工作流程。osWorkflow 提供了一种灵活的方式来定义、修改和控制应用程序中的工作流程,使得开发者可以轻松地实现业务流程自动化。 **工作流...

    osworkflow2.8

    OSWorkflow 提供了一系列 Java API 和 XML 配置接口,用于创建、启动、暂停、恢复和终止工作流程实例。开发者可以通过这些 API 实现对流程的控制,例如 `WorkflowEngine` 类是核心入口,`Action` 接口定义了用户...

    osworkflow_bundle2

    "osworkflow_bundle2" 是一个专门用于学习 OSWorkflow 的示例集合,它包含了一系列的资源和实例,帮助用户理解并掌握如何使用这个强大的工作流框架。在这个压缩包中,你将找到 "osworkflow_bundle" 文件,这是该学习...

    OSWorkflow之三——workflow的推动者Action

    在这个主题“OSWorkflow之三——workflow的推动者Action”中,我们将深入理解如何使用Action来驱动workflow的执行,以及它在工作流中的核心作用。 Action在OSWorkflow中扮演着至关重要的角色,它是流程状态转换的...

    Osworkflow10份资料

    osworkflow配置与demo.rar osworkflow中文开发指南.rar OSWorkflow中文手册OSWorkflow-chinese-manual-2.8.pdf Packt.Publishing.OSWorkflow.A.Guide.for.Java.Developers.and.Architects.Aug.2007.pdf 工作流普及...

    osworkflow2.8.pdf

    #### 一、OSWorkflow 简介与特性 **OSWorkflow** 是一款灵活的工作流管理工具,适用于需要高度定制化流程的应用场景。它与大多数商用或开源工作流软件的不同之处在于其高度的灵活性。 - **特点**:OSWorkflow 的...

    OSWorkflow2.8 API文档

    OSWorkflow 2.8 API 文档

    OsWorkflow

    3. **OsWorkflow API**:OsWorkflow 提供了一系列API,如启动新实例、查询当前状态、批准或拒绝任务等。通过这些API,开发者可以轻松地集成工作流到自己的应用程序中。 4. **注释**:代码注释是学习新库的重要资源...

    osworkflow三个开发文档

    学习这三个文档,开发者可以全面理解osworkflow 的工作原理,熟练掌握其API,并能够根据具体业务需求设计和实现复杂的工作流系统。通过阅读和实践,不仅可以提高开发效率,还能确保工作流系统的稳定性和灵活性。在...

    osworkflow学习笔记

    通过osworkflow项目的学习和实践,总结出的一套osworkflow工作流引擎的学习笔记,供需要使用osworkflow系统的同学们借鉴,谢谢!

    osworkflow指导文档 + 源码

    ### 三、osWorkflow 工作原理 1. **流程启动(Start Workflow)**:应用启动流程时,osWorkflow 会根据流程定义创建一个新的实例。 2. **步骤执行(Execute Step)**:osWorkflow 根据当前状态和转移条件执行相应...

Global site tag (gtag.js) - Google Analytics