前面文章《如何集成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系统比较了解,特别是对于后台数据库的架构有一个清晰的认识,那么利用这个外部表来实现两个应用软件的集成,是一个很不错的方法。不过这个方法最终的效果好不好,还需要看两个软件内部数据库的设计是否类似。如果两个数据库的设计思路南辕北辙,那么可能通过这种方式来进行集成效果并不会很明显。相反,如果设计思路比较一致,那么就可以比较轻松的完成相互集成的工作。