OAF—分析页面1
页面基础
在浏览器层,OAF页面和其它页面一样,是标准的HTML页面。
在中间层,OAF页面实际是由内存中的JAVABEAN结构来实现的,和传统的JAVA客户端界面相同。每个页面中的用户界面(UI)组件(按钮、标签、图片等)实际都对应一个或多个结构中的JAVABEAN。
当浏览器请求一个新页面时,OAF读取页面中的声明的元数据来建立WEB BEAN的结构。对每一个带有UI控制器的BEAN,OAF调用你写的代码来初始化页面。当页面执行完毕,OAF将WEBBEAN结构交给UIX框架来处理,它能将之转为HTML发送到浏览器。
当浏览器提交一个FORM(如:用户选择了搜索区的GO按钮),如有必要,OAF重新建立WEBBEAN结构(BEAN结构在请求之间是缓存了的,只有在意外的情况下需要重新建立),然后调用你在PAGEBEAN中写的处理事件的代码。当页面处理结束,HTML页面重新建立并发送到浏览器。
模型
模型封装了指定的应用中的数据和商业逻辑。它也提供了真实的商业对象和商务服务的抽象。
注意:要完全正确和一致,本图需包括以下的实现
oracle.apps.fnd.framework.server.OADBTransactionImpl而不是oracle.apps.fnd.framework.OADBTransaction接口。
Application Modules
一个BC4J应用模型是管理和提供BC4J模型对象的基础容器,在这个上下文中,同一任务的对象是由多方关联的。例如:所有的BC4J对象都包含一个相同任务的事务。甚至用户界面包括多个页面。
所有的APPLICATION MODULE都是oracle.apps.fnd.framework.server.OAApplicationModuleImpl的子类。
每一个OAF页面都有一个关联到顶层REGION(pageLayout region)的ROOT application module。这个root application module提供了事务处理的上下文,封闭了数据库的连接。
l 如果多个页面在一个事务中,它们应该共享一个root application module。
l 如果一个页面和其它页面没关系,它应该有自己的application module。
注意:一个root application module可能嵌套多个application module(也可以再嵌套多层)。在这种情况下,root application module可以访问它所嵌套的所有的数据、对象和所有的ROOT包含的参与同一个事务的子对象。你可以在你想创建重用的与数据库交互的UI region时使用这个特点。
Entity Objects(和Association Objects)实体和关联实体
BC4J实体封装了关联到数据表行的商务规则(验证、动作等)。如:OAFSample Library包括了FWK_TBX_SUPPLIERS表,用来存储供应商的定义。我们可以为这个表定义一个实体对象(SupplierEO),用来实现的所有的商业规则,新建、更新、删除一个供应商。
注意:Entity Object也可以基于视图、同义词和快照。
OAF支持JAVA和PLSQL实体。
你建立的大多数实体都应该是oracle.apps.fnd.framework.server.OAEntityImpl的子类。
在数据库和实体之间是一对一的关系,所有的ORACLE Applicaiotn 实体都应该包括它们关联的表的所有列。实体使用声明来在它们的属性和指定的数据列之间映射,来自动实现查询、插入、更新和删除。大多数情况下,你需要添加验证逻辑。
实体可以被任何需要与表交互的程序使用(不仅是OAF),这样一来,就必须考虑到所有的验证规则以便客户端就不用再关注这些了。
Association Objects(关联实体)
如果你有一个复杂的实体(如三层采购定单,在头、行、发运地之前是一对多的关系),你可以使用association object来定义实体间的关系,你可以定义弱连接(一个定单引用了已经存在的供应商)和强连接(一个定单包括它的行,行不能独立于头存在)。
View Objects(and view Links)视图对象和视图连接
在简单的情况下,一个BC4J视图对象封装了一个数据库查询。查询执行后,一个视图对象循环访问结果集。结果集包含一个或多个视图行,一个视图行的不同属性对应数据库查询的行。
所有的视图对象都是oracle.apps.fnd.framework.server.OAViewObjectImpl的子类。
每个视图对象都可以配置用以下的方法来查询数据:
1、属性对应SQL语句的列(通常用于较小、只读的视图对象)
2、属性对应实体对象的属性(用于插入、更新、删除实体对象)
3、一些属性对应到实体,一些属性直接对应SQL(用来增强实体对象的不能从实体对象查询的临时数据,如显示的计算值)。
在OAF中,在下面的情况下会用到视图对象。
l 为详细的用户界面展示最优化的数据。如果用户界面支持实体对象的插入、更新、删除,你应该使用视图对象来完成这些任务。
l 为建立下拉列表建立查询,值列表和其它的界面组件。
l 为商业逻辑建立有效的“验证查询&rdquo
相关新闻>>
- 发表评论
-
- 最新评论 更多>>