OAF开发入门

来源:互联网 发布:sql内连接和外连接 编辑:程序博客网 时间:2024/06/16 22:53

OAF开发入门

Oracle Application Framework,是Oracle EBS中的技术组件,是EBS中所有网页功能采用的应用框架,只能在EBS中运行。

基本原理

OAF基于Model-View-Controller框架。 
在中间层中,页面是由内存中层级分布的Javabeans组成。每个UI构件,比如按钮、表格、商标图像等,被渲染为页面中对应的构件。组件的构成是树形结构,即组件在OAF结构中所处的节点位置决定其在页面显示的位置,个性化中有时会用到.
当浏览器向一个页面发出请求时,OA Framework读取页面定义的元数据(存在数据库表中)创建web bean结构。每个bean与一个UI控制器关联,OA Framework调用编写的代码初始化页面。
当浏览器发出一个表单级请求,例如按钮按下等时,OA Framework重新创建bean及其层次结构(只在必要的时候才重新创建,通常这些bean是被缓存的,只在特定的情况下才重新创建),然后调用为page bean编写的事件处理代码。当页面处理完成后,页面HTML重新生成并发送给浏览器。

工作流程

  • dataflow down stack(push)
    OA控制器中的代码和数据>AM>VO>EO(可以没有)>Database
  • dataflow up stack(pull)
    Database>EO(可以没有)>VO>AM>页面上

常用对象

  • Entity Object(简称EO)

    EO是OAF的实体对象,它是基于数据库中的表、视图和同义词这些基本对象的。 
    一个EO对应一个基本对象(就如同FORM中的BLOCK一样)。所有实体应该包含与之关联的表的所有列。并且所关联的表中必须包含五个WHO字段,否则会出错。实体对象使用映射了它的属性和数据库列,并自动实现了查询、插入、更新、删除等操作。多数情况下,我们只需要添加校验逻辑。
    OAF中的操作对象是EO,通过EO完成对数据库表数据的增,删,改等操作,而不是直接面向数据库中的表或视图。

  • Association(简称AO)

    AO是OAF中的实体联系对象,它将两个EO联系起来。例如PoHeaderEO是基于表PO_HEADERS_ALL建立的实体对象,PoLineEO是基于表PO_LINES_ALL建立的实体对象,那么就可以建立一个PoHeaderToLineAO将二者联系起来,关系栏位就是po_header_id。这样做是为以后建立基PoHeaderEO和PoLineEO的VO视图对象做准备的。

  • View Object (简称VO)

    VO是OAF中的视图对象。OAF中的所有数据都来自视图对象。 
    视图对象主要分两种:基于EO实体对象的、基于SQL查询的。 基于EO实体对象的VO主要应用于需要对VO中的数据进行查询、新增、修改和删除操作的情况。 基于SQL查询的VO主要用于只进行查询的情况。

  • Application Module(简称AM)

    AM是OAF中的应用模板。AM作为一个容器而存在,为相关的BC4J对象提供容器服务。AM是VO和OAF页面的联系体,起一个桥梁的作用。此外还为事务处理提供上下文环境信息。 
    每个OAFramework 页都有一个根(root)应用模块,它与最顶层的页面区域(page region)关联。一个根应用模块可能包含一个或多个嵌套的应用模块,可以嵌套任意多的层次(但是建议嵌套层次最好少些,多了出错的概率会增大)。这种情况下,根应用模块可以访问它包含的子对象的数据和对象,所有子对象共享根应用模块的事务

  • Controller Object(简称CO)
    控制器可以与视图中的region级的对象关联 
    控制器代码的行为:生成/初始化UI(页面初始化时);中途截取或处理用户事件,比如按钮按下(相应页面时)
  • OAF Page(简称PG)
    Page是OAF的可见实体。由区域(regions)和条目(items)组成。它是用户在应用中能看到的页面。PG是xml文件,通过树型结构描述了页面上的 UI顺序,指定了需要调用的AM、VO和CO等BC4J 对象。PG可做为独立功能来进行指定调用
  • OAF Region(简称RN)
    RN是xml文件,其作用与PG类似,区别是其可以被PG或者其他RN引用调用,而不能被独立功能调用.其最大优点是可以被多个PG做为共用组件共 享调用。(个性化增加查询区域)
  • ITEM
    是OAF页面最小的构成组件。例如按钮,文本框等。
2 0
原创粉丝点击