站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
ZCMS/工作流定义
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{ZCMS导航}} 工作流定义是创建,管理系统工作流的栏目,打开对应界面如下: [[Image:ZCMS_WF1.png|center]] 例如工作流“录入---编辑---审核---复审”,当某栏目选择此工作流时,在此栏目下添加文章时,过程如下: #录入:录入编辑文章,把编辑好的文章提交给审核人员。 #审核:审核人员可以对此文章进行修改,退回,如果文章通过,则把文章交给复审人员。 #复审:复审人员对文章进行一系列操作,如果文章没有问题,则直接发布此文章。 ==建立工作流== 工作流建立过程如下: *点击[[Image:ZCMS_WF2.png]]打开界面: [[Image:ZCMS_WF3.png|center]] 根据流程的需求填写工作流名称,说明,然后点击确定键即可。 *点击新建工作流名称,打开下面界面: [[Image:ZCMS_WF4.png|center]] ==工作流代码编写== 下面做一个简单的文章录入—审核工作流,来了解工作流的编写过程及方法。 首先,要分析流程,过程如下: #用户登录,如果用户具有录入信息的权限,则就可以直接编写文章,否则退出系统。 #文章编辑完并且保存后,提交给审核人员。 #审核人员查看文章,如果文章通过审核,直接发布即可。否则文章被退回录入人员,回到第二步,进行重复操作。 具体操作如下面流程图: [[Image:ZCMS_WF5.png|center]] 一个工作流包含多个步骤。每一个步骤都有一个当前状态(status)。每一个步骤中都有一个或者多个动作(action)可以被执行。每一个动作都可以设置执行条件(condition),也可以设置执行函数(pre-function or post-function)。动作产生结果(result),导致工作流的状态和当前步骤发生改变。 通过分析流程,总共分为三个步骤:录入,审核,审核完毕。分别对应:“录入状态”,“审核状态”,“审核完毕”三个状态。其中,“录入”步骤有“保存”,“提交给审核”两个动作可以被执行,“审核”步骤有“保存”,“置为已审”,“退回”三个工作可以被执行。 *首先要进行初始化,如下面代码: <pre> <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> </pre> 其中,有两种类型的 functions: 步骤前和步骤后 pre-function and post-function。 pre-function 是在工作流执行某一特定的流转之前进行的。 args Map 是一个包含<function/>标签中所有<arg/>标签的 Map。这些参数都是String 类型的并且已经经过了变量替换。这意味着<arg name="foo">this is ${someVar}</arg>将会由配置中的"foo"转换成为"this is [contents of someVar]"。 对于一个类方法,类加载器必须知道方法所属的类的名字。这可以通过 class.name 参数来完成,例如: <pre> <function type="class"> <arg name="class.name">com.zving.workflow.util.FunctionCaller</arg> </function> </pre> 每一个动作必须有一个 unconditional result(默认)和零到多个条件结果。 Conditional Result是 Unconditional Result 的一个扩展。如: <pre> <results> <unconditional-result old-status="Finished" status="正在录入" step="1" owner="${caller}"/> </results> </pre> 其中,old-status 为进行此动作之前所对应的状态,status 为当前状态,如果状态不是Queued 的话,那么 owner=”${caller}”就是新步骤的所有者(owner)。 *下面添加步骤 1: <pre> <step id="1" name="录入状态"> <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> </pre> 每个 condition 必须作为一个 conditions 的子标签被定义。这个元素有一个属性叫做type,它的值是 AND 或者 OR。当你使用"AND"类型,所有的 condition 元素的值必须都是"true",整个 conditions 才能是 true。 具体用法如上面代码:<conditions type="AND"></condition>表明,只有具有权限和处于“正在录入”状态才能执行。 许可和约束(Permissions and Restrictions):基于工作流实例的状态,Permissions 可被赋予到用户和/或群组。这些 Permission 和工作流引擎的功能无关,但是它们会对使用OSWorkflow 的应用相当有好处。如例子,一个录入管理系统可能需要一个"file-write-permission",只让具有权限的用户编辑文档。程序便可以使用 API 去判断是否文件应该被录入。如果在工作流中有好多状态都适用“file-write-permission”,这就很有用,不再需要去检查特定的步骤或者条件,检查是依照某个特定许可进行的。 Permission 和 action 都使用了约束(restriction)的概念。约束是定义在 restrict-to 元素内的一个或多个条件。 *下面为步骤添加动作: <pre> <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> </pre> 其中,步骤1 有两个动作可以被执行: "保存","提交给审核"。 步骤 2,3 创建如步骤 1。 ==参考来源== *http://www.zving.com/wdzx/zcms/index.shtml [[category:ZCMS|G]] {{ZCMS使用手册}}
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:ZCMS使用手册
(
编辑
)
模板:ZCMS导航
(
编辑
)