五根红线让商业智能(BI)与ERP系统联姻
【 信息化】
BI系统的源头是数据,而ERP系统中有的就是数据。为此我们在考虑项目规划的时候,如果能够让BI系统直接使用ERP系统中的数据,是一个不错的选择。可是到目前为止BI与ERP系统是两个相对独立的应用。如何让他们能够联姻,互通有无呢?这就是项目管理员所需要考虑的问题。
一、通过视图让ERP数据为BI所用
BI与ERP系统的数据在保存方式上有比较大的差异。ERP系统后台数据库在设计时,遵循的是简单的原则。简单的说,就是一份数据,如出货及时率相关的数据,会保存在多张基础表上。而BI系统恰好相反。在使用BI系统来分析销售出货及时率时,需要采用一个比较综合的表格,包括销售订单上的承诺交货日期、生产完货日期、实际出货日期等等相关的信息。为此如果BI系统要使用ERP系统的数据,这中间就要有一个媒介。数据库的视图对象就是这个媒介。
通过视据库中的视图可以将多张基础表中的数据提取出来,并在一张表格中反映。而且这还不会对基础表产生任何影响。这也就是说,通过视图,即可以满足BI系统在数据整合上的需要。而且也不会ERP系统的运行产生不利的影响。所以这是一个很不错的媒介。不过这在技术上也有一定的要求。有些ERP系统在实施时,对于数据库可能是保密的。这主要是因为他们担心用户会不小心更改了数据库的结构而对ERP系统产生负面的影响。这种担忧也有一定的道理。虽然在数据库中创建视图不会对ERP系统的基础表产生不利影响,但是为了安全起见,这个操作还是需要谨慎行事。至少需要有专门的数据库管理员来完成相关的工作。
二、自定义报表规范数据格式
如果用户担心更改数据库会对ERP系统的运行产生不利影响,或者影响其运行的稳定性。那么还可以通过ERP系统的自定义报表格式来规范BI系统所需要的数据格式。自定义报表格式其实就是一组SQL语句,从数据库中根据用户的需要来获取数据。
BI系统在进行数据分析时,对于数据的格式有比较严格的要求。如某些字段不能够为空(如在数据分析时可能需要用到四则运算,为此除数就不能够为空)。如某些字段要求有固定的格式(如日期字段,需要采用统一的格式,如YYYY-MM-DD等等)。
通过自定义报表提供BI系统所需要的数据时,需要兼顾这方面格式的要求。其实实现起来难度也不是很大。只需要加入几个Case语句即可。如当除数为0时报错或者赋予一个默认值。如日期格式的话利用转换符号转换成统一的格式。如有些日期的话可能还包括时间信息。为了统一格式,可以使用TO_DATE等运算符来统一日期的格式。
这些小技巧其实实现起来难度并不是很大。不过不少项目管理员,可能在一开始设计报表的时候没有考虑的这么全面。结果在后续使用过程中会出现这样那样的小错误。影响BI系统的正常运作。故笔者建议,在ERP自定义报表设计的时候,就需要做好这方面的控制工作。通过格式转换、条件判断等手段,为BI系统提供规范化的数据。
三、加强ERP系统控制提高基础数据的准确性
对于BI系统来说,不仅仅要按固定、规范化的格式提供数据,而且还要保证基础数据的准确性。BI系统的分析结果都依赖于基础数据。如果基础数据出现错误,即使是5%的错误率,经过BI系统的一番分析,最后的结果误差率可能会在20%左右,甚至更大。如果BI系统使用ERP系统的数据,不仅仅要保证在格式上满足BI系统的需要,而且还要提高基础数据的准确性。关于这方面的内容,在ERP项目中也会反复的强调。笔者就不做过多的重复,就拣一些重要的或者容易被忽视的内容来说明。
1、需要注意输入数据的合法性检验
如用户输入的日期是否是合法、输入的数字是否超出最大值等等。当用户输入数据、保存在数据库之前,需要对用户数据的数据进行合法性的检验。这个检验的内容是很宽泛的。如果BI系统要使用ERP中的数据,那么就需要先比对这些规则。如BI系统中使用的小数格式与ERP系统中的位数是否一致。如果不一致的话,则在数据使用时要用函数先进性转换等等。
2、ERP系统要定期检查数据的准确性
特别是异常单据如在使用BI系统分析供应商到货及时率时,需要用到采购订单、收货单等信息。而在ERP系统操作时,有可能会存在误操作的情况。如将甲供应商的材料入到乙供应商的订单上。或者将采购订单A的物料入到采购订单B上,这些错误是经常会遇到的。在ERP系统操作上会通过退货单等形式调整过来。
可是在BI系统使用EPR的数据时,如何来识别这种情况呢?也就是说,虽然对于ERP系统来说,已经对基础数据做了及时的调整。中间的过程虽然有错,但是最终的结果没有问题。而对于BI系统来说,要能够识别这种错误,会有一定的困难。这需要BI与ERP系统的共同努力才能够完成。如ERP系统对于异常单据,需要严格按照制度来执行。包括所使用的单据类型等等都需要采用独立的数据。然后BI系统在使用ERP的数据时,需要使用判断语句来判断在基本数据中是否存在这种异常的单据。如果有的话,需要先做一定的调整,然后再使用相关的数据。
四、优选BI模块以减少集成的工作量
虽然BI系统可以使用ERP中的数据,但是实现起来还是有一定的困难。因为在中间需要考虑很多细节方面的内容。为此在项目选型时,最好首先选择那些BI模块化的设计,以减少后续集成的工作量。这里笔者推荐两种方式。
1、BI系统是ERP系统中的一个子模块
现在有些ERP系统设计的比较复杂(又叫做ERP2)。这种类型的ERP集成了其边缘的一些应用,包括电子商务、BI、CRM等等。简单的说,就是在开发EPR系统时,同时实现了BI的功能。此时BI就成为了ERP系统中的一个子模块。如此的话,BI系统就可以自然的使用ERP系统中的数据,而不需要繁琐的集成工作。
2、通过主题库的形式来减少集成的工作量
有些BI厂商会跟ERP系统厂商进行合作。预先根据ERP系统的设计,完成相关的主体包的开发。这就好像集成的工作BI厂商已经帮助客户完成。客户只需要安装主题包后直接使用即可。不过这种形式往往有一定的局限性,就是对于所支持的ERP企业比较少。现在ERP厂商至少有几十个,BI系统不会为每个ERP都去开发一个主题包。通常情况下,只支持一到两个ERP产生而已。在这种情况下,对于企业的限制就会比较多。
五、ERP与BI系统的核算口径要统一
最后需要提醒的一点就是,ERP系统与BI系统的核算口径要统一如有些企业,在ERP系统中其结账的日期设置为每个月的25日即当月的26日到下月的25日是一个自然月。这主要是为了提供足够多的时间方便财务进行做帐或者由于他们客户的要求,从而对企业自己的管理作出适当的调整。
虽然这只是一个划分的问题,从长期看对基础数据影响不是很大。但是在利用BI系统进行分析时,有时候需要进行按月统计。这就关系到统计口径的问题。
如有些BI系统为了方便用户的操作,他们提供很多现成的模块供用户使用。而这些现成的模块在使用时间数据时都采用的是自然月的统计方式。而用户现在需要使用的是自己设置的月份。即5月28日的交易数据要算到6月份去。此时项目管理员就需要调整核算的口径。通过IF等判断语句来调整ERP现有的统计口径等等。
类似的案例还有很多。如采用什么时间的汇率、销售业绩的分析等等都跟统计口径有关。如果要让BI系统与ERP系统互通有无,那么就必须要保证两者核算口径的一致。