92. 基于Notes/Domino的文档工作流系统(四)

现在我们以演示的采购工作流来研究工作流系统的设计。本文将讨论一个通用的工作流“引擎”包含哪些功能。通过需求分析和梳理,我们已经获得如下的流程图。由此可知该流程由一组状态、与状态对应的一组用户和流程处于某种状态时当前用户所能进行的若干操作组成。
 
接下来逐个分析这些操作。首先看IT部门的起草人填完采购单后提交。此时流程系统须做以下工作:

  • 校验必填字段。
  • 生成采购单号。
  • 修改采购单状态为Waiting For IT Approval。
  • 将流程的当前处理人由起草人改为负责审批的IT Leader,将起草人添加入读者域,将容纳采购单基本信息的存取控制区段的写权限设置为无人。
  • 添加操作记录,即何时起草人将采购单从草稿提交,以及可能有的备注。
  • 发送邮件通知IT Leader处理该单。

IT Leader通过邮件链接或者直接在采购系统的My Work视图下看到该采购单,他可以选择批准或驳回。批准时流程系统将做以下动作:

  • 修改采购单状态为Waiting For Finance Verification。
  • 将IT Leader存入读者域,将流程当前处理人改为财务部负责Finance Verification的同事。
  • 添加操作记录,即何时IT Leader将采购单从Waiting For Finance Verification状态批准,以及可能有的备注。
  • 发送邮件通知当前处理人处理该单。

我们再选取其他几个节点的某些操作。流程处于Waiting For Finance Confirmation状态时,财务部负责Finance Confirmation的员工选择批准时:

  • 如果采购金额超过500元,修改采购单状态为Waiting For Final Review,否则改为Inputting Payment Information。
  • 将负责当前状态的用户存入读者域,将流程当前处理人据上述规则改为对应状态的处理人。如果下一状态为Inputting Payment Information,将Payment Information所在的存取控制区段的写权限设置为该状态的处理人。
  • 添加操作记录。
  • 发送邮件通知当前处理人处理该单。

流程处于Inputting Payment Information状态时,负责处理的起草人如果选择Change Price:

  • 系统将弹出修改价格对话框。
  • 修改采购单状态为Waiting For IT Approval。
  • 将流程的当前处理人由起草人改为负责审批的IT Leader,将起草人添加入读者域。
  • 添加操作记录。
  • 发送邮件通知IT Leader处理该单。

流程处于Inputting Bank Information状态时,负责处理的财务部员工选择关闭:

  • 修改采购单状态为Closed。
  • 将流程的当前处理人由改为代表没有人的[Nobody],将当前用户添加入读者域,将所有存取控制区段的写权限设置为无人。
  • 添加操作记录。
  • 发送邮件通知起草人该单已审批完成。
  • 在财务部的费用报销流程系统里自动创建一张报销单,从当前采购单填入相关信息。

可以看出,上述节点操作有相当部分是相似的,例如修改采购单的权限,包括有关的读者域、作者域、存取控制区段,只是具体每个操作修改的内容不同。因此与其为每个操作写代码,更理想的方式是写通用的代码来处理这些相似的动作,而在每个操作上某个动作用到的具体的数据则由配置文档提供。这些通用代码就构成所谓的流程引擎。至于某个操作包含的特定动作,则要根据每个流程的具体需求临时编写。
我们看看流程引擎包含哪些功能:
虽然上面的操作实例中,只有提交需要校验必填字段,但这项功能在其他节点操作中也时有需要,并且功能的需求边界清晰,易于标准化,所以包含在我们的流程引擎中。此外流程文档从一个状态跳转至另一状态时,有时需要修改一些业务字段的值,将此功能包括在流程引擎里也能省去为很多此类简单的特定动作编写代码。生成采购单号之类流水号,虽然在开发中也很常见,但是此功能并不仅限与于流程系统,而且实现它用到的流水号配置文档也最好单独保存,所以虽然也采用通用的配置文档和代码来生成流水号,但是独立于流程系统之外。再加上从以上的操作例子中可明显看出的相似动作,最终流程引擎包含以下功能:

  • 校验必填字段。
  • 修改流程文档的权限,包括有关的读者域、作者域、存取控制区段。
  • 添加操作记录。
  • 修改配置的业务字段。
  • 发送邮件通知相关处理人。
时间: 2024-11-05 13:44:09

92. 基于Notes/Domino的文档工作流系统(四)的相关文章

95. 基于Notes/Domino的文档工作流系统(七)

本文继续剖析基于Notes/Domino的文档工作流系统的设计和代码,以方便用户能应用和创建自己的工作流.(CSDN的下载资源一旦上传就不能修改,很不方便,现已将下载地址改到GitHub,若发现下载有问题,请与我联系.) 在前文对工作流建模时,我们抽象出以下几类对象: 工作流:每个工作流实例都存放工作流名称.当前节点等信息,并负责处理流程各节点的操作. 采用工作流的业务对象:在这里也就是采购单. 工作流的配置对象:不同工作流实例以及各个节点的操作的实际差异都是从配置数据中读取的. 最后一类对象体

94. 基于Notes/Domino的文档工作流系统(六)

(流程样例应用程序终于整理上传好可供下载了http://download.csdn.net/download/starrow/8422299) 上文分析了我们的流程配置使用三类对象,分别对应三类文档:工作流配置文档.节点配置文档和操作配置文档.本文介绍三类配置文档的内容,也可以看作本流程系统的设置教程. 这些配置文档的共同点包括: 处于编辑状态时,必填字段的右边会显示红色星号(这实际也是整个系统的共同设计),保存文档时会对这些字段进行校验. 许多字段既能输入静态值,也可输入公式以计算动态值.输入

89. 基于Notes/Domino的文档工作流系统(一)

介绍 Notes/Domino作为一个数据库系统和开发平台,具有许多与众不同的特点.这些特点使得它适于开发某些类型的应用系统(同时就不是开发其他一些类型系统的适宜平台),这其中就包括工作流.这里指的并不是如工作流管理联盟(Workflow Management Coalition, WfMC)制定的工作流标准(Workflow Reference Model)那样通用的工作流,而是一类以文档为中心的主要活动为用户审批的工作流.Notes的文档型数据库.客户端与服务器架构.自带的用户目录和登录校验

93. 基于Notes/Domino的文档工作流系统(五)

确定了流程引擎包含以下功能: 校验必填字段. 修改流程文档的权限,包括有关的读者域.作者域.存取控制区段. 添加操作记录. 修改配置的业务字段. 发送邮件通知相关处理人. 随后就要为其建模.此过程在用不同范式的语言开发时有不同的形式和术语.在C之类的过程式语言里,包括设计数据结构和自上而下的函数层次.用面向对象的方法时,就是要设计出类图.在我们的Notes环境里,基本上奉行的是"面向界面"的开发,确定了需要几种表单和视图,设计出来后,再写入必要的事件处理代码,一个应用程序就初具雏形了.

90. 基于Notes/Domino的文档工作流系统(二)

XPages下的工作流演示 网页外观的可能性在技术上超过Notes客户端里的表单,Web应用程序在页面设计上花费的精力和取得的效果也远远超过基本保持传统客户端应用程序界面风格的Notes.我是程序员,不是设计师.在下面的演示里,页面都以展现功能为主,基本采用XPages的默认输出. 按状态分类显示采购单的视图: 采购单页面: 单击Flow actions-按钮弹出的对话框: 流程设置 先来看看这个采购系统的流程图. 在客户端里选择导航中的FlowSettings,看到的是配置文档的全景. 双击视

基于Noootes/Dooomino的文档工作流系统(转)

(流程样例应用程序终于整理上传好可供下载了http://download.csdn.net/download/starrow/8422299) 上文分析了我们的流程配置使用三类对象,分别对应三类文档:工作流配置文档.节点配置文档和操作配置文档.本文介绍三类配置文档的内容,也可以看作本流程系统的设置教程. 这些配置文档的共同点包括: 处于编辑状态时,必填字段的右边会显示红色星号(这实际也是整个系统的共同设计),保存文档时会对这些字段进行校验. 许多字段既能输入静态值,也可输入公式以计算动态值.输入

基于T4模板的文档生成

看了好几个代码自动生成的工具,用起来很方便,但有些方面还是不够自由:这些日子里忙里偷闲摸索了一番,个人觉的基于T4模板的代码生成方案还是不错的. 下面就看看这个T4到底是什么东东-- T4 = Text Template Transformation Toolkit 不知道电脑前的你是否接触过Asp或jsp之类的动态网页编程语言,个人感觉就和那些动态网页的的编写思路差不多只不过那些编译前是*.asp.*.aspx,或*.jsp,这个T4编译前是的扩展名是tt(*.tt) 先看一个简单的tt文件

“在线Excel文档编辑系统”新手开发训练营开营啦,完全免费,欲报从速!

疫情当前,远程办公风口正盛,腾讯文档.飞书.石墨文档等在线协同办公软件供应商迅速崛起.抓住风口,你也能造就下一个BAT. 本期训练营,将引导您快速开发一款基于Vue框架,简单.能迅速投入使用的在线Excel文档编辑软件. 新手开发训练营,助您找回丢失的时间! 面向所有前端开发者, 推出3 天学会:在 Vue 框架下搭建“在线Excel”文档编辑系统 旨在给您更棒的学习体验! 最重要的是,本期活动全程免费!不限报名人数! √    小群交流,零基础也能轻松学会 √     直播互动,授课 & 答疑

springmvc+mybatis+lucene4文档搜索系统(支持分页)

原文:springmvc+mybatis+lucene4文档搜索系统(支持分页) 源代码下载地址:http://www.zuidaima.com/share/1550463731436544.htm springmvc+mybatis+lucene4文档搜索系统(支持分页) 说明在readme.txt中 链接:http://pan.baidu.com/share/link?shareid=1973707360&uk=402880896 密码:01r6