关于oracle ebs系统apps的一些故事
Why call it Apps and not Oracle ERP ?
以前就很想知道为什么人们常常把Oracle E-Business Suite称作“Apps”?就因为Apps是Oracle Applications的缩写么?也许是。其实这个问题给了我一个很好地理由来解释APPS schema的进化史。
九年前我开始从事Oracle Financials的工作,那时每一个模块都有它自己database schema(当然现在还有,比如po,inv,wip,ar...),对于一个做采购的用户(EBS 10.6版本前),想要查看数据,就要使用po的Schema来查看。同样,如果一个AR模块的report或者form想要访问PO_HEADERS_ALL,他们就需要加上前缀'PO'、PO.PO_HEADERS_ALL。但是EBS里有很多的数据库Schema(一般情况下一个模块一个Schema),每一个表都有它所对应的schema,这样我们写SQL或者在写代码的时候,经常要加一个Schema前缀到表的前面,这就比较讨厌。
所以后来,Oracle引入了一个新的schema——“APPS”,其他schema下的数据,在apps下都能看到,这样我们就不用每次都要加前缀才能查看其他模块的数据了,用户可以轻松的访问任何模块的表数据。同样,如果想要增加一个新的表到系统中,我们需要做以下几件事情:
-- Step 1: Connect to po/po@XX_DEVDB Create table PO_HEADERS_ALL ( ...all columns here ) -- Step 2: Grant all on po_headers_all to apps -- Step 3: connect to apps/apps@XX_DEVDB Create or replace synonym PO_HEADERS_ALL for PO.PO_HEADERS_ALL
上面的代码的意思就是,先在相应的schema下面创建table,然后授予apps对该table的权限,再登录apps,在apps schema下创建同义词。通过以上的几步,你就会发现,APPS schema不用加前缀(po.po_headers_all)就可以访问PO_HEADERS_ALL了。
现在在Oracle ERP里,我们已经有超过100个schema了,比如:po、ar、ap、gl……,Form、Report、workflow里我们只需要连接到apps schema下即可所有模块的数据,ALL ROADS LEAD TO ROME,这里ALL Schema Lead to APPS.因此假设你想关联ap_invoices_all table(AP schema) 和PO_HEADERS_ALL table(AP schema),你只需要简单的连上APPS,然后写:
SELECT 'x' FROM po_headers_all p, ap_invoices_all a WHERE a.po_id = p.po_id;
在10.6版本前你不得不这么写:
SELECT 'x' FROM po.po_headers_all p, ap.ap_invoices_all a WHERE a.po_id = p.po_id;
Moral of the Story is:
(1)所有的PL/SQL Package要在APPS Schema下创建。
(2)所有的View要在APPS Schema下创建。
(3)对于每一个独立Schema下的表数据,在Apps schema下要同样有一个synonym存在。
(4)不是在Apps Schema下创建表。
(5)对于客户化来说,至少应该有一个custom schema来用于客户化表的创建。
综上,也就是说其实APPS Schema下面并不拥有表,表都是其他Schema下的,在APPS中只是存在一个访问其他Schema下表的同义词。
PS:本文转自“Paul's Notes”的《Why call it Apps and not Oracle ERP》,只做学习、交流之用。
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:叶德华的博客 来源: 叶德华的博客
- 标签: ebs
- 发布时间:2015-01-24 23:42:54
- [70] Twitter/微博客的学习摘要
- [65] IOS安全–浅谈关于IOS加固的几种方法
- [65] 如何拿下简短的域名
- [64] find命令的一点注意事项
- [63] Go Reflect 性能
- [63] android 开发入门
- [61] 流程管理与用户研究
- [59] 图书馆的世界纪录
- [59] 读书笔记-壹百度:百度十年千倍的29条法则
- [59] Oracle MTS模式下 进程地址与会话信