面板 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|
1.文档目的
随着客户对 BI 前端功能的要求越来越深入,Smartbi 的很多应用项目都有定制化需求。为满足这类需求,产品进一步增强"稳定内核+API扩展"的架构,支持扩展包扩展。每个项目的定制化的需求都可以做成单独的扩展包,这样,最大限度地控制项目化的需求对产品的影响,控制不同项目之间相互影响,项目需求响应的及时性也能得到保证。
扩展包从应用角度上看,它是一个可以加载到 Smartbi 中执行的功能插件;从技术角度上看,它是一个web项目,包含Html、Jsp、Java、Js和资源等文件。
2.适用范围
本文面向开发商以及外部开发人员,他们需要对 Smartbi 产品的默认功能进行扩展、修改或删减。
3.学习指南
1、请先查看扩展包简述,了解扩展包是什么,扩展包加载原理、如何做。
2、接下来看看“扩展包开发快速入门”,快速创建一个HelloWorld程序。
3、看完入门文档,搭建了开发环境后,建议再看下Smartbi前端框架介绍,了解前端组件框架、通信框架、关键组件,及拿到需求该如何入手。
4、扩展包开发教程 ,里面有各种各样在工作中可能遇到的功能点示例,看完这个心里会有个案例库。
5、扩展包开发示例库 ,这是在实际项目应用中提炼出来的常见需求场景。
4.快速访问
您可以使用下表快速访问 Smartbi 扩展包开发指南的各个部分。
分类 | 主题 | 简要说明 | |
---|---|---|---|
扩展包基础 | 扩展包开发介绍 | 介绍扩展包的概念、特点、应用场景等。 | |
扩展包开发视频教程 | 视频教程,系统介绍扩展包,并有案例演示。初学者建议先整体看一遍,跟着做一下演示的案例。 百度网盘链接:https://pan.baidu.com/s/1WSzaLEp0YkyQJXRiNjSdAQ | ||
扩展包开发环境部署 | 部署插件开发环境有两种方式,一种是使用插件开发IDE,其中包含了插件开发所需要的开发工具Eclipse,JDK,Tomcat,Smartbi的war包,适合于新手;另一种是手动配置插件开发环境,适合于已有WEB开发环境用户(推荐使用手动配置的方式)。 | ||
常用知识点 | Smartbi前端框架介绍 | 介绍Smartbi 系统前端框架、前后端通信框架、关键组件介绍以及拿到用户需求该如何入手去实现。 | |
3 | 扩展包开发快速入门 | 让读者尽快掌握扩展包开发的基本步骤。 | |
4 | 扩展包开发框架 | 1、利用思迈特提供的 extscaffold-Smartbi 工具,快速生成扩展包项目的框架代码; 2、提供集成扩展包开发环境及配置方法。 | |
5 | 扩展包功能点示例,通过一些课程来指导如何开发扩展包,强烈建议看完。 | ||
通用技能 | 给读者提供常用的扩展开发示例,很多也是常见的真实客户需求场景。 | Smartbi 是典型的基于JavaScript的面向对象框架,整个系统只有几个入口jsp(譬如index.jsp、login.jsp),剩下的业务或操作逻辑会按需动态加载或注销组件。本文主要介绍Smartbi 系统前端框架、前后端通信框架、以及关键组件。 | |
替换Smartbi文件 | Smartbi插件可以方便的替换Smartbi原有的文件,包括图片、样式、HTML、JSP和JS等通过URL直接访问的文件资源。 | ||
新增系统选项 | 通过扩展包开发,可以自由添加“系统选项”的配置项。 | ||
修改Smartbi 前端JS代码 | 在扩展包开发过程中经常遇到要修改Smartbi原有的JavaScript文件的情况,如重写JS的某个函数,以达到定制化执行逻辑的目的。 | ||
调用服务端Java接口 | 当第三方系统需要远程调用Smartbi接口时,可使用Smartbi的服务端Java接口。 服务器端Java接口通过Java API提供七项服务接口。 | ||
自定义Module | Smartbi前后端交互的后端入口。 | ||
知识库升级 | 扩展包中需要往知识库中添加库表、修改库表或自动插入初始化数据时,需要使用知识库升级(upgrade升级类)处理相关逻辑。 | ||
创建知识库对象 | 扩展包中如果往知识库中添加了库表,可以同时创建对应的知识库对象,以便使用Smartbi所包含的Hibernate机制操作数据库。 | ||
自动导入资源 | 扩展包中需要在系统启动过程中自动导入已经开发好的报表、数据源等Smartbi资源时,可以使用自动导入资源(postupgrade升级类)处理。 | ||
自定义对话框 | 在Smartbi中,有较多场景会用到对话框。本文介绍在Smartbi中创建自定义对话框的方法。 | ||
通用技能 | 定制开发规范 | 扩展包最终是作为产品代码的一部分运行的,所以对质量同样需要有高度的要求。本文所列举的规范需严格遵守,否则可能造成严重事故。 | |
调试&定位技巧 | 定制开发,首先需要找到切入点。本文主要介绍常用的调试&定位技巧,以便快速定位到产品功能对应的代码,以作为定制切入点。 |