`
fantasy
  • 浏览: 516344 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

osworkflow的API封装

阅读更多
    /**
     * 初始化工作流
      * @param input
     * @return
     */
    @SuppressWarnings("unchecked")
    public long doInitialize(Map input) {
        long wf_id = -1;
        try {
            wf_id = workflow.initialize(workflowName, initActionId, input);
        } catch (InvalidRoleException e) {
            logger.info("当前用户不能初始化工作流");
        } catch (Exception e) {
            throw new RuntimeException("初始化工作流出现问题:", e);
        }
        return wf_id;
    }

   /**
     * 执行动作
     */
    @SuppressWarnings("unchecked")
    public void doAction(final long workflowId, final int actionId, final Map inputs) {
        try {
            workflow.setContext();
            workflow.doAction(workflowId, actionId, inputs);
        } catch (Exception e) {
            throw new RuntimeException("执行操作失败",e);
        }
    }

   /**
    * 得到用户指定流程的有效行动
     * 
    * @param workflowId
    * @return actionID和名称的键值对
     */
    public Map<Integer, String> findAvailableActions(long workflowId) {
        Map<Integer, String> result = new HashMap<Integer, String>();
        int[] availableActions = workflow.getAvailableActions(workflowId, null);
        WorkflowDescriptor wd = workflow
                .getWorkflowDescriptor(workflow.getWorkflowName(workflowId));
        for (int i = 0; i < availableActions.length; i++) {
            int actionId = availableActions[i];
            result.put(actionId, wd.getAction(actionId).getName());
        }
        return result;
    }

    /**
     * 查询工作流描述
      * 
     */
    public WorkflowDescriptor queryWorkflowDescriptor(long workflowId) {
        return workflow.getWorkflowDescriptor(workflow.getWorkflowName(workflowId));
    }

   /**
     * 查询步骤描述,步骤描述中可以得到步骤的名称,步骤的函数
     */
    @SuppressWarnings("unchecked")
    public StepDescriptor queryStepDescriptor(int stepId) {
        return getWorkflowDescriptor().getStep(stepId);
    }

   /**
    * 查询所有步骤
     */
    @SuppressWarnings("unchecked")
    public List<Step> findSteps(long workflowId) {
        Assert.isTrue(workflowId > 0, "workflowId必须大于零");
        List<Step> result = new ArrayList<Step>();
        List currentSteps = workflow.getCurrentSteps(workflowId);
        List historySteps = workflow.getHistorySteps(workflowId);
        result.addAll(currentSteps);
        result.addAll(historySteps);
        return result;
    }
  
    /**
     * 查询操作的名称
     */
    public String findActionName(int actionId) {
        ActionDescriptor actionDescriptor = getWorkflowDescriptor().getAction(actionId);
        return actionDescriptor == null ? null : actionDescriptor.getName();
    }


    上面所写的workflow对象,你可以通过new BasicWorkflow(caller);得到。
     也可以扩展AbstractWorkflow得到
     
/**
 * 扩展的工作流类
 */
public class ExtWorkflow extends AbstractWorkflow {

    public void setContext() {
        String caller;
        try {
            caller= //通过你的上下文获得
        } catch (Exception e) {
            caller ="";
        }
        super.context=new BasicWorkflowContext(caller);
    }

}


最后:对工作流感兴趣的同仁可以加入:http://osworkflow.group.iteye.com/讨论
分享到:
评论
2 楼 fantasy 2008-05-05  
kjj 写道
这个不算扩展,只能是算包装吧,同志

对,这个只是封装 呵呵
1 楼 kjj 2008-05-05  
这个不算扩展,只能是算包装吧,同志

相关推荐

    OSWorkflow2.8 API文档

    OSWorkflow 2.8 API 文档

    OsWorkflow

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

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

    在这个压缩包中,你将找到一系列资源,包括jar包、学习资料和API手册,这些都是深入理解和使用OSWorkflow 2.8的关键。 首先,让我们详细了解一下OSWorkflow的核心概念和功能: 1. **流程定义**:OSWorkflow允许...

    OSWorkflow

    OSWorkflow

    osworkflow 简单实例

    在 Java 环境下,我们可以使用 OSWorkflow API 来创建、查询和更新工作流实例。Eclipse 是常用的集成开发环境,我们可以用它来编写和调试我们的代码。以下是一般实现步骤: 1. **安装和配置**:首先,在 Eclipse 中...

    OSWorkFlow

    OSWorkFlow是一个基于Java的工作流引擎,用于在企业级应用中实现复杂的业务流程自动化。它提供了灵活的流程定义和执行模型,使得开发者可以方便地设计、实施和管理各种工作流。下面将详细介绍OSWorkFlow的核心概念、...

    OSWorkflow中文手册 OSWorkflow中文手册

    OSWorkflow提供了丰富的Java API,使得开发人员可以在应用程序中轻松地启动流程、查询流程状态、执行任务和转移控制。同时,它也支持与其他技术栈的集成,如Spring框架,以简化部署和管理。 5. **工作流控制** - ...

    osworkflow

    6. **API 和集成**:osWorkflow 提供了丰富的Java API,方便开发者在应用程序中集成和控制工作流程。此外,它还支持与其他框架(如Spring、Struts等)的无缝集成。 7. **图形化界面**:osWorkflow 提供了Web界面,...

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

    **OSWorkflow-Opendoc.pdf** 可能是osworkflow的官方开放文档,包含了更全面的API参考、使用示例和设计原理,有助于开发者深入理解osworkflow的内部机制。 通过学习和实践这些文档,开发者可以掌握osworkflow的基本...

    工作流 osworkflow 例子和原理

    此外,OSWorkflow提供了API和事件监听器机制,允许开发者在流程执行过程中进行扩展和干预。 以“用osworkflow写一个请假例子.doc”为例,我们可以构建一个简单的请假流程:员工提交请假申请,经理审批,最后HR确认...

    基于osworkflow框架的OA系统demo

    此外,osworkflow还提供了一套API,方便与各种编程语言和应用程序集成。 **2. 工作流设计** 在OA系统的会议室使用申请DEMO中,工作流可能包含以下几个阶段: - 申请:用户提交会议室使用申请。 - 审核:由上级或...

    osworkflow-2.8.0-example.war

    - **API使用**:掌握OSWorkflow的Java API,如WorkflowEngine、SessionFactory和Workflow实例的创建与操作。 - **事务管理**:学习如何在工作流程操作中正确地管理数据库事务,确保数据的一致性。 - **用户交互**:...

    osworkflow配置及演示程序.rar

    6. **API使用**:压缩包可能还包括了关于如何使用OSWorkflow API的文档,如启动流程、查询当前状态、完成任务、回退到某个步骤等操作。 7. **示例代码**:除了文档,可能还有Java源代码示例,展示了如何在实际项目...

    OSWorkflow源码及电子书

    6. **API友好**:OSWorkflow提供了丰富的Java API,使得开发人员可以方便地进行流程控制,如启动流程、查询当前状态、执行下一步操作等。 关于电子书,它们通常会包含以下内容: 1. **入门教程**:介绍如何安装和...

    OSWorkflow 工作流 开发指南、中文手册

    3. 集成API:在项目中引入OSWorkflow API,启动和控制流程实例。 4. 实现参与者接口:根据需要定义参与者类,处理任务分配和执行。 5. 监控和调试:通过Web界面或API监控流程状态,调试和优化工作流逻辑。 六、最佳...

    osworkflow_bundle2

    8. **API 与集成**:OSWorkflow 提供了丰富的 Java API,可以方便地与各种应用程序集成,如 Struts、Spring 等,实现工作流驱动的业务逻辑。 9. **工作流控制**:通过 API,开发者可以暂停、恢复、跳过、回退工作流...

    osworkflow指导文档 + 源码

    4. **流程控制(Process Control)**:osWorkflow 提供 API 供开发者暂停、恢复、终止流程实例。 5. **持久化(Persistence)**:osWorkflow 可以将流程实例和历史数据持久化到数据库中,确保流程的可恢复性。 ###...

    OSWorkflow中文手册 2.8

    在实际开发过程中,开发者需要频繁地与OSWorkflow交互,因此熟练掌握API至关重要: - **接口选择**:根据应用场景选择合适的API接口。 - **创建工作流**:使用API来定义新的流程模板。 - **执行动作**:启动流程...

    osworkflow2.8

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

Global site tag (gtag.js) - Google Analytics