基本的osworkflow API
来源:互联网 发布:python编程用什么软件 编辑:程序博客网 时间:2024/05/08 04:07
接口选择:
osworkflow提供几种实现com.opensymphony.workflow.Workflow。
BasicWorkflow:
不提供事务支持,你可以通过持久层来实现事务处理。
Workflow wf = new BasicWorkflow(username)
这里的username是用来关联当前请求的用户。
EJBWorkflow:
用ejb容器来管理事务。在ejb-jar.xml中进行配置。
Workflow wf = new EJBWorkflow()
这里没有必要想basicworkflow和ofbizworkflow那样给出username。因为ejb容器已经校验过的。
Ofbizworkflow:
与basicworkflow比较相似,不同只在于需要事务支持的方法由ofbiz TransactionUtil calls来包装。
创建新的工作流实例:
这里是以basicworkflow为例子
Workflow wf = new BasicWorkflow(username);
HashMap inputs = new HashMap();
inputs.put("docTitle", request.getParameter("title"));
wf.initialize("workflowName", 1, inputs);
执行action:
Workflow wf = new BasicWorkflow(username);
HashMap inputs = new HashMap();
inputs.put("docTitle", request.getParameter("title"));
long id = Long.parseLong(request.getParameter("workflowId"));
wf.doAction(id, 1, inputs);
查询:
值得注意的是:并不是所有的 workflow stores支持查询。当前的hibernate,jdbc和内存工作流存储支持查询。Hibernate存储不支持mixed-type查询(如,一个查询使用到了历史和当前step contexts)。为了执行一个查询,需要构造出一个WorkflowExpressionQuery对象。查询方法是在这个对象上被调用的。
简单查询、嵌套查询、mixed-context查询(不支持hibernate工作流存储)在docs文档的5.4部分都有。
2.7版的osworkflow提供一种配置接口。默认实现是DefaultConfiguration,通过AbstractWorkflow的setconfiguration方法来更改历史遗留的singleton静态模型使其不会被使用。应该避免每次都创建新的工作流实例。
遗留部分:
Workflow workflow = new BasicWorkflow("blah");
long workflowId = workflow.initialize("someflow", 1, new HashMap());
workflow.doAction(workflowId, 2, new HashMap());
...
//in some other class, called later on
Workflow workflow = new BasicWorkflow("blah");
workflow.doAction(workflowId, 3, new HashMap());
推荐方法:
Workflow workflow = new BasicWorkflow("blah");
Configuration config = new DefaultConfiguration();
workflow.setConfiguration(config);
long workflowId = workflow.initialize("someflow", 1, new HashMap());
workflow.doAction(workflowId, 2, new HashMap());
//keep track of Workflow object somewhere!
...
//in some other class, called later on
//look up Workflow instance that was held onto earlier
Workflow workflow = ...; //note, do NOT create a new one!
workflow.doAction(workflowId, 3, new HashMap());
实际当中还是需要到javadoc中不断去查。
- 基本的osworkflow API
- osworkflow基本api
- 使用OSWorkflow的API[原]
- 使用OSWorkflow的API[转]
- osworkflow学习笔记3-使用OSWorkflow的API
- osworkflow api 之 spi
- osworkflow api 之 timer
- osworkflow api 之 util
- osworkflow API 分析(转)
- 关于osworkflow的osworkflow.dtd
- 使用OSWorkflow提供的Query API[转史蒂芬笔记]
- 将osworkflow与spring和hibernate集成的基本介绍
- osworkflow Api 之 loader部分
- OSWorkflow的基本概念[原]
- OSWORKFLOW工作流的概念
- osworkflow的工作流工厂
- 充分利用 OSWorkflow 的 function
- osworkflow的基本概念
- Java数据库编程中的几个常用技巧
- 郁闷啊,登陆域的后果
- [收藏]实现支持断点续传多线程下载的 Http Web 客户端工具类 (第2版)
- 十大奇图,看眼睛如何欺骗大脑
- 前K条最短路径算法
- 基本的osworkflow API
- 南瓜做的脑袋
- biosdisk的用法
- 人在江湖飘
- 设计素材
- 在ASP.NET(C#)中使用Oralce Object For OLE 2.3连接Oracle 8.0.5数据库!
- 连接SQLServer数据库
- 在.Net里用OWC11画统计图
- Three Ways to Inject Your Code into Another Process