1 背景概述

笔者在公司做集成项目时,通常会涉及ESB与Portal结合实现图表数据分析功能。通过ESB获取数据库信息,然后在门户上采用Portlet接收ESB中的数据URL最后展现到门户上。本文为项目中实现该功能的方法及在实际工作中积累的经验与心得体会,希望通过这篇文档给大家一些帮助。

2 预期读者

  • 数通畅联新进员工
  • 广大技术爱好者

3 实现思路

实现本案例门户中图表Portlet的统计分析功能,可以通过以下三种Portlet来实现。

  1. 分为基本数据列表Portlet,基本图表Portlet,多维图表portlet。
  2. 穿透展示可以在管理控制台--导航菜单中添加“全动态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实现数据分析的更多相关文章

  1. Liferay7 BPM门户开发之17: Portlet 生命周期

    Portlet 生命周期 init() =〉 render() =〉 processAction() =〉 processEvent() =〉 serveResource() =〉destroy() ...

  2. Liferay7 BPM门户开发之10: 通用流程实现从Servlet到Portlet(Part1)

    开发目的: 实现通用流程自动化处理(即实现不需要hardcode代码的bpm统一处理后台,仅需要写少量前端html form代码和拖拽设计BPM定义) 既可独立运行或可依托于Liferay或依托其它门 ...

  3. Liferay7 BPM门户开发之36: 使用Portlet filters过滤器做切面AOP

    使用Portlet filters过滤器做切面AOP Portlet Filters定义于JSR286 Java Portlet Specification 2.0 Portlet Filters是为 ...

  4. 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 ...

  5. Liferay7 BPM门户开发之28: Portlet文件上传,及实体类同步更新上传

    抓住核心 . Liferay文件上传的核心就是使用UploadPortletRequest类 继承关系java.lang.Object extended byjavax.servlet.Servlet ...

  6. Liferay7 BPM门户开发之27: MVC Portlet插件工程开发

    官网上的教材说实话实在精简不清晰. https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/creating-an-mvc-por ...

  7. AEAI Portlet开发心得

    1 背景概述 Portlet是AEAI Portal组件API,是基于Java的Web组件,由Portlet容器管理,并由容器处理请求,生产动态内容.AEAI Portal中已经预置了许多Portle ...

  8. 浅谈OA系统与Portal门户的区别

    随着社会信息化的发展与进步,OA办公自动化软件打破了传统复杂的办公方式,使各个行业实现了高效的无纸化办公.由此一来OA快速成长为继财务软件.ERP软件之后的第三大管理软件.随着企业信息化系统的不断增多 ...

  9. AEAI ESB培训大纲

    1. 概述 本文档的目的是为了让使用者能更好的操作.维护.服务于整个ESB系统平台,该信息系统平台不仅需要成熟稳定的产品,更需要技术熟练的运行维护人员,以便能更好地进行科学有效的运行维护工作. AEA ...

随机推荐

  1. idea导入项目

    1. 2.导入项目 3.右键项目选择web 4.编辑添加tomcat 5.添加jar.包 6. 7.右键put into 8.安装tomcat 9.引入tomcat 10.把项目布署到tomcat

  2. 关于游览器 cookie的操作类

    var Cookie = { getCookie : function(c_name,is){ var value = this._getCookie(c_name); if(JSON &&a ...

  3. SQLyog简介及其功能(附百度云盘下载地址)

    一.软件简介 SQLyog 是一个快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库.SQLyog是业界著名的Webyog公司出品的一款简洁高效.功能强大的图形化MyS ...

  4. [Ting's笔记Day1] Ruby on Rails练习- MacOS安装篇

    千里之行,始于足下.喊了要学Ruby on Rails好久,今天终于要来迈向第一步:安装了! 一开始学习新的事物,主要就是跟着这个网页所说的步骤step by step. 很喜欢这个网页的设计流程,透 ...

  5. python入门 -- 学习笔记2

    习题11:提问 --  接受键盘的输入  raw_input input() 和 raw_input() 有何不同? input() 函数会把你输入的东西当做 Python 代码进行处理,这么做会有安 ...

  6. H5学习的例子

    https://github.com/NalvyBoo/HTML5   https://github.com/yujinjin/fans   github看到这里 https://github.com ...

  7. linux操作命令,批量注释#方法

    用户,密码 1.修改密码:passwd 2.切换用户:  su root 3.增加用户:adduesr+用户 4.root更改目录的权限:chown  leopard:leopard data/ -R ...

  8. 天天向上的力量 III

    描述 一年365天,以第1天的能力值为基数,记为1.0. 当好好学习时,能力值相比前一天提高N‰:当没有学习时,能力值相比前一天下降N‰. 每天努力或放任,一年下来的能力值相差多少呢?其中,N的取值范 ...

  9. TZOJ 1689 Building A New Barn(求平面上有几个其它点求到n个点的曼哈顿距离最小)

    描述 After scrimping and saving for years, Farmer John has decided to build a new barn. He wants the b ...

  10. FortiGate安全策略说明

    1.安全策略原理 1)为了对数据流进行统一控制,方便用户配置和管理,FGT设备引入了安全策略的概念.通过配置安全策略,防火墙能够对经过设备的数据流进行有效的控制和管理. 2)当防火墙收到数据报文时,把 ...