☘ gMIS吉密斯优化升级:+工作区,可读性异常信息,异步删除等

“年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及!” 

—- 诸葛亮《诫子书》

gMIS吉密斯近期进行了较大幅度的优化升级,功能增强改进,感谢大家对 gMIS吉密斯开源社区的捐赠,这些支持使得 gMIS吉密斯 能够日益成熟而稳定、健壮而强大。诸葛先生的训诫之词,言犹在耳,未敢懈怠。

这批次 gMIS吉密斯的更新主要包括如下内容,记录备忘如下,以期后续结集成书时参考备查。

  • 1)增加工作区概念(workspace), 多个物理上、逻辑上相互隔离的区域,一套系统管理N多个信息管理系统;

gMIS吉密斯 自今起,开始支持工作区 workspace的功能。

工作区 Workspace 往往与项目、地区、主题等密切相关,gMIS 增加工作区的主要考虑是为了满足如下设想的工作场景。

我们认为在一个大型的企事业单位的组织中,随着数字化、信息化的不断投入与持续升级改进,其数字资产会深入地细化、细分,从一个10人团队的一个数据库开始,会逐渐升级改进扩展为2个数据库,4个数据库,10个,20个,甚至是200个数据库。

这些数据库及其数据都需要管理,管理数据信息,就需要安装 gMIS,有多少数据库要管理就安装多少套 gMIS吗?

答案显然不是。首先, gMIS 支持一套系统管理N多数据库,参考:“-gMIS 中操作同时并发操作和管理多个数据库multiple databases” (-R/x12SV )。通过这种方式, gMIS 可以轻易地管理其这些数据库。其次,平行地复制或并行多套一样的系统,对IT运维团队来说是灾难,如果有这样的需求,首选的方案应该是负载均衡等。

之所有要考虑引入WorkSpace工作区,是要管理两个以上并行的 gMIS 实例数据库,比如,在一个单位中,人事系统、财务系统、购销存系统,系统分别独立运行,而不是揉和在一个系统内。这样情况下,平行复制 gMIS 是方案,而引入工作区workspace 则是更好的方案。

gMIS 工作区(workspace)

在用户登录系统时,给出待登录的工作区选择,当用户选择给定工作区(如上图HR工作区、ERP工作区或者CRM工作区)时, gMIS按设置加载给定工作区的数据库,进行认证;用户通过权限认证后,将本次会话的工作区信息写入用户身份数据,按指定工作区加载指定的数据,进行后续数据操作工作。

  • 2)增加对只读模式下对功能菜单调整,去掉“新增”,”导入Xls”等;

gMIS吉密斯在设计时会考虑两种情况无法对一个数据表对象进行“写入”操作:1)访问权限设置系统里,如果针对当前用户或者用户组是受限的,则无法进行写入;2)数据表对象本身具有“只读”属性,比如针对所有用户,“操作日志”记录表就设置了无法删除。

针对不具有写入权限的数据表对象,程序增加了判断,去掉了那些针对当前用户和场景无法使用的菜单选项,比如“新增”,“编辑” 或者“导入Xls”等操作。这样既避免用户误操作,也让界面现得清爽。

  • 3)在 comm/tblconf 里修正对Unique index的探测;

gMIS 在装载当前数据表对象的数据之前,通常需要对该数据表的元数据进行解析。这项解析工作包括目标数据表,有哪些字段,每个字段的数据类型等,同时也检查字段之间的关系等,如哪些字段是唯一键,哪些是组合约束键等。

本次改动主要是优化改进了 MySQL 数据库作为后端数据时,检查以 MUL 为标记的组合约束键。

  • 4)列表行删除数据时,不再刷新页面进行UI更新,改进为通过JavaScript前端删除;

关于删除的改进优化,gMIS吉密斯一直未停止。

早前在2015年,我们受 Microsoft Windows 延迟删除的改进启发,增加了针对数据删除,由必需点击“确认”改进到“延迟”数秒进行无确认删除:“删除确认、删除异步及删除延时,delete confirm,aysnc and delay” (-R/62SS )。

在2015的这次改进中,被删除的数据会被打上标记,比如变灰色,等下次刷新时,整个页面再做刷新,这样做的目的是节省因为删除数据而进行一次数据请求和与服务器的通信,将数据交互的量级降到最低。

持续地改进,在多数数据操作人员眼里,删除就应该立即移除掉,而不是打上删除标记等下次页面刷新。这次改进,当数据通信与服务器通信正常时,会使用JavaScript动态的将所删除的数据行从当前UI视图中移除掉,而不进行整个页面刷新。

这样既实现了立即移除掉的目的,也再次地坚持了“降低成本、提升效率”的设计和实践原则。

  • 5)列表页选择框下拉选择即时递交,不再等复合条件查询,改一步复合查询为多步叠加条件;

gMIS 内置的增强数据表头,提供了功能强大的搜索及排序功能。

在条件设置上,列出所有可能经常用到的列表字段供筛选时使用; 同时,在每一个具体的筛选字段上,又提供数种可供操作的操作符供选择,如数值型的字段提供了等于、大于、小于和值域区间等,而字符型字段则提供了等于、包括、以其开头、以其结尾和不包括等选择项,可谓十分丰富和强大。

在组合条件设置三上,同时提供了“并且”和“或者”两种模式,前者是满足所有条件的数据,后者是满足其中一项的数据记录。

这些足以满足通常情况下数据操作人员对待检索数据的所有筛选设想。这次改进的地方是当用户选择了“选择性”的字段的某个“选择项”时,即时递交数据筛选请求,不再等待点击“并搜”或“或搜”再进行筛选条件的组合。

  • 6)输入数据异常时, 给出具体而详细的出错信息;

作为管理信息系统应用软件,录入数据是很常规的操作,对常规数据的校验,主要依赖 gMIS内置的 GTAjax在前端进行。 GTAjax 在前端页面通过 JavaScript在递交前,检查当前数据录入表单的各项是否符合预期。

这在一般情况下是够用的,但有时一些异常是在后台数据库写入时才能发现的,比如常见的写入时异常就包括,唯一键冲突;再者,在做二次定制开发时,开发人员可能没有主动意识或者要求针对某些字段需要增加基于 GTAjax的数据校验。针对这样的异常,此前 gMIS 会报错成写入失败,并请用户重试。但可供管理用户深入核对的信息不够详细。

Hanjst 更新优化报错信息定位到行数 (-R/52SQ ) 的升级优化启发,我们觉得可以在 gMIS 里也能够实现在数据保存异常时,给出详细而具体的信息定位。

于是我们改写了 act/doaddmodi 的返回输出内容,当数据报错异常发生时,通过解析数据库的返回错误代码或者程序错误代码,进一步地解读成普通数据操作人员能够理解并定位到的语句内容,通过 JSON方式返回给前端,进一步地展示给数据操作人员。

如此详细而具体的异常描述信息将有助于数据操作人员快速找到问题并解决,正是生动地实践了 gMIS吉密斯的 “降低成本、提高效率” 的初衷。

  • 7)增加 “导入Excel” 数据表功能,与此前已有的 “导出Excel” 形成闭环.

gMIS 一直希望能“降低成本、提升效率”,并将这个作为设计与研发的原则。批量操作也是这一体现,“导出Xls“ 和 “复制” 操作就是具体的实现。

在 gMIS 所管理的数据表中,可以轻易地使用“导出Xls” 将当前记录结果集下载到本地使用。 “复制” 则是在录入数据过程中,对于两条差异不大的数据,可以快速地复制一份,再稍作修改即可作为新数据进行录入。

这次改进,增加了“导入Xls”功能,与“导出Xls”,相对,形成闭环操作:即可导出,亦可导入。然而,对比“导出Xls”, “导入Xls“的操作要复杂的多,主要原因是:1)不相信用户的任何输入,2)用户输入的数据需要各种复杂的解读与格式化,没有“以一贯之”的良药。

即便如此,我们也要进行一些尝试。这些改进包括:在 导入Xls 的分步骤操作中,先给出预览,预期当前数据表可接受的数据表格式,给出表头。

如果用户按照所给出的表头进行数据准备并递交后,分步骤导入Xls中进一步地检查,并给出已解析、待录入的数据预览。

当用户确认其准备的数据经有程序校验符合预期时,再点击下一步,执行分步骤导入Xls的真正写入操作。如果在这一步中发现不符合预期,用户可以选择修改本地数据,并重新上传,循环此数据校验步骤,直到获得满意预期,再进行实际导入操作。

gMIS Import Excel Flowchart /导入 Excel 数据 流程图

为何是 Microsoft Office Excel?

  • 8)其他一些更新

gMIS 2019 发行版本是 gMIS有史以来更新幅度较大的一次,根据 -github 的版本差异统计分析,这次更新设计到数百个文件的更新。

commit 92736964b3ea3279639988cca7f172d670663d15

Showing 432 changed files with 111,925 additions and 21,134 deletions.

 


林林总总,gMIS 吉密斯在不断满足不同需求的同时,持续地丰富和改进其功能,日益成熟而稳定,健壮而强大。

这既得益于信息化发展创造的巨大需求,也得益于开源社区群体共同努力。

唯有感谢,并不忘初心,砥砺前行!


-gMIS (general Management Information System,吉密斯) 是一种基于 -GWA2 (General Web Application Architecture,吉娃兔) 的通用管理信息系统应用软件,具有可配置的输入和输出接口、开箱即用等特征。
可以在其上构建各种信息管理应用软件系统,例如:
内容管理系统(CMS), 客户资源管理(CRM), 企业资源计划管理(ERP),
办公自动化系统(OA)等, 以及各种行业应用管理系统软件,例如:
人力资源管理系统(HR),学生管理,档案管理,旅游管理,图书管理,
商品管理及业务运营支撑系统(BOSS)等等。
实现零代码开发、快速搭建各种管理信息系统(MIS, Management Information System).

-gMIS is a -GWA2 based Management Information System (MIS) software with characteristics like configurable input and output interfaces, open-box-to-use.
Various management application software systems can be built on it, such as
Content Management System (CMS), Customer Resource Management (CRM), Enterprise Resource Planning Management (ERP),
Office automation systems (OA), as well as different industry application management system softwares, such as
Human Resource Management System (HR), Student Management, Archive Management, Tourism Management, Book Management,
Commodity management and business operations support systems (BOSS), etc.
With zero code development, -gMIS can build a set of management information systems (MIS) software in a few minutes.

Lower Costs, 
Better Productivity.
降低成本,
提高效率.

This entry was posted in -gMIS, 服务器运维, 编程技术, 计算机技术 and tagged , , , , , . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用*标注