(流程样例应用程序终于整理上传好可供下载了http://download.csdn.net/download/starrow/8422299

上文分析了我们的流程配置使用三类对象,分别对应三类文档:工作流配置文档、节点配置文档和操作配置文档。本文介绍三类配置文档的内容,也可以看作本流程系统的设置教程。

这些配置文档的共同点包括:

处于编辑状态时,必填字段的右边会显示红色星号(这实际也是整个系统的共同设计),保存文档时会对这些字段进行校验。

许多字段既能输入静态值,也可输入公式以计算动态值。输入公式时用大括号包围所写的公式,即{formulas}。在配置文档中公式计算用到的文档就是流程文档,也就是采购单。

流程配置文档显示在FlowSettings视图里:

新建一个流程:

输入流程名称,保存。接下来的工作就是创建该流程的节点和操作配置文档。

节点的名称Nodes可输入多值。这是因为流程中常常有节点(通常为从其他节点驳回)除了名称外其他配置都与另一基本节点完全相同,此时就可以这些节点的名称附在基本节点的名称后面。在上图的例子中,流程被IT或财务校验等驳回后分别处于RejectedBy IT、Rejected After Finance Verification等状态,以便与其他状态区分开,但是处于这些状态的流程文档在当前处理人、可行操作和权限等方面与Draft状态完全一致,所以将它们都列在Draft之后。

节点的当前处理人Users可以直接输入Notes用户名,也可以使用Notes公式计算。这里计算采购单中的CreatedBy字段,即它的创建者。

可编辑区段Editablesections设置的是当前用户能编辑的存取控制区段(参看91. 基于Notes的文档工作流系统(三)里介绍的主表单设计)。

在本样例中共设置了以下节点:

接下来设置每个节点可用的操作。

当前节点Current Node可选择多值,这是为那些适用于多个节点的操作准备的,例如本样例中的取消Cancel操作:

操作名称Action Name为当前用户看到的显示在操作选择对话框中的文本。下一节点Next Node可从所有节点中选择。

操作记录Action Record会和操作时间和当前用户一并显示在流程记录里,用户语言若是中文,该配置可直接使用操作名称,样例因为是英文,所以有区分大小写和动词时态屈折的需要,如这里的cancelled。

操作的处理人ActionHandlers可选当前处理人Currenthandlers或其他处理人Otherhandlers。一般情况下选择前者,流程使用节点配置文档里设置的当前用户。特殊操作只对流程文档的FlowHandlers字段里保存的特别用户或角色可用。例如采购单在提交时会将创建者、Forrest Zhou和Same Sun三个人名写入FlowHandlers字段,Cancel操作即只有这些用户可用。

操作表达式ActionExpression可进一步控制某个操作对当前用户是否可见。例如Cancel操作就通过公式设置为当流程状态为Draft和第一次提交后的WaitingFor IT Approval时,创建者可取销,其他状态时用户ForrestZhou、Same Sun以及特殊权限的IT角色可取消。

审批模式Approve Mode较少用,设为与And模式时,某个状态如果有多名当前用户,则须都审批方能通过;设为或Or模式时,则只要有一位用户审批即可通过。因为多名用户审批可能导致保存冲突,所以真正应用时,还需配合其它设计尽量减少保存冲突。

邮件信息MailInformation小节在流程配置文档和操作配置文档中都有,前者有一个按钮“应用到所有节点”Apply to all nodes方便进行一次性配置。是否需要邮件通知Need Mail Notice决定流程跳转到新节点时是否向该节点的当前用户发送邮件通知。抄送人Copy To可配置通知邮件的抄送收件人。主题Subject和正文Body都可使用字符串或公式。

在字段校验和修改FieldValidation And Modification标签页内:

可设置必填字段的名称和标题,并且每行也可用公式控制应用的条件。字段修改配置包括替换Replace和附加Append(实际应用很少),每行配置包括决定是否应用的条件公式,无条件应用可写入@True,字段名称和要写入的值(同样也可以运用公式)。

操作配置完后的全貌如下:

后文将介绍应用流程系统的采购单的表单设计、通用流程类的代码以及实际流程类的扩展。

基于Noootes/Dooomino的文档工作流系统(转)的更多相关文章

  1. 几个方便的基于es 的开源文档索引系统

    Apache Tika 比较有名的内容提取工具 FsCrawler 使用java 开发,内部使用了Tika Ambar nodejs,python应用开发,轻量,支持基于docker 的快速部署,同时 ...

  2. mindoc 在线文档接口系统的 docker 制作过程

    说明: mindoc 是一款在线接口文档编辑系统,百度一下就知道了.github地址:https://github.com/lifei6671/mindoc 本机:ubuntu16.04 + dock ...

  3. 2.Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)-

    转自:https://blog.csdn.net/a214919447/article/details/55260411 SOAP(Simple Object Access Protocol,简单对象 ...

  4. Atitit 基于图片图像 与文档混合文件夹的分类

    Atitit 基于图片图像 与文档混合文件夹的分类 太小的文档(txt doc csv exl ppt pptx)单独分类 Mov10KminiDoc 但是可能会有一些书法图片迁移,因为他们很微小,需 ...

  5. MFC中 给基于CFormView的单文档添加背景图片

    关于基于CFormView的单文档应用程序,添加一个图片背景的方法之一如下: 下面是利用LoadImage实现.(先在程序目录中添加背景图片back.bmp) 1.在view类中添加类成员变量:(为C ...

  6. groff - groff 文档排版系统前端

    总览 (SYNOPSIS) groff [ -abehilpstvzCENRSUVXZ ] [ -wname ] [ -Wname ] [ -mname ] [ -Fdir ] [ -Idir ] [ ...

  7. troff - groff 文档排版系统的 troff 处理器

    总览 SYNOPSIS troff [ -abcivzCERU ] [ -d cs ] [ -f fam ] [ -F dir ] [ -m name ] [ -M dir ] [ -n num ] ...

  8. ABP文档 - 通知系统

    文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...

  9. 基于 Markdown 编写接口文档

    最近公司开发项目需要前后端分离,这样话就设计到后端接口设计.复杂功能需要提供各种各样的接口供前端调用,因此编写API文档非常有必要了 网上查了很多资料,发现基于Markdown编写文档是一种比较流行而 ...

随机推荐

  1. (poj)1679 The Unique MST 求最小生成树是否唯一 (求次小生成树与最小生成树是否一样)

    Description Given a connected undirected graph, tell if its minimum spanning tree is unique. Definit ...

  2. HOW TO: Creating your MSI installer using Microsoft Visual Studio* 2008

    Quote from: http://software.intel.com/en-us/articles/how-to-creating-your-msi-installer-using-visual ...

  3. nfs,ftp配置

    一. NFS1. NFS简介NFS全称是network file systemNFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. 假 ...

  4. 忘记mysql的root密码

    如果忘记root密码或其他用户密码,不要急,按下面操作即可.1. 编辑mysql主配置文件 my.cnfvim /etc/my.cnf   在[mysqld]字段下添加参数  skip-grant   ...

  5. github 查看单个文件的历史记录命令

    gitk 安装: apt-get install gitk 点击打开链接http://stackoverflow.com/questions/278192/view-the-change-histor ...

  6. 小笔记(三):PHP使用thinkphp3.2.3对数组进行分页

    之前写过thinkphp3.2.3直接在查询数据的时候进行分页,前段时间用到了将查询之后的数组进行整理后进行分页,用到的一个函数array_slice($arr, $start, $length,tr ...

  7. VS2015安装开发ios android

    前几天很火,装了一下,结果是不是太满意,装了VS2015只是多了一个android和ios的模版,最终还是要装xamarin ,最后装了个xamarin ,然后破解 破解地址:http://www.c ...

  8. Django中国|Django中文社区——python、django爱好者交流社区

    Django中国致力于成为Python和Django框架等技术的中文开发者学习交流平台. 内容涵盖python教程.python基础.Django教程.python入门.web.py教程.linux教 ...

  9. IT从业人员必看的十几个论坛

    IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多,往哪里去,新浪论坛,网易是经常去的,人多啊,好几十万,去了以后才发现没有意思,没有共同的语言,于是逛专 ...

  10. Centos开启FTP及用户配置

    vsftpd作为FTP服务器,在Linux系统中是非常常用的.下面我们介绍如何在centos系统上安装vsftp. 什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...