前面文章《如何集成ERP與CRM》,從統一帳戶開始做起和利用交集、并集的方法來分析集成的對象兩種方法來集成CRM系統與ERP系統的,今天我們講述從數據庫層面集成CRM與ERP系統。
現在大部分ERP與CRM應用軟件源代碼都是保密的。這也就是說,企業即使自己有這方面的技術人才,也很通過修改源代碼來實現項目的集成。在遇到這種情況時,其實企業項目管理員可以從數據庫方面想想辦法。筆者在這方面就做過類似的嘗試。那時筆者實施的ERP項目采用的是SQL Server數據庫系統,而CRM項目則采用的是Oracle數據庫系統。筆者就以身份認證來談談如何通過數據庫來實現兩個系統的集成。
在Oracle數據庫中有一個很不錯的功能,就是支持外部表的功能。也就是說,可以把外部數據源的數據連接到Oracle數據庫中。Oracle數據庫會當作自己內部的對象來處理。可以用來查詢、統計等操作。這個外部表就相當于是其內部的一張視圖。可以進行查詢等操作,但是不能夠進行刪除、更改。在CRM系統中的用戶信息都存儲在Oracle數據庫中的USER_INFO 表中。其身份認證的時候,不是通過Oracle數據庫來進行認證的,而是通過應用程序來進行身份認證。而應用程序進行身份認證的時候,用的就是這張表。利用這張表中的用戶名與密碼跟用戶提供的用戶名與密碼進行比對。
如果配對成功的話,就可以登陸系統進行操作。了解這層含義之后,那么進行相關的集成就簡單了。在Oracle數據庫中,先作廢原有的用戶信息表。然后再建立一張外部表,其數據來源就是ERP系統數據庫中的用戶表(ERP系統的身份認證方案跟CRM系統類似)。由于是動態的連接,ERP中新建用戶、刪除用戶、更改密碼等操作都會反應在這個外部表中。所以CRM系統中也可以利用最新的用戶信息來進行身份驗證。由于身份驗證只設計到查詢操作,所以外部表完全可以滿足身份驗證的需要。
采用外部表來系統相關功能,最關鍵的一點是需要注意如果采用外部表的話,數據庫對于外部表只能夠進行查詢、統計等方面的操作,相當于是視圖。而不能夠進行插入、刪除、更新等操作。也就是說,如果CRM系統需要添加用戶、更改用戶的密碼都必須要在ERP系統中完成。因為只有ERP系統才能夠更改其后臺數據庫的用戶信息表。不過在設計工作中,這并不影響具體的應用。因為當兩個系統聯姻之后,CRM系統中的用戶管理模塊基本上沒有用了。所有的用戶管理(包括新建用戶、更改用戶密碼等操作)都可以在ERP系統中完成。在ERP系統中新建的用戶、對用戶密碼重置等作業,在CRM系統中同時生效。這就是數據庫外部表在ERP系統與CRM系統聯姻方面起到的作用。也就是說,當企業新進一個員工,項目管理員不用為其分別在兩個系統中建立帳號。而只需要在ERP系統中給這個員工建立帳號,那么這個員工在CRM系統也可以使用這個賬號登陸。
其實不光光可以利用同一張用戶信息表來對兩個系統的用戶進行認證,通過這個外部表還可以實現很多的功能。如現在的CRM系統一般都分為帳務型ERP系統與分析型ERP系統。而CRM系統與ERP系統重復的作業主要是在帳務型ERP系統上。如訂單、客戶信息等方面兩者都是重復的。而對于CRM軟件所具有的一些分析功能,ERP軟件往往是不具備的。此時,項目管理員就可以廢棄CRM系統中的帳務型的作業。即對于記帳相關的作業,如訂單的錄入、客戶信息的管理等等都放在ERP系統中處理。然后對于那些分析的作業,需要用到相關的基礎數據,則可以通過以外部表的形式從ERP系統的數據庫中取得。由于外部表就好像是一張視圖,是動態更新的。所以利用CRM系統進行分析時可以獲得最及時的數據。
只要項目管理員對于企業所使用的CRM系統與ERP系統比較了解,特別是對于后臺數據庫的架構有一個清晰的認識,那么利用這個外部表來實現兩個應用軟件的集成,是一個很不錯的方法。不過這個方法最終的效果好不好,還需要看兩個軟件內部數據庫的設計是否類似。如果兩個數據庫的設計思路南轅北轍,那么可能通過這種方式來進行集成效果并不會很明顯。相反,如果設計思路比較一致,那么就可以比較輕松的完成相互集成的工作。