本文根据AEAI Portal的特点,为AEAI Portal门户平台初学者提供相对合理的学习路径,希望能帮助读者快速掌握AEAI Portal相关技能。
Portal是一种Web应用,“portal是一种web应用,通常用来提供个性化、单点登录、聚集各个信息源的内容,并作为信息系统表现层的宿主。聚集是指将来自各个信息源的内容集成到一个web页面里的活动”。
AEAI Portal是国内(沈阳数通畅联软件技术有限公司)发布的一款Portal产品。2014年10月20日其Portal推出第一版“AEAI Portal门户集成平台v3.1版 ”,基于AEAI ESB可以搭建常规的信息门户、数据门户、应用门户。
包括安装JDK、MySql、以及配置PortalServer。下图为Portal Server的配置对话框。
在“门户管理—导航管理”中可以对导航进行管理,也可以新建一个导航。
新建一个导航,设置编码、名称、类型(登录前、登录后)、默认主题(登录后的默认主题风格)等。
在新建的导航中添加页面,如首页,其中添加Portlet,浏览器地址栏输入http://localhost:8080/portal/request/xx/xxxNaNml即可访问,其中xx为对应的导航编码,xxx.ptml为新建的页面(首页)编码,还可以在管理导航中的返回门户目录下添加一个链接,链接到新建导航的首页,方便访问。
选中创建后的导航点击编辑,可以修改导航配置信息,添加个性主题(添加个性化主题列表中可以选择的主题)等。
在新建的导航中添加目录(菜单),包括决策分析、辅助功能。
在决策分析目录下添加页面,以现金流为例(参考综合门户中对应样例),目录下添加一个概览页面、一个现金流情况页面。
在决策分析下新建隐藏页面目录,包括现金流弹出表格页面、现金流明细页面、财年预算页面、财年预算弹出表格以及财年预算明细页,共5个页面(在后面的数据门户配置中使用)。
在前面创建的首页的页面布局中添加4个Portlet:一个全动态Portlet(通知提醒)、一个TabPortlet(待办任务)、一个SSO应用列表Portlet和一个基本图表Portlet,通过扩展列容器扩展为两个列容器,每个列容器中添加两个Portlet。列容器可以配置所占宽度比等、其中的Portlet可以在容器间拖动,改变布局后要点保存按钮,才能保存布局信息。
可以在布局中对Portlet高度、装饰等属性进行设置,也可以在页面点击齿轮按钮设置。了解Portlet通用属性设置,如高度、是否缓存等。
在知识中心导航中新建目录,其下新建三个页面:一个信息概览页、一个明细页、一个信息正文页面,正文页面Portlet配置完后要隐藏。
在概览页中添加一个信息列表Portlet,明细页中左侧添加菜单列表Portlet(SubMenuListPortlet),右侧添加一个信息表格Portlet(InfomationGridPortlet)。
信息正文页面中添加一个信息正文Portlet。
参考组件模板中已有的信息列表和信息正文模板,列表到正文页面跳转在信息列表模板中实现。
信息列表Portlet主要设置“模板”、“信息栏目ID”、正文页面URL三个属性。“模板”添加上面配置的信息列表模板ID;而“信息栏目ID”是内容管理中对应信息分组的ID,在信息分组中选中需要的分组点击“复制信息ID”粘贴到“信息栏目ID”中即可;正文页面URL则填写上面创建的正文页面的链接。其他属性根据需要设置。
菜单列表Portlet的数据URL等配置参考知识中心里的对应Portlet,默认值可以自己选择,在内容管理—信息分组中拷贝一个分组父节点ID作为columnParentId的值(即可显示该分组下的子节点列表),拷贝其中一个子节点的ID值作为columnParentId的值。
设置展现模板ID、栏目参数key(columnId)、栏目参数默认值、正文页面URL(使用上面创建的正文页面)等属性。
设置展现模板ID、正文ID参数(contentId)、正文ID默认值等属性。正文Id参数值是通过点击信息列表Portlet或信息表格Portlet中的条目传过来的。在内容管理中对应信息采编或信息发布中的分组下的正文的ID(双击分组下的列表文章,复制信息ID)。
内容管理中可以新建编辑分组、采编发布文章(在信息采编中新增文章,保存提交后才可以在信息发布中发布,然后页面Portlet中才可以使用)。采编时还可以给文章添加关键字(在关键字组中配置的),这样在按关键字查询时就能找到包含该关键字的文章。
在概览页中添加两个基本图表Portlet(配置时可以选择不同类型:柱形图、饼状图等,所需XML数据格式基本是相同的),调整高度等使之适合页面显示。分别显示现金流页面的不同部分数据。
在组件管理—静态数据中添加上面两个基本图表的静态数据(XML数据);
数据格式参考已有基本图表静态数据样例、数据(属性值)要自己设置;
静态数据中设置clickURL属性使之都链接到现金流页面;
拷贝静态数据地址到图表Portlet的数据URL中测试;
通过ESB Http流程可以从数据表中查询出所需统计数据,也可以在赋值转换组件中通过代码生成测试数据,数据放入DataSet或DataRow中。
赋值转换组件选择转换模板(DataSet—XML),扩展代码,添加XML数据相应属性值。
Response节点返回值设为XML数据结果(document)。
将流程访问URL填入图表Portlet的数据URL中,测试。
参考《数据模拟配置及handler开发》文档中的相关内容。
创建一个普通Web应用。
在应用下创建一个数据构造类(代码生成测试数据)、一个XML数据提供handler(根据请求参数从数据构造类中获取相应数据转换为XML数据,与ESB中转换方式相同)。
创建对应JSP页面,页面代码参考已有样例(得到返回的XML数据)、配置文件中增加handler配置。
将handler请求地址填写到图表Portlet数据URL中测试,handler请求地址写法参考文档中给出的地址,端口改为6060,应用名、handler的ID改为自己创建的对应应用、handler。
顶部添加一个条件查询Portlet(多种查询方式,年月、季度等,支持扩展查询字段)。
左侧添加一个基本数据列表Portlet、数据列表详细配置参见文档。
右侧上部添加一个堆栈图表Portlet和一个多维图表Portlet,这两个Portlet所需XML数据属性与基本图表略有不同,可参考FusionChart 官方说明文档;这两个图表数据由handler提供,注意handler接收条件查询Bar和左侧数据列表传过来的参数,返回相应数据。
右侧下部添加一个数据表格Portlet,直接在上面创建的数据构造类、handler中扩展表格数据构造、转换方法,同图表Portlet数据通过数据类型参数区分(具体代码及表格Portlet配置参考文档)。
以现金流页面中Portlet间交互为例,选择查询bar查询条件后会重新加载页面,其它Portlet中通过${}取得的查询参数值也随之刷新,重新加载相应Portlet后图表数据即会随参数变化。左侧列表与图表交互、与表格交互同理。
概览页中基本图表的数据中配置clickURL属性,点击图表即可跳转至相应页面,例如上面配置的概览图表跳转到现金流页面。
关联页面财年预算相关页面Portlet复用综合门户决策分析中对应Portlet配置即可;
在现金流页面的条件查询Portlet配置中扩展一个链接,链接到关联财年预算页面;
在财年预算页面的条件查询Portlet配置中扩展一个“返回”链接,返回现金流页面;
现金流页面中点击图表弹出表格数据页面,通过设置clickURL为JS方法实现;
现金流页面表格Portlet点击单条数据弹出明细页面(全动态Portlet),通过在回调函数中调用JS实现
详细配置及JS参数传递请参考“数据模拟配置”文档及“Portal常用JS使用”文档。
熟悉后台单点登录配置,包括新建应用分组及应用管理配置;
以SMC管理控制台为例配置单点登录,CAS认证及表单认证方式SMC都已支持;
在首页的应用列表Portlet配置中添加该应用;
配置首页的通知提醒(全动态Portlet),查看全动态Portlet配置文档。
参考Portal中常用JS及组件模板使用文档,组件模板中内置了全动态模板样例,使用到了freemarker指令,参照文档理解各属性意义、如何遍历数据等,然后新建一个通知提醒的模板。
复用综合门户首页的通知提醒Portlet的数据提供handler即可。
使用上面配置的模板及数据URL配置首页通知提醒Portlet。
参照综合门户对应页面配置(在自己创建的导航中新建目录及页面,完成页面Portlet配置),理清全动态Portlet与该页面跳转关系。
结合给出的TabPortlet Json数据格式理解该Portlet(参见综合门户待办任务),了解清楚各属性与Tab显示内容的对应关系,然后自己用所给数据在上面创建的首页中配置成功TabPortlet。
在导航中新建一个目录及一个页面,并在页面中添加一个Iframe Portlet;
访问该页面,配置该Portlet,将url填写为导航中任一页面的链接或外部链接地址,测试是否正常显示;
参考虚拟菜单配置文档。
在静态数据中配置虚拟菜单所需Json数据(使用SMC菜单数据),参考Json样例(直接复用亦可、但是要理解清楚数据各属性的意义);
点击“新建菜单”,在导航中新建一个虚拟菜单,将json数据地址拷贝到虚拟菜单数据地址中;
新建虚拟菜单显示页面(隐藏),添加SSO界面集成Portlet;
参考虚拟菜单配置SSO界面集成文档
首先需要在SSO应用列表Portlet中添加配置单点登录的SMC
在Portlet配置中SSO应用选择上面添加的SMC
URl填写“DynamicRetrieve”为通过虚拟菜单动态得到页面URL
其它属性可根据需要配置
在ESBServer启动情况下,点击虚拟菜单会转到显示页面显示菜单页
通过Portal相关PPT、文档等途径了解Portal中完善灵活的权限体系。了解清楚群组、用户、角色三者的关联关系以及其权限继承关系等。
在群组管理中可以新增编辑群组,在群组下新建用户;在角色管理中可以新增编辑角色,添加关联群组、关联用户。
Portal中内置了一个所有用户角色,该角色关联的群组、用户默认对所有资源都可以访问。
添加测试数据。
添加好群组、角色、用户后就可以进行资源访问权限分配了。三种方式:按群组分配、按角色分配和按用户分配(在各资源的安全管理Tab页中分配)。
分配好权限后,使用新建的用户重新登录门户测试。
数据权限是指对数据专门设立的权限,主要针对群组的用户。即只有被允许的用户才能访问该数据。主要流程是,先通过用户查询到用户所在的组群,通过群组确定有哪些权限。基本上各层级资源都支持权限分配(大至导航、小至一个图片)。
主要步骤就是先对编码分组、配置,接着新增数据资源,然后对新增的资源进行授权。
我们实际做一些项目的时候,发现了这样的一个问题,就是在这个系统的资源的权限,与另一个系统里同样存在,那么这个时候就需要权限的复用了。权限复用主要分三种:一种是在两个不同的数据库、一种是在同一个数据库下、最后一种是完全不是我们的系统,即权限的体系完全不同。方法分别为:在新数据库中创建视图、直接使用Portal中的权限表以及用户同步。
AEAI Portal支持用户的各种个性设置。包括个性布局、个性主题、个性装饰、收藏夹等等。注意它们在数据库表中的记录位置。
使用一个普通的帐号登陆系统,登陆系统之后,可以找到个人设置的按钮。点击激活设置面板,就可以对其进行个性布局了。
管理员可以通过后台控制,对主题个性化设计。用户也可以在页面中选择自己喜欢的主题。
装饰与主题相似,同样分为两个部分,一部分是管理员进行设计,另一部分是用户进行使用。
在用户登陆Portal系统之后,上面导航栏处有一个收藏夹的按钮。
在分隔线上面有两个选项,一个是加入收藏夹,另一个是管理收藏夹。分隔线下面有若干个网页的名称,它们都是被收藏了的网页,直接点击就能跳转到该页面了。
点击加入收藏夹就将该网页添加到收藏夹中
以日程安排Portlet开发为例。
创建一个集成Web应用
通过功能创建向导创建一个Portlet功能模型,生成模型代码、页面
参考日程Portlet开发文档改造代码、页面,重在理解Portlet的交互机制(包括annotion、mode等理解,用到的JS的理解等)
在Portlet配置文件中增加Portlet信息,部署启动应用。(开发平台已经自动生成,但需要读者了解)
在“组件管理—Portlet应用”中添加新建的应用;
在Portlet设置中新增,选择所属应用后就可以选择应用下的Portlet了,选择好所属分组后保存即在门户中添加了该Portlet,然后就可以在页面中添加使用了。
数据门户中只用到了Portal中几个在数据门户中最常用的JS,还有很多常用的JS,可参考Portal中常用JS文档,然后在Portlet或页面中调用相应JS,通过Chrome的JS调试熟悉这些JS。
AEAI Portal门户平台学习路径文档 下载