OSWorkFlow流程终止

问题:流程如何终止?

  
     配置文件使得流程转到最后一个action,但是OS_WFENTRY中的state始终为 ACTIVATED,即激活状态,OS_CURRENTSTEP中将会存在大量的记录,而无法清除,并move到历史表OS_HISTRORYSTEP中。
    
     解决方法:
     结束一个流程的配置方法有2种
     (1) 令action finish属性为true
     (2) 创建一个无任何action的step
     源码中可发现这两种方案都可以使得工作流的State为Completed --4 完成 ,且已经测试成功。OS_CURRENTSTEP始终保持当前的step,而非使该表数据越来越多。当使用OS_HISTRORYSTEP表进行历史流程察看时,可以只看到一条status为“已审核”的step,采用(2)可看到2条已审核的step。
 
   修改原有的结束step,审核通过后转到结束step 5,并自动执行action 6 ,并强制使得finish为true,使得流程结束,state为 Completed(4),并清空OS_CURRENTSTEP中该工作流的 currentstep ,  并将OS_HISTRORYSTEP中插入一条status为“已审核”的记录。这样就可以区分KILLED的工作流还是正常结束(COMPLETED)的工作流。
  
  
  <step id="5" name="结束">
   <actions>
    <action name="结束" id="6" auto="true" finish="true">
     <results>
      <unconditional-result old-status="已审核" status="流程结束"  />
     </results>
    </action>
   </actions>
  </step>
   

你可能感兴趣的:(工作,OS)