Oracle Applications – Concepts

on

根据自己制定的Study Plan [Flickr Image],今天浏览完了Concepts文档,总算在脑子里面有个Oracle EBS大致的轮廓了。

1. Oracle Applications Architecture
典型三层结构,Desktop Tier + Application Tier + Database Tier
Desktop Tier通过浏览器,利用Oracle自己的JVM – JInitiator跟Application Tier通讯,将表单以JAR文件的形式缓存在本地。
Application Tier是业务层,通过自带的Oracle806数据库(Net8)跟底层Database Tier中的Oracle9i通讯,包含这么几个服务:Web server, Forms server, Concurrent Processing server, Reports server, Discoverer server (optional), Admin server。
Database Tier不用多说,业务数据都保存在这个数据库中,EBS11.5.9默认安装Oracle9201,需要手动打patch到9206。

2. Release 11i Enhancements
因为从来没有接触过以前的版本,所以这个Enhancements部分对我而言没什么意义。
只需要登录一次E-Business Suite Home就可以了,不再需要单独登录其它的工具或者产品。
提供了Oracle Applications Manager(OAM)工具来配置,监控,诊断Oracle Applications系统。
Application Tier部分使用了Oracle9iAS。
Database Tier支持且为cost-based optimization (CBO)做了优化,支持Database Resource Manager,支持Partitioned Tables,启用了Invoker Rights功能保证大部分的包都只安装在APPS用户下以节省维护成本,支持实体化视图(MV),支持RAC。

3. Internationalization Support
因为开始支持UTF8字符集,所以不再需要特殊的处理方法,在一个实例中就可以解决多语种问题了。
在任何一层如果选用了UTF8字符集,那么其它层也必须使用此字符集。
在安装的时候就应该筹划好字符集的选择,否则事后再修改是一件困难的工作。

4. File System
这一部分花了一段时间去学习,并且登录了四川移动的开发Portal来比对文档中提到的目录结构,基本上还算明朗,最后自己用SmartDraw画了一个Oracle Application File System Map [Flickr Image] 来清理思路。

还有不少environment setup files以及其中的环境变量需要以后慢慢去熟悉。

5. Data Model
各个产品的数据对象,比如表,索引,约束,序列等,都存在自己的产品用户下,我现在使用的系统中有220个用户,粗略估计一下大概有200个用户是Oracle Applications产品相关的。

SQL> select count(*) from dba_users;

COUNT(*)
----------
220

所有产品的编码对象,比如视图,包,存储过程,函数,触发器等,都保存在APPS用户下,同时每个产品用户都授权给APPS用户访问自己数据的权限,所以我们只需要通过APPS用户就可以直接访问各个产品用户的数据。很明显这个特点让维护成本大大降低。

多组织(Multiple Organization)构架通过分区表来实现,正常情况下,用户访问的是根据分区关键字返回的视图(通过FND_CLIENT_INFO包?),而不会去访问后缀为”_ALL”的基表。

这边没有用到多币种报表(Multiple Reporting Currencies),跳过。

推荐的Release 11i的Oracle9i Server Tablespaces包含:SYSTEM, Rollback, Temporary以及每个产品使用自己的表空间,每个产品有两个表空间,一个给数据用,一个给索引用,通常命名规则是’产品简称+D’表示数据表空间,’产品简称+X’表示索引表空间,比如HRD和HRX。我使用的这个测试环境中,表空间有371个。

SQL> select count(*) from dba_tablespaces;

COUNT(*)
----------
371

Release 11i要求Database Block Size最少是8K。

最后提到了”Sizing Factor”,这里有个奇怪的问题,既然前面已经提到全部产品表空间都是LMT,为什么还要提单个Object的NEXT参数设定?对于LMT的表空间来说NEXT参数还有什么意义?并且居然还强调“Do not use a sizing factor of 0%.”,哪位可以给我一个解答

以上只是很简单的一个印象,文档中的很多东西一时还无法理解,不过感觉有Oracle RDBMS基础,对于理解Oracle Applications会有很大帮助,不管如何,它只是一个应用程序,最终去读取存储在Oracle Database中的数据而已。

BTW:我们的测试环境是IBM AIX。

SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
PL/SQL Release 9.2.0.6.0 - Production
CORE 9.2.0.6.0 Production

TNS for IBM/AIX RISC System/6000: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 - Production

再BTW,我现在周围的情景是,前后左右的女孩儿不停地从抽屉里翻出各种各样的零食塞进嘴里,然后满足地发出“啊哟,好撑啊”的感慨。Cool,下班!

12 Comments Add yours

  1. anysql says:

    这个东西要会一点dev 2000再懂一点java, 会有些帮助的, 我对application 11.00还是知道一点的.

  2. yingqing says:

    学习Oracle ERP,首先定位,现在ERP主要主要有三种职位,功能顾问,技术顾问,和EBS DBA,其中 EBS DBA的职位和你以前从事的工作差不了很多,如果你想朝那方面发展的,加强一下EBS的安装,以及种类繁多的path安装,BTW,刚那些Path就够你List的,还有一些诸如EBS的Clone,背份估计你能够很快上手,不过 EBS DBA一般只有在大型公司才会有这样的职位。跟你以前的知识会有很好的衔接。
    好,接着说顾问类,总体来说,,现在ERP领域功能顾问要比技术顾问吃香,收入也高些,功能顾问说到底,就是对ERP的流程要非常熟悉,不知道你以前有没有呆过工厂,如果对工厂的运转了解的话会有很大的帮助,功能顾问根据模块大体可以分为财务(AP,AR,GL),主要了解公司的财务往来,帐户处理,发票的处理,支付,和怎么收款。制造模块(BOM,OM,PO,WIP,inv…):定单的处理,采购的处理,以及如何生产,生产总得要仓库,所以你还有管理管理仓库,其中这些模块之间的都是想联系的,比如说采购就会产生应付,会传信息到财务。成本模块:计算公司的成本。CRM:客户关系管理.HR:人事。以及还有一些象固定资产之类的模块。功能顾问嘛,不是看几本书就可以的了,想学的话找人带带,去做做实施,慢慢成长吧,:)推荐可以先看业务流程,然后看操作手册,公司没有操作手册的话看User guid.
    功能顾问以后的主要职责是就Oracle ERP和实施公司的业务流程做无缝接合,以后就主要写一大堆让客户觉得高深的文档。
    技术顾问的话:从事ERP二次开发,功能顾问和客户把需求搞出来了,然后就要技术顾问去实现了。做开发嘛,首先要有语言,还好,是PL/SQL,估计是你拿手的,IDE嘛,主要有两个:D2K和Reports,还好,算是比较弱智的工具,比诸如CB,VB,Delphi还弱智,所以不要怕,写的语言也基本上是PL/SQL,再加上其中的一些内置函数。其中D2K是写Form的,Reports是写Report的(废话)。学完这两个以后就还会用到一些想WorkFlow,Discove的工具,可以先不学。然后接下来就可以看Oracle的EBS开发手册,1000多页吧(BTW,老外的东西真是TMD罗嗦,不过好糊能人),在这本书里面,你将学习到FlexFlow,Alert,Fold…….之类在EBS里面用得很多的一些东东,看完以后你就开始上路慢慢开发吧,因为下面的工作要慢慢积累了,就是EBS里面错综复杂的表结构。开发做多了,表结构就熟悉了。
    好了,我也是去看问档了,以后去北京记得请我吃饭哦。
    BTW,http://blog.dbform.com/wp-content/OracleApplicationStudyPlan.png
    这个除了第一本,其它就先不要看了,想去公司EBS里面搞古搞古,熟悉一下环境。
    好,祝你在EBS的道路上一路顺风
    有疑问可以 Gmail我。

  3. kamus says:

    anysql on February 9, 2006 at 9:54 pm said:

    这个东西要会一点dev 2000再懂一点java, 会有些帮助的, 我对application 11.00还是知道一点的.

    dcba兄,那我最后结尾那个问题能帮我解答一下不?

  4. kamus says:

    首先强烈感谢yingqing,这么长的留言……
    按照你的分类,技术顾问我是肯定不会去做,目前要做的也一定只能是DBA的工作,但是我期望在2-3年的时候里自己能够逐渐转向功能顾问。
    我还是先看那些文档,EBS的环境我已经进去捣鼓了,没有概念的情况下根本不知道捣鼓什么。
    具体情况我给你发邮件了。

  5. kamus says:

    yingqing,你留得mail地址不对啊,退信了

  6. yingqing says:

    哦,我Mail多了个零,呵呵,我也是在学习中,现在流的好拉,这个Mail也是我MSN,可以加我啊

  7. anysql says:

    能查一下明空间的情况吗? LMT有三种情况, 1, AUTOALLOCATE, 2,UNIFORM SIZE, 3, 在DICT升级上来的, 这时显示的是USER.

  8. kamus says:

    本身的表空间情况我还没有去检查,我只是就文档上来说,因为文档提到11i的数据表空间全部是LMT类型,然后后面又提到对于数据表要小心指定 sizing factor也就是指定NEXT参数。而无论是AUTOALLOCATE还是UNIFORM,只要是LMT那么NEXT参数都是被忽略的,对吗?

  9. anysql says:

    AUTOALLOCATE还是UNIFORM这两种是不需要去指定的, 不过如果是USER则是要指定的.

  10. kamus says:

    USER这种是从DMT升级上来的,而现在11i默认使用的是9i库,新创建的表空间应该直接都是LMT的,所以不应该存在USER的情况。

    当然不排除文档的古老性,因为今天看adpatch的文档仍然是提到需要按顺序打3个drv文件,但是现在oracle提供的patch都只有一个uxxxxxx.drv了。

  11. zero_chn says:

    现在是2009年不晓得楼主现在发展情况如何了,目标是否实现.我也刚接触Oracle EBS.

  12. Kamus says:

    楼主现在是Oracle员工了,不过还是做Oracle Database方面的工作 😀

Leave a Reply

Your email address will not be published. Required fields are marked *