欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
工作流(OSWorkFLOW)的例子改造

相信現在關(guān)注工作流的人越來(lái)越多了,我也是其中之一,上網(wǎng)狂搜了一下,發(fā)現很多人說(shuō)開(kāi)源的工作流OSWorkFlow還不錯,我也Download下載研究研究。

文檔很少,只有上網(wǎng)再搜,發(fā)現很多資料都是你轉載我,我轉載你,原創(chuàng )的不多。反來(lái)復去地看了看網(wǎng)上的資料,再看看OSWorkFlow的自帶文檔,調試帶的例子。

發(fā)現那個(gè)例子說(shuō)明性不是很強,把人弄得很暈,經(jīng)過(guò)一翻分析,我把例子修改了一下,添加了些注釋?zhuān)恍㎎SP頁(yè)面也修改了一下并進(jìn)行了漢化,設定了幾個(gè)用戶(hù)組,分別具有不同的權限,使工作流流轉起來(lái)真正象個(gè)工作流。希望能對剛開(kāi)始學(xué)習工作流的同志有所幫助。下面我貼出工作流定義的XML文件。完整的例子請到我的網(wǎng)絡(luò )硬盤(pán)下載。下載地址:http://wallimn.gbaopan.com

工作流文件內容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.6//EN" "<!--OSWorkFlow工作流定義文件修改 by 王力猛(wallimn@sohu.com)-->
<!--歡迎轉載,轉載請保留這些信息。-->
<workflow>
 <initial-actions>
  <action id="100" name="啟動(dòng)工作流">
   <restrict-to>
    <conditions type="AND">
     <condition type="beanshell">
      <arg name="script">true</arg>
     </condition>
     <condition type="class"><!--僅作家組可以啟動(dòng)流程-->
      <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
      <arg name="group">writer</arg>
     </condition>
    </conditions>
   </restrict-to>
   <pre-functions>
    <function type="class">
     <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
    </function>
   </pre-functions>
   <results><!--轉到step 1,流程所有者設為流程啟動(dòng)者-->
    <unconditional-result old-status="Finished" status="Underway" step="1" owner="${caller}"/>
   </results>
  </action>
 </initial-actions>
 <steps>
  <step id="1" name="撰寫(xiě)初稿">
   <external-permissions>
    <permission name="permA">
     <restrict-to>
      <conditions type="AND">
       <condition type="class"><!--流程處于Underway狀態(tài)(流程已經(jīng)啟動(dòng))-->
        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
        <arg name="status">Underway</arg>
       </condition>
       <condition type="class"><!--流程啟動(dòng)者(也即流程所有者)-->
        <arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
       </condition>
      </conditions>
     </restrict-to>
    </permission>
   </external-permissions>
   <actions>
    <action id="1" 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.AllowOwnerOnlyCondition</arg>
       </condition>
      </conditions>
     </restrict-to>
     <pre-functions>
      <function type="beanshell">
       <arg name="script">
                                String caller = context.getCaller();
                                propertySet.setString("caller", caller);
                                boolean test = true;
                                String yuck = null;
                                String blah = "987654321";
                                System.out.println("Step:1預處理函數");
                                </arg>
      </function>
     </pre-functions>
     <results>
      <result old-status="Finished" split="1">
       <conditions type="AND"><!--如果是新手(假定新手的用戶(hù)名為newplayer),流轉到分枝1-->
        <condition type="beanshell">
         <arg name="script">
         propertySet.getString("caller").equals("newplayer")
         </arg>
        </condition>
       </conditions>
       <post-functions>
        <function type="beanshell">
         <arg name="script">
                                                                          System.out.println("Step:1的Action后處理函數");
                                         </arg>
        </function>
       </post-functions>
      </result>
      <unconditional-result old-status="Finished" split="2"/><!--其余情況跳轉到分枝2-->
     </results>
     <post-functions>
      <function type="beanshell">
       <arg name="script">
                                                          System.out.println("Step:2的后處理函數");
                                </arg>
      </function>
                        <!--
                        <function type="class">
                            <arg name="class.name">com.opensymphony.workflow.util.ScheduleJob</arg>
                            <arg name="triggerId">1</arg>
                            <arg name="jobName">testJob</arg>
                            <arg name="triggerName">testTrigger</arg>
                            <arg name="groupName">test</arg>

                            <arg name="repeat">10</arg>
                            <arg name="repeatDelay">2000</arg>
                            <arg name="cronExpression">0,5,10,15,20,25,30,35,40,45,50,55 * * * * ?</arg>

                            <arg name="username">test</arg>
                            <arg name="password">test</arg>

                            <arg name="local">true</arg>
                            <arg name="schedulerStart">true</arg>
                        </function>
                        -->
     </post-functions>
    </action>
   </actions>
  </step>
  <step id="2" name="校對稿件"><!--稿件都弄好了,校對一下吧-->
   <external-permissions>
    <permission name="permB">
     <restrict-to>
      <conditions type="AND">
       <condition type="class"><!--狀態(tài)為Underway-->
        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
        <arg name="status">Underway</arg>
       </condition>
       <condition type="class"><!--僅允許editor組的成員-->
                                                         <argname="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
                                                          <arg name="group">editor</arg>
       </condition>
      </conditions>
     </restrict-to>

    </permission>
   </external-permissions>
   <actions>
    <action id="2" name="準備校對積壓的稿件"><!--從隊列中提取,準備校對-->
     <restrict-to>
      <conditions type="AND">
       <condition type="class"><!--隊列中-->
        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
        <arg name="status">Queued</arg>
       </condition>
       <condition type="class"><!--僅允許editor組的成員-->
        <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
        <arg name="group">editor</arg>
       </condition>
      </conditions>
     </restrict-to>
     <pre-functions>
      <function type="class"><!--設置caller變量為執行當前action的用戶(hù)-->
       <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
      </function>
     </pre-functions>
     <results><!--狀態(tài)變?yōu)閁nderway-->
      <unconditional-result old-status="Finished" status="Underway" step="2" owner="${caller}"/>
     </results>
    </action>
    <action id="3" name="校對完成"><!--檢驗完成,流轉到下一步-->
     <restrict-to>
      <conditions type="AND">
       <condition type="class"><!--處理當前的任務(wù)(也就是說(shuō)不在隊列中的)-->
        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
        <arg name="status">Underway</arg>
       </condition>
       <condition type="class"><!--僅允許editor組的成員-->
                                                         <argname="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
                                                          <arg name="group">editor</arg>
       </condition>
      </conditions>
     </restrict-to>
     <pre-functions>
      <function type="class"><!--設置mostRecentOwner的值為第一階段時(shí)的Owner-->
       <arg name="class.name">com.opensymphony.workflow.util.MostRecentOwner</arg>
       <arg name="stepId">1</arg>
      </function>
     </pre-functions>
     <results>
      <unconditional-result old-status="Finished" status="Underway" step="3" owner="${mostRecentOwner}"/>
     </results>
    </action>
    <action id="4" name="處理不過(guò)來(lái)了,等一等"><!--還有幾個(gè)沒(méi)有下理,排一下隊,等我空閑了再說(shuō)吧-->
     <restrict-to>
      <conditions type="AND">
       <condition type="class">
        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
        <arg name="status">Underway</arg>
       </condition>
       <condition type="class"><!--僅允許editor組的成員-->
        <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
        <arg name="group">editor</arg>
       </condition>
      </conditions>
     </restrict-to>
     <results><!--轉為排隊等候狀態(tài)-->
      <unconditional-result old-status="Finished" status="Queued" step="2"/>
     </results>
    </action>
   </actions>
  </step>
  <step id="3" name="檢查校對情況">
   <external-permissions>
    <permission name="permA">
     <restrict-to>
      <conditions type="AND">
       <condition type="class">
        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
        <arg name="status">Underway</arg>
       </condition>
       <condition type="class"><!--publisher組的成員來(lái)檢查-->
        <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
        <arg name="group">publisher</arg>
       </condition>
      </conditions>
     </restrict-to>
    </permission>
   </external-permissions>
   <actions>
    <action id="5" name="重新校對"><!--錯誤比較多,重新校對-->
     <restrict-to>
      <conditions type="AND">
       <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">publisher</arg>
       </condition>
      </conditions>
     </restrict-to>
     <pre-functions>
      <function type="class">
       <arg name="class.name">com.opensymphony.workflow.util.MostRecentOwner</arg>
       <arg name="stepId">2</arg>
      </function>
     </pre-functions>
     <results>
      <unconditional-result old-status="Finished" status="Underway" step="2" owner="${mostRecentOwner}"/>
     </results>
    </action>
    <action id="6" name="需要二審"><!--需要二審-->
     <restrict-to>
      <conditions type="AND">
       <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">publisher</arg>
       </condition>
      </conditions>
     </restrict-to>
     <results><!--轉入二審階段-->
      <unconditional-result old-status="Finished" status="Queued" step="4"/>
     </results>
    </action>
    <action id="7" name="可以出版了"><!--可以了,準備出版-->
     <restrict-to>
      <conditions type="AND">
       <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">publisher</arg>
       </condition>
      </conditions>
     </restrict-to>
     <pre-functions>
      <function type="class">
       <arg name="class.name">com.opensymphony.workflow.util.MostRecentOwner</arg>
       <arg name="stepId">2</arg>
      </function>
     </pre-functions>
     <results>
      <unconditional-result old-status="Finished" status="Underway" step="5" owner="${mostRecentOwner}"/>
     </results>
    </action>
   </actions>
  </step>
  <step id="4" name="二審階段"><!--二審階段-->
   <external-permissions>
    <permission name="permC">
     <restrict-to>
      <conditions type="AND">
       <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">publisher</arg>
       </condition>
      </conditions>
     </restrict-to>
    </permission>
   </external-permissions>
   <actions>
    <action id="8" name="二審通過(guò)"><!--二審通過(guò),轉到step2,等候出版-->
     <restrict-to>
      <conditions type="AND">
       <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">publisher</arg>
       </condition>
      </conditions>
     </restrict-to>
     <pre-functions>
      <function type="class">
       <arg name="class.name">com.opensymphony.workflow.util.MostRecentOwner</arg>
       <arg name="stepId">3</arg>
      </function>
     </pre-functions>
     <results>
      <unconditional-result old-status="Finished" status="Underway" step="3" owner="${mostRecentOwner}"/>
     </results>
    </action>
    <action id="9" name="從排隊中取出準備二審"><!--仍停留在此階段-->
     <restrict-to>
      <conditions type="AND">
       <condition type="class">
        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
        <arg name="status">Queued</arg>
       </condition>
       <condition type="class">
        <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
        <arg name="group">publisher</arg>
       </condition>
      </conditions>
     </restrict-to>
     <pre-functions>
      <function type="class">
       <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
      </function>
     </pre-functions>
     <results>
      <unconditional-result old-status="Finished" status="Underway" step="4" owner="${caller}"/>
     </results>
    </action>
    <action id="10" name="好多要二審的,排隊等等">
     <restrict-to>
      <conditions type="AND">
       <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">publisher</arg>
       </condition>
      </conditions>
     </restrict-to>
     <results><!--變?yōu)榕抨牋顟B(tài)-->
      <unconditional-result old-status="Finished" status="Queued" step="4"/>
     </results>
    </action>
   </actions>
  </step>
  <step id="5" name="出版稿件">
   <actions>
    <action id="11" name="出版">
     <restrict-to>
      <conditions type="AND">
       <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">publisher</arg>
       </condition>
      </conditions>
     </restrict-to>
     <pre-functions>
      <function type="class">
       <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
      </function>
     </pre-functions>
     <results>
      <unconditional-result old-status="Finished" status="Finished" step="5" owner="${caller}"/>
     </results>
    </action>
   </actions>
  </step>
  <step id="6" name="設計封面">
   <actions>
    <action name="封面設計完成" id="12">
     <restrict-to>
      <conditions type="AND">
       <condition type="class">
        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
        <arg name="status">Underway</arg>
        <arg name="stepId">6</arg>
       </condition>
       <condition type="class"><!--僅允許美工組-->
        <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
        <arg name="group">designer</arg>
       </condition>
      </conditions>
     </restrict-to>
     <results>
      <unconditional-result old-status="Finished" join="1"/>
     </results>
    </action>
   </actions>
  </step>
  <step id="7" name="設計插圖">
   <actions>
    <action name="插圖設計完畢" id="13">
     <restrict-to>
      <conditions type="AND">
       <condition type="class">
        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
        <arg name="status">Underway</arg>
        <arg name="stepId">7</arg>
       </condition>
       <condition type="class">
        <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
        <arg name="group">designer</arg>
       </condition>
      </conditions>
     </restrict-to>
     <results>
      <unconditional-result old-status="Finished" owner="test" status="Underway" step="8"/>
     </results>
    </action>
   </actions>
  </step>
  <step id="8" name="排版">
   <actions>
    <action name="排版完畢" id="14">
     <restrict-to>
      <conditions type="AND">
       <condition type="class">
        <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
        <arg name="status">Underway</arg>
        <arg name="stepId">8</arg>
       </condition>
       <condition type="class">
        <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
        <arg name="group">designer</arg>
       </condition>
      </conditions>
     </restrict-to>
     <results>
      <unconditional-result old-status="Finished" join="1"/>
     </results>
    </action>
   </actions>
  </step>
 </steps>
 <splits>
  <split id="1">
   <unconditional-result old-status="Finished" status="Underway" owner="test" step="6"/>
   <unconditional-result old-status="Finished" status="Underway" owner="test" step="7"/>
  </split>
  <split id="2">
   <unconditional-result old-status="Finished" status="Queued" step="2"/>
  </split>
 </splits>
 <joins>
  <join id="1">
   <conditions type="AND">
    <condition type="beanshell">
     <arg name="script"><![CDATA[
     "Finished".equals(jn.getStep(6).getStatus()) && "Finished".equals(jn.getStep(8).getStatus())
     ]]></arg>
    </condition>
   </conditions>
   <unconditional-result old-status="Finished" status="Underway" owner="test" step="2"/>
  </join>
 </joins>
</workflow>

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
osworkflow descriptor 解析片斷
WebWork Interceptor
Struts2教程
Struts2攔截器總結
OSWorkflow使用問(wèn)答
Struts 2的基石——攔截器(Interceptor)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久