Oracle EBS OA Framework

合集下载

中英文翻译OAFramework介绍

中英文翻译OAFramework介绍

OA Framework 介绍Oracle应用框架(Oracle Application Framework--OA Framework)是基于HTML的Oracle应用开发和调度平台的商务应用。

OA Framework是由中间运行时间服务层和被叫做oracle应用的扩展(OA Extension)的设计时间扩展到Oracle9i JDeveloper。

在Internet发展的最近几年里,软件产业目睹了一次迅速改变的技术的流入。

这些技术已经比较成熟,但是现在还有无数的难以学习和实现的较低级和复杂的技术。

在这种情况下,OA Framework已经形成了一种为发展中的和基于HTML的电子商务(E-Business Suite)的配置的综合型的平台,调控技术的发展没有与它的复杂性联系。

从它的起初开始,OA Framework 包含了下面的原则:∙最终用户生产力这种变化使得从客户端-服务器到多层的调度中带来了更多的成本节约,但并不是没有折衷。

基于HTML 的应用程序的起初非常像旧的大型机终端,在客户端的行为导致一个环形的中间层出现。

随着时间的流逝,用户界面的相互作用被改良。

OA Framework总是保持用户界面的相互作用的最高优先级的特色就像是局部页面描述(PPR),热键,灵敏的选项列表和带值的自动完成的域的列表。

另外,Oracle还集合了大量的关于用户行为和心理学的资源和专业技术,为了发展一套用户界面的布局和交互作用标准,就如同众所周知的BLAF (Browser-Look-And-Feel)指导方针。

BLAF的默认外观和感觉在所有的OA Framework 应用程序中是假定的,但是可以使用很多方式满足用户绑定和风格要求进行个性化。

BLAF 标准的OA Framework实现生产统一的用户的体验和提高用户在未来的生产力。

∙企业级的性能和可伸缩性OA Framework有积极的性能和可伸缩性对象。

大多数的Oracle电子商务套件应用页面具有与用户相互作用的附属秒的响应时间。

oracleEBS各模块流程图

oracleEBS各模块流程图

Oracle_ERP模块1、Oracle ERP主要模块:2、Oracle ERP 模块清单:<1>、财务系统模块:♦Oracle 总帐管理(GL)♦Oracle 应付帐管理(AP)♦Oracle 固定资产管理(FA)♦Oracle 应收帐管理(AR)♦Oracle 现金管理(CE)♦Oracle 项目会计(PA)♦Oracle 财务分析(OFA)<2>、分销系统模块:♦Oracle 库存管理(INV)♦Oracle 采购管理(PUR)♦Oracle 销售定单管理(OE)♦Oracle 销售&市场管理(SM)♦Oracle 销售补偿管理(SC)♦Oracle 售后服务管理(SR)♦Oracle 销售分析(OSA)<3>、制造系统模块:♦Oracle 计划管理(MPS/MRP)♦Oracle 能力计划管理(CAP)♦Oracle 制造数据管理(BOM)♦Oracle 车间生产管理(WIP)♦Oracle 成本管理(CST)♦Oracle 项目制造(PJM)♦Oracle 流程制造(OPM)♦Oracle 质量管理(QM)<4>、其他系统模块:♦Oracle 设备管理(EM)♦Oracle 人事管理(HR)♦Oracle 薪金管理(PAYROLL)♦Oracle 系统管理(SYSTEM ADMIN)♦Oracle 预警(ALT)♦Oracle 多维数据分析/商业智能系统(OLAP/BIS)♦Oracle 桌面集成(ADI)5、Oracle Applications:6、Oracle 行业模型:离散制造7、Oracle 主要业务流程:•Design to Release•Forecast to Plan•Plan to Schedule•Schedule to build•Procure to Pay•Order to Cash•Inventory to Fulfillment•Cost•Quality8、概念到发布:9、预测到计划:10、采购到支付:11、需求到制造(离散):12、订单到收款:13、库存到履约:14、Oracle 整合企业日常作业流程:15、Oracle Inventory (库存管理系统):16、Oracle Bill of Materials (物料清单及制程管理系统):17、Oracle Work In Process (生产管理系统):18、Oracle Planning (MPS/MRP管理系统)19、Oracle Cost Management (成本管理系统)20、Oracle Purchasing (采购管理系统)21、Oracle Order Entry (订单管理系统)22、Oracle General Ledger (总帐管理系统)23、Oracle Payables (应付帐款管理系统)实用标准文案精彩文档 24、Oracle Receivables (应收帐款管理系统)25、Oracle Assets (固定资产管理系统)。

Oracle EBS应用技术架构

Oracle EBS应用技术架构

BAW 数据模型
通用 适配器
文件,DB Hyperion MS Excel 任何数据来源
企业应用所应具有的特性
先进的应用体系架构
(保护投资,延长系统生命周期)
全新用户界面体验
全面开放、灵活集成
更快、更准决策支持
端对端安全保护
敏捷业务流程
轻松管理,减少TCO
企业级主数据管理
可靠、坚实的IT基础
强大的灵活性满足企业和业务发展需求
• 协作
• • • • • E-Mail 及时消息 共享工作空间 网络会议 讨论、Wiki, Blogs,
及时消息
电子邮 件
• 内容管理和搜索
• 文档管理系统 • 企业安全搜索
上下文相关的 图表 讨论 文档 社区
全面集成企业安全搜索(SES)
象Google一样快速找到所需信息 • 通用搜索工具条 • 透明搜索结构化和非结构化数据 (如word、pdf) • 利用Oracle应用的安全控制 • 轻松过滤搜索结果或分组 • 可直接钻探到相关应用内容/交易界 面
同时提供全面开发工具和开发框架,进行更深层次定制
工作流引擎驱动的业务流程管理
内置最佳业务实践
一个可修改的、流程驱动的架构
BIS Management by Exception Receivables Credit Memo Request Approval Web Customers Self-Service Registration Approval Order Entry Review Order Management ATO Change Order Management Planning Planning Exception Message Project MFG Indirect/Capital Project Definition Contract Project Definition Process Manufacturing Quality Control Sample Creation Notification Quality Control Sample Acceptance Quality Control Assay Testing Item Activation Web Employees Expense Reporting Candidate offer Approval Employee Direct Access Peron Search Person Suitability Match Career management Reviews 360 Degree Assessment Receipt Confirmation Requisition Approval *PO Receipt Confirmation *PO GL Journal Approval Step-Down AutoAllocations Global InterCompany System Payables AP Open Interface import Credit Card Transaction Employee Credit Card Transaction Manager Expense Reporting Projects Project Approval and Status Change Budget Approval Purchasing Document Approval Automatic Document Creation Change Orders Procurement Send Notifications Price/Sales Catalogue Notification Oracle Service Service Request Service Request Actions and Dispatch Field Service Dispatch Federal HR GHR Personnel Action GHR Position Description GHR Within Grade Increase Web Suppliers Self-Service Registration Approval Engineering Engineering Change Orders Task Flow Item Type

泛微协同OA与OracleEBS集成应用解决方案XXV10

泛微协同OA与OracleEBS集成应用解决方案XXV10
将员工或者领导常用的一些操作界面直接嵌入OA门户中,员工不需要登陆Oracle就可以完成Oracle系统信息的的查询
泛微协同OA与OracleEBS集成应用 解决方案XXV10
Integrated Application of General Content 实现技术:SSO+WebLink
门户页面的自定义页面元素配合集成登陆可以实现直接将Oracle中先有的操作界面嵌入到e-cology门户中
+ + + + OS(操作系统) DB(数据库) App server(应用服务) web server(web服务) 中间件
+ + + DB server(数据库服务器硬件)
App server(应用服务泛器微硬协件同)OA与O网ra络cle&EB存S储集成设应备用 宽带接
解决方案XXV10

Integrated Application of General Content
泛微协同OA与OracleEBS集成应用 解决方案XXV10
Integrated Application of General Content 统一组织用户管理
通过组织同步,可把Oracle中行政维度下的组织单元按照上下级关系分别同步到e-cology中总部、分部、部门; 通过岗位、用户信息同步,可自动把Oracle中人员对应的用户信息以及岗位同步到e-cology对应信息中 两套甚至以后的多套系统只要维护管理一套组织用户数据,最大可能降低人力资源数据的维护! OA帐号与AD帐号集成,AD帐号+Oracle员工信息+OA权限信息 构成该员工的完整信息
泛微协同OA与OracleEBS集成应用 解决方案XXV10

OAF国际化

OAF国际化
Internationalization (i18n)是如何在OA Framework中实现的
1、 概要
国际化在大部分的应用软件中都需要考虑的问题,特别是多语言支持。国际化在Oracle EBS中已经进行了很好的实现,所以在实施Oracle EBS中,大多数情况并不会考虑国际化的问题。当然,一般情况下,国内客户大部分没有国际化的需求,所以大部分的客户化开发是基于本地语言的,都不会考虑这方面的问题。但对于国际化大公司来讲,国际化就显得非常重要,让一个美国人只能看到中文界面,那是绝对不能够被接受的。所以,面对国际化的企业,Oracle EBS的国际化需要进一步的解释。此文档主要解释如何在OA Framework中实现国际化,以及OA Framework中使用到的相关技术。其他技术如何实现国际化,比如Form、Report,请参阅the Oracle Applications Globalization Guide。
Localization (l10n)
本地化(Localization)是指通过增加本地描述的构件(locale-specific components )和文字翻译工作来使应用程序适应于不同的语言和地区的过程。本地化被简称为l10n,应为有10个字母在本地化的英文单词的字母l和n之间。通常本地化最耗时的工作应该是文字翻译。本地化工作者们要根据地区的具体需求来为日期、数字和通货等数据建立新的格式。
6) 另存此文件为“原文件名_zh_CN.xlf”,使用xliffimport工具将此文件导入到MDS中。使用方法见示例。
以上步骤可以完成单一页面的国际化功能,但存在这样一个问题,如果有多个页面都用到TaskName这个组件,那样,我需要在这些页面中都进行翻译,这是一个大问题;这样做还会导致另外一个问题的出现,如果TaskName的翻译修改了,比如修改为“任务”,那么我需要在出现TaskName的文件中都进行修改,这显示不是好方法。解决以上问题的办法是使用Attribute Sets,将上述步骤修改为:

OracleOAF开发指南第一章

OracleOAF开发指南第一章

1.说明此手册适用于Oracle EBS r12下的OAF开发。

OAF是Oracle Application Framework的简写。

下面的5856648的patch包名称为:Jdeveloper with OA Extension。

在R12中,OAF的开发也不在像11.5.10中,是基于Oracle Jdeveloper9.0.3版本上,而是升级到了新的Oracle Jdeveloper10g上了。

Metalink上OAF的Patch Number:5856648。

下载p5856648_R12_GENERIC.zip即可。

本文档中默认解压到E盘根目录下。

下载解压后p5856648_R12_GENERIC文件夹下有三个目录:jdevbin、jdevdoc、jdevhome,其中jdevbin中是jdeveloper10g with OA Extension的程序文件和OAF的类库,jdevdoc中存放Javadoc手册和OAF培训文档,jdevhome存放oaf用户文件和虚拟的oaf环境。

Jdevdoc目录下的文档结构如下:E:\p5856648_R12_GENERIC\jdevdoc\index.htm 打开教程文档E:\p5856648_R12_GENERIC\jdevdoc\javadoc\fwk\public\index.html包含OA Framework JavadocE:\p5856648_R12_GENERIC\jdevdoc\javadoc\aolj\index.html 包含AOL/J的Javadoc注:AOL/J类似于Form平台下的AOL,其实现方式升级为Java。

E:\p5856648_R12_GENERIC\jdevdoc\javadoc\bc4j\index.html 包含BC4J的Javadoc注:BC4J为Business Component for java的简写。

ebs系统架构简介1——三层结构上篇

ebs系统架构简介1——三层结构上篇

ebs系统架构简介1——三层结构上篇《 Applications DBA 基础》3- 4 系统架构及基本系统管理知识1. 系统架构介绍==============Oracle 的applications 主要包括⼀个⽂件系统,⼀个数据库:⽽⽂件系统包括:forms(⽤来交互和更新数据)、reports(⽤来显⽰标准的输出数据)、⼀致性程序(提供了⼤容量、⾮交互的数据更新操作)、程序和sql脚本(管理这个系统)、html和java(⽤来显⽰⽤户界⾯和实现商业应⽤)数据库包括:数据对象(表、索引等)、代码对象(sql、plsql块,过程、函数、触发器)分层架构分析:1、Desktop Tier:Oracle applications 的架构是 multi-tier 的。

不同层有不同的 components 如下:在Desktop Tier 上既有典型的HTML界⾯⼜有传统的 FORMS 界⾯。

FORMS界⾯通过Forms client Applet (Java client Applet的⼀种)与应⽤服务器联系,下载有关的JAR file。

原来的11i 需要 Oracle 专⽤的JVM,叫 Jinitiator。

R12 中只需要标准的 J2SE plugin JVM。

JAR ⽂件包含了所有需要的类⽂件,⽤来显⽰ebs所有描述性的form表单。

对于form 客户端的applet,⼀般常⽤的jar⽂件在第⼀次session的时候就会下载到本地;但是对于不常⽤的jar⽂件,使⽤的时候才会下载下来。

所有下载下来的⽂件都会cache到本地的客户端,以供后续的会话使⽤,具体的cache⽬录如下:<HOMEDRIVE>\Documents and Settings\<Windows User Name>\Application Data\Sun\Java\Deployment\cache 我⾃⼰的在这个⽬录⾥:C:\Users\liu\AppData\LocalLow\Sun\Java\Deployment\cache在R12中,我们可通过java插件的控制台(从哪个java图标点——打开控制⾯板——⾼级——java控制台)所有对jar⽂件的更新都会被安装到应⽤层,然后才会被⾃动下载到客户端那⼀层。

深入浅出Oracle之OAF开发参考

深入浅出Oracle之OAF开发参考

Oracle ERP最佳实践E-BUSINESS SUITEORACLE核心应用技术OAF开发参考Author: 赵振坤Creation Date: April 26, 2013Last Updated: April 25, 2022Document Ref: <Document Reference Number>Version: 1.0Approvals:<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 yourname on the equivalent of the cover page, for document control purposes.If you receive a hard copy of this document, please write your name on the frontcover, for document control purposes.ContentsDocument Control .................................................................................................................. i i 1.深入浅出OAF –入门篇 (4)1.1.OAF简介 (4)1.2.环境搭建 (7)1.3.HelloWorld (10)1.4.一个简单的查询 (19)1.5.应用发布 (28)1.6.编码规范 (30)2.深入浅出OAF -基础篇 (32)2.1.实现增删改 (32)2.2.数据校验 (54)2.3.常用布局 (57)2.4.常用组件 (69)2.5.常用JAVA代码 (81)2.6.使用CSS和JS (83)3.深入浅出OAF -中级篇 (84)3.1.纯代码添加组件 (84)3.2.PPR的使用 (84)3.3.OAF和Form相互调用 (87)3.4.OAF个性化 (89)4.深入浅出OAF –高级篇 (95)4.1.探究MVC (95)4.2.实体对象 (99)4.3.视图对象 (104)4.4.BC4J对象缓存 (108)4.5.解析OAF页面元数据结构 (111)5.Reference (116)6.Open and Closed Issues for this Deliverable (117)Open Issues (117)Closed Issues (117)1.深入浅出OAF –入门篇1.1.OAF简介1.1.1.概述1)Oracle Application Framework(OA Framework)是Oracle提供的基于HTML应用的开发和发布平台2)OA Framework由一系列的中间层服务和Oracle JDeveloper的扩展(OracleApplications Extension, OA Extension)组成3)OAF使用Oracle Business Components for JAVA(BC4J)框架作为其模型部分,来实现业务逻辑和数据操作。

OAF基础教程

OAF基础教程
Oracle Application Framework
HARwork 简介 解决方案概述
安装开发环境 OA Framework MVC介绍 概述:数据“增删改查”的实现
OAF简介
Oracle OA Framework是Oracle EBS 11i和R12版本下Web应用程序的应用 框架。(基于EBS) OA Framework采用业界最流行的MVC(Model-View-Controller)架构模式。 模型:封装底层数据和业务逻辑 视图:向用户展示格式化的模型数据 控制器:响应用户动作及控制应用流程导航
OA Framework MVC介绍
3) 视图对象
封装数据库查询
提供查询结果集上的遍历 主要基于实体对象
也可以为特定类型的任务基于一个普通的SQL
如果用户界面用于更新,视图对象也可以基于多个实体对象 提供单点联系来得到和获取实体对象值
多个视图对象可以通过视图链接链接在一起
说明:视图对象的属性可以基于实体对象,也可以基于SQL查询字段,基 于实体对象的属性的更改可以同步到数据库中,而基于SQL查询字段的属 性的变更不能保存到数据库中。
概述:数据“增删改”的实现
删除记录 删除记录是通过在VO的行集中找到要删除的行,然后调用Row.remove() 方法。 Toolbox例子中演示了RowSetIterator的用法,通过为VO创建一个迭代器来 循环每一个行。那么不创建RowSetIterator,而直接循环VO是否可行呢? 实际上也是可以的,但是需要注意的是,不能使用while (vo.hasNext())这 样的循环,因为VO缓存中并不会把所有的行都从数据库中提取到缓存中, 如果使用while循环,会使所有的行都提取到缓存中,可能会因此带来性能 问题。我们应该在当前返回的记录中去循环,类似于使用RowSetIterator。 除了这个方法,使用VO.findByKey()方法是一个好的选择,相比循环VO每 一行去查找,和只在主键中查找,显然在主键中查询更有效率,但是当匹 配条件不是主键时,就不能使用该方法了。

OracleEBS_R12-OAF开发笔记(解密版)

OracleEBS_R12-OAF开发笔记(解密版)
ORACLE EBS R12 —OAF开发笔记
Author: Jarwang(王重东) Create Date: November 12, 2010 Update Date: Control No: Current Edition: 1.0
声明:本文可以任意免费转载、复制、传播。但您务必保持其完整性! If you copy this document,you ought to keep the document completely.
Configure EBS—OAF Environment................................................................................ 6 Verify EBS—OAF Environment ...................................................................................... 8
OAF Development .......................................................................................................... 15
OAF—Import Excel.................................................................................................. 15 Create OA Project ........................................................................................................... 15 Set Run Options in OA Project Settings ........................................................................ 16 Create Data Table............................................................................................................ 17 Create the AM Object ..................................................................................................... 17 Create the VO Object ...................................................................................................... 17 Add VO Object to AM.................................................................................................... 19 Create the Page ............................................................................................................... 19 Installation Thirty Jar...................................................................................................... 22 Create the Java Class for xls........................................................................................... 23 Create the Java Class for csv .......................................................................................... 23 Create the CO Object ...................................................................................................... 24 Create Methods in AM ................................................................................................... 29 Run PG ............................................................................................................................ 31 Deploying OAF............................................................................................................... 32

Oracle EBS环境下查找数据源1

Oracle EBS环境下查找数据源1

Oracle EBS环境下查找数据源(OAF篇)2:00 pm in Oracle EBS二次开发 by aronezhang在OAF页面的查找后台的数据源相对于在Form中显得更加麻烦,同时也无法像Form中那样能够较为准确的定位,但是也能够查找出大部分的内容。

本文介绍如何使用OAF提供的诊断功能来快速查找OAF页面对应的数据库对象:1.关于本页功能(About this Page)2.SQL Trace功能一、使用关于本页功能(About this Page)前提:在用户层设置预制文件:Personalize Self-Service Defn的值为Yes 来启动个性化模式步骤:1.点击OAF页面左下角的“About this Page”链接2.进入关于页面中,展开Page Definition部分的页面结构,页面的结构会随着页面定义有所不同3.或者选择Business Component References Details部分中的View Object定义4.查看View Object列中的信息,组件引用的视图对象会有链接,直接点击链接进入视图对象页面5.视图对象详细信息中的SQL就是创建视图对象的语句,查看它就可以知道页面组件对应的后台数据源6.通过选择不同的视图对象查看对应的定义实例(找出PO Document Types页面中对应的后台数据库对象):1.点击Document Types页面左下角的About this Page链接2.进入About Page页面后,展开页面定义部分为如下的结构3.点击PoAllDocumentTypesVO视图对象链接进入视图对象定义详细页面4.另外也可以在About Page页面中展开Business Component ReferencesDetails,然后选择下面的视图对象:oracle.apps.po.setup.server.PoAllDocumentTypesVO5. 通过视图对象详细页面可以得到SQL?[Copy to clipboard]View Code SQL1 2 3 4 5 6 7 8 9 1011121314151617181920212223SELECT podocumenttypeseo .document_type_code ,podocumenttypeseo .org_id ,podocumenttypeseo .document_subtype ,podocumenttypeseo .document_template_code , podocumenttypeseo .contract_template_code , xtv1.template_name AS document_types_layout , xtv2.template_name AS contract_terms_layout , plc1.displayed_field || ' ' || plc2.displayed_field AS TYPE ,decode (podocumenttypeseo .document_type_code , 'RFQ', decode (podocumenttypeseo .document_subtype , 'STANDARD', 'DeleteDisabled', 'CATALOG', 'DeleteDisabled', 'BID', 'DeleteDisabled', 'DeleteEnabled'), 'QUOTATION', decode (podocumenttypeseo .document_subtype , 'STANDARD', 'DeleteDisabled',24252627282930313233343536373839404142434445464748'CATALOG','DeleteDisabled','BID','DeleteDisabled','DeleteEnabled'),'DeleteDisabled')AS delete_switcher,podocumenttypeseo.type_nameFROM po_document_types_all_vl podocumenttypeseo,xdo_templates_vl xtv1,xdo_templates_vl xtv2,po_lookup_codes plc1,po_lookup_codes plc2WHERE xtv1.template_code(+)=podocumenttypeseo.document_template_codeAND xtv2.template_code(+)=podocumenttypeseo.contract_template_codeAND podocumenttypeseo.document_type_code = plc1.lookup_codeAND plc1.lookup_type ='DOCUMENT TYPE'AND podocumenttypeseo.document_subtype =plc2.lookup_codeAND plc2.lookup_type =decode(podocumenttypeseo.document_type_code,'REQUISITION','REQUISITION TYPE','RFQ','RFQ SUBTYPE','QUOTATION','QUOTATION SUBTYPE','DOCUMENT SUBTYPE') AND _id = :1二、使用SQL Trace功能只要发生数据库操作,都可以使用SQL Trace功能来跟踪数据库操作统计,OAF 页面中也需要进行数据库的增删查操作,因此可以可以使用它来跟踪。

OracleEBSOAFramework

OracleEBSOAFramework

OracleEBSOAFrameworkOracleEBSOAFramework(一)开发环境搭建关键字:OracleEBSERPOAFrameworkOAF关键字:最近公司开始了一个OracleERP二次开发项目,使用的是EBSR12版本,这个版本由于比较新,从这个版本中可以看到OracleERP二次开发的主要技术有向Web方面发展的趋势,其中主要使用的就是OracleOAFramework应用框架.网上这些资料不好找,我通过查看OAFrameworkGuide整理了一些文档,后面陆续会发布到blog中与大家共享.内容基本上是按我的学习顺序组织的,学到哪里写到哪里,由于是初学OAFramework,而它又与我们通常接触的开源框架差异较大,因此理解上难免出现偏差,有不正确的地方请大家指正.由于系统的限制,不能发过多的插图,文章中的插图没有全部贴上来,这些插图都来自于OAFrameworkGuide.环境塔建按以下几个步骤:1.从MetaLink上下载p5856648_R12_GENERIC.zip2.从你的EBS服务器上下载dbc文件,比如我的dbc位置/u02/prod/inst/apps/PROD_ebs/appl/fnd/12.0.0/secure/PROD.d bc3.启动JDeveloper,从JDeveloper解压目录中找到ToolBox工程,初次打开时会提示代码更新.4.在工程的属性中找到OracleApplications配置好DatabaseConnection.5.在工程的属性中找到OracleApplications->RuntimeConnection页,将DBCFileName设置为从服务器上下载的dbc文件.UserName和Password为登录ebs 环境时使用的用户名和密码.Responsibility中设置好开发所使用的应用简称和职责.这个职责只需要是UserName所具有的职责就可以了.Page基础在浏览器看来,OAFramework页面与其它web页面一样,被渲染为HTML.在中间层中,页面是由内存中层级分布的Javabeans组成——非常像传统的Java客户端UI.每个UI构件,比如按钮,表格,tab,商标图像等,被渲染为页面中对应的构件.浏览器向一个页面发出请求时,Framework读取页面定义的元数据创建webbean结构.OA每个bean与一个UI控制器关联,Framework 调用你编写的代码初始化页面.OA页面处理完成后,FrameworkOA将webbean结构交给UIX框架处理以生成发送给浏览器的HTML.当浏览器发出一个表单提请求时,OAFramework重新创建bean 及其层次结构(只在必要的时候才重新创建,通常这些bean是被缓存的,只在特定的情况下才重新创建),然后调用为pagebean编写的事件处理代码.当页面处理完成后,页面HTML重新生成并发送给浏览器.OAFrameworkMVC架构:模型Model模型包括下层的数据和应用业务逻辑.它也提花了现实世界对象和应用服务间的抽像层.应用模块ApplicationModulesBC4j应用模块本质上是一个容器,它管理和提供对"相关"BC4J模型对象的访问.这里的"相关"指的是同一个任务中的参与者.比如所有的BC4J对象在同一个任务中参与同一个事务——即使对应的用户界面需要用户访问多个页面.应用模块:应用模块是oracle.apps.fnd.framework.server.OAApplicationModuleImpl类的子类.每个OAFramework页都有一个根(root)应用模块,它与最顶层的页面区域(pageregion)关联.根应用模块提供事务环境和连接数据库.如果多个页面参与同一个物理或虚拟事务,它们应该共享相同的根应用模块.如果一个页面功能不依赖于其它东西,它需要拥有自己的应用模块.注意:注意:一个根应用模块可能包含一个或多个嵌套的应用模块,可以嵌套任意多的层次.这种情况下,根应用模块可以访问它包含的子对象的数据和对象,所有子对象共享根应用模块的事务.你可以在创建需要重用的与数据库操作相关的UI区域时使用这个功能.实体对象(实体对象(EntityObjects)和关联对象(AssociationObjects))和关联对象()BC4J实体对象包含了业务规则(校验,动作等)与数据库表中的一行关联.注意:注意:实体也可以基于视图,同义词,快照而定义.OAFramework支持Java和PL/SQL实体.实体对象:多数实体是oracle.aps.fnd.framework.server.OAEntityImpl的子类(PL/SQL继承于特殊版本的OAEntityImpl).表和实体对象一一对象,所有实体应该包含与之关联的表的所有列.实体对象使用映射了它的属性和数据库列,并自动实现了查询,插入,更新,删除等操作.多数情况下,我们只需要添加校验逻辑.实体对象可以用于任何程序(不限于OAFramework).关联对象AssociationObjects用于定义实体间的关系.视图对象(视图对象(ViewObjects)和视图链接(ViewLinks))和视图链接()BC4J视图对象处理数据库查询.查询执行后,视图对象提供了访问它的结果集的功能.结果集包含了一个或多个视图行,视图行与数据库查询的行相对应.视图对象:所有的视图对象都是oracle.apps.fnd.framework.server.OAViewObjectImpl类的子类.视图对象可以配置为使用下面的策略查询数据:它的属性映射到简单的SQL语句的列(通常用于小的只读的视图对象)它的属性映射到实体对象的属性(用于插入,更新和删除实体)一些属性映射到实体对象,一些直接映射到SQL(用于增加实体临时数据,这些数据不能通过实体获得,比如计算值或用于UI显示需要)在OAFramework应用中,将在下面情况下使用视图对象:呈现用于优化用户界面细节的数据.如果用户界面支持实体的插入,更新,删除,你将通过视图对象执行这些操作.为poplists,listsofvalues和其它UI组件创建简单的查询.为业务逻辑创建有效的"校验查询(validationqueries)".比如,在定单处理时使用一个校验视图对象获得最大可以购买的商品数量.可以为视图对象编写代码用于实现复合查询或查询时的数据绑定(以便视图对象知道怎样"查询"自己).视图链接ViewLinks与实体对象类似,也可以为视图对象建立关联,称为视图链接(viewlinks).比如可以在定单头视图对象和定单内容间建立视图链接对象.这可以用于在运行时访问定单头时自动查询定单内容.OADBTransactionOADBTransaction:注意:注意:准备的来说这个图应该要包含实现类oracle.apps.fnd.framework.server.OADBTransactionImpl替代oracle.apps.fnd.framework.OADBTransaction接口.如图所示,OADBTransaction扮演的是模型中的中心角色,因为它与一个根应用模块关联,管理JDBC连接/数据库会话,直接拥有你创建的任何实体(根应用模块拥有的视图对象中的行指向实体对象).可以使用OADBTransaction在模型代码中完成下面的操作:创建一个语句执行PL/SQL函数和存储过程访问应用会话级环境信息(session-levelApplicationcontextinformation),比如:用户名,id,当前责任(resposibility)等.访问一个oracle.apps.fnd.framework.OANLSServices对象,如果你需要page2执行NLS操作,比如转换服务器时间到用户日期/时间等.可以通过根应用模块访问OADBTransaction.视图视图格式化当前模型数据给用户.定义页面在OracleApplications开发时,将使用XML页面定义文件.当产品发布后,OAFramework从数据库获取页面定义.使用JDeveloper定义的页面(pages)由区域(regions)和条目(items)组成.条目是简单的构件,比如按钮,输入域,图像等,它不包含子构件.区域是容器对象它可以包含条目和其它区域.比如区域包含文件头(headers),表格和特别的布局组件(layoutcomponents).定义的每个区域和条目都有style属性,它告诉OAFramework使用哪个webbean对象来描述它.比如,如果你定义区域的style属性为"table",OAFramework将使用oracle.apps.fnd.framework.webui .beans.table.OATableBean.所有页面必须有一个单一的top-levelregion(通常称为"rootregion")它的style为pageLayout.它将使用/doc/be11231430.html,yout.OAPageLayoutBea n.regions和items显示在JDeveloperpagetree中的顺序告诉了Framework将这些对象添加在什么位置.属性集AttributeSets每个region或item通过使用attributesets可以继承一组属性集合.attributesets是一个被命名的属性的集合,可重用于任何UI对象,包括:regions,items和其它属性集.当使用attributesset创建UI时,你可以覆盖所继承的属性.组件重用如果需要在页面使用共同对象,可以简单的从它继承.比如,可以创建一个通用的region.新建region时,将新region的Extends属性设置为通用region 的命名.注意:注意:共享的通用region 在引用它的page中是不可编辑的,属于它的选项目在JDeveloper中将显示为灰色.数据源绑定对于需要与数据库交互的bean,你需要指定数据源,将它绑定到ViewInstanceName,并关联好ViewAttributeName.这个绑定是至关重要的,因为OAFramework使用它获取数据,并将用户输入的数据写入下面的视图对象.ViewInstanceName指向当前上下文环境中包含应用模块中的视图对象(所有视图对象"生活"于一个应用模块中,在包含它的容器对象中有一个实例变量名).比如,如果SuppliersVO视图对象,在页面的根应用模块中有一个实例变量"MySupVO".ViewAttributeName指向视图对象中映射到数据库列的属性.定义菜单定义页面流个性化页面控制器控制器响应用户动作控制应用流转.控制器可以与视图中的region级的对象关联(任何实现oracle.apps.fnd.framework.webui.beans.OAWebBeanContainer 的OAFrameworkwebbean都可以与控制器关联).控制器是oracle.apps.fnd.framework.webui.OAControllerImpl的子类.控制器代码的行为:生成/初始化UI中途截取或处理用户事件,比如按钮按下请求处理当浏览器向OA.jsp请求一个页面时:1.oracle.apps.fnd.framework.webui.OAPageBean(OAFramew ork主页面处理类)根据请求的页面名称检查需要哪个根应用模块,并从应用模块池(applicationmodulepool)中取出.这个应用模块将为页面从JDBC连接池中获取连接和事务上下文.2.用户会话校验;如果无效,将显示登录页面(这里是简化的说法,具体细节在Developer'sGuid 中有说明).3.如果用户有效,OAPageBean根据请求参数处理HTTPPOST或GET.处理GET请求当浏览器发起GET请求一个page时(或你手工forward时),OAFramework使用描述的UI定义构建webbean层级结构:page31.OAPageBean调用页面的top-levelpageLayoutbean的processRequest()方法,然后进入webbean层级结构中继续递归调用来初始化webbeans(包括任何相关的模型组件).1.每个webbean可以有自己的控制器,如果有就调用控制器的processRequest(OAPageContextpageContext,OAWebBeanwebBean)方法.这个方法可以用于构件或修改页面布局,设置webbean属性和执行任何手工的数据初始化工作(比如,打开页面时自动执行查询).2.一些复杂的webbeans(比如:oracle.apps.fnd.framework.webui.beans.table.OATableBean和oracle.apps.fnd.framework./doc/be11231430.html,yout.OAPageLayoutBea n)通过调用它们的prepareForRendering()(这个方法在JavaDoc中的说明)方法执行post-controller处理.3.每个webbean调用它的子对象的processRequest()方法.2.oracle.apps.fnd.framework.webui.OAPageBean将webbean结构传递给UIX渲染并发送给浏览器处理POST请求当浏览器向服务器页面发出POST请求时:1.OAPageBean检查webbean层级结构是否在内存中.如果没有它就像在GET请求中一样创建一个webbean层级结构.2.OAPageBean调用整个层级结构中的webbean的processFormData(OAPageContextpageContext,OAWebBeanweb Bean)方法,并将form中的数据写入模型(它在pageLayoutregion上调用processFormData(),然后在它的子对象上递归的调用processFormData()方法).将form数据写入模型时将自动调用属性和实体级别(attributeandentity-levelvalidations)的校验,如果抛出了任何校验异常,处理将停止,错误信息将显示给用户.3.如果在执行processFormData()期间没有异常抛出,OAPageBean将使用与上面相同的方法在层级结构中的所有webbean上调用processFormRequest(OAPageContextpageContext,OAWebBean webBean)方法.这里给了你的控制器响应用户动作的机会.4.如果没有JSPforward或redirect发出,或在执行processFormRequest()方法时没有异常被抛出.则页面刷新OAPageContext当OAFramework收到一个OA.jsp请求时,OAPageBean创建一个oracle.apps.fnd.framework.webui.OAPageContext,这个类仅在页面处理过程中存在.上面描述的三个方法(processRequest(),processFormData(),processFormRequest())都有一个OAPageContext参数,任何将要编写的控制器代码都使用了这个至关重要的类.如上图所描述的,OAPageContext有指向request和根应用模块的引用.根据这个关系,OAPageContext被传递到每个控制器的响应处理方法中,你将看到如何在下面的通用任务中使用OAPageContext:访问请求参数可以使用getParameter(Stringname)方法读取请求参数.技巧:技巧:页面上的每个webbean(buttons,fields等等)传递给getParameter()的是你定义在页面上的唯一ID属性.比如,使用下面的代码可以得到用户是否按下了名为"GoButton"的按钮:processFormRequest(OAPageContextpageContext,OAWebBe anwebBean){if(pageContext.getParameter("GoButton")!=null){//Theuser pressedthe"Go"button,dosomething……}}访问根应用模块OAPageContext缓存了根应用模块的引用,它可以访问视图对象和事务.如果需要访问应用模块,可以通过OAPageContext:processFormRequest(OAPageContextpageCont ext,OAWebBeanwebBean){OAApplicationModuleam=(OAApplicationModule)pageContext.getRoo tApplicationModule();}发出导航指令使用方法告诉OAFramework 执行JSPforward或客户端重定向.比如: processFormRequest(OAPageContextpageContext,OAWebBean webBean){if(pageContext.getParameter("CreateButton")!=null){//Theuserpressedthe"CreateSupplier"button,nowperformaJSPforwardto//the"CreateSupplier"page.pageContext.setForwardURL("OA.jsp?page=/oracle/apps/d em/employee/webui/EmpDetailsPG",null,OAWebBeanConstants.KEEP_MENU_C ONTEXT,null,null,true,//RetainAMOA WebBeanConstants.ADD_BREAD_CRUMB_YES,//Showbreadcrum bs OAWebBeanConstants.IGNORE_MESSAGES);}}访问应用上下文信息与模型中的page4OADBTransaction类似,OAPageContext可以访问servletsession级的OracleApplication上下文信息,如:用户名,ID,当前职责等.比如,下面的片段用于获取用户名:processRequest(OAPageContextpageContext,OAWebBeanw ebBean){StringuserName=pageContext.getUserName();}WebBean架构所有OAFrameworkwebbeans都与UIXframework中的bean 对应.比如,OATableBean继承自oracle.cabo.ui.beans.table.TableBean("cabo"是UIXframework早期的名字,包定义仍然使用了旧名).每个OAFrameworkwebbean都实现了一组接口,这些接口实现了OAFramework添加到基础的UIXbeans上的行为.oracle.apps.fnd.framework.webui.beans.OAWebBean定义了所有webbeans的通用行为(比如,其中在这里定义的关键的行为有processRequest,processFormData,processFormRequest方法,一些beans自己实现了这些方法).oracle.apps.fnd.framework.webui.OAWebBeanConstants用于视图和控制器的常量集合.oracle.apps.fnd.framework.webui.beans.OAWebBeanData定义通用的个性化定义和数据源管理行为oracle.apps.fnd.framework.webui.beans.OAWebBeanContainer 定义所有可以作为其它webbeans容器的webbeans的特性.比如,所有layoutwebbeans都实现了这个接口.只有实现了这个接口的beans 才可以与控制器关联.OAWebBean定义了bean在OAFramework上下文环境中的内在特性.比如,OATableBean实现的oracle.apps.fnd.framework.webui.beans.OAWebBeanTable接口.webbean例子(OAT ableBean):内部Bean结构每个webbean自己包含了下列的信息:_indexedChildren子webbeans_namedChildren子webbeans 特殊行为的UIX标记._attributeswebbean的特性(属性描述),下表的图表描述描述webbean使用Dictionary保存键值对属性:数据绑定值与上面的图表描述的情况不同,OAFrameworkwebbean的attributes实际上是用数据绑定值实现的,这意味着它是由下层的数据源提供的,在组件被渲染时才被获取.后面将看到如何定义用户自定义绑定值.渲染在页面渲染时,UIXframework处理webbean层级对象产生页面的HTML代码.对于每个webbean属性,UIX调用它的getAttributeValue()方法.并传递给它一个渲染上下文(renderingcontext),renderingcontext是UIX决定绑定值的全部基础.对于给出的属性,比如,renderingcontext知道下层的视图对象实例,视图属性和当前的行.数据绑定使用rendering context通过查询它的数据源所提供的返回值传递给UIX以产正确的HTML. OAFrameworkJavadoc手册每个OAFramework包的描述:oracle.apps.fnd.framework包含的类和接口可以安全的从模型(server)和用户界面控制器或视图(client)访问.比如,需要在页面中访问根应用模块,应该使用oracle.apps.fnd.framework.OAApplicationModule接口(不应该在客户端访问它的实现).这个包也包括:所有OAFramework异常OANLSServices类用于执行国际化操作oracle.apps.fnd.framework.server包含了OAFrameworkModel-View-Controller中用于实现model的类和接口.这些类规定用于任何客户端用户界面(不仅仅是OAFrameworkHTMLpages)[译注:根据后面的意思,这里似乎应该是不能用于!],并且不允许被任何oracle.apps.fnd.framework.webui包和其子包中的类和接口引用,也不允许应用中的webui包和其子包引用.当建造OAFramework应用模型时,应该使用这个包中的类替代BC4J中继承的类.警告:永远不要从控制器或视图代码中调用这个包中的类.警告: oracle.app.fnd.framework.webui包括了构造OAFrameworkHTML用户界面的核心类.一些这个包中最常用的类和接口: OAControllerOAPageContext任何下面所描述的beans子包中的类警告:警告:永远不要从模型代码中调用这个包中的类.oracle.app.fnd.framework.webui.beans包含用于用户界面组件的webbean.你将在编写用户界面控制器时编程的方式处理这些webbeans.这个包和其子包中的类与UIX组件对应,它们继承关系如下.当构造OAFramework应用页面时,应该使用OAFramework类,除非你要使用一个已经介绍给UIX的新的功能,但目前这还不被支持.注意:注意:OAFramework类是在JDeveloper中描述的MDS页面中使用. UIXPackageoracle.cable.ui.beansoracle.cable.ui.beans.formoracl e.c/doc/be11231430.html,youtoracle.cabo.ui. beans.messageoracle.cabo.ui.beans.navoracle.cabo.ui.beans.tableOAPa ckageoracle.apps.fnd.framework.webui.beansoracle.apps.fnd.framework. webui.beans.formoracle.apps.fnd.framework.webui.beans.includeoracle.apps.f nd.framework.we/doc/be11231430.html,youtoracle.apps.fnd .framework.webui.beans.messageoracle.apps.fnd.framework.webui.beans.navoracle.apps.fnd.framework. webui.beans.table警告:警告:永远不要在模型代码中调用这些类.oracle.apps.fnd.framework.webui.beans.form包含了HTMLform组件相关的webbean类.包括了提交按钮和各种数据入口/特定的控件(checkbox,radio,group,shuttle,textinputfield等).可以在编写用户界面控制器时使用这些类,需要用编程的方式处理webbeans.与这个包中其它的webbeans不同的是oracle.apps.fnd.framework.webui.beans.message包(messagewebbeans可以显示错误,信息,带警告图标的说明信息) .当在JDeveloper中创建页面时,OAFramework为同一个包中的这些组件自动显示消息.应该只在下面的情况下使用这个包中的这个类: 类没有messagebean供选择.(比如,这个包中唯一的类OASubmitButtonBean)不能使用messagebean替换的时候.警告:警告:永远不要在模型代码中调用这些类.oracle.apps.fnd.framework.webui.bean.include包含了用于将外部资源(servlet,JSP,HTML)中包含到用户界面的webbean类.将在编写用户界面控制器时编程的方式处理这些webbeans.警告:永远不要在模型代码中调用这些类.警告:/doc/be11231430.html,yout包含了OAFramework程序中页面布局的webbean类,包括特殊的layout件,比如,hide/show,contentcontainer,bulletedlists,headers,standardizedtemplates等等.将在编写用户界面控制器时编程的方式处理这些webbeans.警告:警告:永远不要在模型代码中调用这些类.oracle.apps.fnd.framework.webui.beans.message包含了HTMlform数据相关组件具有显示相关错误,警告信息或带信息图标的说明性消息的webbean类(比如,如果用户在文本框中输入了错误的值,下次渲染这个页面时,这个文本框前将显示一个表示出错的图标).将在编写用户界面控制器时编程的方式处理这些webbeans.这个包中的许多webbean也包含在oracle.apps.fnd.framework.webui.bean.form包中,没有显示额外的消息文本和图标文本的能力.当在JDeveloper中创建页面时,OAFramework自动将messagebean添加这两个包中的组件.应该只在不能使用包含messagebean的页面上使用不带消息显示能力的类.警告:警告:永远不要在模型代码中调用这些类.oracle.apps.fnd.framework.webui.bean.nav包含了用户界面导航的组件(links,trees,menuelements,quicklinks,breadcrumbs等).将在编写用户界面控制器时编程的方式处理这些webbeans.警告:警告:永远不要在模型代码中调用这些类.oracle.apps.fnd.framework.webui.beans.table包含显示table和HGrid组件的webbean类.将在编写用户界面控制器时编程的方式处理这些webbeans.警告:警告:永远不要在模型代码中调用这些类./doc/be11231430.html,f包含用于控制HTML渲染特性,包括页面观感和上下文细节(比如,内容能为打印效果而优化显示在浏览器中或用于e-mail)的工具.警告:警告:永远不要在模型代码中调用这些类.bean_arch.gif描述:文件大小:看过的:bean_arch.gif14KB文件被下载或查看5次概述这个文档用于描述OAFramework状态管理架构,包括缓存应用系统用户数据和从页面间值传递的机制.结构预览主要状态管理组:根应用模块(数据库会话和事务状态)根应用模块(数据库会话和事务状态)如OAFramework页面解析一文中描述的,每个OAFramework页面与一个根应用模块关联,根应用模块提供事务环境和JDBC数据库连接.注意:注意:OAFramework中,一个数据库会话与一个JDBC连接关联.根应用模块是任何OAFramework模块的中枢,因为核心应用数据(存储在BC4J视图,实体对象,等等)和页面webbean层级结构自动缓存于根应用模块的oracle.apps.fnd.framework.OADBTransaction对象中.警告:可以查看Supportingthe警告:使用浏览器后退按钮将导致应用模块状态丢失.BrowserBackButton一文.任何存储于事务中的数据可以被任何共享同一个根应用模块实例的页面访问(在页面间导航时使用下面描述的方式保留应用模块).OAFramework提供了方法用于从事务中存储,获取和移除值.可以在控制器(client)和模型(server)代码中访问单一的事务对象,这些工具在oracle.apps.fnd.framework.webui.OAPageContext(controller 中)和OADBTransaction(model中)类可以访问.根应用模块保留缺省情况下,当用户从一个页面导航到另一个页面(比如使用GET请求或JSPforward)时,OAFramework渲染新的页面,与前一个页面关联的应用模块实例被"释放",一个新的实例请求被发送到应用模块池.导航到新的页面时,缺省情况下的原页面的根应用模块将被释放:注意:注意: OAFramework在表单提交(POST)期间不会释放应用模块,除非你显式的在控制器中释放应用模块.比如,如果用户对表格中的数据排序或在表格数据中导航——两个动作隐式的提交了页面表单——页面的根应用模块实例被自动保留.在页面间保留应用模块在多个页面处理同一个任务时相关的页面需要参与同一个虚拟事务.这时,不同页面需要关联到同一个根应用模块实例.相关页面共同同一个根应用模块(和事务):为达到这个目的,必须执行下面的操作:申明各个页面关联同一个类型的根应用模块.设置应用模块的保留标记.通过指定URL参数retainAM=y设置模块保留标记.对于GET请求.当新的页面被渲染时(注意,OAFramework对于POST请求将一直保留应用模块而不管retainAM参数的值).如果设置为"Y",前一个页面的应用模块实例将被保留.如果设置为"N"(或不指定,缺省为"N"),OAFramework将释放所有应用模块——包括到达这点前任何可能显式申明为保留的.也可以在调用JSPforwardOAPageContext中的方法时设置这个参数.警告:警告:不能简单的让不同页面关联相同的根应用模块.如果忘记设置retainAM标记,每个页面仍将使用不同的应用模块实例和事务,即使这些页面关联的是同一个类型的应用模块.注意:技术上来说,这依赖于应用模块池的状态.PageB可能获取到与PageA注意:使用的同一个物理应用模块.但是,对象的状态将完全被重置,就像被新创建的一样.从这个观点来看,可以看作一个"新的实例".两个页面引用相page7同类型的应用模块,但没有设置RetainAM标记:同样,retainAM标记设置为"Y"——但没有将页面的根应用模块设置为相同将的类型.这将产生不同的应用模块实例(每个页面一个),各自有自己的事务.有条件的保留和释放应用模块有些情况下,你需要通过一个条件来决定是否保留或释放应用模块.这时,你可以让应用模块实现oracle.apps.fnd.framework.webui.OAReleaseListener接口,详细描述见Javadoc.警告:警告:OracleApplication开发人员应该在使用这个接口时通知OAFramework开发团队.不正确的使用这个接口将导致内存泄漏.OAFramework团队正在跟踪这个问题.显式的释放应用模块可以显式的通过代码在OAFramework处理之前释放根应用模块.可以在页面控制器中调用OAPageContext.releaseRootApplicationModule()方法,OAFramework将在页面渲染完成后尽快释放这个页面的根应用模块,而不是等到下次应用模块请求时.根应用模块保留的使用场景根应用模块保留的使用场景下列情况下推荐保留/释放应用模块.情况推荐操作无关的当导航到两个不相关的页面时不保留应用模块.比如一连串的不相关的管理任分离的务,它们是独立运行的(即使这们与同一个菜单项目关联),保留应用模块是不任务必要的.多页面当在相关的页面间导航时,这些页面合作完成同一个完整的任务处于单个事务中流时,保留应用模块相关页当在关联同一个业务对象(即使页面为用户设置了不同的提交点)的不同任务间面(虚拟的相关页面间导航时,如果UI关联得比较紧密则保留应用模块.比如,一个模事务)块可以查询,查看, 更新,删除,打印写单则应该使应用模块保留多页面有一个多页面流使用了分支事务,比如,在创建定单时创建供应商时,在主流程流中使中保留应用模块,而在创建供应商的页面使用用分支OAPageContext.releaseRootApplicationModule方法释放模块.事务注意:注意:在介绍OAFramework的钝化和JDBC池化/回收之前,鼓励开发人员经常的释放应用模块,因为保留JDBC连接是一个昂贵的开销.在了解钝化功能后这不再是个问题.ServletSession可以在servletsession中缓存小型的,可序列化的对象(OAFramework限定为字符串,数字和日期类型)注意:注意:使用session缓存那些需要在多个页面设置或访问的简单值,这些页面可以有不同的根应用模块.(事务缓存不在这个范围内).由于session变量失效时间较长,且没有好的事件可以释放内存,因此应该把session作为最后一种缓存选择.技巧:技巧:隐藏域通常不被推荐使用.因此,OAFramework当前的菜单实现(一些菜单发送GET请求。

OracleEBS_R12-OAF开发笔记(解密版)

OracleEBS_R12-OAF开发笔记(解密版)

OracleEBS_R12-OAF开发笔记(解密版)ORACLE EBS R12—OAF开发笔记Author: Jarwang(王重东)Create Date: November 12, 2010Update Date:Control No:Current Edition: 1.0声明:本文可以任意免费转载、复制、传播。

但您务必保持其完整性!If you copy this document,you ought to keep the document completely.Document ControlModify Record日期作者版本更改参考November 12, 2010 jarwang 1.0Approved姓名职位签字Distribute编码姓名地点和位置1234ContentDocument Control (2)Modify Record (2)Approved (2)Content (3)Preface (5)Getting Start (6)Download Jdeveloper (6)Configure Jdeveloper (6)Configure EBS—OAF Environment (6) Verify EBS—OAF Environment (8)OAF Concept (10)OAF & ADF (10)OAF Objects Concept (11)OAF Objects Naming (12)JSR168&JSR227 (12)JSR168 (13)JSR227 (13)OAF Development (15)OAF—Import Excel (15)Create OA Project (15)Set Run Options in OA Project Settings (16) Create Data Table (17)Create the AM Object (17)Create the VO Object (17)Add VO Object to AM (19)Create the Page (19)Installation Thirty Jar (22)Create the Java Class for xls (23)Create the Java Class for csv (23)Create the CO Object (24)Create Methods in AM (29)Run PG (31)Deploying OAF (32) OAF—OATrainBean (35)Create Data Table (35)Create the AO Object (38)Create two VO Object (39)Create the VL Object (42)Create the AM Object (42)Add VO Objects to AM (43)Add two Method to AM for Header (43)Create the Page for Header (44)Create the CO Object for Header (46)Run PG for Header (47)Create the Page for Lines (47)Add a Method to AM for Lines (50)Create the CO Object for Lines (51)Implement the Currency Poplist for Lines (51)Add table button for Lines (53)Run PG for Lines (54)Create two VO for Preview (54)Create the Page for Preview (55)Create the CO Object for Preview (58)Run PG for Preview (59)Create the OATrain (59)Add OATrain to PG (60)Add the PageButtons (61)Create the CO Object for ExpenseTrainFooterRN (64) Run (65)OAF—OATree (66)Create OA Project (66)Create Data Table (66)Create the VO Object (67)Create the AM Object (67)Create the Page (69)Create the CO Object (70)Run (71)Personalization OAF (72)Close OAF Personalization (72)Clear OAF Cache (73)Extending OAF (74)OAF &JSP (75)Delopy JSP (75)Delopy Servlet (76)AutoLogin (77)Other Notes (78)PrefaceOracle E-Business Suit R12终于全面升级11i古老的开发工具,并且全面将Java靠拢。

oracle-EBS财务软件相关名称概念解释

oracle-EBS财务软件相关名称概念解释

仅供内部参考
11
资产模块
CIP资产 :是在某一段时期内建造的资产,也就是在建工程。 资产帐簿:一项资产可以属于任意多个折旧帐簿,但只能属于一个公司折旧帐簿。 您必须先将新资产分配给公司折旧帐簿,然后才可以将其分配给任何税簿。您只能 将此资产分配给定义了资产类别的帐簿。Oracle Assets 从资产类别、帐簿和启用 日期获得默认的财务信息。每个帐簿都可以有独立的帐户、日历和折旧规则。 资产成批增加:资产成批增加可以使您可以将其它系统中的新资产或成本调整自动 添加至您的系统,而无需重新输入数据。 安全性配置文件 :安全性配置文件允许您使用为系统用户创建和分配的责任控制 对 Oracle Assets 的访问。用户只能使用分配给他们的责任登录至 Oracle Assets。用户责任控制着用户在系统中可看见哪些内容,以及在系统中可执行哪 些操作。 资产关键字:利用对资产分组,达到快速查询资产的一种资产属性。Oracle Assets 会使用资产键弹性域按非财务信息对资产进行分组。您可以设计资产键弹 性域以记录所需信息。然后,您可以按资产关键字对资产进行分组,以便可以在没 有资产编号的情况下查找资产。
仅供内部参考
10
应收模块
应收事务处理:输入销售发票的一种工作行为描述。可以使用“事务处理”窗口输入发 票、借项通知单、贷项通知单和承付款。 借项通知单/贷项通知单:借/贷记事务处理,可以创建贷项通知单来减少事务处理 的到期余额。应收款管理系统会创建相应的会计分录并冲销分配给销售人员的任何 销售业绩。 收款核销: 通过收款去核减或者冲减应收发票的余额的动作。 交叉货币收款核销:可以用某个币种的收款核销不同币种的一项或多项事务处理的 行为。 自动开票:通过AR接口把发货确认后的销售订单导入,自动生成AR的销售发票的 程序。“自动开票”会验证数据与应收款管理系统的兼容性,它可确保应收款管理 系统接口表中的列均引用了应收款管理系统中适当的值和列。 应收款系统的过帐:开始将应收款管理系统会计信息传送至总帐的行为。总帐管理 系统接口程序会将调整、拖欠款项、贷项通知单、承付款、借项通知单、发票以及 收款的数据传送至 GL-INTERFACE 表,并根据需要在 Oracle General Ledger 中创建未过帐日记帐分录批。

oracleebs的移动化战略和当前的移动化产品

oracleebs的移动化战略和当前的移动化产品

Oracle EBS的移动化战略和当前的移动化产品Oracle的APP开发框架是Oracle Mobile Application Framework. 可以实现写一个应用可以同时在IOS和ANDROID运行。

目前的APP开发战略:Our mobile app strategy is to release standalone apps for specific product modules.举例:Oracle Timecards app, which allows users to create and submit timecards 。

此外有跨模块的APP举例:Oracle Approvals , which allows users to review and approve requests for expenses, requisitions, purchase orders, recruitment vacancies and offers, and more.当前Oracle开发优先关注小屏幕。

针对大小屏幕有不同版本,举例:Oracle Mobile Field Service目前APP主要是内网使用,需要使用VPN进入内网,以后改进(直接登录需要进行DMZ 配置)目前不支持客户化,正在推进公司LOGO、配色等方面的客户化配置支持。

目前APP支持R12.1.3, R12.2.3及以上版本。

使用APP需要管理员在服务器端配置相应服务;具体可参考:Oracle E-Business Suite Mobile Apps Administrator's Guide, Release 12.1 and 12.2目前可用的APP列表如下:其中'Oracle Fusion Expenses'适用于Oracle InternetExpenses - Version 12.1.3 and later,平台要求为:- iOS 6 or above- Android 4.0.3 or above配置这个APP需要在服务器端打PATCH,并重启中间层。

Oracle EBS OA Framework安装文档(Deploy To EBS)

Oracle EBS OA Framework安装文档(Deploy To EBS)

本机路径:一,配置Jdev:CLASSPATH:.;%JA V A_HOME%\lib;D:\ERP\study\OAF\Jdev\jdevbin\oaext\bin;D:\ERP\study\OAF\Jdev\jdevb in\jlib;D:\ERP\study\OAF\Jdev\jdevbin\lib;C:\Program Files\Java\jre1.5.0_10\lib;C:\Program Files\Java\j2sdk1.5.0\libJDEV_USER_HOME:D:\ERP\study\OAF\Jdev\jdevhome\jdevJA V A_HOME:C:\Program Files\Java\j2sdk1.5.0二,创建测试OAF页面,其中注意下图:此为application登录用户/密码,注意给HEMING用户添加两个职责:OA Framework ToolBox Tutorial; OA Framework ToolBox Tutorial Labs本地文件保存路径:Deployment OAF Page To EBS:1,把已经做好的测试页面传到FTP服务器,路径如下:(Note:本地路径:D:\ERP\study\OAF\Jdev\jdevhome\jdev\myclasses\oracle\apps\ak\simon\webui FTP路径:/u30/UTSTRN/apps/apps_st/comn/java/classes/oracle/apps/ak/simon/webui)2,运行SecureCRT (Or telnet FTP Server)进入到我们上传文件到FTP的那个目录,运行Chmod –R 775 <文件夹名字>3,在本机运行command窗口:进入到D:\ERP\study\OAF\Jdev\jdevbin\oaext\bin目录下:运行以下代码:import D:\ERP\study\OAF\Jdev\jdevhome\jdev\myprojects\oracle\apps\ak\simon\webui -jdk13 -mmddir "D:\ERP\study\OAF\Jdev\jdevhome\jdev\myhtml\OA_HTML\jrad" -username apps -password apps_987 -rootdir D:\ERP\study\OAF\Jdev\jdevhome\jdev\myprojects\ -validate -dbconnection"(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS=(PROTOCOL=tcp)(HO ST=)(PORT=1532)))(CONNECT_DATA=(SID=UTSTRN)))"D:\ERP\study\OAF\Jdev\jdevbin\oaext\bin (要有import.bat文件)4,注册Function:Function:FWK_TOOLBOX_SIMON_NAVTpye:SSW A jsp functionHTML Call:OA.jsp?page=/oracle/apps/ak/simon/webui/TestSimonPG或者:HTMLCall:OA.jsp?page=/oracle/apps/ak/simon/webui/TestSimonPG&OAHP=FWK_TOOLBOX_TUTORI AL_APP&OASF=FWK_TOOLBOX_SIMONMenu:Result:。

Oracle EBS 系统构建概念介绍

Oracle EBS 系统构建概念介绍

7700 (22R4251) Windows Host Kit (windsows管理端) 1
8870 DS4800 8-Storage Partitions (8存储分区) 1
9202 Field Integrate DS4800
(4800外壳) 1
yunfang.shang, 2008/3/16
ERP: Enterprise Resource Planing,即企业资源计划,它是一种以供应链为核心思想,把企 业的物流、资金流和信息流结合在一起的信息管理系统。国外鼎鼎有名的ERP软件供应商有德国 的SAP、美国的Oracle,国内的主要有用友、金蝶、浪潮等。
Oracle EBS:全称是Oracle E-business Suite,即Oracle的电子商务解决方案,是ERP的一种模式。
4、备份软件 产品编号 产品描述 数量 D56FELL IBM Tivoli Storage Manager Extended Edition 20 Value Units License + SW Maintenance 12 Months (IBM TSM备份软件, 2cpu,1年服务) 1 BJ0JQML IBM Tivoli Storage Manager Extended Edition for Multiplatforms Version 5.4 Multilingual CD ROM Media Pack(IBM TSM备份软件,介质光盘) 1 D56D9LL IBM Tivoli Storage Manager for Databases 20 Value Units License + SW Maintenance 12 Months(IBM TSM数据库模块,2cpu,1年服务) 1 BJ0JSML IBM Tivoli Storage Manager for Databases for Multiplatforms Version 5.4 Multilingual CD ROM Media Pack(IBMTSM数据库模块介质光盘) 1

Oracle EBS系统灵活性专题介绍-分享版

Oracle EBS系统灵活性专题介绍-分享版



不受系统升级、打补丁影响的影响。
通过配置即可完成,不需要编写程序就可以定制企业所需要的数据.
22
Oracle Fusion中也有描述性弹性域这样的功能
23
Oracle Fusion描述性弹性域的定义
24
字段扩展-弹性域(Flexfields)
外部 延展
描述性弹性域 (DFF : Descriptive Flexfields)
35
索引
总体介绍 弹性域 Lookup Folder Form个性化
36
表单个性化(Forms Personalization)- Overview
通过表单个性化功能可以使用少量的代码改变标准功能的行为或外观。不需使用开 发工具,不需要编译,不需要重启,立即生效。并且不受系统升级或打补丁的影响。

财务总账表 财务总账业务字段… Attribute1: 朗新科技 Attribute2: 信息部 Attribute3: CIS2期 Attribute4: 实施费用 ……
问题
数据过度冗余
27
需求样例:良好的设计
采购订单表 采购订单业务字段… Attribute1: 朗新科技 Attribute2: 信息部 Attribute3: CIS2期 Attribute4: 实施费用 …… 应付发票表 应付发票业务字段… Attribute1: 朗新科技 Attribute2: 信息部 Attribute3: CIS2期 Attribute4: 实施费用 …… 财务总账表 财务总账业务字段… Attribute1: 朗新科技 Attribute2: 信息部 Attribute3: CIS2期 Attribute4: 实施费用 ……
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle EBS OA Framework (一) 开发环境搭建关键字: Oracle EBS ERP OA Framework OAF最近公司开始了一个Oracle ERP二次开发项目,使用的是EBS R12版本,这个版本由于比较新,从这个版本中可以看到Oracle ERP二次开发的主要技术有向Web方面发展的趋势,其中主要使用的就是Oracle OA Framework应用框架。

网上这些资料不好找,我通过查看OA Framework Guide整理了一些文档,后面陆续会发布到blog 中与大家共享。

内容基本上是按我的学习顺序组织的,学到哪里写到哪里,由于是初学OA Framework,而它又与我们通常接触的开源框架差异较大,因此理解上难免出现偏差,有不正确的地方请大家指正。

由于系统的限制,不能发过多的插图,文章中的插图没有全部贴上来,这些插图都来自于OA Framework Guide。

环境塔建按以下几个步骤:1.从MetaLink上下载p5856648_R12_GENERIC.zip2.从你的EBS服务器上下载dbc文件,比如我的dbc位置/u02/prod/inst/apps/PROD_ebs/appl/fnd/12.0.0/secure/PROD.dbc3.启动JDeveloper,从JDeveloper解压目录中找到ToolBox工程,初次打开时会提示代码更新。

4.在工程的属性中找到Oracle Applications配置好Database Connection。

5.在工程的属性中找到Oracle Applications -> Runtime Connection页,将DBC File Name设置为从服务器上下载的dbc文件。

User Name和Password为登录ebs环境时使用的用户名和密码。

Responsibility中设置好开发所使用的应用简称和职责。

这个职责只需要是User Name所具有的职责就可以了。

Page基础在浏览器看来,OA Framework页面与其它web页面一样,被渲染为HTML。

在中间层中,页面是由内存中层级分布的Javabeans组成——非常像传统的Java客户端UI。

每个UI构件,比如按钮、表格、tab、商标图像等,被渲染为页面中对应的构件。

浏览器向一个页面发出请求时,OA Framework读取页面定义的元数据创建web bean结构。

每个bean 与一个UI控制器关联,OA Framework调用你编写的代码初始化页面。

页面处理完成后,OA Framework 将web bean结构交给UIX框架处理以生成发送给浏览器的HTML。

当浏览器发出一个表单提请求时,OA Framework重新创建bean及其层次结构(只在必要的时候才重新创建,通常这些bean是被缓存的,只在特定的情况下才重新创建),然后调用为 page bean编写的事件处理代码。

当页面处理完成后,页面HTML重新生成并发送给浏览器。

OA Framework MVC架构:模型Model模型包括下层的数据和应用业务逻辑。

它也提花了现实世界对象和应用服务间的抽像层。

应用模块Application ModulesBC4j应用模块本质上是一个容器,它管理和提供对“相关“BC4J模型对象的访问。

这里的“相关”指的是同一个任务中的参与者。

比如所有的BC4J对象在同一个任务中参与同一个事务——即使对应的用户界面需要用户访问多个页面。

应用模块:应用模块是oracle.apps.fnd.framework.server.OAApplicationModuleImpl类的子类。

每个OAFramework 页都有一个根(root)应用模块,它与最顶层的页面区域(page region)关联。

根应用模块提供事务环境和连接数据库。

∙如果多个页面参与同一个物理或虚拟事务,它们应该共享相同的根应用模块。

∙如果一个页面功能不依赖于其它东西,它需要拥有自己的应用模块。

注意:一个根应用模块可能包含一个或多个嵌套的应用模块,可以嵌套任意多的层次。

这种情况下,根应用模块可以访问它包含的子对象的数据和对象,所有子对象共享根应用模块的事务。

你可以在创建需要重用的与数据库操作相关的UI区域时使用这个功能。

实体对象(Entity Objects)和关联对象(Association Objects)BC4J实体对象包含了业务规则(校验、动作等)与数据库表中的一行关联。

注意:实体也可以基于视图、同义词、快照而定义。

OA Framework支持Java和PL/SQL实体。

实体对象:多数实体是oracle.aps.fnd.framework.server.OAEntityImpl的子类(PL/SQL继承于特殊版本的OAEntityImpl)。

表和实体对象一一对象,所有实体应该包含与之关联的表的所有列。

实体对象使用映射了它的属性和数据库列,并自动实现了查询、插入、更新、删除等操作。

多数情况下,我们只需要添加校验逻辑。

实体对象可以用于任何程序(不限于OA Framework)。

关联对象Association Objects用于定义实体间的关系。

视图对象(View Objects)和视图链接(View Links)BC4J视图对象处理数据库查询。

查询执行后,视图对象提供了访问它的结果集的功能。

结果集包含了一个或多个视图行,视图行与数据库查询的行相对应。

视图对象:所有的视图对象都是oracle.apps.fnd.framework.server.OAViewObjectImpl类的子类。

视图对象可以配置为使用下面的策略查询数据:∙它的属性映射到简单的SQL语句的列(通常用于小的只读的视图对象)∙它的属性映射到实体对象的属性(用于插入、更新和删除实体)∙一些属性映射到实体对象,一些直接映射到SQL(用于增加实体临时数据,这些数据不能通过实体获得,比如计算值或用于UI显示需要)在OA Framework应用中,将在下面情况下使用视图对象:∙呈现用于优化用户界面细节的数据。

如果用户界面支持实体的插入、更新、删除,你将通过视图对象执行这些操作。

∙为poplists、lists of values和其它UI组件创建简单的查询。

∙为业务逻辑创建有效的“校验查询(validation queries)”。

比如,在定单处理时使用一个校验视图对象获得最大可以购买的商品数量。

可以为视图对象编写代码用于实现复合查询或查询时的数据绑定(以便视图对象知道怎样“查询”自己)。

视图链接View Links与实体对象类似,也可以为视图对象建立关联,称为视图链接(view links)。

比如可以在定单头视图对象和定单内容间建立视图链接对象。

这可以用于在运行时访问定单头时自动查询定单内容。

OADBTransactionOADBTransaction:注意:准备的来说这个图应该要包含实现类oracle.apps.fnd.framework.server.OADBTransactionImpl替代oracle.apps.fnd.framework.OADBTransaction接口。

如图所示,OADBTransaction扮演的是模型中的中心角色,因为它与一个根应用模块关联,管理JDBC 连接/数据库会话,直接拥有你创建的任何实体(根应用模块拥有的视图对象中的行指向实体对象)。

可以使用OADBTransaction在模型代码中完成下面的操作:∙创建一个语句执行PL/SQL函数和存储过程∙访问应用会话级环境信息(session-level Application context information),比如:用户名、id、当前责任(resposibility)等。

∙访问一个oracle.apps.fnd.framework.OANLSServices对象,如果你需要执行NLS操作,比如转换服务器时间到用户日期/时间等。

可以通过根应用模块访问OADBTransaction。

视图视图格式化当前模型数据给用户。

定义页面在Oracle Applications开发时,将使用XML页面定义文件。

当产品发布后,OA Framework从数据库获取页面定义。

使用JDeveloper定义的页面(pages)由区域(regions)和条目(items)组成。

∙条目是简单的构件,比如按钮、输入域、图像等,它不包含子构件。

∙区域是容器对象它可以包含条目和其它区域。

比如区域包含文件头(headers)、表格和特别的布局组件(layout components)。

∙定义的每个区域和条目都有style属性,它告诉OA Framework使用哪个web bean对象来描述它。

比如,如果你定义区域的style属性为“table”,OA Framework将使用oracle.apps.fnd.framework.webui.beans.table.OATableBean。

∙所有页面必须有一个单一的top-level region(通常称为“root region”)它的style为pageLayout。

它将使用yout.OAPageLayoutBean。

∙regions和items显示在JDeveloper page tree中的顺序告诉了Framework将这些对象添加在什么位置。

属性集Attribute Sets每个region或item通过使用attribute sets可以继承一组属性集合。

attribute sets是一个被命名的属性的集合,可重用于任何UI对象,包括:regions,items和其它属性集。

当使用attributes set创建UI时,你可以覆盖所继承的属性。

组件重用如果需要在页面使用共同对象,可以简单的从它继承。

比如,可以创建一个通用的region。

新建region时,将新region的Extends属性设置为通用region 的命名。

注意:共享的通用region在引用它的page中是不可编辑的,属于它的选项目在JDeveloper中将显示为灰色。

数据源绑定对于需要与数据库交互的bean,你需要指定数据源,将它绑定到View Instance Name,并关联好View Attribute Name。

这个绑定是至关重要的,因为OA Framework使用它获取数据,并将用户输入的数据写入下面的视图对象。

∙View Instance Name指向当前上下文环境中包含应用模块中的视图对象(所有视图对象“生活“于一个应用模块中,在包含它的容器对象中有一个实例变量名)。

比如,如果SuppliersVO视图对象,在页面的根应用模块中有一个实例变量“MySupVO”。

相关文档
最新文档