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

介绍

Notes/Domino作为一个数据库系统和开发平台,具有许多与众不同的特点。这些特点使得它适于开发某些类型的应用系统(同时就不是开发其他一些类型系统的适宜平台),这其中就包括工作流。这里指的并不是如工作流管理联盟(Workflow Management Coalition, WfMC)制定的工作流标准(Workflow Reference Model)那样通用的工作流,而是一类以文档为中心的主要活动为用户审批的工作流。Notes的文档型数据库、客户端与服务器架构、自带的用户目录和登录校验、与邮件系统的集成以及快速开发模型等设施和特性都为政府办公和企业管理涉及到的各种流程的电子化的开发提供了巨大的便利。在Notes平台上开发的工作流系统司空见惯,以至于很多有经验的开发人员都有自己的作品。我在长期的工作中,也开发了自己的系统。在接下来的几篇文章中,就将介绍这个系统的功能、特色、使用方法以及设计结构。最后会提供整个数据库的下载供大家学习使用。

需要指出的是,用Notes开发工作流的优势和名声主要是建立在本世纪初,那时R5已具备上述的所有功能,而使用其他语言从头开发一个功能完备、安全可靠的客户端难度和工作量都很大,而且还有客户端应用程序更新的麻烦。Web应用程序距诞生不久,不够完善和成熟。J2EE、PHP、ASP、JavaScript等当时主流的Web开发语言远未达到今天对应技术这样发达的程度。时至今日,Notes平台的上述优势在与其他开发语言和数据库比较时,都已不明显,甚至落后。采用主流技术开发的工作流在功能和适用范围上都已赶上和超过Notes平台上的系统。Notes的缺点和局限决定了使用它很难开发出符合WorkflowReference Model标准那样的通用工作流。尽管如此,由于Notes的用户基础以及XPages技术的推出,基于Notes平台的工作流仍然可以继续满足特定的用户群。

这里介绍的工作流基本情况为:工作流的名称、节点和操作等配置保存在一组文档中,方便在运行时创建和修改。工作流可运行于Notes客户端或浏览器(需XPages支持)。客户端版本有长期的应用实践可证明可靠性,XPages版本也实施若干年。

功能(features)包括:

  • 工作流的节点和操作可灵活自定义,包括每个节点具体有什么操作,没有任何预设的名称或数量上的限制。每个节点的用户、特权用户、每个操作的目标节点、操作的访问权限等等都可以自定义设置。
  • 操作的配置中包含字段校验和邮件内容以尽量减少额外编写代码的需要。
  • 许多配置可写入公式。
  • 支持两种模式的单节点多人审批:“与”模式下某个节点的多名用户都审批完才进入下一节点;“或”模式下某个节点的多名用户只要有一名审批完即转到下一节点。
  • 客户端和浏览器上运行的工作流共享配置数据,操作风格也完全一致。
  • 具体工作流可通过扩展基类添加复杂的业务逻辑。
  • 默认状态下每个流程文档的当前用户以用户名形式保存,因而可以在My Work视图下看到需要自己处理的工作流。
  • 定时发送HTML的汇总提醒邮件。

演示

作为演示的是一个采购工作流。总体界面如下。左边的导航分为两类:Purchase Order下所列是普通用户能访问的,包括我创建的采购单My Purchase Order,等待我处理的采购单My Work,为流程中的一个特殊节点设置的Final Review,按状态分类显示所有采购单的Purchase Order,为导出到CSV设置好列的Exporting PO以及查看流程图的View Flow Chart。Setting下所列是系统管理员和开发人员需要访问的视图,具体能看到哪些可根据权限设置,包括设置一般关键字参数的Settings,计算采购单号所用的Flow Number,配置流程参数的Flow Settings,保存各种运行日志的Log,显示冲突文档的Conflicts,显示所有文档的All Documents。

采购单主界面如下。表单上面两个折叠小节都是只有开发人员才能看见的与文档流程和权限有关的信息。标题下面的一行分别显示当前采购单所处的状态、处理人以及单号。

采购单的具体信息依据负责人和权限分布于多标签页表格的不同页里。

最后一个标签页里显示的是流程记录。

所有的流程审批操作都是从工具栏的Action…按钮触发的,只有采购单的当前处理人或者管理员能看见该按钮,点击后会在弹出的对话框中看见为该节点设置的可用操作,也可以输入意见。

定时代理按照设定的频率向采购单各个节点的处理人发送汇总邮件。例如,用户甲是IT经理,有三张采购单处于WaitingFor IT Approval的状态,他就会收到一封邮件,正文中以表格形式列出三张采购单的基本信息。这样可以免去通知邮件太多和太频繁的问题。因为是演示,下图中所有的通知邮件都发到同一个人的邮箱中。

如果以客户端操作工作流,邮件中每一行的采购单信息使用notes://relativePath/dbReplicaID/docUNID格式的Notes链接,用户单击可直接在客户端内打开该采购单。如果是采用XPages的工作流,链接就指向该采购单对应的Web页面。

下一篇文章继续演示XPages工作流的操作界面和配置。

时间: 2024-10-25 04:29:34

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

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

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

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

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

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

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

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

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

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

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

基于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