距离上次gMIS/吉密斯的更新差不都有半年过去了,这期间gMIS部署和使用的场景进一步扩大。最近又有新的部署并使用,在更新维护的同时,也有增长新功能,好比此次比较重要的一点是进一步地深化和增强了扩展行为操做的使用。状况较复杂,兹详述以下,以备忘。前端
gMIS/吉密斯 是“通用管理信息系统“软件,当咱们有底气说“通用”的时候,意味着这个系统能够管理任何基于关系数据库所管理的数据,为这些数据提供面向非技术人员的人性化的操做和使用数据的途径。关系数据库,技术人员能耳熟能详地列出 Oracle、MySQL、SQLServer、SyBase等,其也是当今信息化的基础设施之一。通用的面向技术人员的,各类数据库的客户端,不管是基于命令行的仍是基于GUI的(包括App和Web, 如 Navicat、PHPMyAdmin等),都有很多选择。而可以基于原始数据,直接产生可以面向非技术人员的,相似产品并很少,咱们说“通用”,是咱们建立了一套方法,能够针对任意指定的“字段”,不管其什么数据类型,咱们都可以在gMIS/吉密斯中配置出契合其特色的输出/输入接口/界面,也即咱们的 extra目录,插件式的工做,经过指定配置信息,不管这个字段是读写数据、字符串、选择项、文件、层级目录、编辑器等,均能应付自如。当一种新的数据类型、接口、界面被须要时,咱们能够再经过extra方式制做并嵌入进去,这就是当咱们说“通用”的底气。git
一直以来,gMIS/吉密斯秉持这种“通用性”工做良好。github
然而,咱们深知,多样性、丰富性和复杂性才是世界的本原,咱们以“通用”立命题就有某种抗天然规律的冲动,这种带有某种邪乎劲的要“包治百病”式的作法,会让人担心,也使人不解。毕竟,这世界上没有包治百病的良药。ajax
Fig.1 数据库数据表示层级数据库
深度地解析,上述“通用性”是创建在对“字段”这一级别的操做上,也即,能够应对全部数据类型的字段进行操做,按照一般的数据组织结构划分 “数据库 — 数据表 — 记录 — 字段”(Fig.1),咱们实现了在“字段”级的“通用性”操做。缓存
若是多样性和丰富性的须要是针对“记录(Row)”这一级别呢?app
目前针对“记录”的操做,咱们有规定的动做“add、modify、view、print、delete、search(insite, pickup)、pivot、export、copy”等,若是要增长一种或多种针对“记录”的操做,该如何操做?这种需求合理吗?常见吗? 须要被知足吗? 能被知足吗? 若是能,该如何实如今“记录”层级的“通用性”?frontend
最先咱们设想,几乎全部共用的操做,针对一条数据(Row)的操做也就这么多,除了增删改查这四项基本的,咱们已经很丰富地加强提供了其余多项。然而,诚如前所言,多样、丰富和复杂的客观世界,可能会有更多种针对一条数据的操做需求。这种需求是合理的,也是客观的描绘世界的必需项。这样的设计应该被知足。编辑器
初次遇到这样的需求,并令咱们面对和思考这样的问题是在进行 工做流 的设计和制做上。工做流的本质也是对Row为单位的数据进行操做,但其动做已经超过了对Row自己的操做,而是Row之间发生了关系,也即一条Row可能从用户A流转到用户B,而后用户B将该Row流转到用户C等等,依此类推,并且还可能针对Row产生不一样的修改。优化
为了知足这种需求,咱们设计并实现了初版的 ActOption 标记,这一个版本的 ActOption 在数据表的 table节点配置,并输出绑定到 act/view 界面上. 详细记录参考:
[2016] -gMIS 更新多库链接及工做流workflow
[2018] –gMIS吉密斯更新Workflow工做流、FileMgr文件柜及GTAjax等模块
这些实践,为咱们最终打开 gMIS 好好与这个世界的大门,既然 ActOption 能够一种配置文件的形式嵌入到 act/view 中,那距离出如今 list 主页面的 弹出式菜单中也只有一步之遥。若是实现了某种针对 Row级别的操做,既能出如今 act/view 的窗口,也可以出如今 list主页面的弹出式菜单中,与 常规的 addmodifyviewprint等相并列,则gMIS/吉密斯就具备了好好与这个世界对话的强大话语表达能力。
因而沿着这个思路,近期咱们突破了自我局限,将 ActOption 的配置经过 ido, jdo, comm/ido.js 等修改实现了自动添加到 list 主页面的 弹出式菜单,与常规操做 view/modify/print 等并列。其实现方式亦颇为曲折,大体流程能够描述为:
基于 table 的xml配置信息,配置某个 <table> 的 <actoption>,
–> gMIS 解析引擎读取 <actoption>配置,
–> act=list 时, ido 负责将 actoption 输出到 JavaScript
–> 当 comm/ido.js: showActList 被激活时,读取 JavaScript 中的 actoption ,拼入 showActList,呈现给用户.
–> act=view 时, act/view 负责将 actoption 读取并输出.
这既像是 gMIS/吉密斯 自身打开任督二脉,实现圆通;也像是其突破了狭隘的“通用”桎梏,如虎添翼,实现了升级,将“通用”二字的外延进一步扩大。
在此以前,咱们说“通用”是能够知足一般状况下的字段级的任意方式方法的输出与输入,已经有的,随配随用,须要创新的没有的输入输出方式,咱们能够创制后无缝嵌入。
今天起,咱们说“通用”不但能够知足字段级的任意方式方法的输入与输出,并且也能够知足任意方式方法的记录级的操做,已经有的,随配随用,须要创新的没有的操做方式方法,咱们能够创制后无缝嵌入。
所谓“通用”,不是寻求某种包治百病的神药,而是普一般见的已经就绪,随去随用;而没有的,也可以见机行事,按需定制,加强适配。如此以来,“通用”则更有底气,不管是理论基础,仍是实践经验,咱们都信心十足,满怀干劲;既讲求事物的广泛性,也照顾到事物的特殊性;既有由个例到共性的总结概括,也有由抽象到具象的推导演绎(Fig.2)。也许,“通用”的意思在这里,就像有“科学的科学”——哲学同样。
Fig.2 特殊到广泛,具象到抽象
自2011年创制以来,这将是 gMIS/吉密斯 发展史上的一个标志性的更新,Latest commit e8aaaf0 . 近十年来,gMIS/吉密斯 不断茁壮成长,目前已经具备以下一些鲜明的特点功能点。
创新性的数据表字段级可配置输出输入接口;
先进的无Session用户鉴权体系;
创新性强大的站内搜索功能;
媲美前端的点选搜索功能;
模拟Office Excel的数据透视表功能;
商用级别工做流支持;
层级目录式的文件管理系统;
自动跟踪记帐系统;
多层级缓存局部更新等优化高速秒开页面;
….
创新的数据表记录级的可配置输入输出接口;
….
-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.
下降成本,
提升效率.
-R/12Sd