自定义表单设计思路为了满足和现有工作流系统的耦合,在适当改动现有工作流的基础上,对自定义表单系统(包括与工作流相关)的设计做出如下的规划:1.基础功能模块:部门、角色、人员信息、班组、岗位(这些都可能是潜在的流程参与者)在现有基础上适当扩展;2.权限管理:需要在操作权限的基础上增加字段权限和记录权限,也就是要实现表单权限、记录权限、字段权限;3.表单基本信息:表单对应的表实体的定义、实体属性定义等等;4.可视化的表单定制工具:实现基于web的图形化表单设计器,争取做到可拖拽控件,无需安装任何客户端控件;——难点为数据绑定,也就是页面元素与数据表字段的映射,另外动态数据存储结构问题、表间数据校验和计算、建立主从表的问题是难点;因此要建立相对应的样式库、脚本库、函数库、模板库等等。
5.除了可视化表单定制工具外应有:表单加载、表单解析、表单数据处理和表单存储功能;6.设计出发点:争取为今后我们做系统实现以面向服务或面向流程的方式构建系统做准备(即系统的运行已流程驱动或服务驱动),做到随需而变,使得将来的系统的维护不要停留在代码级的维护层面上;7.设计目标:我们开发出的自定义表单系统做到工作流和自定义表单松耦合实现为好,用户自定义表单并能与工作流有效结合的工作流过程定义方法及工作流系统结构;8.整个表单系统的设计采用分层建模方法进行设计与开发,可以分为:数据层建模、业务层建模以及表现层建模9.采用基于描述的方法来提高表单的可维护性、可扩展性以及灵活性,是否通过采用XML来描述表单数据模型、业务模型和表示模型需要讨论后确定(设计完成的表单以XML 形式保存到数据库指定表中);10.初步设想我们开发的自定义表单系统是基于XForms标准而非基于传统的HTML表单标准,分类表单数据,行为与表示也需要在设计器中体现出来——表单模板+数据,本质上是以XML为核心并且实现表单数据模型与表现层(表单格式)分离。
大致的建立表单步骤如下:第一步:定义表单基本信息;第二步:表单设计器数学模型的建立,表单设计器引擎是整个表单设计的核心;第三步:通过表单设计器定义表单样式和所有字段详细信息;第四步:定义对表单的各类基本操作(仅仅针对的是增、删、改、查的基本操作)。
在搞清楚工作流控制数据、工作流相关数据以及工作流业务数据的前提下,流程的配置主要为以下步骤:第一步:创建流程角色;第二步:对创建的系统用户分配角色;第三步:创建流程(建立自动流程);第四步:表单中绑定流程(动态加载工作流表单),将表单视为多个表单项的组合,每一个表单项都是用户需要填写的内容,对表单项进行定义;第五步:试运行流程。
表单系统相关模块以及将要实现的功能第一个功能模块:表单管理分配表单管理员是设计表单样式、确定表单审批流程和分配使用者的一种角色;建立表单管理员角色以及分配表单管理员权限(延用目前OA系统的角色权限管理和人员角色管理模块即可)。
第二个功能模块:表单基础信息表单基础数据字典信息建立(延用目前只是管理中的通用参数维护,稍作修改),旨在维护通用参数类别以及各相应类别下的参数维护。
第三个功能模块:表单设计制作➢主要的输入类型分文本框、标签、文本域、单选按钮、复选按钮、下拉列表框和扩展控件➢标签:只供显示不可编辑,故只有在设了初始值才有意义,可以设置字段的货币符号大小写转换,该字段将显示货币符号大写。
➢文本域:较文本框多了一个垂直滚动条。
为多行显示;在操作设置中设置了该字段为追加,调用表单发送协同时,在后续流程节点中对该字段有编辑权限的用户单击文本域字段可以弹出一输入页面,可以向该文本域中追加信息。
➢单选按钮和下拉列表框:都是从多个选择项中(即参数值)选出一个,只是展现形式不一样,在后续设置时都需要指定所绑定的通用参数类型。
➢复选按钮:复选所有的项目都必须在表单制作时单个表示出来,且其前面设计一文本框,可以进行勾选。
➢扩展控件:借助于选择器完成录入的一种方式,设置时需要指定所绑定的选择器,目前我们大致可以提供了选择人员、选择部门、选择岗位、选择班组和选择日期这5种选择器。
➢计算字段设置仅对数字型数据项、文本框有效。
表示该数据项的值是通过其它数字型数据项的计算所得。
例如,金额可以设为{单价} * {数量},总金额可以设为sum({金额}) 计算可以通过表单数据域、系统变量(预设的通用参数——系统变量不可删除和修改)。
通过如上图所示的表单定制工具进行设计,旨在画出表单单据的样式,设计后形成表单模板通过XML存储表单的展示,并生成相应的表单实体以及表单实体属性(字段以及数据类型、长度等信息);表单定制工具的基本功能是:定义表单的数据结构和数据表现形式。
➢数据结构的定义是指表单中字段的信息:字段的个数、字段顺序、字段属性等。
➢数据的表现形式即表单的外观:数据排列、字体、标题等;考虑XML结构描述的优势,编辑完成的后表单内容用XML文档来描述。
表单定制完成产生的XML文档还是保存在数据库中,分两个实体存储,一个是表单类型表,存储所有的空表单类型,一个是表单实例表即流程运行时产生的表单,这个实体按类型加时间加编号检索,具体的XML描述文档采用大字段格式作为实体的字段(也可以考虑采用XML附件形式)。
➢表单分类进行存储:对新建的表单进行分类存储,以便于调用该表单模板时方便查找,比如可以分为管理类、行政类、技术类、销售类等等。
【特别说明】由于表单定制工具是一个独立的工具,系统运行时,还必须提供读取、解析、保存表单XML文档的程序模块。
在将来的设计中,表单运行时程序采用组件对象的方式提供,嵌入应用程序页面,并调用对象提供的方法处理表单。
对HTML初始表单模板进行解析。
转换模板格式为XHTML,利用XML工具解析该表单模板,对其中的表单控件进行分析标识,同时在数据库中动态生成数据表,存储表单记录。
模板存储和解析采用XML + XSLT方案解决采用XML描述数据,XSLT定义XML数据显示格式。
通过XSLT来控制数据的显示;查询数据库返回XML格式数据,将XML保存到数据库中,通过XSLT来解析XML数据文件生成HTML代码,最终将HTML代码显示到前台页面中。
见如下图所示第四个模块:表单管理数据项:表单名称、排序号、所属应用、所属人、表单状态(草稿、发布、引用)、制作时间。
表单所属管理(表单名称、所属人,其中所属人只能在表单管理中进行选择)以及表单发布,新建的表单还需要进行表单发布(发布好之后的表单方可被调用),没有发布的表单还可以进行修改,也就是草稿状态下的表单可以修改,不受限制,发布状态下表单若已有数据,则不可以删减字段以及修改字段类型或缩减字段长度;可以将没有被调用发送过协同的表单模板删除。
第五个功能模块:流水号设置记得公司已经做过流水号设置的工作,可以参考或重新实现大致页面形式如下:第六个功能模块:表单流程定义通过调用相应的表单模板(发布好之后的表单模板),建立带有表单的流程模板,设置各个节点表单单据的数据项编辑权限,生成表单流程模板;主要页面形式大致如下:➢定义流程节点、授权给节点的人员、一个或多个部门、岗位、组等节点➢节点属性设置:主要是对相应的流程节点上设置所授权人对表单字段的操作权限(浏览、编辑、隐藏以及追加信息功能)另外流程节点设计中考虑操作类型分新增、修改、只读,这是对整张表单而言的,并非指数据项;所以,新增只能用于表单流程的起始节点,修改和只读只能用于表单流程的处理节点的结束节点。
➢数据值和显示值:前者表示在数据库中存放的值,后者表示在界面上展现的值。
数据值必须设置,显示值可以不设置。
➢数据值和显示值都勾选时,其手工和系统变量必须成对选择,如数据值中选择系统变量:登录人员ID,显示值中也必须选择系统变量:登录人员姓名。
第七个功能模块:流程表单使用调用定义好流程的表单模板在OA办公系统中使用,完成表单单据的填写和提交审批填写数据后形成相应的表单实例以及对应的表单数据。
第八个功能模块:表单查询设置定义查询条件、确定列显的数据项,以及对使用者授权;数据项:查询名称、查询授权人、查询描述、预设条件、预览形式,主要实现页面形式大致如下➢表单查询名称、比单名称、查询授权用户(多选用户)查询描述、预置查询条件➢设置数据域:设置查询的数据标题,也就是在查询出的列表显示的对应的字段第九个功能模块:表单统计设置➢定义统计条件、确定列显的数据项,以及对使用者授权;➢数据项:统计名称、统计授权人、对应的统计表单、统计描述、统计类型、预设条件、预览形式,主要实现页面形式大致如下:第十个功能模块:表单记录查询根据查询设置,被授权的用户或部门或岗位对设置好的相应查询的结果查看第十一个功能模块:表单记录统计根据统计设置被授权的用户或部门或岗位对设置好的相应统计的结果查看元数据目录[隐藏]定义元数据的优点属性元数据的意义元数据列举元数据开发应用的标准化框架定义元数据最本质、最抽象的定义为:data about data (关于数据的数据)。
它是一种广泛存在的现象,在许多领域有其具体的定义和应用。
在数据仓库领域中,元数据被定义为:描述数据及其环境的数据。
一般来说,它有两方面的用途。
首先,元数据能提供基于用户的信息,如记录数据项的业务描述信息的元数据能帮助用户使用数据。
其次,元数据能支持系统对数据的管理和维护,如关于数据项存储方法的元数据能支持系统以最有效的方式访问数据。
具体来说,在数据仓库系统中,元数据机制主要支持以下五类系统管理功能:(1)描述哪些数据在数据仓库中;(2)定义要进入数据仓库中的数据和从数据仓库中产生的数据;(3)记录根据业务事件发生而随之进行的数据抽取工作时间安排;(4)记录并检测系统数据一致性的要求和执行情况;(5)衡量数据质量。
在软件构造领域,元数据被定义为:在程序中不是被加工的对象,而是通过其值的改变来改变程序的行为的数据。
它在运行过程中起着以解释方式控制程序行为的作用。
在程序的不同位置配置不同值的元数据,就可以得到与原来等价的程序行为。
在图书馆与信息界,元数据被定义为:提供关于信息资源或数据的一种结构化的数据,是对信息资源的结构化的描述。
其作用为:描述信息资源或数据本身的特征和属性,规定数字化信息的组织,具有定位、发现、证明、评估、选择等功能。
此外,元数据在地理界,生命科学界等顶域也有其相应的定义和应用。
元数据(Meta Data)是关于数据仓库的数据,指在数据仓库建设过程中所产生的有关数据源定义,目标定义,转换规则等相关的关键数据。
同时元数据还包含关于数据含义的商业信息,所有这些信息都应当妥善保存,并很好地管理。
为数据仓库的发展和使用提供方便。
元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件(PE)文件或存储在内存中的程序进行描述。