新聞中心

EEPW首頁 > 模擬技術 > 設計應用 > 基于Android的自定制CRM軟件設計

基于Android的自定制CRM軟件設計

作者: 時間:2016-10-16 來源:網(wǎng)絡 收藏

摘要:為了縮短CRM軟件的開發(fā)進程,提高軟件的后臺升級和維護能力,提出了一種基于Android系統(tǒng)的自定義界面的設計方法。采用 JavaScript腳本語言控制流程步驟、表單元數(shù)據(jù)間的數(shù)據(jù)邏輯,建立自定義表單界面解析引擎,實現(xiàn)了CRM軟件的自定義功能模版由中心后臺配置管理。分析結果表明,該設計方法能夠有效地縮短軟件的研發(fā)周期,幫助開發(fā)者快速地按需定制較為成熟的CRM軟件原型。

本文引用地址:http://www.butianyuan.cn/article/201610/307832.htm

關鍵詞:;;;

近年來,我國信息技術的迅猛發(fā)展和信息化水平的不斷提高,給傳統(tǒng)管理方式向信息化、系統(tǒng)化、集成化的轉變創(chuàng)造了良好的條件,CRM(Customer Relationship Manageme nt,)系統(tǒng)應運而生。但僅僅引進CRM系統(tǒng)并不意味著公司直接步入了制度化、自動化的業(yè)務流程。只有對業(yè)務流程進行持續(xù)改進,才能確保 CRM技術能融入到變革流程中。由于市場數(shù)據(jù)異常龐大,定性確定業(yè)務邏輯也較為復雜,往往需要重復的使用與更改才能確定系統(tǒng)的根本大綱。這直接導致了軟件開發(fā)周期的極大延長。為了避免多次開發(fā)所造成的研發(fā)時間延長和市場響應速度降低,本文建立了業(yè)務流程處理元模型,提出了一種基于Android系統(tǒng)的 CRM軟件自定義界面的設計方法,解決了傳統(tǒng)CRM系統(tǒng)開發(fā)過程周期長、成本高、復用率低等問題。幫助企業(yè)管理人員通過該系統(tǒng)快速了解、掌握和傳遞市場信息,確保市場信息的時效性、實用性和價值性。

Android是美國谷歌開發(fā)的適用于便攜產(chǎn)品使用的軟件平臺。本文在研究過程中考慮到CRM系統(tǒng)的實時性、高效性、高可拓展性等特點,充分利用 Android操作系統(tǒng)擴展性、可移植性、易維護和開源等,將兩者結合起來可使系統(tǒng)具有兼容性強、穩(wěn)定性高、跨平臺、低成本、易于維護和升級等優(yōu)點。

1 系統(tǒng)總體結構

該系統(tǒng)主要由瀏覽器客戶端、服務器端和手持終端(Android操作系統(tǒng))三部分組成。瀏覽器客戶端主要對業(yè)務流程及管理邏輯進行定義,將定義模板存入服務器端數(shù)據(jù)庫,而手持端向數(shù)據(jù)庫請求模板并進行解析和顯示。系統(tǒng)的總體框架圖如圖1所示。

a.jpg

企業(yè)管理者通過統(tǒng)籌本企業(yè)的業(yè)務方向并結合具體市場運營狀況,定制業(yè)務員的業(yè)務訪問流程和規(guī)范,如:信息管理、門店拜訪流程。開發(fā)人員了解到具體的操作規(guī)范,整理為操作模板,通過瀏覽器客戶端進行模板配置,模板數(shù)據(jù)以Jason對象組幀存入到服務器數(shù)據(jù)庫中。

業(yè)務員通過手持終端的CRM軟件向服務器數(shù)據(jù)庫請求具體的操作模板,并由模板解析器將具體模板按照需求解析并顯示,業(yè)務員即可通過手持端軟件進行客戶信息管理、門

店拜訪等相關操作。

2 系統(tǒng)軟件設計

2.1 前端設計

系統(tǒng)網(wǎng)站前端采用了當前互聯(lián)網(wǎng)上比較流行的富客戶端MVC設計模式,即前端頁面的功能比較強大,采用目前在企業(yè)ERP Web程序中比較流行的EXT JS框架進行開發(fā),該框架具有豐富的界面組件與接口,通過它能開發(fā)出接近于桌面應用程序用戶界面的網(wǎng)頁頁面,可以給用戶以良好的用戶體驗。同時前端頁面全部通過AJAX的模式向后臺服務器發(fā)送請求,可以不影響用戶操作的方式異步請求響應,從而有效地減低了響應時間與服務的負擔。

具體的設計上,系統(tǒng)平臺前端又采用了插件式的模塊加載方式,各個具體功能模塊對應的JS文件通過動態(tài)創(chuàng)建Script元素的方式加載,采用的是LAZY LOAD的方式,即主頁面加載時并不下載各具體模塊的JS文件,只有在點擊具體功能時才動態(tài)加載,這樣可以有效地提高系統(tǒng)啟動速度,給用戶以良好的體驗。

2.2 后端設計

系統(tǒng)網(wǎng)站后端的控制層設計的非常簡單,它的主要功能就是接受前端發(fā)送來的AJAX請求,并從中提取出請求的參數(shù)內容,并將這些參數(shù)傳入對應的存儲過程進行處理,然后將存儲過程返回的結果組成Jason格式的數(shù)據(jù)返回給前端。

后端的功能非常簡單,幾乎不涉及任何具體的業(yè)務邏輯,也不負責改變前端顯示,它唯一的作用是聯(lián)系顯示層與數(shù)據(jù)庫持久層。這種設計的目的就是減低網(wǎng)站重新部署的工作量(后端代碼改變后需要重新編譯部署,重啟網(wǎng)站服務器,而前端的JS文件和數(shù)據(jù)庫的存儲過程修改后可以立即使用)。

2.3 數(shù)據(jù)庫

本系統(tǒng)對業(yè)務邏輯的處理基本上集中于數(shù)據(jù)庫的存儲過程,這樣做的優(yōu)點是:首先大量減少了網(wǎng)站服務器與數(shù)據(jù)庫服務器之間的數(shù)據(jù)通訊量;其次,由于存儲過程都經(jīng)過了預編譯,緩存了執(zhí)行計劃,所以執(zhí)行起來速度比直接執(zhí)行SQL語句快得多;最后,可以向網(wǎng)站應用服務器屏蔽底層的數(shù)據(jù)結構,底層表變化時可以減少前端與后端代碼的修改。減少部署的工作量,加快對客戶的響應速度;存儲過程修改后應用程序服務器不需要重啟。通過了解具體的操作規(guī)范,進行拜訪模板定義,主要的拜訪模版表定義如下:

b.jpg

2.4 終端軟件設計

該軟件客戶端采用Android平臺。在總體設計上采用軟件分層的方法,分為框架層和應用層。軟件架構如圖2。

c.jpg

1)應用層

該軟件的UI設計嚴格按照交互設計原型進行開發(fā),并對關鍵公共部分視圖做抽象處理。完整繼承Activity的生命周期Activity與Activity之間杜絕采用藕合的接口調用數(shù)據(jù)

方式,所有數(shù)據(jù)交互必須采用Intent進行傳遞,保證各Activity數(shù)據(jù)的獨立性。為了使類變量不被外部引用,所有Aetivity中的基本類型 (int,long,short,byte,boolean,char等)的類變量、實例變量都定義為私有變量,盡量少用或不用類變量,非基本類型的變量視情況而定。另外這些基本類型變量都必須用onSaveInstanceState和onRestore Ins tance State進行備份和恢復。當界面被內存回收后能夠重繪界面控件并加載控件值,提升用戶體驗。其他所有界面都繼承該公共類,使得軟件界面風格一致,便于統(tǒng)一管理與修改。

軟件的邏輯層封裝主要體現(xiàn)在Task與Setvice的設計。在業(yè)務員使用軟件進行相關業(yè)務操作時,將會不時地請求、查詢服務器后臺數(shù)據(jù),所以業(yè)務請求和中心下發(fā)數(shù)據(jù)的解析處理,是業(yè)務邏輯的重要一環(huán)。對Task進行重新設計和封裝,采用公共的句柄Handle用以處理Task所需要發(fā)送對象,返回類,回調方法,重傳次數(shù),超時時間等關鍵變量。另外,Android中提供了Service組件可進行后臺運行和跨進程訪問。通過啟動一個服務,可以在不顯示界面的前提下在后臺運行指定的任務,這樣不會對當前客戶操作行為產(chǎn)生影響。抽象出基礎服務類并定義基本的創(chuàng)建、啟動、銷毀等事件方法,由各個指定業(yè)務的服務繼承該基礎類用以管理特定業(yè)務對象的數(shù)據(jù)后臺管理。

數(shù)據(jù)存儲作為軟件執(zhí)行流程的必備功能模塊,系統(tǒng)主要采用了Preterene和Android自帶的SQLite輕量級數(shù)據(jù)庫兩張方式用于數(shù)據(jù)存儲管理。其中,Preference用以存儲系統(tǒng)公共參數(shù);SQLite數(shù)據(jù)庫用以存儲用戶的基礎數(shù)據(jù)和拜訪數(shù)據(jù)等。數(shù)據(jù)層中不包含任何的業(yè)務邏輯結構和界面顯示特性的需求,僅僅提供各數(shù)據(jù)庫表中存儲的基本數(shù)據(jù)信息。即,該層不能調用邏輯層與UI層代碼,充分隔離數(shù)據(jù)管理與界面和邏輯層。支持上層調用下層,而下層不允許訪問上層。有效降低各功能模塊耦合度,細化軟件模塊的劃分,提高可拓展性。

2)框架層

框架層的設計主要是對于與服務器后臺數(shù)據(jù)交互的完善。包含有通訊設計、協(xié)議解析設計。通訊設計主要采用了Android中提供的 HttpURLConnection和HttpClient接口。系統(tǒng)在繼承HttpUrIConnection的基礎上,繼續(xù)完善通用的接口功能模塊,支持根據(jù)業(yè)務模式自動切換網(wǎng)關等,支持重傳機制和超時控制,完善網(wǎng)絡錯誤提示和出錯處理;協(xié)議解析主要采用JSON格式和二進制流兩種格式。每條協(xié)議單獨一個文件,同所在業(yè)務模塊放在同一個包下。協(xié)議文件以協(xié)議號進行命名,分上行和下行兩種。協(xié)議的組幀和解析必須用對象進行處理。所有協(xié)議的設計必須符合協(xié)議要求,盡量設計成一個對象。支持采用FastJason技術進行自動解析,達到減少工作量的目的。并且可以快速響應協(xié)議的修改,而修改工作量不大。

2.5 JavaScript解析引擎

以上的設計方案為實現(xiàn)自定軟件配置數(shù)據(jù)、業(yè)務數(shù)據(jù)的傳送解析提供了框架基礎,能夠滿足數(shù)據(jù)傳送的時效性,保證管理者對終端軟件的實時掌控,具有較強的系統(tǒng)變更能力。余下的關鍵問題在于終端軟件如何對接收到的模板數(shù)據(jù)進行視圖展示并建立控件聯(lián)系,因為表單中控件數(shù)量繁多,其復雜屬性根本無法通過語言描述和類型劃分來實現(xiàn),為解決這一難點,我們將其復雜的業(yè)務邏輯控制使用JavaSeript語言實現(xiàn)。在JayaScript解析引擎的基本框架上構建實現(xiàn)銷售子系統(tǒng)業(yè)務流和自定義表單的界面解析引擎和邏輯處理引擎。

1)視圖解析引擎

中心下發(fā)數(shù)據(jù)通過。JSON解析后,存儲數(shù)據(jù)在本地數(shù)據(jù)庫中,建立與中心相對應的模板表:Table_Scheme、Table_Step、 Table_Ctrl。界面解析引擎采用流式布局的方法,依次對各級組件進行解析展示。在獲取組件屬性信息后,根據(jù)其相關類別,建立模板、步驟、控件視圖,各組件的繼承關系通過主鍵值進行關聯(lián)。為了簡化其創(chuàng)建流程機制,該視圖解析引擎先剝離了所有的邏輯屬性需要,僅僅實現(xiàn)組件的頁面效果展示,而將復雜的邏輯處理讓邏輯處理引擎在后臺執(zhí)行。這種設計方案能夠功能界面的實現(xiàn)快速展示,而無需考慮各種復雜邏輯的交叉影響,大大縮減了視圖展示的啟動時間,具有良好的用戶體驗效果。

2)邏輯處理引擎

邏輯處理引擎主要解決各組件的內在聯(lián)系。因為在組件的邏輯控制需要在Android環(huán)境下對JavaScript語言的動態(tài)編譯,在開發(fā)和運行基于GUI 的應用程序時尤其有效。在此基礎上,邏輯處理引擎構建Android平臺下幾乎所有簡單控件的監(jiān)聽事件ListenerType,根據(jù)組件的配置需要來判斷是否執(zhí)行相關腳本,其腳本內容CtrlListener以文本形式存放在屬性字段中,通過Rhino實現(xiàn)Android平臺對JavaScript代碼的執(zhí)行,同樣,在JavaScript執(zhí)行代碼中往往也存在對Android平臺信息的調用執(zhí)行,平臺層提供了CallContext提供了視圖控件值獲取、寫入,數(shù)據(jù)庫訪問等各項操作接口給JavaScript,同時也支持其定義的Event事件進行操作。

2.6 應用分析

根據(jù)元模型定義,可以定制一個“實時匯報”的功能模塊。通過瀏覽器客戶端的規(guī)范操作和輸入,可生成模板配置數(shù)據(jù)源存儲于服務器端,當手持端通過HTTP發(fā)起模板下發(fā)請求時,服務器端即可下發(fā)Jason組幀的源數(shù)據(jù),用以配置手持段軟件的具體執(zhí)行規(guī)范模板。元模型和數(shù)據(jù)源示例如下:

d.jpg
e.jpg

f.jpg

g.jpg

h.jpg

通過配置數(shù)據(jù)源可以看出“實時匯報”功能含有一個“工作日志”步驟,步驟中的界面展示兩個控件,其中:“匯報時間”為文本框,定義了單擊事件用以獲取系統(tǒng)的當前時間方法:“匯報內容”控件為編輯框并且其最大輸入長度為200個字節(jié)。另外,還可以給選擇時間文本框加上時間選擇限制,如不能大于當前時間。只需為其屬性的數(shù)據(jù)源CTRL _FUN_NAME、CTRL_FUN_BODY分別添加如下定義:

i.jpg

上述是一個非常簡單的功能模塊,各企業(yè)根據(jù)具體業(yè)務場景的需要,可以添加諸如:“考勤管理”、“門店管理”、“門店拜訪”等各種功能。在添加功能或更改業(yè)務流程的過程中,只需從瀏覽器客戶端進行模板定義的修改,服務器可根據(jù)重新配置的元模型更新數(shù)據(jù)源,通過無線網(wǎng)絡下發(fā)至手持端軟件即可實現(xiàn)業(yè)務流程的更新和改善,且各基礎功能的模板定義具有較強的通用性,可以相互借鑒引用。在業(yè)務邏輯復雜的情況下,企業(yè)管理者可以根據(jù)業(yè)務員使用過程中反饋的具體情況,不斷調整各模板流程的控制規(guī)則和流動關系,通過服務器后臺進行靈活的維護管理,以達到最佳的使用效果,且在此過程中完全不涉及軟件的二次開發(fā),也無須支付高昂的二次開發(fā)或升級維護費用,其市場響應速度也大大提高。

3 結束語

本文設計的自定制CRM軟件結合了Android操作系統(tǒng)的優(yōu)秀特性,可以在Android手機、平板等終端設備上良好地使用。通過瀏覽器客戶端的簡單地配置即可生成一個相對成熟的CRM軟件原型,該軟件可以滿足絕大部分的業(yè)務需求的操作流程模板,當有特定控件展示,只需添加具體業(yè)務邏輯控件及即可迅速客戶需求的改動,大大減少了系統(tǒng)營運的維護成本與二次開發(fā)成本。能夠在短時間內快速響應市場變化并做出改進,為企業(yè)實現(xiàn)高效、精準的。



評論


技術專區(qū)

關閉