`
- 浏览:
1024 次
- 性别:
- 来自:
北京
-
一、怎样取得当前步骤的信息
Workflow wf = new BasicWorkflow(username);
Step step = (step)wf.getCurrentSteps(id).iterator().next();
这样就得到了当前需要执行的步骤,返回的是一个step,step可以得到的信息一般可用的是getCaller(),得到当前的执行者,getEntryId(),得到工作流的id,这个不理解,既然得到step需要传入workflow的id,为什么还需要此方法?
如果需要得到步骤的描述信息,则需要得到StepDescriptor:
1.先获得WorkflowDescriptor
WorkflowDescriptor wd = wf.getWorkflowDescriptor(wf.getWorkflowName(id));
2.获得StepDescriptor
StepDescriptor sd = wd.getStep(stepId);//这里的stepId可以用step.getStepId()来取得
3.StepDescriptor可以得到的信息
StepDescriptor可以得到在xml中配置的描述信息,比如step的名称,sd.getName();
二、怎么取得可执行动作的信息
估计猜也猜得到了,取得ActionDescriptor;
没错,先用StepDescriptor取得ActionDescriptor,这样就能获取执行动作的名称等信息。
所以在osworkflow中可以写一些常用的Util方法,可是也许是osworkflow的设计问题,每个Util方法都得重复很多代码,比如重复得获取WorkflowDescriptor.StepDescriptor等等。。。。
简单例子如下:
public static List<Action> getActionNames(long id,String username){
List<Action> actions = new ArrayList<Action>();
List<String> names = new ArrayList<String>();
Workflow wf = new BasicWorkflow(username);
WorkflowDescriptor wd = wf.getWorkflowDescriptor(wf.getWorkflowName(id));
Step step = (Step) wf.getCurrentSteps(id).iterator().next();
StepDescriptor sd = wd.getStep(step.getStepId());
List<ActionDescriptor> ads = sd.getActions();
for(ActionDescriptor a:ads){
Action action = new Action();
action.setActionId(a.getId());
action.setActionName(a.getName());
actions.add(action);
}
return actions;
}
获得当前步骤下能执行的action的名称,这一般是在页面上用于显示的,比如审批同意还是驳回,并不是自己手动加一个链接上去,而是动态生成的。
三、怎样传一些可用值到osworkflow流程中使用
这个问题一开始纠结了好久。慢慢地看一些前辈写的例子才知道。
在osworkflow的initialize()和doAction()方法中可以传一个map参数。这个参数即用来传值供流程中使用,比如:
Map inputs = new HashMap();
inputs.put("hello","hello world");
wf.initialize("请假",1,inputs);
传进去的inputs可以在初始化定义的时候使用,我猜具体可以在script中用transientVars.get();获得,但是没有实现,因为一般用不着。最常见的一般是定义一个function()在function类中使用,可以用来保存数据到数据库中。
如下:
<initial-actions>
<action name="工作流初始化" id="1000">
<pre-functions>
<function type="class">
<arg name="class.name">com.ideamoment.function.FunctionTest</arg>
</function>
</pre-functions>
<results>
<unconditional-result old-status="Finished" status="Underway" step="1" owner="${caller}"/>
</results>
</action>
</initial-actions>
在FunctionTest中可以获取到inputs的值
public class TestFunction implements FunctionProvider{
public void execute(Map transientVars, Map args, PropertySet ps)
throws WorkflowException {
String hello = (String)transientVars.get("hello");
System.out.println(hello);
}
另外也可以在xml定义的流程文件中<arg>标签中定义数据,然后在Funtion中用args.get()来获取。
以上为自己摸索osworkflow得出的东西,官方文档是在太粗糙,基本没什么有价值的东西。希望前辈还能在指教一下,唉。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在这个压缩包中,你将找到一系列资源,包括jar包、学习资料和API手册,这些都是深入理解和使用OSWorkflow 2.8的关键。 首先,让我们详细了解一下OSWorkflow的核心概念和功能: 1. **流程定义**:OSWorkflow允许...
然后,通过OsWorkFlow提供的API,你可以实例化工作流引擎,加载XML配置,启动一个新的流程实例。在这个过程中,OsWorkFlow会根据配置文件自动创建任务节点,并管理它们的状态变化。 在实际应用中,OsWorkFlow还提供...
OSWorkflow是一款开源的工作流引擎,主要用于管理应用程序中的复杂业务流程。这款工具提供了强大的工作流建模、执行和跟踪功能,让开发者能够灵活地定义和控制应用程序的流程逻辑。本手册是OSWorkflow的中文版,旨在...
- **动态加载**:运行时通过API读取文件内容并解析。 - **混合加载**:结合静态和动态两种方式,适用于需要动态调整流程定义的场景。 #### 三、高级功能 ##### 1. 其他模块整合 OSWorkflow不仅能够独立运行,还...
osWorkflow 是一款开源的工作流引擎,主要用于处理业务流程中的各种工作流逻辑。它提供了一种灵活的方式来定义、控制和执行复杂的业务流程,允许开发者在不修改代码的情况下改变流程。本指导文档结合源码将深入解析 ...
`lib`目录下是一些osWorkflow运行所依赖的第三方库,比如数据库连接池、XML解析库等。了解这些库可以帮助开发者更好地理解和配置osWorkflow的运行环境,确保其正常运行。 总的来说,osworkflow-2.8.0.zip提供了一...
这个中文手册是为了解决中文用户在理解和使用OSWorkflow时的语言障碍,提供详细的指南和实例解析。 工作流引擎是软件系统中一个重要的组成部分,它负责管理、执行和监控一系列相互关联的任务,这些任务通常涉及到多...
因此,基于状态机思想的OSWorkflow应运而生,它不仅能够提供简单易用的API接口,还具备高度的可定制性。 #### 二、OSWorkflow的特点与优势 1. **易于集成**:OSWorkflow设计之初就考虑到了与现有系统的兼容性问题...
- **与现有系统集成**:通过API调用、消息队列、数据库触发器等方式,使OSWorkflow能够嵌入到现有的业务流程中。 - **流程描述定义规范**:XML配置文件遵循特定语法,描述工作流的结构和行为。 - **GUI设计器**:...
1. osworkflow的基本概念和功能,包括流程定义、状态管理、任务分配等。 2. osworkflow的源码分析,可能涉及到核心类和方法,以及如何通过修改源码来定制化工作流引擎。 3. 在实际项目中的部署和集成,包括配置、API...
《基于osworkflow与Eclipse的请假审批流程完整示例解析》 在IT行业中,工作流管理系统(Workflow Management System,简称WMS)是企业信息化建设的重要组成部分,它能够规范业务流程,提高工作效率。osworkflow是一...
2. **快速入门**:介绍基本概念和术语,提供一个简单的示例来展示osworkflow 的基本用法。 3. **API详解**:详尽地解析osworkflow 提供的接口,包括流程定义、流程实例管理、任务处理等。 4. **工作流定义**:解释...
- **osworkflow.xml加载过程**:解析配置文件的过程,以及如何初始化各个组件。 - **WorkflowDescriptor对象加载过程**:加载描述工作流配置的XML文件。 - **WorkflowStore对象加载过程**:初始化存储机制,如内存或...
总结起来,这个压缩包包含的内容涵盖了 OSWorkflow 的基本配置、工作流定义、数据库集成以及实际应用场景的演示,对于想要深入理解和使用 OSWorkflow 的开发者来说,是非常有价值的参考资料。通过学习和实践,你可以...
此外,osWorkflow 还提供了API,允许与其他系统集成,如Spring、Hibernate等。 **5. 示例应用** 在实际项目中,osWorkflow 可用于审批流程、订单处理、文档管理等多种场景。源码分析可以帮助我们更好地理解和定制...
9. **文档支持**:这份中文手册详细阐述了OSWorkflow的各个方面,包括安装、配置、API使用、实例解析等,是学习和使用OSWorkflow的重要参考资料。 通过阅读《OSWorkflow中文手册》,读者将能够理解工作流的基本概念...
标题“OSWorkflow_PDF”指的是一个关于OSWorkflow的PDF文档,这是一份详细阐述OSWorkflow工作流引擎的资料。OSWorkflow是一款开源的工作流管理系统,它允许开发者在Java应用程序中实现复杂的业务流程。这个PDF文件...
OsWorkflow是一款强大的工作流管理工具,适用于Java开发环境,能够帮助开发者实现复杂业务流程的自动化管理。以下是该文档中涵盖的关键知识点: 1. **工作流概念**:OsWorkflow首先介绍了工作流的基本概念,包括...