锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产日韩av一区二区,欧洲精品一区二区三区在线观看,亚洲精品免费在线看http://www.aygfsteel.com/stevenjohn/category/51867.html閭d簺闈掓槬鐨勫瞾鏈?/description>zh-cnSun, 03 Jun 2012 18:06:41 GMTSun, 03 Jun 2012 18:06:41 GMT60瀛︿範(fàn)OSWorkFlow鐨勬枃绔犳敹闆?http://www.aygfsteel.com/stevenjohn/archive/2012/06/03/379881.htmlabinabinSun, 03 Jun 2012 15:16:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/06/03/379881.htmlhttp://www.aygfsteel.com/stevenjohn/comments/379881.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/06/03/379881.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/379881.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/379881.html

OSWorkflow鏄竴涓伒媧葷殑宸ヤ綔嫻佸紩鎿庯紝璁捐鎴愬彲宓屽叆鍒頒紒涓氬簲鐢ㄧ▼搴忎腑銆傚畠鎻愪緵浜?jiǎn)璁稿鐨勬寔涔呭寲API鏀寔鍖呮嫭錛欵JB,Hibernate,JDBC鍜屽叾瀹冦侽SWorkflow榪樺彲浠ヤ笌Spring闆嗘垚銆?br />緗戝潃錛?a target="_blank">http://www.opensymphony.com/osworkflow/

1.OSWorkflow鍩烘湰姒傚康(gigix)
http://gigix.blogdriver.com/gigix/113138.html
2.osworkflow涓枃鎸囧崡(Quake Wang)
http://wiki.opensymphony.com/display/WF/Tutorial+-+Chinese
3.OSWorkflow鍏ラ棬(鍙插笣鑺績(jī)寰楃瑪璁?
http://my.so-net.net.tw/idealist/OSWorkflow/
4.鑻辨枃鏂囨。
http://wiki.opensymphony.com/display/WF/Manual
5.娣卞叆鍒嗘瀽(閾剁嫄999)
http://blog.csdn.net/james999/category/52990.aspx


鍏跺畠鍏充簬osworkflow鐨勬枃绔?/p>

http://captainandboat.spaces.live.com/blog/cns!9a3607f7808d2d0d!334.entry

http://qinysong.iteye.com/blog/post/333919

http://www.cnblogs.com/jssy/archive/2007/06/08/776175.html

http://zhusl.blog.sohu.com/32223382.html




abin 2012-06-03 23:16 鍙戣〃璇勮
]]>
Osworkflow2.8 鍏ラ棬綰т緥瀛?/title><link>http://www.aygfsteel.com/stevenjohn/archive/2012/06/03/379878.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sun, 03 Jun 2012 14:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/stevenjohn/archive/2012/06/03/379878.html</guid><wfw:comment>http://www.aygfsteel.com/stevenjohn/comments/379878.html</wfw:comment><comments>http://www.aygfsteel.com/stevenjohn/archive/2012/06/03/379878.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/stevenjohn/comments/commentRss/379878.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/stevenjohn/services/trackbacks/379878.html</trackback:ping><description><![CDATA[osworkflow.xml<br /><osworkflow><br /> <persistence class="com.opensymphony.workflow.spi.memory.MemoryWorkflowStore" /><br /> <factory class="com.opensymphony.workflow.loader.XMLWorkflowFactory"><br />  <property key="resource" value="workflows.xml" /><br /> </factory><br /></osworkflow><br /><br /><br />workflows.xml<br /><workflows><br />  <workflow name="docworkflow" type="resource" location="myworkflow.xml"/><br /></workflows><br /><br /><br />myworkflow.xml<br /> <p><?xml version="1.0" encoding="UTF-8"?><br /><!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.6//EN" "<a ><br /><workflow><br /> <registers><br />  <register type="class" variable-name="log"><br />   <arg name="class.name">com.opensymphony.workflow.util.LogRegister</arg><br />   <arg name="addInstanceId">true</arg><br />  </register><br /> </registers></p> <p> <initial-actions><br />  <action id="100" name="Start Ordinary Workflow"><br />   <results><br />    <unconditional-result old-status="Finished"<br />     status="Queued" step="1" /><br />   </results><br />  </action><br />  <action id="200" name="Start Emergent Workflow"><br />   <results><br />    <unconditional-result old-status="Finished"<br />     status="Queued" step="5" /><br />   </results><br />  </action><br /> </initial-actions></p> <p> <steps></p> <p>  <step id="1" name="Initiate Doc"><br />   <actions><br />    <action id="1" name="Initial Work"><br />     <restrict-to><br />      <conditions><br />       <condition type="class"><br />        <arg name="class.name"><br />         com.opensymphony.workflow.util.StatusCondition<br />        </arg><br />        <arg name="status">Queued</arg><br />       </condition><br />      </conditions><br />     </restrict-to><br />     <validators><br />      <validator type="class"><br />       <arg name="class.name"><br />        org.abin.lee.validator.TitleValidator<br />       </arg><br />      </validator><br />     </validators><br />     <pre-functions><br />      <function type="class"><br />       <arg name="class.name"><br />        com.opensymphony.workflow.util.Caller<br />       </arg><br />       <arg name="stepId">1</arg><br />      </function><br />      <function type="beanshell"><br />       <arg name="script"><br />        transientVars.get("log").info("Initiate Work");<br />       </arg><br />      </function><br />     </pre-functions><br />     <results><br />      <unconditional-result old-status="Finished"<br />       status="Prepared" step="1" owner="${caller}" /><br />     </results><br />     <post-functions><br />      <function type="beanshell"><br />       <arg name="script"><br />        propertySet.setString("title",<br />        (String)transientVars.get("title"));<br />       </arg><br />      </function><br />     </post-functions><br />    </action><br />    <action id="2" name="Deliver Work"><br />     <restrict-to><br />      <conditions type="AND"><br />       <condition type="class"><br />        <arg name="class.name"><br />         com.opensymphony.workflow.util.StatusCondition<br />        </arg><br />        <arg name="status">Prepared</arg><br />        <arg name="stepId">1</arg><br />       </condition><br />       <condition type="class"><br />        <arg name="class.name"><br />         com.opensymphony.workflow.util.AllowOwnerOnlyCondition<br />        </arg><br />       </condition><br />      </conditions><br />     </restrict-to><br />     <pre-functions><br />      <function type="beanshell"><br />       <arg name="script"><br />        transientVars.get("log").info("Deliver Doc to Boss A and B");<br />       </arg><br />      </function><br />     </pre-functions><br />     <results><br />      <unconditional-result old-status="Finished"<br />       status="Prepared" split="1" /><br />     </results><br />    </action><br />   </actions><br />  </step></p> <p>  <step id="2" name="Review Doc In Boss A"><br />   <external-permissions><br />    <permission name="permA"><br />     <restrict-to><br />      <conditions type="AND"><br />       <condition name="check.status" type="class"><br />        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg><br />        <arg name="status">Prepared</arg><br />       </condition><br />       <condition name="allow.owner.only" type="class"><br />        <arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg><br />       </condition><br />      </conditions><br />     </restrict-to><br />    </permission><br />   </external-permissions><br />   <actions><br />    <action id="3" name="Review Work By A"><br />     <pre-functions><br />      <function type="beanshell"><br />       <arg name="script"><br />        transientVars.get("log").info("Doc Reviewed By Boss A")<br />       </arg><br />      </function><br />     </pre-functions><br />     <results><br />      <unconditional-result old-status="Finished"<br />       status="Underway" join="1" /><br />     </results><br />    </action><br />   </actions><br />  </step></p> <p>  <step id="3" name="Review Doc In Boss B"><br />   <external-permissions><br />    <permission name="permA"><br />     <restrict-to><br />      <conditions type="AND"><br />       <condition name="check.status" type="class"><br />        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg><br />        <arg name="status">Prepared</arg><br />       </condition><br />       <condition name="allow.owner.only" type="class"><br />        <arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg><br />       </condition><br />      </conditions><br />     </restrict-to><br />    </permission><br />   </external-permissions><br />   <actions><br />    <action id="4" name="Review Work By B"><br />     <pre-functions><br />      <function type="beanshell"><br />       <arg name="script"><br />        transientVars.get("log").info("Doc Reviewed By Boss B")<br />       </arg><br />      </function><br />     </pre-functions><br />     <results><br />      <unconditional-result old-status="Finished"<br />       status="Underway" join="1" /><br />     </results><br />    </action><br />   </actions><br />  </step></p> <p>  <step id="4" name="Finish Ordinary Work"><br />   <pre-functions><br />    <function type="beanshell"><br />     <arg name="script"><br />      System.out.println("Finish Doc Review. \nTitle:"+propertySet.getString("title")+".");<br />     </arg><br />    </function><br />   </pre-functions><br />  </step></p> <p>  <step id="5" name="Finish Emergent Work"><br />   <pre-functions><br />    <function type="beanshell"><br />     <arg name="script"><br />      System.out.println("Emergency Handler");<br />     </arg><br />    </function><br />   </pre-functions><br />  </step></p> <p> </steps></p> <p> <splits><br />  <split id="1"><br />   <unconditional-result old-status="Finished"<br />    status="Prepared" step="2" /><br />   <unconditional-result old-status="Finished"<br />    status="Prepared" step="3" /><br />  </split><br /> </splits></p> <p> <joins><br />  <join id="1"><br />   <conditions type="AND"><br />    <condition type="beanshell"><br />     <arg name="script"><![CDATA[ "Finished".equals(jn.getStep(2).getStatus()) && "Finished".equals(jn.getStep(3).getStatus()) ]]></arg><br />    </condition><br />   </conditions><br />   <unconditional-result old-status="Finished"<br />    status="Reviewed" step="4" /><br />  </join><br /> </joins></p> <p></workflow></p><br /><br /><br />TitleValidator.java<br /> <p>package org.abin.lee.validator;</p> <p>import java.util.Map;<br />import com.opensymphony.module.propertyset.PropertySet;<br />import com.opensymphony.workflow.InvalidInputException;<br />import com.opensymphony.workflow.Validator;<br />import com.opensymphony.workflow.WorkflowException;</p> <p>public class TitleValidator implements Validator {<br /> public void validate(Map transientVars, Map args, PropertySet ps)<br />   throws InvalidInputException, WorkflowException {<br />  System.out.println("TitleValidator is running");<br />  String title = (String) transientVars.get("title");<br />  if (title == null)<br />   throw new InvalidInputException("Missing title");<br />  if (title.length() > 30)<br />   throw new InvalidInputException("Title too long");<br /> }<br />}</p><br /><br />SimpleSample.java<br /> <p>package org.abin.lee.workflow;</p> <p>import java.util.HashMap;</p> <p>import com.opensymphony.workflow.InvalidActionException;<br />import com.opensymphony.workflow.InvalidEntryStateException;<br />import com.opensymphony.workflow.InvalidInputException;<br />import com.opensymphony.workflow.InvalidRoleException;<br />import com.opensymphony.workflow.Workflow;<br />import com.opensymphony.workflow.WorkflowException;<br />import com.opensymphony.workflow.basic.BasicWorkflow;<br />import com.opensymphony.workflow.config.DefaultConfiguration;</p> <p>public class SimpleSample {<br /> public static void main(String[] args) {<br />  try {<br />   Workflow workflow = new BasicWorkflow("abin");</p> <p>   DefaultConfiguration config = new DefaultConfiguration();<br />   workflow.setConfiguration(config);</p> <p>   long workflowId = workflow.initialize("docworkflow", 100, null);<br />   HashMap inputs = new HashMap();<br />   inputs.put("title", "openopen");</p> <p>   workflow.doAction(workflowId, 1, inputs);</p> <p>   workflow.doAction(workflowId, 2, null);</p> <p>   workflow.doAction(workflowId, 3, null);</p> <p>   workflow.doAction(workflowId, 4, null);<br />   <br />  } catch (InvalidActionException e) {<br />   System.out.println(e.getMessage());<br />  } catch (InvalidRoleException e) {<br />   System.out.println(e.getMessage());<br />  } catch (InvalidInputException e) {<br />   System.out.println(e.getMessage());<br />  } catch (InvalidEntryStateException e) {<br />   System.out.println(e.getMessage());<br />  } catch (WorkflowException e) {<br />   System.out.println(e.getMessage());<br />  }<br /> }<br />}</p><br /><br /><br />log4j.properties<br /> <p>log4j.rootCategory=info,log,console</p> <p>log4j.logger.org.apache.axis2.enterprise=FATAL<br />log4j.logger.de.hunsicker.jalopy.io=FATAL<br />log4j.logger.httpclient.wire.header=FATAL<br />log4j.logger.org.apache.commons.httpclient=FATAL</p> <p>log4j.appender.console=org.apache.log4j.ConsoleAppender<br />log4j.appender.console.layout=org.apache.log4j.PatternLayout<br />log4j.appender.console.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n<br /> <br />log4j.appender.log=org.apache.log4j.DailyRollingFileAppender<br />log4j.appender.log.File=logs/osworkflow.log<br />log4j.appender.log.layout=org.apache.log4j.PatternLayout<br />log4j.appender.log.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n</p><br /><br /><br /> <p><a >http://blog.sina.com.cn/s/blog_544a96ce0100nvjy.html</a></p> <p><a >http://blog.csdn.net/tanruitian/article/details/498167</a></p> <p><a >http://www.cnblogs.com/jacky73/archive/2008/12/17/1357134.html</a></p><img src ="http://www.aygfsteel.com/stevenjohn/aggbug/379878.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/stevenjohn/" target="_blank">abin</a> 2012-06-03 22:39 <a href="http://www.aygfsteel.com/stevenjohn/archive/2012/06/03/379878.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> 主站蜘蛛池模板: <a href="http://" target="_blank">安阳县</a>| <a href="http://" target="_blank">杂多县</a>| <a href="http://" target="_blank">镇江市</a>| <a href="http://" target="_blank">邵东县</a>| <a href="http://" target="_blank">井研县</a>| <a href="http://" target="_blank">张家界市</a>| <a href="http://" target="_blank">吴桥县</a>| <a href="http://" target="_blank">达州市</a>| <a href="http://" target="_blank">徐水县</a>| <a href="http://" target="_blank">邵东县</a>| <a href="http://" target="_blank">斗六市</a>| <a href="http://" target="_blank">江城</a>| <a href="http://" target="_blank">五河县</a>| <a href="http://" target="_blank">个旧市</a>| <a href="http://" target="_blank">绥江县</a>| <a href="http://" target="_blank">都安</a>| <a href="http://" target="_blank">拉萨市</a>| <a href="http://" target="_blank">祥云县</a>| <a href="http://" target="_blank">牟定县</a>| <a href="http://" target="_blank">揭阳市</a>| <a href="http://" target="_blank">新邵县</a>| <a href="http://" target="_blank">霍山县</a>| <a href="http://" target="_blank">海林市</a>| <a href="http://" target="_blank">基隆市</a>| <a href="http://" target="_blank">蓝田县</a>| <a href="http://" target="_blank">清远市</a>| <a href="http://" target="_blank">安溪县</a>| <a href="http://" target="_blank">赤峰市</a>| <a href="http://" target="_blank">福海县</a>| <a href="http://" target="_blank">昌宁县</a>| <a href="http://" target="_blank">拜泉县</a>| <a href="http://" target="_blank">察哈</a>| <a href="http://" target="_blank">胶州市</a>| <a href="http://" target="_blank">阿图什市</a>| <a href="http://" target="_blank">永嘉县</a>| <a href="http://" target="_blank">轮台县</a>| <a href="http://" target="_blank">金溪县</a>| <a href="http://" target="_blank">西贡区</a>| <a href="http://" target="_blank">襄汾县</a>| <a href="http://" target="_blank">潍坊市</a>| <a href="http://" target="_blank">成都市</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>