不了解成品軟件的數(shù)據(jù)結(jié)構(gòu),如何用低代碼做二開(kāi)?(代碼二開(kāi)是什么意思)

目前,大多數(shù)企業(yè)已經(jīng)通過(guò)實(shí)施ERP在內(nèi)的成品軟件,實(shí)現(xiàn)了將財(cái)務(wù)、銷(xiāo)售等業(yè)務(wù)的數(shù)字化,并因此獲得了工作效率的顯著提升。為了將信息化的成功經(jīng)驗(yàn)復(fù)制到其他業(yè)務(wù)環(huán)境,在保證現(xiàn)有IT投資的前提下,推進(jìn)生產(chǎn)、庫(kù)存等業(yè)務(wù)環(huán)節(jié)的數(shù)字化進(jìn)程,越來(lái)越多的企業(yè)選擇基于現(xiàn)有軟件做擴(kuò)展開(kāi)發(fā)、二次開(kāi)發(fā)。而低代碼技術(shù)的出現(xiàn),為開(kāi)發(fā)者帶來(lái)了集成能力更強(qiáng)、開(kāi)發(fā)效率更高的技術(shù)方案,進(jìn)一步降低了成品軟件二開(kāi)的技術(shù)門(mén)檻。

大量的項(xiàng)目實(shí)踐表明,低代碼能幫助我們提升業(yè)務(wù)功能開(kāi)發(fā)的效率,也可以為我們提供通過(guò)數(shù)據(jù)庫(kù)或API集成現(xiàn)有軟件的能力。但是,一些早期的行業(yè)軟件并沒(méi)有提供編程接口,甚至連數(shù)據(jù)庫(kù)說(shuō)明文檔都不完整。我們?cè)撊绾慰焖倥宄粋€(gè)業(yè)務(wù)操作對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作呢?

不了解成品軟件的數(shù)據(jù)結(jié)構(gòu),如何用低代碼做二開(kāi)?(代碼二開(kāi)是什么意思)

這個(gè)時(shí)候,我們需要使用數(shù)據(jù)庫(kù)監(jiān)控工具,跟蹤成品軟件上的操作對(duì)應(yīng)的數(shù)據(jù)庫(kù)執(zhí)行腳本,從其中的規(guī)律反推出該操作對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作。主流的數(shù)據(jù)庫(kù)廠商均有對(duì)應(yīng)的監(jiān)控工具,如MySQL的Neor Profile SQL,MS SQL Server的SQL Server Profiler。下面以SQL Server Profile為例給大家介紹監(jiān)控工具的具體用法。

不了解成品軟件的數(shù)據(jù)結(jié)構(gòu),如何用低代碼做二開(kāi)?(代碼二開(kāi)是什么意思)

(MS SQL Server安裝程序)

首先,我們需要運(yùn)行和服務(wù)器上版本相同的MS SQL Server的安裝程序,在安裝SQL Server管理工具下,選擇安裝SQL Server Profiler;或者運(yùn)行單獨(dú)的SQL Server Management Studio安裝包。

以SQL Server Profile 17為例,我們打開(kāi)這個(gè)工具,選擇【文件】→【新建】,創(chuàng)建一個(gè)新的跟蹤。在輸入目標(biāo)數(shù)據(jù)庫(kù)的連接信息后,我們還需要選擇模板“TSQL”,然后在“跟蹤屬性”下的“事件選擇”選項(xiàng)卡中,勾選SQL:BatchStaring(直接執(zhí)行的SQL語(yǔ)句)和RPC:Starting(通過(guò)OLEDB等接口執(zhí)行的存儲(chǔ)過(guò)程)。

不了解成品軟件的數(shù)據(jù)結(jié)構(gòu),如何用低代碼做二開(kāi)?(代碼二開(kāi)是什么意思)

(SQL Server Profiler 17的事件選擇界面)

點(diǎn)擊運(yùn)行后,工具將會(huì)記錄該數(shù)據(jù)庫(kù)上執(zhí)行的所有SQL語(yǔ)句和存儲(chǔ)過(guò)程。

不了解成品軟件的數(shù)據(jù)結(jié)構(gòu),如何用低代碼做二開(kāi)?(代碼二開(kāi)是什么意思)

(SQL Server Profiler 17中監(jiān)控到的SQL語(yǔ)句)

在數(shù)據(jù)庫(kù)監(jiān)控工具開(kāi)始運(yùn)行后,我們就可以在成品軟件上執(zhí)行操作了。操作結(jié)束后,回到監(jiān)控工具,點(diǎn)擊停止。此時(shí),在工具的界面上展示的,就是成品軟件上的操作所對(duì)應(yīng)的SQL語(yǔ)句。在具體工作中,我們有以下的經(jīng)驗(yàn)供參考:

  • 將成品軟件的操作進(jìn)行細(xì)分,分別對(duì)這些細(xì)分后的操作進(jìn)行監(jiān)控可以降低分析SQL語(yǔ)句的工作量
  • 在專門(mén)的測(cè)試環(huán)境而不是生產(chǎn)環(huán)境中做監(jiān)控,避免影響生產(chǎn)環(huán)境的性能
  • 確保測(cè)試環(huán)境中只有自己一個(gè)人做操作,避免混雜入不相關(guān)的SQL語(yǔ)句
  • 在成品軟件中進(jìn)行操作時(shí),有意使用可快速識(shí)別的數(shù)據(jù),并做好記錄,方便與SQL語(yǔ)句中的文本進(jìn)行比對(duì)
  • 與熟悉業(yè)務(wù)的同事配合,通過(guò)輸入不同的參數(shù)多次進(jìn)行操作,覆蓋更多應(yīng)用場(chǎng)景,通過(guò)在這些SQL語(yǔ)句中尋找共性,最終總結(jié)出界面操作背后的SQL語(yǔ)句。根據(jù)輸入的參數(shù)不同,一個(gè)操作可能會(huì)對(duì)應(yīng)不同的SQL語(yǔ)句
  • 成品軟件進(jìn)行大版本升級(jí)后,需要重復(fù)上述操作,檢查并更新相關(guān)的SQL語(yǔ)句

在數(shù)據(jù)庫(kù)監(jiān)控工具的幫助下,我們找到了成品軟件界面操作所對(duì)應(yīng)的SQL語(yǔ)句,如果語(yǔ)句較為簡(jiǎn)單,可以清晰地拆分成若干個(gè)表的增刪改查操作,我們就能在低代碼開(kāi)發(fā)平臺(tái)上復(fù)現(xiàn)這些數(shù)據(jù)表操作,來(lái)達(dá)到抓取數(shù)據(jù)、生成單據(jù)等目標(biāo)。在活字格中,這個(gè)操作需要用到的是設(shè)置參數(shù)服務(wù)端命令(在服務(wù)器端讀取數(shù)據(jù)表的數(shù)據(jù))和數(shù)據(jù)表操作服務(wù)端命令(在服務(wù)器端插入、更新和刪除數(shù)據(jù)表的數(shù)據(jù))。

不了解成品軟件的數(shù)據(jù)結(jié)構(gòu),如何用低代碼做二開(kāi)?(代碼二開(kāi)是什么意思)

(活字格的數(shù)據(jù)表操作服務(wù)端命令)

如果SQL語(yǔ)句較復(fù)雜,也可以利用活字格的執(zhí)行SQL語(yǔ)句服務(wù)端命令,直接在數(shù)據(jù)庫(kù)上執(zhí)行帶有參數(shù)的SQL語(yǔ)句。在這個(gè)過(guò)程中,我們需要將監(jiān)控得出的SQL語(yǔ)句中,我們?cè)陧?yè)面上輸入的值,替換為對(duì)應(yīng)的參數(shù)。活字格在執(zhí)行SQL語(yǔ)句服務(wù)端命令中采用了參數(shù)化查詢?cè)O(shè)計(jì),請(qǐng)確保用戶錄入的內(nèi)容僅出現(xiàn)在參數(shù)中,而沒(méi)有出現(xiàn)在SQL語(yǔ)句里,這樣就能避免數(shù)據(jù)庫(kù)注入攻擊的風(fēng)險(xiǎn)。

不了解成品軟件的數(shù)據(jù)結(jié)構(gòu),如何用低代碼做二開(kāi)?(代碼二開(kāi)是什么意思)

如果你正準(zhǔn)備在使用以低代碼開(kāi)發(fā)平臺(tái)做成品軟件的二次開(kāi)發(fā),希望本文中提到的活字格為代表的工具和方法可以幫您快速了解成品軟件背后的數(shù)據(jù)庫(kù)操作,加速系統(tǒng)集成相關(guān)功能落地。

不了解成品軟件的數(shù)據(jù)結(jié)構(gòu),如何用低代碼做二開(kāi)?(代碼二開(kāi)是什么意思)

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁(yè)
返回頂部