NCV61Portal技术红皮书未整理待轻量化发版Word文件下载.docx
- 文档编号:16152961
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:69
- 大小:1.52MB
NCV61Portal技术红皮书未整理待轻量化发版Word文件下载.docx
《NCV61Portal技术红皮书未整理待轻量化发版Word文件下载.docx》由会员分享,可在线阅读,更多相关《NCV61Portal技术红皮书未整理待轻量化发版Word文件下载.docx(69页珍藏版)》请在冰豆网上搜索。
六、Portlet事件27
1、创建Portlet事件27
2、触发Portlet事件28
3、响应Portlet事件28
4、Portlet事件输出29
七、Portlet参数29
八、Portlet参数编辑器30
九、Portlet权限分配32
第六章集成33
一、概念介绍33
二、整体介绍34
三、API介绍34
四、表单集成35
1、配置系统35
2、配置属性36
3、实例36
五、LFW集成38
六、NC6集成39
七、NC5.7集成39
八、E-hr5系列产品集成40
九、集成开发API40
1、获取最后进入web系统的实际URL40
2、进入第三方集成系统的凭证制作41
3、返回所有第三方系统需要验证的字段定义41
4、用户登录信息校验42
5、获取集成系统指定节点的登陆URL43
十、Portal与功能节点集成43
1、获得用户功能节点43
2、获得所有节点44
3、获得所有功能节点分类45
十一、Portal与三方系统集成45
1、IWebAppLoginService接口的方法介绍45
11.1.1获取最后进入web系统的实际URL45
11.1.2进入第三方集成系统的凭证制作46
11.1.3返回所有第三方系统需要验证的字段定义47
11.1.4用户登录信息校验48
11.1.5获取集成系统指定节点的登陆URL49
2、集成过程49
11.2.1实现授权类49
11.2.2配置单点登录系统50
11.2.3配置显示集成系统的布局50
11.2.4配置Portlet与系统的关联51
十二、功能节点导入51
第七章消息53
一、集成消息53
二、集成第三方消息54
三、消息分类54
四、消息命令56
第八章任务56
一、集成NC流程56
二、集成第三方流程57
第九章主题开发58
一、概述58
二、页面样式58
三、布局样式58
四、Portlet样式59
第十章门户高级功能61
一、登录前后处理,指定登录后页面61
二、登录链61
三、CA登录63
四、域认证64
五、第三方登录64
六、门户扩展点65
七、门户设置66
八、门户FreeMarker扩展68
九、门户模块配置69
十、门户部署机制70
第十一章引用的技术文档71
第一章Portal简介
UAPPortal是基于JSR286规范而实现的一套J2EE技术体系架构的Portal。
它构建于UAP平台之上,提供了灵活而丰富的个性化和管理定制功能。
UAPPortal允许多种安全认证方式和自选第三方系统用户来源,采取了基于角色访问控制(RBAC)的权限模型。
并提供了完善和通用的第三方系统集成框架和单点登录框架,UAPPortal发版默认集成NC、IUFO、BO、自定义查询报表应用,实施SSO比商业Portal简单易用。
它提供的Portal管理功能,允许管理员在运行态对Portal进行定制,而无需重启甚至编码。
同时,内建的换肤机制使得实现自定义皮肤非常简单。
UAPPortal提供了引入了一套开发工具,,使得Portal开发非常简单。
第二章Portal架构图
第三章预制Portlet
一、框架Portlet
框架Portlet是一通用简单集成Portlet,可用于管理员为所有用户定制内容。
管理员可定制此Portlet完成对一现存站点的引入,可以定义任意数量。
比如:
将常用站点引入Portal的一个页签中,只需要做下面几步:
⑴系统管理>
应用平台管理>
门户配置>
布局管理中选择新建系统布局,选择框架Portlet并拖入,点击保存。
⑵在布局管理中刷新并展开刚创建的布局,找到刚刚加入的框架portlet,设置其链接地址属性,指明url地址。
对于一个布局中只有一个框架portlet的情况,设置高度为0,这样IFramePortlet的高度会自动调整来适应页面的高度,设置完成后保存。
⑶允许浏览此布局的用户注销重新登陆,即可看到此布局。
该Portlet可以配置的个性化信息如下:
1、if_height
说明
设置ifreame的高度
可选值
0:
适应页面大小,撑满页面
-1:
适应内容高度
其它:
指定像素的高度
举例
<
preference>
name>
if_height<
/name>
<
value>
-1<
/value>
read-only>
false<
/read-only>
/preference>
2、if_src
指定ifreame内容的url
取值方式
方式1:
从公共参数里取(如Url传参的形式);
方式2:
从属性里取;
注:
公共参数优先级较高
if_src<
description>
链接地址<
/description>
!
[CDATA[/portal/pages/view.jsp]]>
使用Url传参的形式,举例截图如下:
3、if_width
指定iframe的宽度
百分比:
如100%
if_width<
100%<
开发过程:
在Portlet上点击右键,从模板新建Portlet,选择IframePortlet,输入id,名称及嵌入的URL即可。
在编辑器右边属性栏中可修改portlet对应的类、描述等信息。
在下方模型视图中配置此portlet的具体属性。
二、TriggerIframePortlet与MonitorIframePortlet
TriggerIframePortlet是可以触发switchIframeContentEvent事件的框架Portlet,它继承自框架Portlet。
该portlet会触发switchIframeContentEvent事件,监听switchIframeContentEvent的portlet会响应该事件。
常见的监听Portlet有MonitorIFramePortlet及其子类。
使用举例:
通过该portlet可以设置响应switchIframeContentEvent事件的url。
示例代码如下:
document.getContainer().doAction(url)
MonitorIframePortlet是监听switchIframeContentEvent事件的IframePortlet,常与TriggerIframePortlet共同使用。
当是自定义触发的Portlet时应将switchIframeContentEvent加入support-publish-event,不建议在一个Page中引用两个MonitorIframePortlet。
三、FreeMarkerPortelt
套用FreeMarker模板的Portlet,该portlet主要用于解析FTL文件路径并把ftl文件内容渲染成Html。
开发过程:
1、继承Portlet
创建一个类继承自FreeMarkerPortlet,代码示例如:
packagenc.test
…
PublicclassMyFunctionPortletextendsFreeMarkerPortlet
…
@Override
protectedvoiddoView(RenderRequestrequest,RenderResponseresponse)
throwsPortletException,IOException{
Map<
String,Object>
root=newHashMap<
();
root.put("
WINDOW_ID"
request.getWindowID());
print(renderHtml(root),response);
}
再在该类所在包(nc.test)下创建一个同名的ftl文件
FreeMarkerPortlet.ftl
div>
h1>
窗口ID:
${WINDOW_ID}<
/h1>
/div>
2、编辑Portlet
在Portlets节点上点击鼠标右键,可新建portlet分类或直接新建portlet。
输入Portlet的id及name,点击OK按钮。
新建并打开portlet编辑器。
在编辑器右边属性栏中可修改portlet对应的类设置为刚才新建的类nc.test.FreeMarkerPortlet即可。
四、任务Portlet
任务portlet主要包括任务列表的查询、单据类型、任务处理的URL、显示字段的获取、和指令的执行。
1、查询任务列表
查询任务列表
/**
*查询任务列表.
*/
WfmTaskVO[]qryTaskList(TaskQryParamparam,PaginationInfopinfo);
参数说明:
param任务查询参数,包括状态、系统、单据类型、关键字、当前用户等。
Pinfo:
分页信息
返回:
任务列表
2、获取单据类型
获得单据类型
*获得单据类型
*/
WfmFlwTypeVO[]getBillTypes();
3、获取任务处理URL
获得任务处理的URL
*获得任务处理URL
TaskProcessUIgetTaskProcessUrl(Stringpk_task);
pk_task任务的主键
任务UI界面
4、批量任务更新
批量任务更新
*批量任务执行
StringdoMutiTaskProcess(String[]pk_task);
通过多个任务的id进行多个任务更新操作。
5、显示获取字段
显示字段的获取
*获取显示的字段
Map<
String,String>
getVisableColumn(Stringbilltype);
通过单据类型查询需要显示的字段。
6、执行命令
执行命令
*执行命令
voiddoCmd(Stringcmd,Stringpk);
根据不同的指令走相应的url,如根据是“便签”或是“催办”,分别执行“/portal/pt/task/scratchpad”和“/portal/app/mockapp/urgencyView”的链接。
publicvoiddoCmd(Stringcmd,Stringpk){
if("
scratchpad"
.equals(cmd)){
Stringurl="
/portal/pt/task/scratchpad?
id="
+pk;
AppLifeCycleContext.current().getApplicationContext().showModalDialog(url,"
便签"
"
480"
320"
isurgency"
"
);
}
/portal/app/mockapp/urgencyView?
pk="
催办"
}
五、菜单Portelt
1、我的功能Portlet
该portlet主要功能是显示菜单组,分为绑定菜单和动态集成菜单。
5.1.1绑定菜单
绑定菜单即为布局绑定一个菜单,有“系统管理”权限的用户登录,在“门户配置”的“布局管理”模块,选择一个布局,点击“高级设置”即可打开布局菜单绑定页面,选择一个“绑定连接组”即可完成菜单绑定,示意图如下:
5.1.2动态集成菜单
动态集成菜单主要是通过虚菜单接口在页面的绑定,具体实现类去完成菜单的动态的生成。
如NC系统的消息通过虚菜单的实现进行动态抓取,并在我的功能区进行显示。
虚菜单接口IVirtualMenuProvider说明如下:
List<
MenuItemAdapterVO>
getMenuItems();
获取菜单项
IntegergetStat();
消息状态数目
2、浮动菜单
浮动菜单Portlet主要是显示界面上Portal页面绑定的菜单.
开发方式:
1).系统管理>
应用平台管理>
布局管理中打开布局设计器.拖放一个浮动菜单Portlet.选中该Portlet.设置样式为浮动.
2).选中步骤1创建的布局.点高级设置.选择一个绑定菜单.
3、页签Portlet
页签Portlet是门户提供的一种菜单展现样式.以Tab页的形式来展示菜单的内容.
布局管理中打开布局设计器.拖放一个页签Portlet..
2).展开步骤1创建的布局,选择页签Portlet.点高级设置.选择一个菜单.
页签Portlet可以设置高度宽度
4、OutLook导航Portlet
Outlook导航Portlet是门户提供的一种菜单展现样式.以OutLook导航的形式来展示菜单的内容。
布局管理中打开布局设计器.拖放一个OutLook导航Portlet.
2)拖入一个布局,选中,点击样式下拉框,选择”框架布局”并保存
3).展开步骤1创建的布局,选择页签Portlet.点高级设置.选择一个菜单.也可以在此设置OutLook导航Portlet的高度与宽度
注意:
为了实现在页签内打开OutLook导航Portlet选中的菜单项,需要在当前页面中的一个布局样式设置为框架布局.该布局与正常布局一样,可以容纳Portlet.但是在收到OutLook的请求时会将布局内容切换到菜单项界面.
第四章Portal界面
一、概念
UAPPortal使用Pml界面组件结构标记语言对页面进行描述。
Pml包括布局(Layout)对象及Portlet对象。
布局可嵌套布局和Portlet,从而组成相对复杂的界面。
一个页面中的portlet不能重复。
二、创建Portal页面
在“Portal页面”节点上点击鼠标右键新建page页面。
输入id及tilte,点击ok按钮,新建Page完成,并打开page编辑器。
在page编辑器中进行page布局配置。
三、布局设计
1、布局排序
布局排序是指在布局列表中“是否主页”的那一列,是主页的分组会按照优先级排序,不是主页的分组也会按照优先级进行排序。
示意图如下:
2、布局Icon
3.2.1设置布局Icon
布局Icon是为已创建的布局设置绑定的图标,示意图如下:
3.2.2获取图标
通过步骤1设定好布局的菜单和图标后,可以通过导航栏菜单项获取其图标。
示意代码如下:
获取页签
Page[]myPages=PortalPageDataWrap.getUserPages();
PageMenumenu=PortalPageDataWrap.getUserMenu(myPages);
Root.put(“USER_MENU”,MENU);
Ftl文件
#assignmenuitems=USER_MENU.items>
获取图标
imgsrc="
${menuitem.icon}"
/>
3、布局禁用
布局禁用是停止用户使用该布局,通过“布局管理”的“高级设置”,把“是否启用”开关关闭即可。
4、布局复制粘贴
布局的复制和粘贴是方便布局快速高效的重用,通过选中要重用的布局点击“复制”按钮即可获得该布局的一份拷贝,选择要放入的组织后点击“粘贴”按钮即可把拷贝的布局复制到目标组织下。
四、布局分配
布局分配是指为新建的布局或已分配的布局分配使用的对象,这些对象包括角色、用户、
组织等。
同时分配过的也可以取消分配,即停止上述对象使用该布局。
五、多级布局
多级布局包括:
支持全局下的布局分配的对象为所有组织;
布局分配时可以分配给当前组织下的子组织或子组织下的用户或角色。
六、绑定菜单
绑定菜单是为布局设置菜单,设置菜单后可以直接通过菜单使用该布局,绑定示意图如下:
第五章Portlet开发
一、Portlet容器
1、获得Portlet容器
场景1:
JSP页面中
script>
getContainer('
#<
%=windowId%>
'
/script>
场景2:
IframePortlet页面中
document.getContainer();
注意:
1)在Iframe中获得容器,必须保证iframe页面与Portal在同一个域下
2)要判断Iframe中是否已经注入了此函数
2、使用Portlet容器
Portlet容器提供的函数
方法
参数名称
是否必须
参数作用
返回值
备注
createPart*
title
是
标题
新创建的链接块
在Portlet窗口上创建一个链接块
href
链接
createSep*
segment
否
分隔符
新创建的块
在Portlet窗口上创建一个分割块
createBlankPart*
-
在Portlet窗口上创建一个空白块
setTitle*
标题对象
设置标题
setContent*
content
内容
内容对象
设置内容
setExposed*
当前容器
隐藏外框
setUnExposed*
恢复外框
doMax*
窗口最大化
doReSize*
窗口复原
showTips*
显示提示框
hideTips*
隐藏提示框
doView
切换到查看模式
doEdit
切换到编辑模式
doHelp
切换到帮助模式
doRefresh
timesamp
时间间隔
设置刷Portlet新周期
doAction
调用Portlet默认事件ProcessAction
frameUrl
链接地址
调用Portlet默认的事件,并传递一个frameUrl参数
name
事件名称
调用指定的Portlet动作
param
参数列表
getOuter
最外层的布局
获得最外层的布局
getRow
所在列
获得所在的列
注:
标有*号的方法可以重载
二、Portlet分类
Portlet分类是为了让Portlet更容易查找,在Portlets节点上点击鼠标右键选择“新建Portlet分类”,弹出新建Portlet分类对话框。
输入ID、text、i18nName后点击OK按钮,Portlet分类创建成功。
在建好的Portlet分类上点击鼠标右键。
可以在分类中新建Portlet,或编辑、删除当前分类。
三、Portlet视图
UAPPortal6.0支持“查看”、“编辑”、“帮助”三种标准视图,有关视图的信息,请参考JSR286规范。
UAPPortal6.0支持“最大化”、“正常”、“最小化”三种模式,有关模式的信息,请参考JSR286规范。
四、Portlet资源
UAPPortal6.0支持Portlet资源请求,详细信息请参考JSR286规范。
示例代码:
//使用Tag获取资源
portlet:
resourceURLid="
/images/blackpoint.gif"
>
五、Portlet动作
Portlet动作是Portlet
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NCV61Portal 技术 红皮书 整理 量化