/**
* 初始化工作流
* @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/讨论
分享到:
- 2008-05-05 10:20
- 浏览 1949
- 评论(2)
- 论坛回复 / 浏览 (2 / 2371)
- 查看更多
相关推荐
OSWorkflow 2.8 API 文档
3. **OsWorkflow API**:OsWorkflow 提供了一系列API,如启动新实例、查询当前状态、批准或拒绝任务等。通过这些API,开发者可以轻松地集成工作流到自己的应用程序中。 4. **注释**:代码注释是学习新库的重要资源...
在这个压缩包中,你将找到一系列资源,包括jar包、学习资料和API手册,这些都是深入理解和使用OSWorkflow 2.8的关键。 首先,让我们详细了解一下OSWorkflow的核心概念和功能: 1. **流程定义**:OSWorkflow允许...
OSWorkflow
在 Java 环境下,我们可以使用 OSWorkflow API 来创建、查询和更新工作流实例。Eclipse 是常用的集成开发环境,我们可以用它来编写和调试我们的代码。以下是一般实现步骤: 1. **安装和配置**:首先,在 Eclipse 中...
OSWorkFlow是一个基于Java的工作流引擎,用于在企业级应用中实现复杂的业务流程自动化。它提供了灵活的流程定义和执行模型,使得开发者可以方便地设计、实施和管理各种工作流。下面将详细介绍OSWorkFlow的核心概念、...
OSWorkflow提供了丰富的Java API,使得开发人员可以在应用程序中轻松地启动流程、查询流程状态、执行任务和转移控制。同时,它也支持与其他技术栈的集成,如Spring框架,以简化部署和管理。 5. **工作流控制** - ...
6. **API 和集成**:osWorkflow 提供了丰富的Java API,方便开发者在应用程序中集成和控制工作流程。此外,它还支持与其他框架(如Spring、Struts等)的无缝集成。 7. **图形化界面**:osWorkflow 提供了Web界面,...
**OSWorkflow-Opendoc.pdf** 可能是osworkflow的官方开放文档,包含了更全面的API参考、使用示例和设计原理,有助于开发者深入理解osworkflow的内部机制。 通过学习和实践这些文档,开发者可以掌握osworkflow的基本...
此外,OSWorkflow提供了API和事件监听器机制,允许开发者在流程执行过程中进行扩展和干预。 以“用osworkflow写一个请假例子.doc”为例,我们可以构建一个简单的请假流程:员工提交请假申请,经理审批,最后HR确认...
此外,osworkflow还提供了一套API,方便与各种编程语言和应用程序集成。 **2. 工作流设计** 在OA系统的会议室使用申请DEMO中,工作流可能包含以下几个阶段: - 申请:用户提交会议室使用申请。 - 审核:由上级或...
- **API使用**:掌握OSWorkflow的Java API,如WorkflowEngine、SessionFactory和Workflow实例的创建与操作。 - **事务管理**:学习如何在工作流程操作中正确地管理数据库事务,确保数据的一致性。 - **用户交互**:...
6. **API使用**:压缩包可能还包括了关于如何使用OSWorkflow API的文档,如启动流程、查询当前状态、完成任务、回退到某个步骤等操作。 7. **示例代码**:除了文档,可能还有Java源代码示例,展示了如何在实际项目...
6. **API友好**:OSWorkflow提供了丰富的Java API,使得开发人员可以方便地进行流程控制,如启动流程、查询当前状态、执行下一步操作等。 关于电子书,它们通常会包含以下内容: 1. **入门教程**:介绍如何安装和...
3. 集成API:在项目中引入OSWorkflow API,启动和控制流程实例。 4. 实现参与者接口:根据需要定义参与者类,处理任务分配和执行。 5. 监控和调试:通过Web界面或API监控流程状态,调试和优化工作流逻辑。 六、最佳...
8. **API 与集成**:OSWorkflow 提供了丰富的 Java API,可以方便地与各种应用程序集成,如 Struts、Spring 等,实现工作流驱动的业务逻辑。 9. **工作流控制**:通过 API,开发者可以暂停、恢复、跳过、回退工作流...
4. **流程控制(Process Control)**:osWorkflow 提供 API 供开发者暂停、恢复、终止流程实例。 5. **持久化(Persistence)**:osWorkflow 可以将流程实例和历史数据持久化到数据库中,确保流程的可恢复性。 ###...
在实际开发过程中,开发者需要频繁地与OSWorkflow交互,因此熟练掌握API至关重要: - **接口选择**:根据应用场景选择合适的API接口。 - **创建工作流**:使用API来定义新的流程模板。 - **执行动作**:启动流程...
OSWorkflow 提供了一系列 Java API 和 XML 配置接口,用于创建、启动、暂停、恢复和终止工作流程实例。开发者可以通过这些 API 实现对流程的控制,例如 `WorkflowEngine` 类是核心入口,`Action` 接口定义了用户...