久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

ZCMS/工作流定義

來自站長百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

ZCMS | ZCMS安裝 | ZCMS使用|ZCMS模板

工作流定義是創(chuàng)建,管理系統(tǒng)工作流的欄目,打開對應(yīng)界面如下:

ZCMS WF1.png

例如工作流“錄入---編輯---審核---復(fù)審”,當(dāng)某欄目選擇此工作流時,在此欄目下添加文章時,過程如下:

  1. 錄入:錄入編輯文章,把編輯好的文章提交給審核人員。
  2. 審核:審核人員可以對此文章進(jìn)行修改,退回,如果文章通過,則把文章交給復(fù)審人員。
  3. 復(fù)審:復(fù)審人員對文章進(jìn)行一系列操作,如果文章沒有問題,則直接發(fā)布此文章。

建立工作流[ ]

工作流建立過程如下:

  • 點擊ZCMS WF2.png打開界面:
ZCMS WF3.png

根據(jù)流程的需求填寫工作流名稱,說明,然后點擊確定鍵即可。


  • 點擊新建工作流名稱,打開下面界面:
ZCMS WF4.png

工作流代碼編寫[ ]

下面做一個簡單的文章錄入—審核工作流,來了解工作流的編寫過程及方法。

首先,要分析流程,過程如下:

  1. 用戶登錄,如果用戶具有錄入信息的權(quán)限,則就可以直接編寫文章,否則退出系統(tǒng)。
  2. 文章編輯完并且保存后,提交給審核人員。
  3. 審核人員查看文章,如果文章通過審核,直接發(fā)布即可。否則文章被退回錄入人員,回到第二步,進(jìn)行重復(fù)操作。

具體操作如下面流程圖:

ZCMS WF5.png


一個工作流包含多個步驟。每一個步驟都有一個當(dāng)前狀態(tài)(status)。每一個步驟中都有一個或者多個動作(action)可以被執(zhí)行。每一個動作都可以設(shè)置執(zhí)行條件(condition),也可以設(shè)置執(zhí)行函數(shù)(pre-function or post-function)。動作產(chǎn)生結(jié)果(result),導(dǎo)致工作流的狀態(tài)和當(dāng)前步驟發(fā)生改變。

通過分析流程,總共分為三個步驟:錄入,審核,審核完畢。分別對應(yīng):“錄入狀態(tài)”,“審核狀態(tài)”,“審核完畢”三個狀態(tài)。其中,“錄入”步驟有“保存”,“提交給審核”兩個動作可以被執(zhí)行,“審核”步驟有“保存”,“置為已審”,“退回”三個工作可以被執(zhí)行。

  • 首先要進(jìn)行初始化,如下面代碼:
<initial-actions> 
<action id="100" name="Start Workflow"> 
<pre-functions>   
<function type="class"> 
<arg name="class.name">com.zving.workflow.util.FunctionCaller</arg> 
</function> 
  </pre-functions> 
  <results> 
    <unconditional-result old-status="Finished" status="正在錄入" step="1" 
owner="${caller}"/> 
  </results> 
</action> 
</initial-actions> 

其中,有兩種類型的 functions: 步驟前和步驟后 pre-function and post-function。

pre-function 是在工作流執(zhí)行某一特定的流轉(zhuǎn)之前進(jìn)行的。

args Map 是一個包含<function/>標(biāo)簽中所有<arg/>標(biāo)簽的 Map。這些參數(shù)都是String 類型的并且已經(jīng)經(jīng)過了變量替換。這意味著<arg name="foo">this is ${someVar}</arg>將會由配置中的"foo"轉(zhuǎn)換成為"this is [contents of someVar]"。

對于一個類方法,類加載器必須知道方法所屬的類的名字。這可以通過 class.name 參數(shù)來完成,例如:

<function type="class"> 
<arg name="class.name">com.zving.workflow.util.FunctionCaller</arg> 
</function> 

每一個動作必須有一個 unconditional result(默認(rèn))和零到多個條件結(jié)果。

Conditional Result是 Unconditional Result 的一個擴(kuò)展。如:

<results> 
<unconditional-result old-status="Finished" status="正在錄入" step="1" 
owner="${caller}"/> 
</results>   

其中,old-status 為進(jìn)行此動作之前所對應(yīng)的狀態(tài),status 為當(dāng)前狀態(tài),如果狀態(tài)不是Queued 的話,那么 owner=”${caller}”就是新步驟的所有者(owner)。

  • 下面添加步驟 1:
<step id="1" name="錄入狀態(tài)"> 
<external-permissions> 
  <permission name="permA"> 
    <restrict-to> 
      <conditions type="AND"> 
        <condition type="class"> 
           <arg name="class.name"> 
com.zving.workflow.util.ConditionStatus 
</arg> 
           <arg name="status">正在錄入</arg> 
        </condition> 
        <condition type="class"> 
           <arg name="class.name"> 
com.zving.workflow.util.ConditionAllowOwnerOnly 
</arg> 
        </condition> 
</conditions> 
    </restrict-to> 
  </permission> 
</external-permissions> 

每個 condition 必須作為一個 conditions 的子標(biāo)簽被定義。這個元素有一個屬性叫做type,它的值是 AND 或者 OR。當(dāng)你使用"AND"類型,所有的 condition 元素的值必須都是"true",整個 conditions 才能是 true。

具體用法如上面代碼:<conditions type="AND"></condition>表明,只有具有權(quán)限和處于“正在錄入”狀態(tài)才能執(zhí)行。

許可和約束(Permissions and Restrictions):基于工作流實例的狀態(tài),Permissions 可被賦予到用戶和/或群組。這些 Permission 和工作流引擎的功能無關(guān),但是它們會對使用OSWorkflow 的應(yīng)用相當(dāng)有好處。如例子,一個錄入管理系統(tǒng)可能需要一個"file-write-permission",只讓具有權(quán)限的用戶編輯文檔。程序便可以使用 API 去判斷是否文件應(yīng)該被錄入。如果在工作流中有好多狀態(tài)都適用“file-write-permission”,這就很有用,不再需要去檢查特定的步驟或者條件,檢查是依照某個特定許可進(jìn)行的。 Permission 和 action 都使用了約束(restriction)的概念。約束是定義在 restrict-to 元素內(nèi)的一個或多個條件。

  • 下面為步驟添加動作:
<action id="11" name="保存"> 
  <restrict-to> 
    <conditions type="AND"> 
      <condition type="class"> 
        <arg name="class.name"> 
com.zving.workflow.util.ConditionStatus 
</arg> 
        <arg name="status">正在錄入</arg> 
      </condition> 
      <condition type="class"> 
        <arg name="class.name"> 
com.zving.workflow.util.ConditionAllowOwnerOnly
</arg> 
      </condition> 
    </conditions> 
  </restrict-to> 
  <pre-functions> 
    <function type="class"> 
      <arg name="class.name">com.zving.workflow.util.FunctionCaller</arg> 
    </function> 
  </pre-functions> 
  <results> 
    <unconditional-result old-status=" 正 在 錄 入 " status=" 正 在 錄 入 " step="1" 
owner="${caller}"/> 
  </results> 
</action> 
<action id="12" name="提交給審核"> 
  <restrict-to> 
    <conditions type="AND"> 
      <condition type="class"> 
        <arg name="class.name"> 
com.zving.workflow.util.ConditionStatus 
</arg> 
        <arg name="status">正在錄入</arg> 
      </condition> 
      <condition type="class"> 
        <arg name="class.name"> 
com.zving.workflow.util.ConditionAllowOwnerOnly 
</arg> 
      </condition> 
    </conditions> 
  </restrict-to> 
  <results> 
    <unconditional-result old-status=" 錄 入 完 成 " status=" 正 在 審 核 " step="2" 
owner="audit1"/> 
  </results> 
</action> 

其中,步驟1 有兩個動作可以被執(zhí)行: "保存","提交給審核"。

步驟 2,3 創(chuàng)建如步驟 1。



參考來源[ ]

ZCMS使用手冊導(dǎo)航

ZCMS安裝

安裝

ZCMS使用

文章編輯|文章設(shè)置|文章審核|文章調(diào)整|圖片管理|視頻管理|音頻管理|文章媒體添加|圖片播放器|友情鏈接|關(guān)鍵字|敏感詞|調(diào)查與投票|廣告管理|站點列表|欄目管理|媒體庫管理|自定義數(shù)據(jù)|全文檢索管理|Web采集|分發(fā)到目錄|訪問統(tǒng)計|發(fā)布統(tǒng)計|系統(tǒng)管理|工作流定義

ZCMS模板

站點對象|欄目對象|文檔對象|分頁對象|循環(huán)標(biāo)簽|其他標(biāo)簽|日期與數(shù)字格式