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

Workflow Engine: OSWorkflow

 
阅读更多

OSWorkflow Reference

OSWorkflow is now not maintenenced by provider. See more information from: 

 

 

Explain osworkflow basic concept and how to use osworkflow.

 

 

It is important to understand following concepts:

 

  1. Functions and conditions
  2. Result and unconditional result
  3. transientVars , property set and arguments
  4. some other basic os workflow concept.

Transient Var and Property Set

 

Business processes need to store bits of data during their lifetime or certain periods of time for working purposes. The data that stays alive only during the workflow instance execution is called transient data. Information stored across invocations is called persistent data.


 

Integrate OSWorkflow in Spring

 

We can find Workflow and its classes Configuration from:

 

  • osworkflow-spring.xml

 

We can find Workflow Store related persistence information from:

 

  • opensymphony.hbm.xml

 


OsWorkflow Source Code Analyze

Initialize Workflow

Here we can study the source code of com.opensymphony.workflow.AbstractWorkflow.initialize(*) to see what's happened behind workflow initialization:

 

 

public long initialize(String workflowName, int initialAction, Map inputs) throws InvalidRoleException, 
      InvalidInputException, WorkflowException {
        WorkflowDescriptor wf = getConfiguration().getWorkflow(workflowName); // #1

        WorkflowStore store = getPersistence();//- #2
        WorkflowEntry entry = store.createEntry(workflowName);// #2

        // start with a memory property set, but clone it after we have an ID
        PropertySet ps = store.getPropertySet(entry.getId()); // #3
        Map transientVars = new HashMap();

        if (inputs != null) {
            transientVars.putAll(inputs);
        }

        populateTransientMap(entry, transientVars, wf.getRegisters(), new Integer(initialAction), Collections.EMPTY_LIST, ps);

        if (!canInitialize(workflowName, initialAction, transientVars, ps)) {
            context.setRollbackOnly();
            throw new InvalidRoleException("You are restricted from initializing this workflow");
        }

        ActionDescriptor action = wf.getInitialAction(initialAction);

        try {
            transitionWorkflow(entry, Collections.EMPTY_LIST, store, wf, action, transientVars, inputs, ps);
        } catch (WorkflowException e) {
            context.setRollbackOnly();
            throw e;
        }

        long entryId = entry.getId();

        // now clone the memory PS to the real PS
        //PropertySetManager.clone(ps, store.getPropertySet(entryId));
        return entryId;
    }

#1: Workflow Engine will first call Configuration to get WorkflowDescriptor. Configuration will delegate the request to HibernateWorkflowFactory.getWorkflow(String:workflowName, Boolean:validate) .
#2: Workflow Engine will create a new Entry for to be run workflow. 
#3: Initial a PropertySet associated to the Workflow.

     

    分享到:
    评论

    相关推荐

      《疯狂Workflow讲义:基于Activiti的工作流应用开发》

      《疯狂Workflow讲义:基于Activiti的工作流应用开发》内容概括: 本书是一本介绍Java工作流领域的书,以Activiti为核心,内容囊括了多个流行的企业级Java EE框架,全书主要可分为以下几个部分。 第1部分:对...

      osworkflow指导文档 + 源码

      1. **流程定义(Workflow Definition)**:osWorkflow 中的流程定义是通过 XML 文件来创建的,它描述了工作流的各个步骤、转移条件、参与者等信息。 2. **状态(State)**:每个任务在流程中都有一个特定的状态,如...

      workflow

      在IT领域,工作流引擎(Workflow Engine)扮演着关键角色,它们为应用程序提供了处理工作流逻辑的能力。"osWorkflow"是一个流行开源的工作流引擎,专为Java平台设计,用于管理业务流程和状态。 osWorkflow的核心...

      Tsunagi BPM Workflow Engine:适用于BPM应用程序的完美Java工作流引擎-开源

      Tsunagi BPM Workflow Engine 是一个专为构建业务流程管理(Business Process Management, BPM)应用程序而设计的高效Java工作流引擎。该引擎的核心优势在于其灵活性和可定制性,使得开发者能够利用Java的强大功能来...

      workflow_osworkflow_工作流_

      OSWorkflow,全称OpenSymphony Workflow,是由OpenSymphony Group开发的一个轻量级工作流引擎。它的设计目标是提供一个可扩展且易于使用的平台,用于实现业务流程的建模和执行。OSWorkflow的核心特性包括: 1. **...

      Workflow Engine Server v2.3.rar

      《Workflow Engine Server v2.3:基于Delphi的流程引擎详解》 在IT行业中,流程自动化是提升效率、优化业务流程的关键技术。Workflow Engine Server v2.3是一款强大的流程引擎,专为Delphi开发环境设计,它允许...

      OSWorkflow开发指南 - 中文

      OSWorkflow,全称为OpenSymphony Workflow,是一款开源的工作流管理系统,用于实现业务流程自动化和管理。这个开发指南是中文版的资源,旨在帮助中国的开发者更好地理解和应用OSWorkflow。以下是关于OSWorkflow的...

      developing a reusable workflow engine

      这些系统的核心是工作流引擎(Workflow Engine),它是工作流管理系统中最核心的软件服务,提供了流程实例(process instance)的运行时执行环境。每一个工作流产品、原型或方法,无论以何种方式,都至少包含一个...

      SharePoint 2007 and Windows WorkFlow Foundation: Integrating Divergent Worlds

      标题“SharePoint 2007 and Windows Workflow Foundation: Integrating Divergent Worlds”涉及到的是在2007年版本的Microsoft SharePoint与Windows Workflow Foundation(WWF)的集成技术。这个主题聚焦于如何将这...

      状态机工作流OSWorkflow

      状态机工作流(State Machine Workflow)是一种模型,用于设计和实现复杂的业务流程。它通过定义一系列的状态和转换规则,使得系统能够根据当前状态和输入触发相应的动作或转换,从而完成预定的任务。OSWorkflow 是...

      OSWorkflow源码及电子书

      OSWorkflow,全称为OpenSymphony Workflow,是一款轻量级、高度灵活的开源工作流引擎,专为满足各类组织和企业的工作流程管理需求而设计。它提供了丰富的API和配置选项,使得开发者可以轻松地将工作流集成到自己的...

      osworkflow简单实现

      OSWorkflow,全称为OpenSymphony Workflow,是一款开源的工作流引擎,用于在应用程序中实现复杂的业务流程。这个项目由OpenSymphony Group开发,现在已经并入到Atlassian的Confluence产品中。OSWorkflow提供了一种...

      OSWorkflow工作流程源码(JAVA/JSP)

      OSWorkflow(Open Source Workflow)是一个开源的工作流管理系统,它主要用Java语言编写,能够帮助开发者实现复杂的企业级工作流程自动化。本篇将深入探讨OSWorkflow的核心概念、功能特性以及如何利用提供的源码进行...

      Event-Driven Workflow Engine

      ### 事件驱动的工作流引擎——理解与实现 #### 摘要 本文介绍了一种新型的工作流引擎实现方法,该引擎支持基于服务的应用程序。这些应用程序根据GAT(Guarded Atomic Transaction,即受保护的原子事务)模型进行...

      osworkflow

      工作流(Workflow)是将一系列任务组织成有序的流程,它描述了任务如何在不同参与者之间传递,以及这些任务如何根据特定条件执行或跳过。OSWorkflow 提供了一种模型-视图-控制器(MVC)架构,使得工作流设计与实际...

      OSworkflow中文手册和用户指南

      OSWorkflow 是一个强大的开源工作流引擎,主要用于设计和管理复杂的工作流程。这个工具提供了一种灵活的方式来定义和执行业务流程,使得开发者可以专注于业务逻辑,而不是底层的工作流实现。中文手册和用户指南提供...

      osworkflow配置及演示程序.rar

      OSWorkflow(Open Source Workflow)是一个开源的工作流管理系统,它允许开发者在Java应用程序中实现复杂的业务流程。以下是对该压缩包中可能包含的内容的详细解释: 1. **OSWorkflow介绍**:OSWorkflow提供了一个...

      framework osworkflow / jbpm

      OSWorkflow,全称为Open Source Workflow System,是一个轻量级、可扩展的工作流引擎,允许开发者定义和执行业务流程。它的主要功能包括: 1. **流程定义**:通过XML配置文件,开发者可以定义各种复杂的流程步骤,...

      流程引擎OSworkflow2.8资料(所有jar包,学习资料,api)

      OSWorkflow 是一个强大的开源工作流引擎,主要用于管理应用程序中的复杂业务流程。在2.8版本中,它提供了全面的功能和良好的可扩展性,是Java开发者处理流程自动化的重要工具。在这个压缩包中,你将找到一系列资源,...

      osworkflow详细资料 pdf 工作流

      工作流(Workflow)是一种自动化业务流程的技术,它通过定义、执行和管理工作任务的流转,实现企业业务流程的规范化和自动化。在IT领域,工作流系统广泛应用于企业管理、项目协作、审批流程等多个场景,极大地提高了...

    Global site tag (gtag.js) - Google Analytics