ESB结合门户Portlet实现数据分析
1 背景概述
笔者在公司做集成项目时,通常会涉及ESB与Portal结合实现图表数据分析功能。通过ESB获取数据库信息,然后在门户上采用Portlet接收ESB中的数据URL最后展现到门户上。本文为项目中实现该功能的方法及在实际工作中积累的经验与心得体会,希望通过这篇文档给大家一些帮助。
2 预期读者
- 数通畅联新进员工
- 广大技术爱好者
3 实现思路
实现本案例门户中图表Portlet的统计分析功能,可以通过以下三种Portlet来实现。
- 分为基本数据列表Portlet,基本图表Portlet,多维图表portlet。
- 穿透展示可以在管理控制台--导航菜单中添加“全动态portlet”和“数据表格portlet”进行设置展示格式。
4 实现步骤
4.1 基本数据列表portlet实现统计分析
4.1.1 ESB数据获取及转换
1. ESB中创建功能起名Demo2,别名“教师选择”。
2. 通过创建好的Demo2画好流程图。
3. 选择数据查询节点双击,添加数据源demo,选择结果类型,创建结果变量teacherDataSet,在SQL主体中编写查询语句,点击下一步(next)在信息配置中刷新元数据。完成(finish)。
4. 选择数据转换JSON节点,选中 “转换”,后选择 “DataSet转换为数据表格” 点击下一步(next)选择来源变量“teacherDataSet”,创建目标变量命名为“output”(创建完目标变量output后需要在变量配置中添加全局)点击完成(finish)。
5. 生成好的代码中将教师的数据信息转换成了XML格式。代码如下:
6. 部署流程,访问url地址http://localhost:9090/Demo1/http/Demo2。
4.1.2 门户Portlet配置
1. 通过ESB获取数据后,需要在门户管理控制台—综合门户—“新增目录”起名“师生信息”
2. 选择师生信息点击“页面布局”添加“基本数据列表portlet”,保存。
3. 返回到应用中心将在ESB中获得的URL添加到数据路径中,并添加参数,点击保存,效果如下:
4.1.3 最终效果展示
4.2 基本图表实现页面统计分析
4.2.1 ESB数据获取及转换
1. ESB中创建功能起名Demo3,别名“学生统计”。
2. 通过创建好的Demo3画好流程图。
3. 选择数据查询节点双击,添加数据源demo,选择结果类型,创建结果变量studentDataSet,在SQL主体中编写查询语句,点击下一步(next)在信息配置中刷新元数据,点击扩展代码,完成(finish),通过扩展代码来接收列表中老师的ID,在添加条件查询的过程中笔者不仅通过老师来判断学生,还通过学生的入学日期来过滤条件。
代码如下:
4. 选择数据转换JSON节点,选中 “转换”,后选择 “DataSet转换为基本图表” 点击下一步(next)选择来源变量“studentDataSet”,创建目标变量命名为“output”(创建完目标变量output后需要在变量配置中添加全局)点击完成(finish)。
5. 基本图表portlet接收的数据格式需要扩展开发具体代码如下:
6. 部署流程,访问url地址http://localhost:9090/Demo1/http/Demo3?type=1&year=2017&month=01。
4.2.2 门户Portlet配置
1. 通过ESB获取数据后,需要在门户管理控制台—综合门户—师生信息-页面布局中添加“条件查询portlet”和“基本图表Portlet”操作。
4.2.3 门户Portlet展示
1. 返回到 “应用中心” 刷新页面分别对 “条件查询portlet” 和 “基本图表portlet”进行配置其中“条件查询portlet”有通过“年、年月、年季度、年季度月、日期段、指定日期”进行条件过滤,笔者将通过“年月”来进行演示。
接下来对“基本图表portlet”添加数据路径,URL为上面介绍的学生统计URL
http://localhost:9090/Demo1/http/Demo3?type=1&year=2017&month=01。
展示如下:
4.2.4 穿透实现
1. 穿透实现在ESB获取数据方便与获取“基本图表”信息一致,只是在转换时需要转换成数据表格的形式。
2. 通过URL获取到数据信息
3. 需要在“学生统计”中进行代码扩展
4. 门户配置通过ESB获取数据后,需要在门户管理控制台—综合门户—“新增目录”起名“师生分析”,然后在页面布局中添加“全动态portlet”
5. 对“全动态portlet”组件模板进行格式添加
6. 返回“应用中心”点击“学生信息”统计分析,弹出“全动态portlet”进行配置如下图:
4.2.5 最终效果展示
1. 通过“学生统计中”SQL语句接收到的“教师ID”与“年月”条件实现效果如下:
2. 穿透效果如下
4.3 多维图表实现页面统计分析
4.3.1 ESB数据获取及转换
1. ESB中创建功能起名Demo4,别名“成绩统计”。
2. 通过创建好的Demo4画好流程图。
3. 选择数据查询节点双击,添加数据源demo,选择结果类型,创建结果变量markDataSet,在SQL主体中编写查询语句,点击下一步(next)在信息配置中刷新元数据,选中扩展代码(目的与学生统计相同接收教师ID参数月年月条件)。完成(finish)。
4. 选择数据转换JSON节点,选中 “转换”,后选择 “DataSet转换为基本图表” 点击下一步(next)选择来源变量“markDataSet”,创建目标变量命名为“output”(创建完目标变量output后需要在变量配置中添加全局)点击完成(finish)。
5. 基本图表接收的数据格式需要扩展开发具体代码如下:
6. 部署流程,访问url地址http://localhost:9090/Demo1/http/Demo4?type=1&year=2017&month=01。
4.3.2 门户Portlet配置
1. 通过ESB获取数据后,需要在门户管理控制台—综合门户—师生信息添加“多维图表Portlet”操作。
4.3.3 门户Portlet展示
1. 返回到“应用中心”刷新页面,将“成绩统计”URL添加到“多维图表portlet”中。
4.3.4 穿透展示
成绩统计的穿透与学生统计思路相同,只是在添加portlet时选用的是“数据表格portlet”,其他完全一致在此不做过多赘述。
4.3.5 最终效果展示
1. 通过“学生统计中”SQL语句接收到的“教师ID”与“年月”条件实现效果如下:
2. 穿透效果如下:
5 心得总结
以上为笔者通过ESB获取数据信息并转换为实现基本图表与多维图表的XML格式和实现穿透效果的JSON格式,最终在门户上实现统计分析功能与穿透功能的操作。在工作中要有主动性,做事干脆果断,不拖泥带水;并且要注重实效、注重结果,一切工作围绕着目标完成;在做事上要提高大局观,将是否能让其他人的工作更顺畅作为衡量工作的标尺,把握一切机会提高专业能力,加强平时知识总结工作,同时精细化工作方式的思考和实践。
ESB结合门户Portlet实现数据分析的更多相关文章
- Liferay7 BPM门户开发之17: Portlet 生命周期
Portlet 生命周期 init() =〉 render() =〉 processAction() =〉 processEvent() =〉 serveResource() =〉destroy() ...
- Liferay7 BPM门户开发之10: 通用流程实现从Servlet到Portlet(Part1)
开发目的: 实现通用流程自动化处理(即实现不需要hardcode代码的bpm统一处理后台,仅需要写少量前端html form代码和拖拽设计BPM定义) 既可独立运行或可依托于Liferay或依托其它门 ...
- Liferay7 BPM门户开发之36: 使用Portlet filters过滤器做切面AOP
使用Portlet filters过滤器做切面AOP Portlet Filters定义于JSR286 Java Portlet Specification 2.0 Portlet Filters是为 ...
- Liferay7 BPM门户开发之33: Portlet之间通信的3种方式(session、IPC Render Parameter、IPC Event、Cookies)
文章介绍了5种方式,4种是比较常用的: Portlet session IPC Public Render Parameters IPC Event Cookies 参考地址: https://web ...
- Liferay7 BPM门户开发之28: Portlet文件上传,及实体类同步更新上传
抓住核心 . Liferay文件上传的核心就是使用UploadPortletRequest类 继承关系java.lang.Object extended byjavax.servlet.Servlet ...
- Liferay7 BPM门户开发之27: MVC Portlet插件工程开发
官网上的教材说实话实在精简不清晰. https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/creating-an-mvc-por ...
- AEAI Portlet开发心得
1 背景概述 Portlet是AEAI Portal组件API,是基于Java的Web组件,由Portlet容器管理,并由容器处理请求,生产动态内容.AEAI Portal中已经预置了许多Portle ...
- 浅谈OA系统与Portal门户的区别
随着社会信息化的发展与进步,OA办公自动化软件打破了传统复杂的办公方式,使各个行业实现了高效的无纸化办公.由此一来OA快速成长为继财务软件.ERP软件之后的第三大管理软件.随着企业信息化系统的不断增多 ...
- AEAI ESB培训大纲
1. 概述 本文档的目的是为了让使用者能更好的操作.维护.服务于整个ESB系统平台,该信息系统平台不仅需要成熟稳定的产品,更需要技术熟练的运行维护人员,以便能更好地进行科学有效的运行维护工作. AEA ...
随机推荐
- error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
最近安装caffe,突然报这个错: .build_release/src/caffe/proto/caffe.pb.h: In member function ‘void caffe::ImageDa ...
- JavaScript学习-4——DOM对象、事件
本章目录 --------window对象 --------document对象 --------事件 一.window对象 函数调用: 自己封装的函数只写:函数名(): 数学函数Math 例:绝对值 ...
- A CLOSER LOOK AT CSS
A CLOSER LOOK AT CSS css-review Congratulations! You worked hard and made it to the end of a challen ...
- 把post请求的地址粘贴到浏览器地址栏敲回车报错405[Method Not Allowed]
为什么把post请求的地址粘贴到浏览器地址栏敲回车会报405?原因:在浏览器地址栏敲回车,浏览器默认是以get方式发送请求,而你的请求是post,这样当然会报405了: 405:方法不允许,不支持ge ...
- ArcGIS自定义工具箱-列举损坏的数据源
ArcGIS自定义工具箱-列举损坏的数据源 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:查找地图文档中损坏的数据源链接 使用方法:参数可选,默认为当前(ar ...
- Windows 配置nginx服务器 运行php项目
1下载 http://nginx.org/en/download.html 选择稳定版下载. 2 解压后 直接双击nginx.exe 双击后一个黑色的弹窗一闪而过 3 修改配置文件nginx.conf ...
- 使用LESS对CSS进行预处理
LESS 做为 CSS 的一种形式的扩展,它并没有阉割 CSS 的功能,而是在现有的 CSS 语法上,添加了很多额外的功能,所以学习 LESS 是一件轻而易举的事情. 变量 请注意 LESS 中的变量 ...
- 利用iptables防火墙允许1521端口被连接
今天在虚拟机上装了ora11g , 出现2个问题 1.i386的几个RPM包缺少导致安装验证不通过 2.安装完成后,本地电脑连不上虚拟机oracle , 但是能ping通 问题2: 简单的方法就是关掉 ...
- Python设计模式 - UML - 部署图(Deployment Diagram)
简介 部署图也称配置图,用来显示系统中硬件和软件的物理架构.从中可以了解到软件和硬件组件之间的物理拓扑.连接关系以及处理节点的分布情况. 部署图建模步骤 - 找出需要进行部署的各类节点,如网络硬件设备 ...
- git tag的用法
我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的 git的tag功能 git 下打标 ...