- 浏览: 190868 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
nfsfairytale:
求附件求附件
一种高效的寻路算法 - B*寻路算法 -
wafer1021:
想在服务端运用这种
一种高效的寻路算法 - B*寻路算法 -
zhezhelin:
最新代码有吗
一种高效的寻路算法 - B*寻路算法 -
zyh2018:
你好!很开心看到你写的B*算法,但是C++版本的代码看起来很吃 ...
一种高效的寻路算法 - B*寻路算法 -
asuralove:
学习了~~~~
一种高效的寻路算法 - B*寻路算法
最近工作中一个项目打算采用工作流技术,所以对工作流特别是OSWorkflow进行了一些学习和研究,为了向项目组其他成员演示和进一步进行应用,做了这个小业务系统,现在经过整理把它拿出来,希望对想要了解OSWorkflow的朋友有一点帮助。我接触的时间也不长,所以哪个地方有问题还希望大家多多指点,对工作流技术共同提高。
这个小业务系统的主要目的
演示如何基于OSWorkflow构建业务系统,即如何将原来程序内硬编码的业务过程抽取出来,放到底层的工作流引擎中,上层业务模块只进行具体业务动作的执行,同时演示着两层如何“集成”。
本系统演示三个方面:业务处理和OSWorkflow的基本“集成”、工作流引擎根据工作流定义调用业务处理逻辑、基于业务数据的工作流跳转
业务用例描述
核心工作流:
1、员工填写请假申请单,包括“请假原因”和“请假天数”,填写后进行提交;
2、部门主管对员工请假申请进行审批,同意员工请假;
3、人力资源主管对员工请假申请进行审批,同意员工请假;
4、系统发送邮件通知员工请假申请已获得批准;
5、用例结束;
备选工作流1:
在第一步中,如果员工请假天数小于等于3天,那么不需要部门主管审批,直接从第一步跳到第三步,又人力资源审批;
备选工作流2:
在第二步中,如果部门主管不同意请假申请,那么系统将给请假员工发送请假没有通过的邮件通知,用例结束;
备选工作流3:
在第三步中,如果人力资源主管不同意请假申请,那么系统将给请假员工发送请假没有通过的邮件通知,用例结束;
系统运行/开发环境
数据库:ms sqlserver2000
应用服务器:Jboss-4.0.2
开发工具:Jbuilder2006
系统搭建
1、创建数据库,我命名为osworkflow_app,也可命名为任意名字,只要在数据源配置中正确配置即可;
2、创建数据表并初始化用户及用户组数据,执行附件中的db_leaveApprove_20070712.sql即可;
3、在jboss下配置数据源,我的配置如附件mssql-ds.xml
4、将osworkflow及log4j的配置文件leave_apply.xml、osuser.xml、osworkflow.xml、propertyset.xml、workflows.xml、log4j.properties拷贝到工程目录src下面;
可直接将附件的leaveApprove.rar解到项目中,里面包括所有的源程序和资源包。
工作流定义文件说明
依据本业务需求的工作流定义文件如下
定义中包括6个step
step1是员工请假申请的步骤,本步骤的action在执行时将回调业务方法类ApplyFunction,将申请单数据插入到数据库中,同时处理结果将根据请假申请天数dayCount进行判断,如果请假申请天数大于3天,将跳到step2让部门主管审批,如果不大于3天,将直接跳到step3让人力资源主管审批;
step2 是部门主管审批,如果审批同意(opinion!=2)将跳到step3再由人力资源主管审批,如果审批不同意(opinion==2)将跳到step5自动发“申请未批准”邮件通知步骤;
step3 是人力资源主管审批,如果审批同意(opinion!=2)将跳到step4自动发“申请批准”邮件通知步骤,如果审批不同意(opinion==2)将跳到step5自动发“申请未批准”邮件通知步骤;
step4和step5都是自动发送邮件通知步骤,执行完之后跳到空步骤step6结束该工作流实例。
工作流定义文件
回家了,明天再对一些程序进行说明
可以下载附件,建立工程后执行,数据库中有三个用户:employee1表示员工,可以提交请假申请;manager1表示部门主管;hr1表示人力资源主管,密码都是test
owner是一个组就是动态会签了!!
明白了,谢谢前辈
owner是一个组就是动态会签了!!
owner是一个组有2种情况,一个是只需要一个组里面的一个人办理,还有就是组里所有的人都得办理才可以到下一步,第一种情况好办,需要添加额外的一步就是把这个组里的任务变成自己私有的任务,也就是拉取任务,这个好办, 难就难在所有的人都要办理这个步骤的任务,这就是会签,osworkflow里面不怎么好办
owner是一个组就是动态会签了!!
底层持久化你可以配置spring,jdbc,等等,事务和普通的程序没啥两样!!
小弟不才,也是才接触,能否给小弟一个例子,谢谢,可以发到我的邮箱 270422767@qq.com,谢谢了
底层持久化你可以配置spring,jdbc,等等,事务和普通的程序没啥两样!!
你取得的值没有在osuser表中,所以违反了主键约束!
我也出现这个问题,
作者能否提供数据库的完整值,谢谢!
这个小业务系统的主要目的
演示如何基于OSWorkflow构建业务系统,即如何将原来程序内硬编码的业务过程抽取出来,放到底层的工作流引擎中,上层业务模块只进行具体业务动作的执行,同时演示着两层如何“集成”。
本系统演示三个方面:业务处理和OSWorkflow的基本“集成”、工作流引擎根据工作流定义调用业务处理逻辑、基于业务数据的工作流跳转
业务用例描述
核心工作流:
1、员工填写请假申请单,包括“请假原因”和“请假天数”,填写后进行提交;
2、部门主管对员工请假申请进行审批,同意员工请假;
3、人力资源主管对员工请假申请进行审批,同意员工请假;
4、系统发送邮件通知员工请假申请已获得批准;
5、用例结束;
备选工作流1:
在第一步中,如果员工请假天数小于等于3天,那么不需要部门主管审批,直接从第一步跳到第三步,又人力资源审批;
备选工作流2:
在第二步中,如果部门主管不同意请假申请,那么系统将给请假员工发送请假没有通过的邮件通知,用例结束;
备选工作流3:
在第三步中,如果人力资源主管不同意请假申请,那么系统将给请假员工发送请假没有通过的邮件通知,用例结束;
系统运行/开发环境
数据库:ms sqlserver2000
应用服务器:Jboss-4.0.2
开发工具:Jbuilder2006
系统搭建
1、创建数据库,我命名为osworkflow_app,也可命名为任意名字,只要在数据源配置中正确配置即可;
2、创建数据表并初始化用户及用户组数据,执行附件中的db_leaveApprove_20070712.sql即可;
3、在jboss下配置数据源,我的配置如附件mssql-ds.xml
4、将osworkflow及log4j的配置文件leave_apply.xml、osuser.xml、osworkflow.xml、propertyset.xml、workflows.xml、log4j.properties拷贝到工程目录src下面;
可直接将附件的leaveApprove.rar解到项目中,里面包括所有的源程序和资源包。
工作流定义文件说明
依据本业务需求的工作流定义文件如下
定义中包括6个step
step1是员工请假申请的步骤,本步骤的action在执行时将回调业务方法类ApplyFunction,将申请单数据插入到数据库中,同时处理结果将根据请假申请天数dayCount进行判断,如果请假申请天数大于3天,将跳到step2让部门主管审批,如果不大于3天,将直接跳到step3让人力资源主管审批;
step2 是部门主管审批,如果审批同意(opinion!=2)将跳到step3再由人力资源主管审批,如果审批不同意(opinion==2)将跳到step5自动发“申请未批准”邮件通知步骤;
step3 是人力资源主管审批,如果审批同意(opinion!=2)将跳到step4自动发“申请批准”邮件通知步骤,如果审批不同意(opinion==2)将跳到step5自动发“申请未批准”邮件通知步骤;
step4和step5都是自动发送邮件通知步骤,执行完之后跳到空步骤step6结束该工作流实例。
工作流定义文件
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.6//EN" "http://www.opensymphony.com/osworkflow/workflow_2_8.dtd"> <workflow> <initial-actions> <action id="100" name="启动请假申请工作流"> <results> <unconditional-result old-status="Finished" status="Underway" step="1"/> </results> </action> </initial-actions> <steps> <step id="1" name="请假申请"> <actions> <action id="1" name="提交需求申请"> <restrict-to> <conditions type="AND"> <condition type="class"> <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg> <arg name="group">employee</arg> </condition> </conditions> </restrict-to> <pre-functions> <function type="class"> <arg name="class.name">com.qiny.leave.ApplyFunction</arg> </function> </pre-functions> <results> <result old-status="Finished" status="Underway" step="2" owner="manager1"> <conditions type="AND"> <condition type="beanshell"> <arg name="script"> propertySet.getInt("dayCount")>3 </arg> </condition> </conditions> <post-functions> <function type="beanshell"> <arg name="script"> System.out.println("步骤 1 提交需求申请 满足条件结果 需部门经理审批..."); </arg> </function> </post-functions> </result> <unconditional-result old-status="Finished" status="Underway" step="3" owner="hr1"/> </results> </action> </actions> </step> <step id="2" name="请假申请审核"> <actions> <action id="2" name="部门主管审批请假申请"> <restrict-to> <conditions type="AND"> <condition type="beanshell"> <arg name="script">true</arg> </condition> <condition type="class"> <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg> <arg name="status">Underway</arg> </condition> <condition type="class"> <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg> <arg name="group">manager</arg> </condition> </conditions> </restrict-to> <pre-functions> <function type="class"> <arg name="class.name">com.qiny.leave.ApproveFunction</arg> </function> </pre-functions> <results> <result old-status="Finished" status="Underway" step="5"> <conditions type="AND"> <condition type="beanshell"> <arg name="script"> propertySet.getInt("opinion")==2 </arg> </condition> </conditions> <post-functions> <function type="beanshell"> <arg name="script"> System.out.println("步骤 2 请假申请审核 部门经理审批没有通过 ..."); </arg> </function> </post-functions> </result> <unconditional-result old-status="Finished" status="Underway" step="3" owner="hr1"/> </results> </action> </actions> </step> <step id="3" name="请假申请审核"> <actions> <action id="3" name="人力资源主管审批请假申请"> <pre-functions> <function type="class"> <arg name="class.name">com.qiny.leave.ApproveFunction</arg> </function> </pre-functions> <results> <result old-status="Finished" status="Underway" step="5"> <conditions type="AND"> <condition type="beanshell"> <arg name="script"> propertySet.getInt("opinion")==2 </arg> </condition> </conditions> </result> <unconditional-result old-status="Finished" status="Underway" step="5"/> </results> </action> </actions> </step> <step id="4" name="请假申请结果通知"> <actions> <action id="4" auto="true" name="请假申请获准邮件通知"> <pre-functions> <function type="beanshell"> <arg name="script"> System.out.println("步骤 4 自动动作 请假申请获准邮件通知 Send mail 祝贺你$$$$$$$"); </arg> </function> </pre-functions> <results> <unconditional-result old-status="Finished" status="Finished" step="6"/> </results> </action> </actions> </step> <step id="5" name="请假申请结果通知"> <actions> <action id="5" auto="true" name="请假申请没能获准邮件通知"> <pre-functions> <function type="beanshell"> <arg name="script"> System.out.println("步骤 5 自动动作 请假申请没能获准邮件通知 Send mail 很抱歉$$$$$$$"); </arg> </function> </pre-functions> <results> <unconditional-result old-status="Finished" status="Finished" step="6"/> </results> </action> </actions> </step> <step id="6" name="flow over"> </step> </steps> </workflow>
回家了,明天再对一些程序进行说明
可以下载附件,建立工程后执行,数据库中有三个用户:employee1表示员工,可以提交请假申请;manager1表示部门主管;hr1表示人力资源主管,密码都是test
- leaveApprove.rar (2.7 MB)
- 描述: 程序源文件和需要的lib
- 下载次数: 13282
- databaseAndConfig.rar (2.3 KB)
- 描述: 数据库表创建及数据初始化文件 数据源配置文件
- 下载次数: 5181
评论
91 楼
a283037321
2012-08-29
kjj 写道
a283037321 写道
我想请教下,如果step的owner是一个组,或者我的需求中有上级审批的情况,那我的owner怎么设置呢?我感觉osworkflow的owner必须手动指定特定的一个人,我要指定多个人怎么办?因为一个审批步骤在实际中可能有多个人能审批呀。。。。小弟刚学,希望前辈能指教
owner是一个组就是动态会签了!!
明白了,谢谢前辈
90 楼
kjj
2012-08-28
会签思路我已经有了,只是没有实现,扩展split ,指示是会签,然后当运行到该split,检测传进来的owner,根据数目创建多个currentstep就行了,然后在下一个join里,把这几个step信息传过去,指示都完成才可以join
89 楼
dingchao.lonton
2012-08-28
kjj 写道
a283037321 写道
我想请教下,如果step的owner是一个组,或者我的需求中有上级审批的情况,那我的owner怎么设置呢?我感觉osworkflow的owner必须手动指定特定的一个人,我要指定多个人怎么办?因为一个审批步骤在实际中可能有多个人能审批呀。。。。小弟刚学,希望前辈能指教
owner是一个组就是动态会签了!!
owner是一个组有2种情况,一个是只需要一个组里面的一个人办理,还有就是组里所有的人都得办理才可以到下一步,第一种情况好办,需要添加额外的一步就是把这个组里的任务变成自己私有的任务,也就是拉取任务,这个好办, 难就难在所有的人都要办理这个步骤的任务,这就是会签,osworkflow里面不怎么好办
88 楼
kjj
2012-08-28
a283037321 写道
我想请教下,如果step的owner是一个组,或者我的需求中有上级审批的情况,那我的owner怎么设置呢?我感觉osworkflow的owner必须手动指定特定的一个人,我要指定多个人怎么办?因为一个审批步骤在实际中可能有多个人能审批呀。。。。小弟刚学,希望前辈能指教
owner是一个组就是动态会签了!!
87 楼
a283037321
2012-08-28
我想请教下,如果step的owner是一个组,或者我的需求中有上级审批的情况,那我的owner怎么设置呢?我感觉osworkflow的owner必须手动指定特定的一个人,我要指定多个人怎么办?因为一个审批步骤在实际中可能有多个人能审批呀。。。。小弟刚学,希望前辈能指教
86 楼
dingchao.lonton
2012-08-21
kjj 写道
dingchao.lonton 写道
我想问一下,osworkflow的事务是怎么控制的,在你的例子里面并没有对事务的处理,我想知道,事务如何加入到代码当中
底层持久化你可以配置spring,jdbc,等等,事务和普通的程序没啥两样!!
小弟不才,也是才接触,能否给小弟一个例子,谢谢,可以发到我的邮箱 270422767@qq.com,谢谢了
85 楼
kjj
2012-08-21
dingchao.lonton 写道
我想问一下,osworkflow的事务是怎么控制的,在你的例子里面并没有对事务的处理,我想知道,事务如何加入到代码当中
底层持久化你可以配置spring,jdbc,等等,事务和普通的程序没啥两样!!
84 楼
dingchao.lonton
2012-08-21
我想问一下,osworkflow的事务是怎么控制的,在你的例子里面并没有对事务的处理,我想知道,事务如何加入到代码当中
83 楼
冰凌筱
2012-02-11
正需要这样的例子,怎么不见附件在哪呢?
82 楼
xuehuali123
2008-07-04
在导入这个例子的时候,碰到了很多问题
1:安装mysql数据库的时候,补丁没打
2:数据库连接,上面很多人提到log里有osuser.xml的问题是因为没有正确配置数据库连接池导致的。这个问题我看了很久,
3:接着就是以个looking name(如果我没有记错的话),我直接跳过,用了
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// 装载驱动程序
con = DriverManager.getConnection(
"jdbc:odbc:JSQLConnectDB_LeaveApply", "sa", "××××");// 建立数据库连接
4:还有hr不能提交,确实把中文改成英文就OK了。
但是具体的流程没有看很清楚。学习中
这个例子挺好的。呵呵
1:安装mysql数据库的时候,补丁没打
2:数据库连接,上面很多人提到log里有osuser.xml的问题是因为没有正确配置数据库连接池导致的。这个问题我看了很久,
3:接着就是以个looking name(如果我没有记错的话),我直接跳过,用了
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// 装载驱动程序
con = DriverManager.getConnection(
"jdbc:odbc:JSQLConnectDB_LeaveApply", "sa", "××××");// 建立数据库连接
4:还有hr不能提交,确实把中文改成英文就OK了。
但是具体的流程没有看很清楚。学习中
这个例子挺好的。呵呵
81 楼
xuehuali123
2008-07-04
你的例子不错
80 楼
kjj
2008-06-12
classicbride 写道
Workflow wf = new BasicWorkflow((String) session.getAttribute("username"));
Map map = new HashMap();
map.put("applicant", applicant);
map.put("reason", reason);
map.put("dayCount", new Integer(dayCount));
try {
long wfid = wf.initialize("leave_apply", 100, null);
为什么我启用一个工作流的时候会报这个错呢?
DEBUG [(opensymphony.workflow.AbstractWorkflow)] Outcome: stepId=1, status=Underway, owner=, actionId=100, currentStep=0
DEBUG [(spi.jdbc.JDBCWorkflowStore)] Executing SQL statement: INSERT INTO OS_CURRENTSTEP (ID,ENTRY_ID, STEP_ID, ACTION_ID, OWNER, START_DATE, DUE_DATE, FINISH_DATE, STATUS, CALLER ) VALUES (?, ?, ?, null, ?, ?, ?, null, ?, null)
com.opensymphony.workflow.StoreException: Unable to create current step for workflow instance #7: root cause: Cannot add or update a child row: a foreign key constraint fails (`workflowtest/os_currentstep`, CONSTRAINT `os_currentstep_ibfk_2` FOREIGN KEY (`OWNER`) REFERENCES `os_user` (`USERNAME`))
owner没有值造成的...而我session.getAttribute("username")是可以取得值的...??
Map map = new HashMap();
map.put("applicant", applicant);
map.put("reason", reason);
map.put("dayCount", new Integer(dayCount));
try {
long wfid = wf.initialize("leave_apply", 100, null);
为什么我启用一个工作流的时候会报这个错呢?
DEBUG [(opensymphony.workflow.AbstractWorkflow)] Outcome: stepId=1, status=Underway, owner=, actionId=100, currentStep=0
DEBUG [(spi.jdbc.JDBCWorkflowStore)] Executing SQL statement: INSERT INTO OS_CURRENTSTEP (ID,ENTRY_ID, STEP_ID, ACTION_ID, OWNER, START_DATE, DUE_DATE, FINISH_DATE, STATUS, CALLER ) VALUES (?, ?, ?, null, ?, ?, ?, null, ?, null)
com.opensymphony.workflow.StoreException: Unable to create current step for workflow instance #7: root cause: Cannot add or update a child row: a foreign key constraint fails (`workflowtest/os_currentstep`, CONSTRAINT `os_currentstep_ibfk_2` FOREIGN KEY (`OWNER`) REFERENCES `os_user` (`USERNAME`))
owner没有值造成的...而我session.getAttribute("username")是可以取得值的...??
你取得的值没有在osuser表中,所以违反了主键约束!
79 楼
angelica1117
2008-06-03
com.opensymphony.workflow.StoreException: Unable to create current step for workflow instance #7: root cause: Cannot add or update a child row: a foreign key constraint fails (`workflowtest/os_currentstep`, CONSTRAINT `os_currentstep_ibfk_2` FOREIGN KEY (`OWNER`) REFERENCES `os_user` (`USERNAME`))
我同样遇到这个问题,请问大家有解决的么?
我同样遇到这个问题,请问大家有解决的么?
78 楼
展翅雕翎
2008-06-01
这个程序真能在你们的电脑里面运行吗?为什么我这里就不能够呢~~~~~~~这么多错误!!!
77 楼
展翅雕翎
2008-06-01
为什么jbuilder里面运行不了呢,报错80多个!
"ApplyFunction.java": package com.opensymphony.module.propertyset does not exist at line 4, column 44
"ApplyFunction.java": package com.opensymphony.workflow does not exist at line 5, column 34
"ApplyFunction.java": package com.opensymphony.workflow.spi does not exist at line 6, column 38
"ApplyFunction.java": cannot find symbol; symbol: class FunctionProvider at line 11, column 39
"ApplyFunction.java": interface expected here at line 11, column 39
"ApplyFunction.java": cannot find symbol; symbol : class PropertySet, location: class com.qiny.leave.ApplyFunction at line 15, column 52
"ApplyFunction.java": cannot find symbol; symbol : class WorkflowEntry, location: class com.qiny.leave.ApplyFunction at line 17, column 5
"ApplyFunction.java": cannot find symbol; symbol : class WorkflowEntry, location: class com.qiny.leave.ApplyFunction at line 17, column 28
"ApproveFunction.java": package com.opensymphony.module.propertyset does not exist at line 4, column 44
"ApproveFunction.java": package com.opensymphony.workflow does not exist at line 5, column 34
"ApproveFunction.java": package com.opensymphony.workflow.spi does not exist at line 6, column 38
"ApproveFunction.java": cannot find symbol; symbol: class FunctionProvider at line 11, column 41
"ApproveFunction.java": interface expected here at line 11, column 41
"ApproveFunction.java": cannot find symbol; symbol : class PropertySet, location: class com.qiny.leave.ApproveFunction at line 15, column 52
"ApproveFunction.java": cannot find symbol; symbol : class WorkflowEntry, location: class com.qiny.leave.ApproveFunction at line 17, column 5
"ApproveFunction.java": cannot find symbol; symbol : class WorkflowEntry, location: class com.qiny.leave.ApproveFunction at line 17, column 28
"default.jsp": package com.opensymphony.util does not exist
"default.jsp": cannot find symbol; symbol : variable TextUtils, location: class org.apache.jsp.default_jsp
"leaveApplyCreate.jsp": package com.opensymphony.user does not exist
"leaveApplyCreate.jsp": package com.opensymphony.user does not exist
"leaveApplyCreate.jsp": package com.opensymphony.workflow does not exist
"leaveApplyCreate.jsp": package com.opensymphony.workflow.basic does not exist
"leaveApplyCreate.jsp": cannot find symbol; symbol : class Workflow, location: class org.apache.jsp.leaveApplyCreate_jsp
"leaveApplyCreate.jsp": cannot find symbol; symbol : class BasicWorkflow, location: class org.apache.jsp.leaveApplyCreate_jsp
"leaveApply.jsp": package com.opensymphony.util does not exist
"leaveApproveProcess.jsp": package com.opensymphony.user does not exist
"leaveApproveProcess.jsp": package com.opensymphony.workflow does not exist
"leaveApproveProcess.jsp": package com.opensymphony.workflow.basic does not exist
"leaveApproveProcess.jsp": package com.opensymphony.workflow.spi does not exist
"leaveApproveProcess.jsp": package com.opensymphony.workflow.loader does not exist
"leaveApproveProcess.jsp": package com.opensymphony.workflow.loader does not exist
"leaveApproveProcess.jsp": cannot find symbol; symbol : class Workflow, location: class org.apache.jsp.leaveApproveProcess_jsp
"leaveApproveProcess.jsp": cannot find symbol; symbol : class BasicWorkflow, location: class org.apache.jsp.leaveApproveProcess_jsp
"leaveApprove.jsp": package com.opensymphony.user does not exist
"leaveApprove.jsp": package com.opensymphony.workflow does not exist
"leaveApprove.jsp": package com.opensymphony.workflow.basic does not exist
"leaveApprove.jsp": package com.opensymphony.workflow.spi does not exist
"leaveApprove.jsp": package com.opensymphony.workflow.loader does not exist
"leaveApprove.jsp": package com.opensymphony.workflow.loader does not exist
"leaveApprove.jsp": cannot find symbol; symbol : class Workflow, location: class org.apache.jsp.leaveApprove_jsp
"leaveApprove.jsp": cannot find symbol; symbol : class BasicWorkflow, location: class org.apache.jsp.leaveApprove_jsp
"leaveApprove.jsp": cannot find symbol; symbol : class WorkflowDescriptor, location: class org.apache.jsp.leaveApprove_jsp
"login.jsp": package com.opensymphony.user does not exist
"login.jsp": package com.opensymphony.user does not exist
"login.jsp": cannot find symbol; symbol : class UserManager, location: class org.apache.jsp.login_jsp
"login.jsp": cannot find symbol; symbol : variable UserManager, location: class org.apache.jsp.login_jsp
"login.jsp": cannot find symbol; symbol : class EntityNotFoundException, location: class org.apache.jsp.login_jsp
"underway.jsp": package com.opensymphony.workflow does not exist
"underway.jsp": package com.opensymphony.workflow.basic does not exist
"underway.jsp": package com.opensymphony.workflow.spi does not exist
"underway.jsp": package com.opensymphony.workflow.query does not exist
"underway.jsp": package com.opensymphony.workflow.query does not exist
"underway.jsp": package com.opensymphony.workflow.query does not exist
"underway.jsp": package com.opensymphony.workflow.query does not exist
"underway.jsp": package com.opensymphony.workflow.loader does not exist
"underway.jsp": package com.opensymphony.workflow.loader does not exist
"underway.jsp": cannot find symbol; symbol : class Workflow, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class BasicWorkflow, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class NestedExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class NestedExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class Expression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable NestedExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class WorkflowExpressionQuery, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class WorkflowExpressionQuery, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class WorkflowDescriptor, location: class org.apache.jsp.underway_jsp
"ApplyFunction.java": package com.opensymphony.module.propertyset does not exist at line 4, column 44
"ApplyFunction.java": package com.opensymphony.workflow does not exist at line 5, column 34
"ApplyFunction.java": package com.opensymphony.workflow.spi does not exist at line 6, column 38
"ApplyFunction.java": cannot find symbol; symbol: class FunctionProvider at line 11, column 39
"ApplyFunction.java": interface expected here at line 11, column 39
"ApplyFunction.java": cannot find symbol; symbol : class PropertySet, location: class com.qiny.leave.ApplyFunction at line 15, column 52
"ApplyFunction.java": cannot find symbol; symbol : class WorkflowEntry, location: class com.qiny.leave.ApplyFunction at line 17, column 5
"ApplyFunction.java": cannot find symbol; symbol : class WorkflowEntry, location: class com.qiny.leave.ApplyFunction at line 17, column 28
"ApproveFunction.java": package com.opensymphony.module.propertyset does not exist at line 4, column 44
"ApproveFunction.java": package com.opensymphony.workflow does not exist at line 5, column 34
"ApproveFunction.java": package com.opensymphony.workflow.spi does not exist at line 6, column 38
"ApproveFunction.java": cannot find symbol; symbol: class FunctionProvider at line 11, column 41
"ApproveFunction.java": interface expected here at line 11, column 41
"ApproveFunction.java": cannot find symbol; symbol : class PropertySet, location: class com.qiny.leave.ApproveFunction at line 15, column 52
"ApproveFunction.java": cannot find symbol; symbol : class WorkflowEntry, location: class com.qiny.leave.ApproveFunction at line 17, column 5
"ApproveFunction.java": cannot find symbol; symbol : class WorkflowEntry, location: class com.qiny.leave.ApproveFunction at line 17, column 28
"default.jsp": package com.opensymphony.util does not exist
"default.jsp": cannot find symbol; symbol : variable TextUtils, location: class org.apache.jsp.default_jsp
"leaveApplyCreate.jsp": package com.opensymphony.user does not exist
"leaveApplyCreate.jsp": package com.opensymphony.user does not exist
"leaveApplyCreate.jsp": package com.opensymphony.workflow does not exist
"leaveApplyCreate.jsp": package com.opensymphony.workflow.basic does not exist
"leaveApplyCreate.jsp": cannot find symbol; symbol : class Workflow, location: class org.apache.jsp.leaveApplyCreate_jsp
"leaveApplyCreate.jsp": cannot find symbol; symbol : class BasicWorkflow, location: class org.apache.jsp.leaveApplyCreate_jsp
"leaveApply.jsp": package com.opensymphony.util does not exist
"leaveApproveProcess.jsp": package com.opensymphony.user does not exist
"leaveApproveProcess.jsp": package com.opensymphony.workflow does not exist
"leaveApproveProcess.jsp": package com.opensymphony.workflow.basic does not exist
"leaveApproveProcess.jsp": package com.opensymphony.workflow.spi does not exist
"leaveApproveProcess.jsp": package com.opensymphony.workflow.loader does not exist
"leaveApproveProcess.jsp": package com.opensymphony.workflow.loader does not exist
"leaveApproveProcess.jsp": cannot find symbol; symbol : class Workflow, location: class org.apache.jsp.leaveApproveProcess_jsp
"leaveApproveProcess.jsp": cannot find symbol; symbol : class BasicWorkflow, location: class org.apache.jsp.leaveApproveProcess_jsp
"leaveApprove.jsp": package com.opensymphony.user does not exist
"leaveApprove.jsp": package com.opensymphony.workflow does not exist
"leaveApprove.jsp": package com.opensymphony.workflow.basic does not exist
"leaveApprove.jsp": package com.opensymphony.workflow.spi does not exist
"leaveApprove.jsp": package com.opensymphony.workflow.loader does not exist
"leaveApprove.jsp": package com.opensymphony.workflow.loader does not exist
"leaveApprove.jsp": cannot find symbol; symbol : class Workflow, location: class org.apache.jsp.leaveApprove_jsp
"leaveApprove.jsp": cannot find symbol; symbol : class BasicWorkflow, location: class org.apache.jsp.leaveApprove_jsp
"leaveApprove.jsp": cannot find symbol; symbol : class WorkflowDescriptor, location: class org.apache.jsp.leaveApprove_jsp
"login.jsp": package com.opensymphony.user does not exist
"login.jsp": package com.opensymphony.user does not exist
"login.jsp": cannot find symbol; symbol : class UserManager, location: class org.apache.jsp.login_jsp
"login.jsp": cannot find symbol; symbol : variable UserManager, location: class org.apache.jsp.login_jsp
"login.jsp": cannot find symbol; symbol : class EntityNotFoundException, location: class org.apache.jsp.login_jsp
"underway.jsp": package com.opensymphony.workflow does not exist
"underway.jsp": package com.opensymphony.workflow.basic does not exist
"underway.jsp": package com.opensymphony.workflow.spi does not exist
"underway.jsp": package com.opensymphony.workflow.query does not exist
"underway.jsp": package com.opensymphony.workflow.query does not exist
"underway.jsp": package com.opensymphony.workflow.query does not exist
"underway.jsp": package com.opensymphony.workflow.query does not exist
"underway.jsp": package com.opensymphony.workflow.loader does not exist
"underway.jsp": package com.opensymphony.workflow.loader does not exist
"underway.jsp": cannot find symbol; symbol : class Workflow, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class BasicWorkflow, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class NestedExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class NestedExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class Expression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable FieldExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : variable NestedExpression, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class WorkflowExpressionQuery, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class WorkflowExpressionQuery, location: class org.apache.jsp.underway_jsp
"underway.jsp": cannot find symbol; symbol : class WorkflowDescriptor, location: class org.apache.jsp.underway_jsp
76 楼
展翅雕翎
2008-05-31
请问你的这个例子,jboss是如何配置的,还有跟数据库连接的时候,用的是jdbc—odbc连接桥吗?希望楼主解答
75 楼
nenty
2008-05-22
急时雨,我很需要这样的东西!
74 楼
上山吃老虎
2008-04-22
classicbride 写道
Workflow wf = new BasicWorkflow((String) session.getAttribute("username"));
Map map = new HashMap();
map.put("applicant", applicant);
map.put("reason", reason);
map.put("dayCount", new Integer(dayCount));
try {
long wfid = wf.initialize("leave_apply", 100, null);
为什么我启用一个工作流的时候会报这个错呢?
DEBUG [(opensymphony.workflow.AbstractWorkflow)] Outcome: stepId=1, status=Underway, owner=, actionId=100, currentStep=0
DEBUG [(spi.jdbc.JDBCWorkflowStore)] Executing SQL statement: INSERT INTO OS_CURRENTSTEP (ID,ENTRY_ID, STEP_ID, ACTION_ID, OWNER, START_DATE, DUE_DATE, FINISH_DATE, STATUS, CALLER ) VALUES (?, ?, ?, null, ?, ?, ?, null, ?, null)
com.opensymphony.workflow.StoreException: Unable to create current step for workflow instance #7: root cause: Cannot add or update a child row: a foreign key constraint fails (`workflowtest/os_currentstep`, CONSTRAINT `os_currentstep_ibfk_2` FOREIGN KEY (`OWNER`) REFERENCES `os_user` (`USERNAME`))
owner没有值造成的...而我session.getAttribute("username")是可以取得值的...??
Map map = new HashMap();
map.put("applicant", applicant);
map.put("reason", reason);
map.put("dayCount", new Integer(dayCount));
try {
long wfid = wf.initialize("leave_apply", 100, null);
为什么我启用一个工作流的时候会报这个错呢?
DEBUG [(opensymphony.workflow.AbstractWorkflow)] Outcome: stepId=1, status=Underway, owner=, actionId=100, currentStep=0
DEBUG [(spi.jdbc.JDBCWorkflowStore)] Executing SQL statement: INSERT INTO OS_CURRENTSTEP (ID,ENTRY_ID, STEP_ID, ACTION_ID, OWNER, START_DATE, DUE_DATE, FINISH_DATE, STATUS, CALLER ) VALUES (?, ?, ?, null, ?, ?, ?, null, ?, null)
com.opensymphony.workflow.StoreException: Unable to create current step for workflow instance #7: root cause: Cannot add or update a child row: a foreign key constraint fails (`workflowtest/os_currentstep`, CONSTRAINT `os_currentstep_ibfk_2` FOREIGN KEY (`OWNER`) REFERENCES `os_user` (`USERNAME`))
owner没有值造成的...而我session.getAttribute("username")是可以取得值的...??
我也出现这个问题,
作者能否提供数据库的完整值,谢谢!
73 楼
kerry.honghao
2008-04-21
我始终认为,良好的编程风格是习惯养成的,哪怕是做个demo.
谢谢楼主,改天分析一下。
谢谢楼主,改天分析一下。
72 楼
aries
2008-04-21
能不能把Xml代码 的流程在页面上控制?
比如我想更改流程了
比如我想更改流程了
相关推荐
电子政务,即政府机构运用现代计算机和网络技术,将其管理和服务职能转移到网络,同时实现政府组织结构和工作流程的重组优化,超越时间、空间和部门分隔的制约,为全社会提供高效优质、规范透明和全方位的管理与服务...
NULL 博文链接:https://qsx1982-126-com.iteye.com/blog/769059
笔者主持的开源工作流引擎AgileFlow就是基于ww2+spring+hibernate架构实现的。写到这里我想是不是它可以和struts2进行完美整合?! Jflow是从ccflow演化而来的国产工作流引擎,富有太多的业务场景设置。 Ccflow是...
由OpensymPhony组织开发的开源工作流引擎 OSWorkflow是一种非常灵活的工作 流引擎。它主要基于有限状态机理论,通过状态的迁移描述工作的流转。每一种状态(state) 被描述成为 step ID和 status。从一种状态(state)...
自己写的 OsWorkflow 工作流 实例 已测试通过
一种基于OSWorkflow工作流引擎的工作流监控技术,仇璐,,目前工作流监控技术存在的问题是:流程监控得到的流程图与实际业务流程有一定差距,针对存在的这个问题,本文提出了一种基于OSWork
工作流 osworkflow工作流 osworkflow工作流 osworkflow工作流 osworkflow工作流 osworkflow工作流 osworkflow
工作流引擎(osworkflow) 2.80 有例子,有文档,可以自己跑例子看效果
基于osworkflow工作流引擎的小demo,实现了请假流程。
osworkflow请假实例,使用tomcat6.0服务器,oracle数据库,导入到myeclipse中即可运行,当然需要先创建数据库。很适合osworkflow的学习
osworkflow 简单实例, 请假系统,第一步发送请求,第二步manager审批,由reject和approve两个结果
NULL 博文链接:https://jeenry119.iteye.com/blog/1195769
该资源是用osworkflow框架完成的请假系统的例子,包括了填写请假条,提交申请,审批等流程,是oa的一个例子
这是一点关于OSWorkFlow 工作流系统设计知识的详细讲解
状态机工作流OSWorkflow 包括中文手册、开发指南等
现在对于流程性工作,用工作流来做是再合适不过了
基于oracle数据库,tomcat的请假DEMO,完善的实现了osworkflow的特色功能,能对您进一步了解osworkflow起到指引作用.
从javaeye上下载别人的例子,感觉不错 另外在这里有详细介绍 http://www.javaeye.com/topic/100499?page=1
osworkflow详细资料 pdf 工作流