ImageVerifierCode 换一换
格式:DOCX , 页数:54 ,大小:74.01KB ,
资源ID:18514067      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18514067.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(金蝶BOS企业版V开发指南管理门户ortlet开发Word下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

金蝶BOS企业版V开发指南管理门户ortlet开发Word下载.docx

1、EAS5.4版本:server/profiles/server1/config/portalConfig/portlets.xmlEAS6.0版本:server/deploy/eas.ear/cp_web.war/WEB-INF/portlets_xxx.xml其中,xxx表示具体的业务领域名称,如bos、eas等,详细信息请参考“附录1 Portal配置文件拆分说明”(2)配置说明 1001titletestPortlet modes viewvalueportlet.test/mode/modes 各配置参数值说明如下:1001:Portlet定义ID,全局唯一,不能重复。取值范围具体约定

2、如下:BOS为 1-199 ,EAS为 200-999, 二次开发为 1000 以后;testPortlet:Portlet定义信息,无特别要求,一般使用英文字符标识。注意该标题信息仅用于在配置文件中区分不同的Portlet,与Portlet在运行时显示的标题无关,Portlet在运行时显示的标题信息由数据库中的内容决定,2.3小节有详细说明;portlet.test:对应于“Portlet业务处理信息”的配置信息,具体见下一小节。2.2.2 配置Portlet业务处理信息server/deploy/eas.ear/cp_web.war/WEB-INF/tiles-defs_xxx.xml其中

3、,xxx表示具体的业务领域名称,如bos、eas等,详细信息请参考2.2.1节中的附件Portal配置文件拆分说明.doc。definition name=portlet.testextends=portlet_default_eas50controllerUrl=/PortletAssembleAction.doput name=portlet_id value=1001 /portlet_content/html/custom/test.jsp/definitiontiles定义名称,和上一节Portlet定义信息的配置保持一致;对应的Portlet定义ID,和上一节Portlet定义信息

4、的配置保持一致;/html/custom/test.jsp:业务处理页面(即2.5节将提到的“Portlet内容页面”)地址,如果是Struts,则还需要在struts-config.xml中进行配置,具体可以参考Struts官方文档。2.3 向数据库插入相关数据通过EAS管理控制台执行如下脚本,在数据库中插入一条记录,KSQL语句如下:INSERT INTO T_Portal_Portlet(FID,FCreatorID,FCreateTime,FLastUpdateUserID,FLastUpdateTime,FControlUnitID,FPortletDefineId,FPortlet

5、Name_L1,FPortletName_L2,FPortletName_L3,FEnable,FPortletNumber,FDescription_L1,FDescription_L2,FDescription_L3, FPortletCategoryID) VALUES(NEWBOSID(0B344890),00000000-0000-0000-0000-00000000000013B7DE7F,ts2009-10-01 12:13:14,00000000-0000-0000-0000-000000000000CCE7AED4,N104,NULL,N周江测试1,1,NPN-104,NUL

6、L, N, N, XkGI/dDGlkWJhX5ZEW9lOEPH2a4=);说明与注意事项:(1)插入字段FID的值请务必使用函数NEWBOSID,其中为Portlet实体元数据编码,该值不能更改为其他值,否则程序获取Portlet信息时将出错。函数NEWBOSID()每次执行会产生新的ID值,如果作为脚本提交,请注意修改为一个确定的ID值,且一定要支持可重复升级。(2)字段FPortletDefineId的值一定要和Portlet定义信息配置文件(2.2.1节)中定义的值保持一致。(3)繁体字段一定要使用繁体文字,否则和语言不匹配。(4)字段FPortletNumber的值为Portlet

7、编码,其值不做硬性要求,但建议使用“PN-”+Portlet定义ID的形式,如PN-1001。注:(2010-11-16) BOS SP3项目任务中加入Portlet分类管理,因此新增了字段FPortletCategoryID相关默认分类ID如下:基础系统:FZIyxl8gLUmP15IW8klEnUPH2a4=基础资料: VTh25HxPQEKvvaIWWecTGEPH2a4=财务会计:VFcHBNjYQ0qfzqDnSOOmMkPH2a4=资产管理:90O4cecHikiMJoEHN5Pg8kPH2a4=人力资源:5ZE/Jdo9XkGqY38v30oQXkPH2a4=管理会计:4M141

8、/5vlU6fPGEOu+pG7UPH2a4=资金管理:hLg/8i2uPkmQOAKsHt88f0PH2a4=商业分析:IbLhLRrJxUyZgDXwsRDKR0PH2a4=协同平台:m6AWen4UD0SBnZ2qs/Dn5kPH2a4=供应链管理:成本管理:R2IPXjFfWEKCFO8i99+bJEPH2a4=数据仓库:cXvgkmCk+0Wf9OTQKtkG3UPH2a4=房地产:kY+l8pEiI0mtkcUNsF/+uUPH2a4=产业链协同:Q+Y2omUEm0ClpF1FbQAlEUPH2a4=其他:因此新增Portlet时需要明确你的Portlet要放在哪个分类下,并将对

9、应的分类id插入到Portlet表中。如果不插入该字段,Portlet会默认显示在根节点分类下Portlet类别可以在Portlet管理里面新增,因此你可以新建一个自己的类别,同时需要查询“t_portal_portletCategory”表,获取到你新建类别的id,再来插入你的Portlet到刚刚新建的类别中2.4 Portlet配置信息与数据库数据的对应关系通常情况下,一条Portlet配置信息(portlets.xml以及tiles-defs.xml中各一个条目)对应数据库表T_Portal_Portlet中的一条数据。如果多个Portlet使用相同的内容页面(tiles-defs.xm

10、l中的),则一条Portlet配置信息将对应数据库表T_Portal_Portlet中的多条数据。一条Portlet配置信息对应数据库表T_Portal_Portlet中的多条数据的使用场景:内容管理定义了一个Portlet内容页面,每个栏目可以分别对应一个Portlet定义,不同的Portlet定义通过参数进行区分,参数中记录栏目ID。可以通过程序动态创建,也可以采用实体提交的方式。对应实体:com.kingdee.eas.portal.PortletInfo /Portlet定义com.kingdee.eas.portal.PortletParameterInfo /Portlet参数使用

11、程序创建完后,需要刷新缓存才能起作用,相关API见2.5.1节第(4)点。2.5 制作Portlet内容页面,实现业务需求EAS门户中的Portlet可能具有多个页面,如用于展现业务逻辑的主页面、业务设置页面以及帮助说明页面等。用于展现业务逻辑的主页面我们称之为“Portlet内容页面”,它是一个JSP页面,但并不是完整的,其最终输出为HTML片段,不能包含、以及标签。以下是错误写法示例,Portlet内容页面不应该包含蓝色部分的标签:meta content=no-cache http-equiv=Cache-ControlPragma0ExpiresEASdiv./div/body/htm

12、l下图展示了Portlet内容页面以及Portlet业务设置页面。图2-1 Portlet内容页面 图2-2 Portlet业务设置页面Portlet内容页面由相关的各业务部门根据各自的业务需求具体实现。EAS门户框架在Portlet内容页面上下文中提供了相应的接口以帮助开发人员完成具体业务逻辑的编写。2.5.1 Portlet内容页面JSP接口(1)获取EAS上下文(Context)使用工具类WebContextUtil的getEasContext()方法。示例:%page import=mon.web.util.WebContextUtil%Context userCtx = WebCon

13、textUtil.getEasContext(request);(2)获取上下文中的用户、组织、职员等信息使用工具类ContextUtil,示例:com.kingdee.eas.util.app.ContextUtilString name = null;PersonInfo personInfo = ContextUtil.getCurrentUserInfo(ctx).getPerson();if (personInfo != null) name = personInfo.getName();(3)调用服务器端方法EAS6.0打补丁PTM035205之前:与ControlBean中调用本

14、地方法一样,示例:Context ctx = WebContextUtil.getEasContext(request);IMessageCenter iMessageCenter = MessageCenterFactory.getLocalInstance(ctx);IRowSet rowset = iMessageCenter.getAcceptedTask();EAS6.0打补丁PTM035205之后:IMessageCenter iMessageCenter = MessageCenterFactory.getRemoteInstance();(4)Portlet操作使用接口com.

15、kingdee.eas.portal.IPortalServiceFacade,该接口提供以下方法:禁用Portlet(含批量处理):disablePortlet 启用Portlet(含批量处理):enablePortlet作废Portlet:deletePortlet新增Portlet(无返回值):addPortlet新增Portlet(返回新建ID):addPortletReturnId更新Portlet:update刷新Portlet缓存:refreshPortletCache获取Portlet:getPortlet注意:所有与Portlet相关的操作,如添加、删除、更新等,都必须使用该

16、接口,不要直接调用IPortlet接口对Portlet进行操作;进行Portlet操作(获取Portlet除外)后,在最后务必使用refreshPortletCache来刷新Portlet缓存数据。IPortalServiceFacade service = PortalServiceFacadeFactory.getLocalInstance(ctx);service.enablePortlet(portletID);service.refreshPortletCache();对PortletExtInfo的操作,由于PortletInfo包含PortletExtInfo,因此同样通过接口c

17、om.kingdee.eas.portal.IPortalServiceFacade进行,举例如下:(其中,portletInfo为PortletInfo的实例)添加PortletExtInfoPortletExtInfo portletExtInfo = new PortletExtInfo();portletExtInfo.setTitle(自定义Portlet标题portletExtInfo.setBizDefUrl(/html/portlet/example/demoPortletDefSetting.jspportletExtInfo.setBizInsUrl(/html/portl

18、et/example/demoPortletInsSetting.jspportletInfo.setPortletExt(portletExtInfo);IPortalServiceFacade psf = PortalServiceFacadeFactory.getLocalInstance(ctx);/ 如果portletInfo是新增,则psf.addPortlet(portletInfo);/ 如果portletInfo是修改,则/psf.update(portletInfo.getId(), portletInfo);修改PortletExtInfoPortletExtInfo p

19、ortletExtInfo = portletInfo.getPortletExt();修改自定义Portlet标题psf.update(portletInfo.getId(), portletInfo);删除PortletExtInfoportletInfo.setPortletExt(null);(5)获取Portlet相关信息包括Portlet定义和实例信息,如Portlet在配置文件中的定义ID,在数据库中的定义ID、实例ID以及Portlet的个性化信息(自定义标题、高度、颜色配置等)等。使用工具类com.kingdee.eas.portal.web.util.PortletUtil

20、可以在Portlet内容页面以及业务设置页面(后续将提及)上获取Portlet的相关信息,包括Portlet的个性化信息(如果存在的话)。以Portlet内容页面为例,假设需要在此页面获得Portlet的自定义显示名称以及Portlet实例的高度。首先引入PortletUtil:% page import=com.kingdee.eas.portal.web.util.PortletUtil获取Portlet自定义显示名称:String customizedName = PortletUtil.getCustomizedName(request);获取Portlet实例高度:int insHe

21、ight = PortletUtil.getInsHeight(request);高度值单位为像素,如果高度值为0,则表示实例的高度自适应。关于PortletUtil的接口请参考“附录2 PortletUtil API”。代码参考:server/deploy/eas.ear/cp_web.war/html/portlet/example/demoPortlet.jsp2.5.2 Portlet内容页面JS接口这些JS接口(变量或者函数)在Portlet内容页面中可直接使用。(1)Buffalo Ajax框架定义了两个Buffalo对象:buffaloAsync:异步方式buffaloSync:

22、同步方式使用示例:buffaloAsync.remoteCall(messageService.getMsgCount, true, function(reply) var arr = reply.getResult(); .在Portlet内容页面中使用Buffalo时请直接使用以上两个对象,不必重新创建Buffalo对象。在上一版本中,框架提供的Buffalo对象名称分别为:buffalo:buffalo1:这两个对象在门户框架新版本中仍然保留,但不建议使用。请使用buffaloAsync和buffaloSync。注意,如果需要创建新的Buffalo对象,请避免使用buffaloAsync

23、、buffaloSync、buffalo、buffalo1这4个变量命名,否则将会覆盖这些框架提供的Buffalo对象。(2)打开客户端GUI界面invokeFunction(uiClass, uiClassParam, uiOprt, openMethod);createModelUI(uiClass);createNewWinUI(uiClass);createNewTabUI(uiClass);openEasMainMenu();其中uiOprt可设置为字符串: ADDNEW、VIEW、EDITADDNEW:新增VIEW:查看EDIT:编辑openMethod可设置为数字:50、80、及

24、其他数字50:模态窗口80:新开窗口其他值:新开页签单据查看GUI界面接口:viewBill(billId);参数为单据ID(单据的UUID,非单据编号),EAS门户页面在不同帧下调用方式略有不用,门户各页签Portlet(比如我的日历,我的工作台等)标准调用方式为直接调用:viewBill(63fYLq2CTOCwsBgFdet+6Qneydw=而各自页签加入了帧(frame)的情况下(如流程中心加入了newMessageFrame),需要如下调用:parent.viewBill(其他多层帧的情况以此类推,需要通过parent或者top等方式获取上层的JS函数来调用。更多关于打开GUI界面的

25、函数请参考以下文件:server/deploy/eas.ear/cp_web.war/common/js/easHandler.js(3)拖动Portlet后刷新Portlet内容该功能常用于Portlet宽度需要自适应的场景,如“通知Portlet”和“待办事项Portlet”,由于这两个Portlet的宽度由JS动态计算而得,所以当他们移动到其他不同宽度的区域时,需要重新计算宽度,这时候就需要刷新Portlet内容以触发宽度的重新计算。在Portlet内容页面中实现以下函数,并返回true值:function afterPortletDrop(toWidth) return true;其中,是用于避免JS变量或函数命名冲突的标识(关于JS脚本变量和函数命名约束以及该标识如何获得等问题请参考2.5.3节),该标识必须加上,否则框架无法判断需要刷新哪个Portlet。参数toWidth为目标区域的宽度值,由框架传递,在该函数内可用该参数值进行一些必要的处理。不实现该函数或者函数返回true以外的值,则拖动Portlet后,Portlet内容不刷新。(4)其他Portal路径:

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

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