基于Android的自定制CRM軟件設計
摘要:為了縮短CRM軟件的開發進程,提高軟件的后臺升級和維護能力,提出了一種基于Android系統的自定義界面的設計方法。采用 JavaScript腳本語言控制流程步驟、表單元數據間的數據邏輯,建立自定義表單界面解析引擎,實現了CRM軟件的自定義功能模版由中心后臺配置管理。分析結果表明,該設計方法能夠有效地縮短軟件的研發周期,幫助開發者快速地按需定制較為成熟的CRM軟件原型。
本文引用地址:http://www.j9360.com/article/201610/307832.htm關鍵詞:客戶關系管理;Andmid平臺;JavaSeript解析;自定制表單
近年來,我國信息技術的迅猛發展和信息化水平的不斷提高,給傳統管理方式向信息化、系統化、集成化的轉變創造了良好的條件,CRM(Customer Relationship Manageme nt,客戶關系管理)系統應運而生。但僅僅引進CRM系統并不意味著公司直接步入了制度化、自動化的業務流程。只有對業務流程進行持續改進,才能確保 CRM技術能融入到變革流程中。由于市場數據異常龐大,定性確定業務邏輯也較為復雜,往往需要重復的使用與更改才能確定系統的根本大綱。這直接導致了軟件開發周期的極大延長。為了避免多次開發所造成的研發時間延長和市場響應速度降低,本文建立了業務流程處理元模型,提出了一種基于Android系統的 CRM軟件自定義界面的設計方法,解決了傳統CRM系統開發過程周期長、成本高、復用率低等問題。幫助企業管理人員通過該系統快速了解、掌握和傳遞市場信息,確保市場信息的時效性、實用性和價值性。
Android是美國谷歌開發的適用于便攜產品使用的軟件平臺。本文在研究過程中考慮到CRM系統的實時性、高效性、高可拓展性等特點,充分利用 Android操作系統擴展性、可移植性、易維護和開源等,將兩者結合起來可使系統具有兼容性強、穩定性高、跨平臺、低成本、易于維護和升級等優點。
1 系統總體結構
該系統主要由瀏覽器客戶端、服務器端和手持終端(Android操作系統)三部分組成。瀏覽器客戶端主要對業務流程及管理邏輯進行定義,將定義模板存入服務器端數據庫,而手持端向數據庫請求模板并進行解析和顯示。系統的總體框架圖如圖1所示。

企業管理者通過統籌本企業的業務方向并結合具體市場運營狀況,定制業務員的業務訪問流程和規范,如:信息管理、門店拜訪流程。開發人員了解到具體的操作規范,整理為操作模板,通過瀏覽器客戶端進行模板配置,模板數據以Jason對象組幀存入到服務器數據庫中。
業務員通過手持終端的CRM軟件向服務器數據庫請求具體的操作模板,并由模板解析器將具體模板按照需求解析并顯示,業務員即可通過手持端軟件進行客戶信息管理、門
店拜訪等相關操作。
2 系統軟件設計
2.1 前端設計
系統網站前端采用了當前互聯網上比較流行的富客戶端MVC設計模式,即前端頁面的功能比較強大,采用目前在企業ERP Web程序中比較流行的EXT JS框架進行開發,該框架具有豐富的界面組件與接口,通過它能開發出接近于桌面應用程序用戶界面的網頁頁面,可以給用戶以良好的用戶體驗。同時前端頁面全部通過AJAX的模式向后臺服務器發送請求,可以不影響用戶操作的方式異步請求響應,從而有效地減低了響應時間與服務的負擔。
具體的設計上,系統平臺前端又采用了插件式的模塊加載方式,各個具體功能模塊對應的JS文件通過動態創建Script元素的方式加載,采用的是LAZY LOAD的方式,即主頁面加載時并不下載各具體模塊的JS文件,只有在點擊具體功能時才動態加載,這樣可以有效地提高系統啟動速度,給用戶以良好的體驗。
2.2 后端設計
系統網站后端的控制層設計的非常簡單,它的主要功能就是接受前端發送來的AJAX請求,并從中提取出請求的參數內容,并將這些參數傳入對應的存儲過程進行處理,然后將存儲過程返回的結果組成Jason格式的數據返回給前端。
后端的功能非常簡單,幾乎不涉及任何具體的業務邏輯,也不負責改變前端顯示,它唯一的作用是聯系顯示層與數據庫持久層。這種設計的目的就是減低網站重新部署的工作量(后端代碼改變后需要重新編譯部署,重啟網站服務器,而前端的JS文件和數據庫的存儲過程修改后可以立即使用)。
2.3 數據庫
本系統對業務邏輯的處理基本上集中于數據庫的存儲過程,這樣做的優點是:首先大量減少了網站服務器與數據庫服務器之間的數據通訊量;其次,由于存儲過程都經過了預編譯,緩存了執行計劃,所以執行起來速度比直接執行SQL語句快得多;最后,可以向網站應用服務器屏蔽底層的數據結構,底層表變化時可以減少前端與后端代碼的修改。減少部署的工作量,加快對客戶的響應速度;存儲過程修改后應用程序服務器不需要重啟。通過了解具體的操作規范,進行拜訪模板定義,主要的拜訪模版表定義如下:

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

1)應用層
該軟件的UI設計嚴格按照交互設計原型進行開發,并對關鍵公共部分視圖做抽象處理。完整繼承Activity的生命周期Activity與Activity之間杜絕采用藕合的接口調用數據
方式,所有數據交互必須采用Intent進行傳遞,保證各Activity數據的獨立性。為了使類變量不被外部引用,所有Aetivity中的基本類型 (int,long,short,byte,boolean,char等)的類變量、實例變量都定義為私有變量,盡量少用或不用類變量,非基本類型的變量視情況而定。另外這些基本類型變量都必須用onSaveInstanceState和onRestore Ins tance State進行備份和恢復。當界面被內存回收后能夠重繪界面控件并加載控件值,提升用戶體驗。其他所有界面都繼承該公共類,使得軟件界面風格一致,便于統一管理與修改。
軟件的邏輯層封裝主要體現在Task與Setvice的設計。在業務員使用軟件進行相關業務操作時,將會不時地請求、查詢服務器后臺數據,所以業務請求和中心下發數據的解析處理,是業務邏輯的重要一環。對Task進行重新設計和封裝,采用公共的句柄Handle用以處理Task所需要發送對象,返回類,回調方法,重傳次數,超時時間等關鍵變量。另外,Android中提供了Service組件可進行后臺運行和跨進程訪問。通過啟動一個服務,可以在不顯示界面的前提下在后臺運行指定的任務,這樣不會對當前客戶操作行為產生影響。抽象出基礎服務類并定義基本的創建、啟動、銷毀等事件方法,由各個指定業務的服務繼承該基礎類用以管理特定業務對象的數據后臺管理。
數據存儲作為軟件執行流程的必備功能模塊,系統主要采用了Preterene和Android自帶的SQLite輕量級數據庫兩張方式用于數據存儲管理。其中,Preference用以存儲系統公共參數;SQLite數據庫用以存儲用戶的基礎數據和拜訪數據等。數據層中不包含任何的業務邏輯結構和界面顯示特性的需求,僅僅提供各數據庫表中存儲的基本數據信息。即,該層不能調用邏輯層與UI層代碼,充分隔離數據管理與界面和邏輯層。支持上層調用下層,而下層不允許訪問上層。有效降低各功能模塊耦合度,細化軟件模塊的劃分,提高可拓展性。
2)框架層
框架層的設計主要是對于與服務器后臺數據交互的完善。包含有通訊設計、協議解析設計。通訊設計主要采用了Android中提供的 HttpURLConnection和HttpClient接口。系統在繼承HttpUrIConnection的基礎上,繼續完善通用的接口功能模塊,支持根據業務模式自動切換網關等,支持重傳機制和超時控制,完善網絡錯誤提示和出錯處理;協議解析主要采用JSON格式和二進制流兩種格式。每條協議單獨一個文件,同所在業務模塊放在同一個包下。協議文件以協議號進行命名,分上行和下行兩種。協議的組幀和解析必須用對象進行處理。所有協議的設計必須符合協議要求,盡量設計成一個對象。支持采用FastJason技術進行自動解析,達到減少工作量的目的。并且可以快速響應協議的修改,而修改工作量不大。
2.5 JavaScript解析引擎
以上的設計方案為實現自定軟件配置數據、業務數據的傳送解析提供了框架基礎,能夠滿足數據傳送的時效性,保證管理者對終端軟件的實時掌控,具有較強的系統變更能力。余下的關鍵問題在于終端軟件如何對接收到的模板數據進行視圖展示并建立控件聯系,因為表單中控件數量繁多,其復雜屬性根本無法通過語言描述和類型劃分來實現,為解決這一難點,我們將其復雜的業務邏輯控制使用JavaSeript語言實現。在JayaScript解析引擎的基本框架上構建實現銷售子系統業務流和自定義表單的界面解析引擎和邏輯處理引擎。
1)視圖解析引擎
中心下發數據通過。JSON解析后,存儲數據在本地數據庫中,建立與中心相對應的模板表:Table_Scheme、Table_Step、 Table_Ctrl。界面解析引擎采用流式布局的方法,依次對各級組件進行解析展示。在獲取組件屬性信息后,根據其相關類別,建立模板、步驟、控件視圖,各組件的繼承關系通過主鍵值進行關聯。為了簡化其創建流程機制,該視圖解析引擎先剝離了所有的邏輯屬性需要,僅僅實現組件的頁面效果展示,而將復雜的邏輯處理讓邏輯處理引擎在后臺執行。這種設計方案能夠功能界面的實現快速展示,而無需考慮各種復雜邏輯的交叉影響,大大縮減了視圖展示的啟動時間,具有良好的用戶體驗效果。
2)邏輯處理引擎
邏輯處理引擎主要解決各組件的內在聯系。因為在組件的邏輯控制需要在Android環境下對JavaScript語言的動態編譯,在開發和運行基于GUI 的應用程序時尤其有效。在此基礎上,邏輯處理引擎構建Android平臺下幾乎所有簡單控件的監聽事件ListenerType,根據組件的配置需要來判斷是否執行相關腳本,其腳本內容CtrlListener以文本形式存放在屬性字段中,通過Rhino實現Android平臺對JavaScript代碼的執行,同樣,在JavaScript執行代碼中往往也存在對Android平臺信息的調用執行,平臺層提供了CallContext提供了視圖控件值獲取、寫入,數據庫訪問等各項操作接口給JavaScript,同時也支持其定義的Event事件進行操作。
2.6 應用分析
根據元模型定義,可以定制一個“實時匯報”的功能模塊。通過瀏覽器客戶端的規范操作和輸入,可生成模板配置數據源存儲于服務器端,當手持端通過HTTP發起模板下發請求時,服務器端即可下發Jason組幀的源數據,用以配置手持段軟件的具體執行規范模板。元模型和數據源示例如下:





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

上述是一個非常簡單的功能模塊,各企業根據具體業務場景的需要,可以添加諸如:“考勤管理”、“門店管理”、“門店拜訪”等各種功能。在添加功能或更改業務流程的過程中,只需從瀏覽器客戶端進行模板定義的修改,服務器可根據重新配置的元模型更新數據源,通過無線網絡下發至手持端軟件即可實現業務流程的更新和改善,且各基礎功能的模板定義具有較強的通用性,可以相互借鑒引用。在業務邏輯復雜的情況下,企業管理者可以根據業務員使用過程中反饋的具體情況,不斷調整各模板流程的控制規則和流動關系,通過服務器后臺進行靈活的維護管理,以達到最佳的使用效果,且在此過程中完全不涉及軟件的二次開發,也無須支付高昂的二次開發或升級維護費用,其市場響應速度也大大提高。
3 結束語
本文設計的自定制CRM軟件結合了Android操作系統的優秀特性,可以在Android手機、平板等終端設備上良好地使用。通過瀏覽器客戶端的簡單地配置即可生成一個相對成熟的CRM軟件原型,該軟件可以滿足絕大部分的業務需求的操作流程模板,當有特定控件展示,只需添加具體業務邏輯控件及即可迅速客戶需求的改動,大大減少了系統營運的維護成本與二次開發成本。能夠在短時間內快速響應市場變化并做出改進,為企業實現高效、精準的客戶關系管理。
評論