• SpagoBI 和 开源ERP(iDempiere)整合入门


    Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/
    iDempiere官方中文wiki主页 http://wiki.idempiere.org/zh
    iDempiere 中文社区www.idempiere.org.cn
    iDempiere 中文社区QQ群 65713012

    本文研究怎么使用SpagoBI来对开源ERP的功能进行扩展。

    本文主要介绍SpagoBI5的新功能cockpit,进行抛砖引玉,希望能够引发SpagoBI社区和开源ERP社区的注意,将开源ERP和开源BI进行整合,看看是否能够碰撞出新的火花出来。

    Cockpit这个新功能个人感觉更像是一个优化了的界面库,和后台数据本身关系并不特别大,但是我觉得cockpit直接降低了BI作为工具的使用难度以及开发难度,而且提供了一个非常友好的交互界面,这个是ERP本身、报表或者jpivot界面无法提供的。

    更夸张一点说,个人觉得cockpit能够极大的推动项目的销售,从而使得iDempiere及SpagoBI的应用更为广泛。因为BI主要面向的客户就是高层管理人员以及老板,在推销的时候,提供一个漂亮的界面和直观的图表,以及同时支持PC和手持设备(尤其是ipad)的点击交互的方式,比漂亮的ppt更能吸引人,更有说服力。

    本文中没有使用数据仓库,也没有ETL将数据从iDempiere拉到数据仓库的过程,实际使用中如果有需要的话,可以另外建立数据仓库作为SpagoBI的后台数据库。ETL过程可以参考下面链接的中间部分ETL的使用视频。ETL可以使用talend作为客户端开发工具,开发出来的ETL过程可以直接导入到SpagoBI中,由SpagoBI管理和运行。
    http://erp-academy.chuckboecking.com/?page_id=1228

    个人感觉,如果只是以iDempiere作为基础,BI作为补充展现的话,直接用iDempiere的数据库就好了,如果需要做OLAP分析,也可以直接在postgres上面另建一个库的方式代替,这样可以降低管理难度。

    如果和开源ERP进行集成的话,还需要考虑整合统一验证的部分,需要额外处理。

    本文使用spagobi 5.0 all in one,进行测试。启用时候需要配置一下java home, classpath, catalina_home等变量,具体请参考spagobi的配置文档。然后通过bin文件夹下面的SpagoBIStartup.bat进行启动。这个bat会同时启动一个HSQL的内存数据库作为DEMO的数据源。

    访问localhost:8080/SpagoBI,系统登录界面如下,登录密码为biadmin/biadmin

    进入系统以后,选择报表中的cockpits报表

    我们随意进入下面的3个界面,看一下cockpits报表大概是个什么样子
    注意,cockpit是支持点击筛选的,如下图的New Sales,我们在点击Food以后,系统自动将界面进行了全部刷新,同时给出了以Food作为条件的筛选结果的图表。
    a. New Sales

    直接在New Sales中点击饼图中 Food以后,界面自动全部刷新,同时给出了Food作为条件的筛选结果。

    b. CD Sales

    c. CD Customer Analysis

    d. CD Product family trend

    可以看到,cockpit报表无论是从界面还是友好程度,都比普通的BI增强了不少。

    下面我们以一个实际的例子,来说明怎样将SpagoBI和iDempiere进行整合。

    我们先启动iDempiere的DB,我们使用里面的product数据,进行操作。
    启动iDempiere的DB后,我们在SpagoBI中配置数据源

    我们配置iDempiere的数据源

    设置好了数据源以后,我们新增一个dataset

    简单起见,我们直接抓取订单表的信息,作为一个dataset
    注意其中的category栏位,后面我们的报表会以此栏位作为组合的依据

    Sql粘贴完成以后,点击右上角的Fields metadata,进行设置,将后面的3个值设置为measure
    measure和attribute各自代表的含义,请参照OLAP的定义及说明

    保存了以后,我们就可以根据该dataset,新建一张cockpit报表了。

    点击左侧的文件夹选项,然后随意选择一个文件夹,开始创建我们的报表。
    在创建报表时候,我们选择cockpit报表。

    点击右上角的add widget图标,添加一个界面控件

    在控件界面,仍然选择右上角的配置界面

    系统会将所有的dataset全部显示出来,这时候,我们选择我们的dataset

    我们先拖拉一个表格到右边

    然后选择下面的selected fields,将所有栏位都拉入到visible fields里面去,如下图

    点击confirm以后,我们可以看到控件自动显示出来,同时数据为iDempiere中的数据

    我们再重复前面的操作,增加第二个控件,这次我们拖拉一个barchart进来
    同时配置栏位如下

    confirm以后,可以看到图表的结果,由于我们sql没有将category的name显示出来,这里直接显示了id作为演示,实际需呀的话可以进行更改。

    我们再拖拉一个控件,这次拖拉一个饼图

    确定了以后,在总界面上面调整一下各个控件的位置,然后点击右上角的保存按钮。

    给报表起一个名字并保存

    暂时不去管权限分配的事情,在document browser中双击我们的报表进行查看

    可以看到,报表正常运行,显示了图表和表格

    这时候,我们随便点击饼图里面的一个category,可以看到,系统自动按照该category进行了筛选,同时将所有的界面进行了刷新,如下面的图示,可以看到,表格中的数据已经全部筛选为该category的订单行。

    如上所示,即使在不了解或者不使用OLAP的情况下,我们仍然能够使用简单的sql,来为用户生成BI界面,而且由于spagobi默认就支持移动设备尤其是ipad,我们基本上可以通过零成本,获取一个高效、美观的BI应用,从而为用户提供更好的操作体验。

    由于SpagoBI同时支持OLAP、数据挖掘,我们可以整合iDempiere,深度挖掘用户的数据,提供更为深入的功能和解决方案。

    展望一下,我们可以使用SpagoBI的图表功能,来对比2013年和2014年的订单趋势以及产品信息,从而做出更合理的预测;或者通过BI来挖掘产品的销售潜力,等等。具体的应用场景,需要各位根据需要研究了。

  • 相关阅读:
    Runloop 新的看法
    如何利用openCV做灰度图片
    WebViewJavascriptBridge使用说明(iOS)
    页面滑动返回和点击返回按钮动作实现;
    获取设备UDID、IMEI、ICCID、序列号、Mac地址等信息
    设计模式----单例模式
    多线程理论知识 -- 小白的教程
    SQLite 的创建与编辑
    strong,weak, retain, assign的区别
    CGContextRef 画线简单用法
  • 原文地址:https://www.cnblogs.com/zzyan/p/4183952.html
Copyright © 2020-2023  润新知