♾好好與這個世界對話:gMIS/吉密斯更新+擴展操做行爲

距離上次gMIS/吉密斯的更新差不都有半年過去了,這期間gMIS部署和使用的場景進一步擴大。最近又有新的部署並使用,在更新維護的同時,也有增長新功能,好比此次比較重要的一點是進一步地深化和增強了擴展行爲操做的使用。狀況較複雜,茲詳述以下,以備忘。前端

gMIS/吉密斯 是「通用管理信息系統「軟件,當咱們有底氣說「通用」的時候,意味着這個系統能夠管理任何基於關係數據庫所管理的數據,爲這些數據提供面向非技術人員的人性化的操做和使用數據的途徑。關係數據庫,技術人員能耳熟能詳地列出 Oracle、MySQL、SQLServer、SyBase等,其也是當今信息化的基礎設施之一。通用的面向技術人員的,各類數據庫的客戶端,不管是基於命令行的仍是基於GUI的(包括App和Web, 如 Navicat、PHPMyAdmin等),都有很多選擇。而可以基於原始數據,直接產生可以面向非技術人員的,相似產品並很少,咱們說「通用」,是咱們建立了一套方法,能夠針對任意指定的「字段」,不管其什麼數據類型,咱們都可以在gMIS/吉密斯中配置出契合其特色的輸出/輸入接口/界面,也即咱們的 extra目錄,插件式的工做,經過指定配置信息,不管這個字段是讀寫數據、字符串、選擇項、文件、層級目錄、編輯器等,均能應付自如。當一種新的數據類型、接口、界面被須要時,咱們能夠再經過extra方式製做並嵌入進去,這就是當咱們說「通用」的底氣。git

一直以來,gMIS/吉密斯秉持這種「通用性」工做良好。github

然而,咱們深知,多樣性、豐富性和複雜性纔是世界的本原,咱們以「通用」立命題就有某種抗天然規律的衝動,這種帶有某種邪乎勁的要「包治百病」式的作法,會讓人擔心,也使人不解。畢竟,這世界上沒有包治百病的良藥。ajax

clipboard.png

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)。也許,「通用」的意思在這裏,就像有「科學的科學」——哲學同樣。

clipboard.png

Fig.2 特殊到廣泛,具象到抽象

自2011年創制以來,這將是 gMIS/吉密斯 發展史上的一個標誌性的更新,Latest commit e8aaaf0 . 近十年來,gMIS/吉密斯 不斷茁壯成長,目前已經具備以下一些鮮明的特點功能點。

創新性的數據表字段級可配置輸出輸入接口;
先進的無Session用戶鑑權體系;
創新性強大的站內搜索功能;
媲美前端的點選搜索功能;
模擬Office Excel的數據透視表功能;
商用級別工做流支持;
層級目錄式的文件管理系統;
自動跟蹤記帳系統;
多層級緩存局部更新等優化高速秒開頁面;
….
創新的數據表記錄級的可配置輸入輸出接口;
….

clipboard.png

-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

相關文章
相關標籤/搜索