(史帝芬)osworkflow入门教程学习体会

可以这么说史帝芬的http://my.so-net.net.tw/idealist/OSWorkflow/osworkflow资料是目前华文osworkflow资料中最好的一份入门教程。去面的时候在mssql中中实践过这份入门资料,感觉非常顺利。但感觉按作者的顺序把教程中的例子跑完了,还不完全清楚的明白osworkflow的架构。前些在mysql5.0中重做一次,遇到了挺多问题,我通过一步一步的跟踪原代码调试终于把这些问题搞定。下图是把osworkflow所提供的mysql下的数据表的ER图:

如果你的osworkflow持久化到mysql中你的osworkflow.xml文件内如必需按如下格式来写:

<osworkflow>
<persistence class="com.opensymphony.workflow.spi.jdbc.MySQLWorkflowStore">
<property key="datasource" value="jdbc/DefaultDS"/>
   <property key="step.sequence.increment" value="INSERT INTO OS_STEPIDS (ID) values (null)"/>
   <property key="step.sequence.retrieve"  value="SELECT count(ID) FROM OS_STEPIDS"/>
   <property key="entry.sequence.increment" value="INSERT INTO OS_ENTRYIDS (ID) values (null)"/>
   <property key="entry.sequence.retrieve" value="SELECT count(ID) FROM OS_ENTRYIDS"/>

<property key="entry.table" value="OS_WFENTRY"/>
<property key="entry.id" value="ID"/>
<property key="entry.name" value="NAME"/>
<property key="entry.state" value="STATE"/>

<property key="history.table" value="OS_HISTORYSTEP"/>
<property key="current.table" value="OS_CURRENTSTEP"/>
<property key="historyPrev.table" value="OS_HISTORYSTEP_PREV"/>
<property key="currentPrev.table" value="OS_CURRENTSTEP_PREV"/>
<property key="step.id" value="ID"/>
<property key="step.entryId" value="ENTRY_ID"/>
<property key="step.stepId" value="STEP_ID"/>
<property key="step.actionId" value="ACTION_ID"/>
<property key="step.owner" value="OWNER"/>
<property key="step.caller" value="CALLER"/>
<property key="step.startDate" value="START_DATE"/>
<property key="step.finishDate" value="FINISH_DATE"/>
<property key="step.dueDate" value="DUE_DATE"/>
<property key="step.status" value="STATUS"/>
<property key="step.previousId" value="PREVIOUS_ID"/>

</persistence>
<factory class="com.opensymphony.workflow.loader.XMLWorkflowFactory">
  <property key="resource" value="workflows.xml"/>
</factory>
</osworkflow>
propertyset.xml文件格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<propertysets>
   <propertyset name="jdbc"
    class="com.opensymphony.module.propertyset.database.JDBCPropertySet">
     <arg name="datasource" value="java:comp/env/jdbc/DefaultDS"/>
     <arg name="table.name" value="OS_PROPERTYENTRY"/>
     <arg name="col.globalKey" value="GLOBAL_KEY"/>
     <arg name="col.itemKey" value="ITEM_KEY"/>
     <arg name="col.itemType" value="ITEM_TYPE"/>
     <arg name="col.string" value="STRING_VALUE"/>
     <arg name="col.date" value="DATE_VALUE"/>
     <arg name="col.data" value="DATA_VALUE"/>
     <arg name="col.float" value="FLOAT_VALUE"/>
     <arg name="col.number" value="NUMBER_VALUE"/>
   </propertyset>
</propertysets>

时间: 2024-11-03 12:29:57

(史帝芬)osworkflow入门教程学习体会的相关文章

史帝芬-罗奇:个人收入提高促消费助经济增长

人民网北京3月21日电(实习记者 隋立明) 今天,中国发展高层论坛2011年会在北京继续举行,第六单元以"'十二五'规划与宏观经济政策"为主题讨论,耶鲁大学史帝芬·罗奇教授在发言中表示,中国的消费者可能需要扮演一个更重要的角色,来促进中国成长的动能. 史帝芬·罗奇认为,在未来的需求当中,中国的消费者可能需要扮演一个更重要的角色,来促进中国成长的动能.三个基本的要素:第一,就业.就业是由服务业提供的.第二,工资.工资主要是通过对农业收入.农村收入的支持实现的.第三,消费倾向.这是最微妙的

Node.js入门教程学习笔记分享(1/8)

什么是Node.js Node.js 是服务器端的 JavaScript 运行环境,它允许在后端(脱离浏览器环境)运行JavaScript代码.Node.js具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色,它实现了类似 Apache 和 nginx 的web服务,让你可以通过它来搭建基于 JavaScript 的 Web App. 要实现在后台运行JavaScript代码,代码需要先被解释然后正确的执行,Node.js的原理正是如此,它使用了Google的V

vue.js初学入门教程(2)_javascript技巧

接着上一篇vue慢速入门教程学习. 4.组件使用基础 什么是组件?组件可以理解为可重用的自定义HTML. 可以使用一堆组件来构造大型应用,任意类型的应用界面都可以抽象为一个组件树: 可以把组件代码按照template.style.script的拆分方式,放置到对应的.vue文件中. 组件预定义选项中最核心的几个: 模板(template).初始数据(data).接受的外部参数(props).方法(methods).生命周期钩子函数(lifecycle hooks). 4.1 基本步骤 使用组件首

Three.js快速入门教程_javascript技巧

引言 本文主要是讲解Three.js的相关概念,帮助读者对Three.js以及相关知识形成比较完整的理解. 近年来web得到了快速的发展.随着HTML5的普及,网页的表现能力越来越强大.网页上已经可以做出很多复杂的动画,精美的效果. 但是,人总是贪的.那么,在此之上还能做什么呢?其中一种就是通过WebGL在网页中绘制高性能的3D图形. OpenGL,WebGL到Three.js OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库. WebGL是基于OpenGL设计的面向web的图形标准,

学习网页制作基础入门教程(3)字体标签

教程|入门教程|网页 相关文章: 学习网页制作基础入门教程(1)网页编写 学习网页制作基础入门教程(2)排版标签 标题标签 1. 使用方法:<H1>标题內容</H1> 2. 标签解释:标题的大小一共有六种,两个标签一组,也就是从 <H1> 到 <H6> , <H1> 最大,<H6>最小.使用标题标签时,该标签会将字体变为粗体字,并会自成一行. 3. 使用范例: 原始碼 呈現結果 <H1>标题1</H1> 标题1

XML入门教程:掌握学习 XML 语法规则

xml|教程|入门教程|语法 XML的语法规则既很简单,又很严格.这些规则很容易学习,也很容易使用. 正因为如此,创建可读取及操作XML的软件不是一件难事. 一个XML文档的例子 XML使用一种可自我描述的简单的语法. <?xml version="1.0" encoding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><headin

学习网页制作基础入门教程

教程|入门教程|网页 学习网页制作基础入门教程(1)网页编写 学习网页制作基础入门教程(2)排版标签 学习网页制作基础入门教程(3)字体标签 学习网页制作基础入门教程(4)图象标签 学习网页制作基础入门教程(5)背景标签 学习网页制作基础入门教程(6)连接标签 学习网页制作基础入门教程(7)表格标签 学习网页制作基础入门教程(8)框架标签 学习网页制作基础入门教程(9)序列标签 学习网页制作基础入门教程(10)表单标签 学习网页制作基础入门教程(11)注意的问题

学习网页制作基础入门教程(9)序列标签

教程|入门教程|网页 相关文章: 学习网页制作基础入门教程(1)网页编写 学习网页制作基础入门教程(2)排版标签 学习网页制作基础入门教程(3)字体标签 学习网页制作基础入门教程(4)图象标签 学习网页制作基础入门教程(5)图象标签 学习网页制作基础入门教程(6)连接标签 学习网页制作基础入门教程(7)表格标签 学习网页制作基础入门教程(8)框架标签 无序标签 1. 序列标签基本上可分为两种,一种是"无序条列",一种是"有序条列".所谓"无序条列"

学习网页制作基础入门教程(8)框架标签

教程|入门教程|网页 相关文章: 学习网页制作基础入门教程(1)网页编写 学习网页制作基础入门教程(2)排版标签 学习网页制作基础入门教程(3)字体标签 学习网页制作基础入门教程(4)图象标签 学习网页制作基础入门教程(5)图象标签 学习网页制作基础入门教程(6)连接标签 学习网页制作基础入门教程(7)表格标签 框架概念 1. 首先,各位先看看右边这张图片,将利用这张图来做解释,这样子,讲起来可能会清楚一些. 我们可以看见,右边的这个图片,一共分为 1 . 2 . 3 三个框架,每一个框架,各有