OAF开发总结

合集下载

OAF开发1

OAF开发1

OAF开发指导一、search功能的实现1.创建应用项目工作区2.创建项目在创建完应用项目工作区之后会直接跳转到创建项目的页面。

(如果没有跳转也可以在工作区中右键创建project)。

跳转到这个界面之后输入项目的名称,并指定“Default Package”的路径为“oracle.apps.po.test”或者其他的合适路径点击下一步,进入选择数据库链接的页面,勾选“User Repository for Design Time”选项,并选择配置好的连接(此连接为数据库连接)并点击进入下一步。

在页面中选择DBC File Name的文件路径,DBC文件是从服务器下载的oracle文件,放在指定的路径。

在user name 和password中分别输入oracle应用系统的用户名和密码。

3.创建AM选中”Application Sources”,右键“NEW”进入创建AM的页面在NEW Gallery中选择Categories中的“ADF Business Components”选项,在Items 中选择“Application Module”选项,并点击确定按钮进入创建AM向导。

直接点击下一步进入AM创建的第一步:命名界面,package会默认路径名为project的路径,需要添加后缀.server来指定子目录“oracle.apps.po.test.sever”,并命名AM的名称,原则上以”AM”结尾。

点击下一步进入Data Model界面,直接点击完成,就完成了AM的创建。

4.创建VO创建完AM的project中应该存在“oracle.apps.po”子目录,在子目录中的test 目录中的server中会显示之前创建的AM“APPSTESTAM”。

选中server右键,在弹出的页面选择“New View Object”选项,进入创建VO的向导页面。

在弹出的向导页面中选择下一步,进入VO设置步骤。

协同OA办公软件 项目开发总结报告

协同OA办公软件 项目开发总结报告

编码:KSH-JQZB-P-PP-T02新疆科盛华网络技术开发有限公司【协同OA办公软件】项目开发总结报告拟制人:刘英诺日期: 2014年04月20日文档记录*变化状态:C――创建、A――增加、M――修改(+修改说明)、D――删除(+删除说明)审批记录目录1引言 (4)1.1 编写目的 (4)1.2 背景 (4)1.3 定义 (4)1.4 参考资料 (5)2 实际开发结果 (5)2.1 产品 (5)2.2 主要功能和性能 (6)2.3 进度 (9)2.4 费用 (13)3 开发工作评价 (15)3.1 对生产效率的评价 (15)3.2 对产品质量的评价 (16)3.3 对技术方法的评价 (16)4 经验与教训 (16)项目开发总结报告1引言1.1 编写目的协同OA办公软件项目总结报告编写的目的:1.对整个项目开发过程进行总结与评价;2.对开发中所遇到的问题进行分析和总结。

1.2 背景随着Internet/Intranet和Web技术的日益普及和推广,使得Internet/Intranet正逐渐成为企业信息化建设的有力工具。

凭借Microsoft、UNIX等系统平台上的开发经验,成功地推出了基于Internet/Intranet平台的企业级网络应用系统。

办公自动化应用软件---- Office Assistant 变成一个新的发展方向。

该软件采用Browser/Server模式,完全基于Internet/Intranet平台,针对企事业单位内部的管理流程,设计而成的一套方便、稳定、实用的办公自动化软件。

其友好的界面、严谨的管理结构,充分担当起了机构中各个管理层的各项工作,不仅是企事业单位员工工作中的优秀助手,同时更是帮助有关领导做出英明决策的左右手。

她使最复杂、繁琐的办公室事务变得自动化、流程化、数字化,大大提高了公司各部门的工作效率。

办公助手采用纯WEB技术,即:在客户端不必安装专用代码,系统功能全部在服务器端集中实现和管理,系统维护升级难度和工作量明显降低,真正做到客户端零维护,使系统可用性和易维护性与传统方式相比有了质的飞跃。

OAF开发学习总结教程

OAF开发学习总结教程

- --OAF开发学习总结(一)环境的配置Author: 南生Creation Date: July 27, 2021Document Ref: <Oracle Application Framework Personalization Guide 12.1.3>Version: DRAFT 1AApprovals:<Approver 1><Approver 2>Copy Number _____Document ControlChange RecordReviewersDistributionNote To Holders:If you receive an electronic copy of this document and print it out, please write your name onthe equivalent of the cover page, for document control purposes.If you receive a hard copy of this document, please write your name on the front cover, fordocument control purposes.Contents目录Document Controliii1.概述61.1. 总体说明61.2 附带网上的一段话62.开发工具的下载与安装72.1 EBS版本查看72.2 开发工具的获取72.3 JDeveloper的安装92.4 设置 JDEV_USER_HOME 环境变量92.5 获取数据库连接文件〔DBC〕92.6 分配 ToolBox 职责103.Toolbox Tutorials Release 12.1.3113.1 概述113.2 启动 JDeveloper;并配置数据库连接和用户113.3 新建一个DATABASE连接123.4 测试设置144.OAF构造和组件概述164.1 整体构造164.2 Business ponents Package164.3 Entity Object〔以下简称EO174.4 Association〔以下简称AO〕174.5 View Object 〔以下简称VO〕174.6 View Link 〔以下简称VL〕174.7 Application Module〔以下简称AM〕184.8 Page184.9 Java 控制文件184.10 Region181.Open and Closed Issues for this Deliverable19Open Issues19Closed Issues191.概述1.1. 总体说明OAF是Oracle Applications Framework的简称,目前主要应用于供给商门户网页的开发。

oa流程 工作总结

oa流程 工作总结

oa流程工作总结
OA流程工作总结。

近期,我们团队在OA流程方面取得了一些显著的成绩,我想借此机会对我们
的工作进行总结和回顾。

首先,我们在OA流程的建立和优化方面取得了一定的进展。

通过对各个部门
的需求进行深入调研和分析,我们成功地建立了一套符合公司实际情况的OA流程,并且不断地对其进行优化和改进,以适应公司发展的需要。

这为公司的日常运营提供了更高效、更便捷的工作流程,大大提升了工作效率。

其次,我们在OA流程的推广和培训方面也取得了一定的成绩。

我们组织了一
系列的培训活动,帮助公司员工熟悉和掌握了OA系统的使用方法,提高了他们的工作效率和工作质量。

同时,我们也积极地向公司领导和各部门负责人宣传OA流程的优势和重要性,使他们更加重视和支持OA流程的推广和应用。

最后,我们在OA流程的监督和评估方面也做了一些工作。

我们建立了一套完
善的监督机制,对OA流程的执行情况进行了定期的检查和评估,及时发现和解决问题,确保OA流程的顺利进行和有效运作。

总的来说,我们在OA流程方面取得了一些成绩,但也存在一些不足之处,比
如在推广和应用中还存在一些困难和阻力,需要我们进一步努力和改进。

希望在接下来的工作中,我们能够继续努力,不断完善OA流程,为公司的发展和进步做出更大的贡献。

OAF编程心得

OAF编程心得

9.新增Байду номын сангаасolumn 和 SortableHeader 10.新增列的Item,设置列Item的View Attribute。
11.更新列Item
设置Attribute Set : 更新:/oracle/apps/fnd/attributesets/Buttons/Update 删除:/oracle/apps/fnd/attributesets/Buttons/Delete
if (fetchedRowCount > 0) { deleteIter.setRangeStart(0); deleteIter.setRangeSize(fetchedRowCount); for (int i = 0; i < fetchedRowCount; i++) { row = (EmailVORowImpl)deleteIter.getRowAtRangeIndex(i); Number primaryKey = row.getEmailId(); if (pareTo(emailToDelete) == 0) { row.remove(); getTransaction().commit(); break; // only one possible selected row in this case } } } // Always close the iterator when you're done. deleteIter.closeRowSetIterator(); } 13.创建时赋值,修改EO的CuxEmailEOImpl public void create(AttributeList attributeList) { super.create(attributeList); OADBTransaction transaction = getOADBTransaction(); Number emailId = transaction.getSequenceValue("cux_email_s"); setEmailId(emailId); } public void setEmailId(Number value) { if (getEmailId() != null) { throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT, getEntityDef().getFullName(), // EO name getPrimaryKey(), // EO PK "EmailId", // Attribute Name value, // Attribute value "AK", // Message product short name "FWK_TBX_T_EMP_ID_NO_UPDATE"); // Message name } if (value != null) { OADBTransaction transaction = getOADBTransaction();

OAF_CRUD开发

OAF_CRUD开发

OA Framework 基于MVC设计模式浏览器发送HTTP请求到控制器,控制器响应浏览器端输入,创建并设置模型,当模型发生变化时,视图得到通知,刷新界面显示。

OA Framework应用开发结构1、应用模块拥有视图对象(数据)2、根应用模块拥有事务对象(调用存储过程)3、页面的pageLayout拥有根应用模块4、业务组件重用,各层调用关系Client->AM->VO->EOOA Framework 开发步骤1、创建业务组件1)业务组件包2)实体对象(实体关联)3)基于实体对象(或SQL)建立视图对象(视图连接)4)应用模块对象,把视图对象实例添加到应用模块中2、以声明方式定义页面(Region和Item)3、为需要的Region设置控制器类4、编写应用模块代码和控制器类代码配置开发环境1、解压缩JavaDeveloper10 OA Extension压缩文件至硬盘目录(解压目录不要包含空格和中文)。

2、添加系统环境变量JDEV_USER_HOME,指定一个目录,此目录作为程序开发和本机运行时的主目录,如下图所示,从图中可以看出,第一步文件的解压目录为D:\Oracle\JDeveloper。

3、从服务器下载dbc文件,dbc文件放在JDEV_USER_HOME指定路径的子目录下,dbc 文件必须放在secure目录下。

(即D:\ Oracle\JDeveloper\jdevhome\jdev\dbc_files\secure)4、在jdevbin(D:\Oracle\JDeveloper\jdevbin)中找到jdeveloper.exe文件,点击右键建立桌面快捷键,双击jdeveloper桌面快捷键。

5、创建(或打开)项目。

6、使用jdeveloper建立数据库连接,用于设计时访问数据库。

7、测试连接。

建立连接和测试连接1、选择File>New打开新建对话框,选择General>Connections>Database Connection,如图:2、点击确定,跳过欢迎页面,进入下图界面,修改Connection Name,如图:3、下一步,输入数据库的用户名,密码,如图:4、下一步,输入数据库IP地址,端口号,数据库名称,如图:5、下一步,点击Test Connection,如果在Status输出文本框中输出Success!,即为连接成功。

软件开发的工作总结5篇

软件开发的工作总结5篇很多人在写好工作总结之后都是可以掌握一些规律的,一篇优秀的工作总结可以帮助我们更好地反思自己的不足,本店铺今天就为您带来了软件开发的工作总结5篇,相信一定会对你有所帮助。

软件开发的工作总结篇120XX年已过去,在过去的一年中,我担任单位开发部的一名软件工程师,主要从事着java项目的开发工作,这一年来我低调努力工作着,不求闪亮显眼和光芒四射,只为平静和淡定;这一年中所做的成绩如下:一、财政局项目,本人独立负责开发会计处的三个子系统:1、会计人员信用查询系统。

2、代理记账机构信用查询系统。

3、会计人员网上报备系统。

以上三个子系统上线后,方便了社会各界查验会计人员的真实信息、方便了查询合法的代理记账机构信息,以及方便了各单位对会计人员的报备。

二、餐饮行业项目,在团队开发项目中直接参与了豪享来餐饮有限单位总部的信息综合管理平台项目,主要负责的系统有:1、房屋租赁合同管理系统。

2、短信收发管理系统。

3、会员管理系统。

4、基础信息管理系统和人事管理系统的部分功能模块。

系统应用后,豪享来在管理全国各门店房屋租赁合同上,一定程度上提高了管理效率,并且及时有效提供了相应预警信息;短信收发系统方便了总部及时传递各项信息;会员系统更好的管理全国各门店的会员信息;人事系统在管理中减少工作量等。

三、XX行业项目,我参与了中国银行厦门分行,企业转账管理系统中的部分模块开发。

本系统方便了企业快速实现大量和复杂的转账工作。

四、国土资源与房产管理局项目,正在负责和开发的是住房货币化补贴网上申报审核系统。

本项目采用了新技术,使界面更加大方美观,很大程度上改善人机交互平台的效果。

总结不足:驻豪享来总部做项目时,由于团队内部某些原因,加之外面的其他因素,一定程度上影响了工作效率、影响开发进度和影响最终软件质量;这是包括我在内项目组中的每个成员都必须检讨的地方。

通过总结一年来的工作,尽管有了一定的进步和成绩,但在一些方面还存在不足,个别工作做得还不够完善。

oa项目工作总结

oa项目工作总结OA项目工作总结。

近期,我参与了公司的OA项目,通过一段时间的努力和合作,项目已经取得了一定的成果。

在项目结束之际,我想对这段时间的工作进行总结,回顾我们的成绩和不足,为今后的工作提供经验和启示。

首先,我们在OA项目中取得了一些显著的成绩。

我们成功地完成了项目的规划和设计,确立了项目的目标和范围,为后续的工作奠定了基础。

在开发阶段,我们克服了种种困难,按时按质地完成了各项任务,确保了项目的进度和质量。

最终,在项目上线后,我们及时进行了用户培训和技术支持,保障了系统的正常运行。

这些成绩的取得,离不开项目组成员的共同努力和团队合作,也得益于公司领导的支持和指导。

然而,项目中也存在一些不足和问题。

首先,我们在项目初期的需求分析和设计阶段存在一些疏漏,导致后续的开发和测试工作出现了一些偏差和延误。

其次,在项目执行过程中,我们的沟通和协作还有待加强,有时候出现了信息不畅通和任务重复的情况。

最后,在项目收尾阶段,我们的用户培训和技术支持还有待完善,需要更加细致地关注用户的需求和反馈。

在OA项目的工作中,我也获得了一些宝贵的经验和启示。

首先,我意识到了团队合作的重要性,只有大家齐心协力,才能克服困难,取得成功。

其次,我学会了在项目中注重细节和沟通,只有这样才能确保项目的顺利进行。

最后,我明白了在项目中要不断学习和改进,只有这样才能不断提升自己和团队的能力。

综上所述,OA项目的工作总结是我们在项目中取得了一些成绩,也存在一些不足和问题。

在今后的工作中,我们将继续努力,不断学习和改进,为公司的发展贡献自己的力量。

希望在未来的项目中,我们能够取得更好的成绩,为公司的发展贡献更多的价值。

OA系统二次开发实践与经验分享

OA系统二次开发实践与经验分享一、引言随着互联网技术的快速发展和工作效率的追求,越来越多的企业开始采用OA系统(办公自动化系统)进行日常管理与协同办公。

然而,随着企业的壮大,原有的OA系统已难以满足企业的需求。

因此,需要对OA系统进行二次开发,以适应企业发展的需要。

本文将从实践的角度出发,分享OA系统二次开发的经验与心得,以便更好地满足企业的需求。

二、OA系统二次开发的背景与必要性随着企业的不断发展,原有的OA系统难以满足企业的需求,因此二次开发变得必要。

OA系统的二次开发能够帮助企业实现定制化开发,扩展业务流程,提高工作效率。

三、OA系统二次开发的实践经验1.需求分析首先,必须对企业的实际需求进行深入的分析。

根据企业的需求,确定二次开发的具体内容。

在这个过程中,需要与企业的各个部门进行沟通,了解各个部门的实际需求。

同时,也需要考虑企业的未来发展方向,以避免二次开发后无法满足企业的发展需求。

2.技术选型根据需求分析的结果,选择最适合的技术进行开发。

选择适合的技术能够在开发过程中减少问题和错误,并可以提高开发效率。

同时,要考虑技术的成本与稳定性,确保二次开发的稳定性。

3.实现过程在实现过程中,需要注意代码的规范性与可读性。

在代码编写过程中,需要编写清晰的注释,遵循一定的命名规范,以便于其他开发人员进行维护与升级。

此外,需要注意代码的可扩展性,以便于后期的升级与拓展。

4.测试与部署在完成开发后,需要进行充分的测试与调试,确保所开发的系统与企业需求的一致。

同时,也需要根据部分区分不同的人群和权限设计相关的安全保护措施。

在完成测试后,进行系统部署,确保企业的正常运营。

四、OA系统二次开发的未来发展随着企业的不断发展,OA系统二次开发也将不断发展。

未来,OA系统的二次开发将更加注重企业的需求,更加注重技术的创新与应用,以更好满足企业的需求。

未来的OA系统二次开发将更加注重前端技术的应用,将更多地采用一些新兴的技术,例如React、Vue等技术。

OA项目总结4100字

OA项目总结4100字OA项目是一项旨在提高企业运作效率,实现信息化管理的重要项目。

自从公司决定开展OA项目以来,我们团队经过多次磨合,不断调整和改进,最终取得了不俗的成绩。

在此,我将对OA项目进行总结,并对过程中遇到的问题和解决方法进行分析,希望能够为未来的项目提供参考。

一、项目目标OA项目的目标是实现企业内部流程的数字化及信息化管理,旨在提高企业工作效率,降低管理成本,提高企业运作效率,促进企业健康发展。

在OA项目中,我们团队的目标是系统建设的高质量、高性能和高可靠性,实现使用者的易操作性和良好的用户体验。

二、项目规划OA项目规划是项目成功的基础,也是项目管理的第一步。

在项目开始前,我们制定了详细的规划,包括项目的时间节点、人员、预算、技术、目标等方面。

此外,我们还明确了项目的界面设计、系统架构、代码结构等重要规划内容。

项目规划的完成,为OA项目的顺利推进确立了基础。

三、项目实施和管理OA项目主要分为界面设计和系统架构两个部分。

我们对两个部分进行分别分析。

(一)界面设计:界面设计是OA项目的重要组成部分。

好的界面设计可以使用户在使用过程中感受到传递来的信息,进而达到目的。

在界面设计中,我们采用了许多现代功能,例如应用程序功能,涵盖了公共事务插件、财务管理信息、人力资源信息等。

界面设计最终得到了用户的高度评价,为我们的项目管理奠定了良好的基础。

(二)系统架构:系统架构是OA项目的心脏组成部分。

只有一个完美的系统架构,才能够保证项目逻辑的正确性、安全性和可靠性。

OA项目中,我们采用了分层架构思路,将项目逻辑和业务分别处理,大大提高了系统的安全性和稳定性。

此外,我们还进一步对系统细节和数据查询等流程进行了完善,并增添了一些功能模块,在项目的执行和管理中,使得数据的存储、查询、处理都更精准有效,促进了工作效率的提升。

四、OA项目管理经验(一)团队管理:在OA项目管理过程中,有几个方面是需要特别重视的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OAF开发总结OAF开发时总结的小知识点:一:设置方面的知识点1.width:在页面上分布的宽度成都,例如:50%(一半页面),100%(全部)2.required yes/or 是否必须填写3.disable client side validation true/false 是否需要进行客户端验证4.BC4Jview instance 指明需要使用的视图view Attribute 指明相对应的属性字段5.css class:OraBlcolumnHeader,OraTableCellText,OraErrorText6.clinet Action 用来控制刷新页面,传送相关参数7.Rendered true/false 显示/隐藏控件动态设置控件显示/隐藏的两种方式a.subBut.setRendered(true);b.第一步:(在某个视图中)新建一个参数,如IsRendered第二步:在视图的实现类中修改getIsRendered()方法,设置在指定情况下显示或隐藏,若视图名为CuxContractVO第三步:在页面布局中找到需要受控制的控件,设置Rendered的属性值为${oa.CuxContractVO1.IsRendered}8.forwardImmediately,setForwardURL两种跳转之间的区别forwardImmediately会停止当前页面的请求,直接跳转到新的页面,而setForwardURL 会等当前页面的请求结束后再跳转。

9.processRequest()加载页面时进行相应的处理(初始化数据)processFormRequest()用来处理页面发送的请求10.选择列表中控件的searchAllow为true表示允许用户在LOV值中进行查询选择,Selective Search Criteria为true保证了用户至少输入一个查询条件,防止用户盲目查询。

11.(String)a a.toString() 与String.valueOf(a)之间的区别(String)a:当a不为字符数据时,强制转换则会报错,另外两种方式则不会报错。

a.toString():当a为null时将会报错,另外两种方式则不会报错。

String.valueOf(a):如果a为null,返回结果为"null"而不是null。

12.传参数parametersName:empId Value:${oa.EmpVO1.EmpId}13.进行删除操作OAViewObject vo=this.getEmpVO1();Row row=vo.getFirstFilterRow("EmpId",empId);---empId为传进行的参数if(row!=null){row.remove(); }getTransaction().commit();14:动态设置页面的标题:MessageToken[] tokens = { new MessageToken("SUPPLIER_NUM", supplinum) };String pageHeaderText = pageContext.getMessage("CUX", "CUX_RATINGS_HEADER_TEXT", tokens);((OAPageLayoutBean)webBean).setTitle(pageHeaderText);消息的定义为:供应商评级:&SUPPLIER_NUM15:获取数据库序列的方法:OADBTransaction transaction = getOADBTransaction();Number seqno = transaction.getSequenceValue("JD_PURCHASER_RELATIONS_S");16:一般在做增删改时,数据库字段的验证和初始化要写在EO中的create函数中17.可以在程序中使用this.***来提示能够用到的函数和用法二:代码部分的知识点备注:在CO中一般不写具体代码逻辑实现,所有的实现代码都写在AM中,CO中只写相应的调用方法!!!1:变量类型之间的转换:(1):int =>其他类型Int xxxx;Number yyyy = (Number)xxxx;Number yyyy=new Number(xxxx);String yyyy = String.valueOf(xxxx);String yyyy = Integer.toString(xxxx);String yyyy = ""+xxxx;(2):number =>其他类型Number xxxx;Int yyyy = xxxx.intValue();int yyyy = (int)xxxx;String yyyy = ""+xxxx;String yyyy =String.valueOf(xxxx);(3):date =>其他类型Date xxxx;String yyyy= String.valueOf(xxxx); String yyyy= xxxx.toString(); (4):String =>其他类型String xxxx;int yyyy = Integer.parseInt(xxxx); int yyyy = Integer.valueOf(xxxx); try {Number yyyy = new Number(xxxx); }catch (Exception e) {}Number yyyy = (Number)xxxx;Date yyyy = Date.valueOf(xxxx);Date yyyy = (Date)xxxx;2:OAF之间的一些基本的实现方法:(1):一般在CO中不写具体的逻辑代码,要将所有的方法放到AM中,然后在CO 中调用AM中的函数或者过程。

具体的方法是:OAApplicationModule am = pageContext.getApplicationModule(webBean);调用过程:String useId = ""+useid;Serializable[] parameters = { useId };am.invokeMethod("init", parameters);(am.invokeMethod("init");)调用函数:String supplierid = Integer.toString(n);Serializable[] param = {supplierid};Serializable SupplierName = am.invokeMethod("GetSupplierName",param);备注:SupplierName 可以直接使用,类型取决于函数返回的类型例如:// Check to see if the "Go" button was pressed... if (pageContext.getParameter("gButton") != null) { // Get the search criteria String orderNumber = pageContext.getParameter("SearchOrder"); String created = pageContext.getParameter("Created"); String showMyOrders =pageContext.getParameter("MyOrders"); OAApplicationModule am =pageContext.getApplicationModule(webBean); // All parameters passed using invokeMethod() must be serializable. Serializable[] parameters = { orderNumber, created, showMyOrders }; am.invokeMethod("search", parameters); } }技巧:不要在服务端BC4J组件中调用invokeMethod(),任何你传递的参数必须是Serializable类型的。

上例中展示的的invokeMethod()方法需要的参数都是字符串。

如果需要传递其它对象类型,可以使用带一个类型数组参数版本的invokeMethod()。

比如:Class[] parameterTypes = { String.class, Hashtable.class, Number.class ...};am.invokeMethod("search", parameters, parameterTypes);3:页面上的变量或者项的获得和赋值方法:(1):链接上传入的变量的值:(OA.jsp?page=/oracle/apps/xxpos/xxpos5961/back/webui/CreatePG&BackNumber={@Ba ckNumber}&HeaderId={@HeaderId}&HeaderStatus={@HeaderStatus}&retainAM=Y&addBrea dCrumb=Y&UpdateFlg=Y)String backnumber = pageContext.getParameter("BackNumber");(2):得到页面上的item:OAMessageLovInputBean asnBean1 =(OAMessageLovInputBean)webBean.findChildRecursive("NumberFromSearch");String aa="";asnBean1.setValue(pageContext,aa);4:在CO中获取操作对象:4-1:得到当前AM的方法:import oracle.apps.fnd.framework.OAApplicationModule;*************************************************************** OAApplicationModule am = pageContext.getApplicationModule(webBean);4-2:得到VO的方法:import oracle.apps.fnd.framework.OAViewObject;***************************************************************** OAViewObject aappvo = this.getRatingsPVO1();(一般采用,效率高)OAViewObject voDetail = (OAViewObject)am.findViewObject("BackPVO1");4-3:得到VO当前行的方法:BackPVORowImpl rowDetail = (BackPVORowImpl)voDetail.getCurrentRow();4-4:得到VO当前行中某个字段的方法:String N = ""+rowDetail.getUserTypeID();(效率高,采用)String N = ""+rowDetail.getAttribute("UserTypeID");(效率不高,需要遍历查找)或者(合并2,3步,直接写成):Number headerid = (Number) voDetail.getCurrentRow().getAttribute("HeaderId"); String aaa = ((RatingsVORowImpl)ratingsvo.getCurrentRow()).getSrcSystem();4-5:得到VO某一行对应的EO的方法(seqno是EO主键):OADBTransaction transaction = (OADBTransaction)am.getOADBTransaction();OAViewObject ratingsvo = (OAViewObject)am.findViewObject("RatingsVO1");Number seqno = ((RatingsVORowImpl)ratingsvo.getCurrentRow()).getSeqNo();Object[] headerKey ={seqno};EntityDefImpl hdrDef = RatingsEOImpl.getDefinitionObject();RatingsEOImpl hdrEO =(RatingsEOImpl)hdrDef.findByPrimaryKey(transaction,new Key(headerKey));4-6:得到EO中的某一ITEM:String aaa = hdrEO.getSupplierNo();4-6:循环VO中行记录的方法:import oracle.jbo.Row;*******************************************************************OAViewObject vo = (OAViewObject)am.findViewObject("PhaseVO1");Row lineVO=vo.first();while ( lineVO != null) {lineVO.setAttribute("SupplierNo",supplinum);lineVO = vo.next();}*******************************************************************5:在AM中获取操作的对象方法:5-1:获取VO的方法:RatingsEbsVOImpl vo = getRatingsEbsVO1();5-2:其他同上6:AM中调用plsql包的方法是:调用函数且返回值:public String get_header_status(String headerid){String result;OADBTransaction oadbtransaction = (OADBTransaction)getDBTransaction();String s = "BEGIN :1:=xxpos_5961_back_process_pkg.get_header_status(p_header_id => :2); END;";OracleCallableStatement oraclecallablestatement = (OracleCallableStatement)oadbtransaction.createCallableStatement(s,1);try{oraclecallablestatement.registerOutParameter(1,OracleTypes.VARCHAR);oraclecallablestatement.setString(2,headerid);oraclecallablestatement.execute();result=oraclecallablestatement.getString(1);}catch(Exception exception1){throw OAException.wrapperException(exception1);}finally{try{oraclecallablestatement.close();}catch(Exception _ex){}}return result;}调用过程:public void setvaluesequence(String headerid){System.out.println("set value sequence is 1111"+headerid); OADBTransaction txn = getOADBTransaction();CallableStatement cs =txn.createCallableStatement("beginxxpos_5961_back_process_pkg.seq_setvalue(p_header_id =>:1); end;",1);try {cs.setString(1,headerid);cs.execute();cs.close();}catch (SQLException sqle){throw OAException.wrapperException(sqle);}}调用函数不返回值:public void delete_reserve(){OAViewObject voDetail = (OAViewObject)findViewObject("DetailHeaderVO1");DetailHeaderVORowImpl rowDetail =(DetailHeaderVORowImpl)voDetail.getCurrentRow();String headerid = ""+rowDetail.getHeaderId();String result;OADBTransaction oadbtransaction = (OADBTransaction)getDBTransaction();String s = "BEGIN :1:=xxpos_5961_back_process_pkg.delete_reserve(p_header_id => :2); END;";OracleCallableStatement cs =(OracleCallableStatement)oadbtransaction.createCallableStatement(s,1);try {cs.registerOutParameter(1,OracleTypes.VARCHAR);System.out.println("headerid si si sis wangshue"+headerid );cs.setString(2,headerid);cs.execute();result=cs.getString(1);}catch(Exception exception1){throw OAException.wrapperException(exception1);}finally{try{cs.close();}catch(Exception _ex){}}if ("F".equals(result)){throw new OAException("XXPOS", "FWK_TBX_DELETE_RESERVE_FAILURE"); }}。

相关文档
最新文档