NCV61Portal技术红皮书未整理待轻量化发版.docx

上传人:b****5 文档编号:3247410 上传时间:2022-11-21 格式:DOCX 页数:69 大小:1.52MB
下载 相关 举报
NCV61Portal技术红皮书未整理待轻量化发版.docx_第1页
第1页 / 共69页
NCV61Portal技术红皮书未整理待轻量化发版.docx_第2页
第2页 / 共69页
NCV61Portal技术红皮书未整理待轻量化发版.docx_第3页
第3页 / 共69页
NCV61Portal技术红皮书未整理待轻量化发版.docx_第4页
第4页 / 共69页
NCV61Portal技术红皮书未整理待轻量化发版.docx_第5页
第5页 / 共69页
点击查看更多>>
下载资源
资源描述

NCV61Portal技术红皮书未整理待轻量化发版.docx

《NCV61Portal技术红皮书未整理待轻量化发版.docx》由会员分享,可在线阅读,更多相关《NCV61Portal技术红皮书未整理待轻量化发版.docx(69页珍藏版)》请在冰豆网上搜索。

NCV61Portal技术红皮书未整理待轻量化发版.docx

NCV61Portal技术红皮书未整理待轻量化发版

目录

第一章Portal简介4

第二章Portal架构图5

第三章预制Portlet6

一、框架Portlet6

1、if_height6

2、if_src6

3、if_width7

二、TriggerIframePortlet与MonitorIframePortlet9

三、FreeMarkerPortelt9

1、继承Portlet10

2、编辑Portlet10

四、任务Portlet12

1、查询任务列表12

2、获取单据类型13

3、获取任务处理URL13

4、批量任务更新13

5、显示获取字段13

6、执行命令14

五、菜单Portelt15

1、我的功能Portlet15

5.1.1绑定菜单15

5.1.2动态集成菜单15

2、浮动菜单16

3、页签Portlet16

4、OutLook导航Portlet16

第四章Portal界面17

一、概念17

二、创建Portal页面17

三、布局设计18

1、布局排序18

2、布局Icon19

3.2.1设置布局Icon19

3.2.2获取图标19

3、布局禁用20

4、布局复制粘贴20

四、布局分配20

五、多级布局21

六、绑定菜单22

第五章Portlet开发23

一、Portlet容器23

1、获得Portlet容器23

2、使用Portlet容器23

二、Portlet分类25

三、Portlet视图26

四、Portlet资源26

五、Portlet动作27

六、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:

适应内容高度

其它:

指定像素的高度

举例

if_height

-1

false

2、if_src

说明

指定ifreame内容的url

取值方式

方式1:

从公共参数里取(如Url传参的形式);

方式2:

从属性里取;

注:

公共参数优先级较高

举例

if_src

链接地址

[CDATA[/portal/pages/view.jsp]]>

false

使用Url传参的形式,举例截图如下:

3、if_width

说明

指定iframe的宽度

可选值

百分比:

如100%

举例

if_width

100%

false

开发过程:

在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{

Maproot=newHashMap();

root.put("WINDOW_ID",request.getWindowID());

print(renderHtml(root),response);

}

再在该类所在包(nc.test)下创建一个同名的ftl文件

FreeMarkerPortlet.ftl

窗口ID:

${WINDOW_ID}

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、显示获取字段

显示字段的获取

/**

*获取显示的字段

*/

MapgetVisableColumn(Stringbilltype);

通过单据类型查询需要显示的字段。

6、执行命令

执行命令

/**

*执行命令

*/

voiddoCmd(Stringcmd,Stringpk);

根据不同的指令走相应的url,如根据是“便签”或是“催办”,分别执行“/portal/pt/task/scratchpad”和“/portal/app/mockapp/urgencyView”的链接。

示例代码如下:

@Override

publicvoiddoCmd(Stringcmd,Stringpk){

if("scratchpad".equals(cmd)){

Stringurl="/portal/pt/task/scratchpad?

id="+pk;

AppLifeCycleContext.current().getApplicationContext().showModalDialog(url,"便签","480","320","isurgency","");

}

if("isurgency".equals(cmd)){

Stringurl="/portal/app/mockapp/urgencyView?

pk="+pk;

AppLifeCycleContext.current().getApplicationContext().showModalDialog(url,"催办","480","320","isurgency","");

}

}

五、菜单Portelt

1、我的功能Portlet

该portlet主要功能是显示菜单组,分为绑定菜单和动态集成菜单。

5.1.1绑定菜单

绑定菜单即为布局绑定一个菜单,有“系统管理”权限的用户登录,在“门户配置”的“布局管理”模块,选择一个布局,点击“高级设置”即可打开布局菜单绑定页面,选择一个“绑定连接组”即可完成菜单绑定,示意图如下:

5.1.2动态集成菜单

动态集成菜单主要是通过虚菜单接口在页面的绑定,具体实现类去完成菜单的动态的生成。

如NC系统的消息通过虚菜单的实现进行动态抓取,并在我的功能区进行显示。

虚菜单接口IVirtualMenuProvider说明如下:

ListgetMenuItems();

获取菜单项

IntegergetStat();

消息状态数目

2、浮动菜单

浮动菜单Portlet主要是显示界面上Portal页面绑定的菜单.

开发方式:

1).系统管理> 应用平台管理>门户配置> 布局管理中打开布局设计器.拖放一个浮动菜单Portlet.选中该Portlet.设置样式为浮动.

2).选中步骤1创建的布局.点高级设置.选择一个绑定菜单.

3、页签Portlet

页签Portlet是门户提供的一种菜单展现样式.以Tab页的形式来展示菜单的内容.

开发方式:

1).系统管理> 应用平台管理>门户配置> 布局管理中打开布局设计器.拖放一个页签Portlet..

2).展开步骤1创建的布局,选择页签Portlet.点高级设置.选择一个菜单.

页签Portlet可以设置高度宽度

4、OutLook导航Portlet

Outlook导航Portlet是门户提供的一种菜单展现样式.以OutLook导航的形式来展示菜单的内容。

开发方式:

1).系统管理> 应用平台管理>门户配置> 布局管理中打开布局设计器.拖放一个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);

Maproot=newHashMap();

Root.put(“USER_MENU”,MENU);

Ftl文件

<#assignmenuitems=USER_MENU.items>

获取图标

3、布局禁用

布局禁用是停止用户使用该布局,通过“布局管理”的“高级设置”,把“是否启用”开关关闭即可。

示意图如下:

4、布局复制粘贴

布局的复制和粘贴是方便布局快速高效的重用,通过选中要重用的布局点击“复制”按钮即可获得该布局的一份拷贝,选择要放入的组织后点击“粘贴”按钮即可把拷贝的布局复制到目标组织下。

示意图如下:

四、布局分配

布局分配是指为新建的布局或已分配的布局分配使用的对象,这些对象包括角色、用户、

组织等。

同时分配过的也可以取消分配,即停止上述对象使用该布局。

示意图如下:

五、多级布局

多级布局包括:

支持全局下的布局分配的对象为所有组织;布局分配时可以分配给当前组织下的子组织或子组织下的用户或角色。

示意图如下:

六、绑定菜单

绑定菜单是为布局设置菜单,设置菜单后可以直接通过菜单使用该布局,绑定示意图如下:

第五章Portlet开发

一、Portlet容器

1、获得Portlet容器

场景1:

JSP页面中

场景2:

IframePortlet页面中

注意:

1)在Iframe中获得容器,必须保证iframe页面与Portal在同一个域下

2)要判断Iframe中是否已经注入了此函数

2、使用Portlet容器

Portlet容器提供的函数

方法

参数名称

是否必须

参数作用

返回值

备注

createPart*

title

标题

新创建的链接块

在Portlet窗口上创建一个链接块

href

链接

createSep*

segment

分隔符

新创建的块

在Portlet窗口上创建一个分割块

createBlankPart*

-

-

-

新创建的块

在Portlet窗口上创建一个空白块

setTitle*

title

标题

标题对象

设置标题

setContent*

content

内容

内容对象

设置内容

setExposed*

-

-

-

当前容器

隐藏外框

setUnExposed*

-

-

-

当前容器

恢复外框

doMax*

-

-

-

-

窗口最大化

doReSize*

-

-

-

-

窗口复原

showTips*

-

-

-

-

显示提示框

hideTips*

隐藏提示框

doView

-

-

-

-

切换到查看模式

doEdit

-

-

-

-

切换到编辑模式

doHelp

-

-

-

-

切换到帮助模式

doRefresh

timesamp

时间间隔

-

设置刷Portlet新周期

doAction

-

-

-

-

调用Portlet默认事件ProcessAction

doAction

frameUrl

链接地址

-

调用Portlet默认的事件,并传递一个frameUrl参数

doAction

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获取资源

resourceURLid="/images/blackpoint.gif"/>">

五、Portlet动作

Portlet动作是Portlet

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1