论坛首页 Java企业应用论坛

基于开源工作流引擎OSWorkflow的业务系统实例——请假审批系统

浏览 114528 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-04-17  
请问楼主:在你设计的业务表中,如何获取某个申请单的 审批状态呢?这个审批状态要包含:同意、驳回、审批中、已经提交但未审批4个状态。               
我很迷惑
0 请登录后投票
   发表时间:2008-04-17  
zhima 写道
请问楼主:在你设计的业务表中,如何获取某个申请单的 审批状态呢?这个审批状态要包含:同意、驳回、审批中、已经提交但未审批4个状态。               
我很迷惑


代为回答下:
#         <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>  


通过配制StatusCondition的条件,进行判断.上例中,如果运行时的status=Underway,则符合条件,继续执行.

条件的名字,默认里面只有三种Underway,Queued,Finished,不过都是用string比较相等的,所以自己也可以随便起名.
0 请登录后投票
   发表时间:2008-04-18  
bsspirit 写道
zhima 写道
请问楼主:在你设计的业务表中,如何获取某个申请单的 审批状态呢?这个审批状态要包含:同意、驳回、审批中、已经提交但未审批4个状态。               
我很迷惑


代为回答下:
#         <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>  


通过配制StatusCondition的条件,进行判断.上例中,如果运行时的status=Underway,则符合条件,继续执行.

条件的名字,默认里面只有三种Underway,Queued,Finished,不过都是用string比较相等的,所以自己也可以随便起名.

我是想获取某个申请单的 审批结果,这个审批结果要包含:同意 或驳回 或审批中、已经提交但未审批4个状态。要获得这样的状态结果不用更改工作流xml文件吧;关键是 sql语句怎么写?
0 请登录后投票
   发表时间:2008-04-21  
能不能把Xml代码 的流程在页面上控制?
比如我想更改流程了
0 请登录后投票
   发表时间:2008-04-21  
我始终认为,良好的编程风格是习惯养成的,哪怕是做个demo.

谢谢楼主,改天分析一下。
0 请登录后投票
   发表时间: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")是可以取得值的...??

我也出现这个问题,
作者能否提供数据库的完整值,谢谢!
0 请登录后投票
   发表时间:2008-05-31  
请问你的这个例子,jboss是如何配置的,还有跟数据库连接的时候,用的是jdbc—odbc连接桥吗?希望楼主解答
0 请登录后投票
   发表时间: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`))


我同样遇到这个问题,请问大家有解决的么?
0 请登录后投票
   发表时间: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")是可以取得值的...??



你取得的值没有在osuser表中,所以违反了主键约束!
0 请登录后投票
   发表时间:2008-07-04  
你的例子不错
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics