热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

Createdby蓝色布鲁斯,QQ32876341,bloghttp:www.cnblogs.comzzyaniDempiere官方中文wiki主页http:wiki.idemp

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来挖掘产品的销售潜力,等等。具体的应用场景,需要各位根据需要研究了。


推荐阅读
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文详细介绍了如何利用Xshell配合Xftp实现文件传输,以及如何使用Pure-FTPd构建FTP服务,并探讨了VSFTP与MySQL结合存储虚拟用户的方法。 ... [详细]
  • CSS Border 属性:solid 边框的使用详解
    本文详细介绍了如何在CSS中使用solid边框属性,包括其基本语法、应用场景及高级技巧,适合初学者和进阶用户参考。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • 本文探讨了在一个物理隔离的环境中构建数据交换平台所面临的挑战,包括但不限于数据加密、传输监控及确保文件交换的安全性和可靠性。同时,作者结合自身项目经验,分享了项目规划、实施过程中的关键决策及其背后的思考。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
author-avatar
常思
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有