概述
从EBS 11i升级至R12,总的来说更变较大的就是多OU访问(MOAC)和表视图的更变。
因为标准功能oracle都帮我们做了升级,本文档所说的11升12都是客户化的更改。
多OU访问[1][2]
不同于11i限定ORG_ID的方式,使得视图只能筛选单个OU的数据,R12使用安全策略来控制OU数据的访问,可以用类似下面的执行语句注册客户化的应用:
DECLARE
CURSOR c_init_mo IS
SELECT fa.application_short_name
FROM fnd_application fa
WHERE fa.application_short_name LIKE 'ZZ%';
l_init_app VARCHAR2(20);
BEGIN
FOR l_init_app IN c_init_mo
LOOP
fnd_mo_product_init_pkg.register_application(l_init_app.application_short_name, 'SEED', 'N');
END LOOP;
END;
由于是将11的功能完全移植到R12,form与报表需要设置OU访问层次的地方全部设为单个OU。
FORM更改当中,有可能用到11i当中是视图,R12当中是同义词的表(例如PO_HEADERS),如果简单进行编译,有可能取不到任何数据,在pre-form的地方需要加以语句进行初始化:
MO_GLOBAL.init(‘ZZOM’);
报表遇到类似的情况也要做相应处理:
切换到:系统管理员->系统管理->并发->程序
查询出需要设置的请求,设置为单个OU。
数据库对应字段为:
fnd_concurrent_programs.multi_org_category (S,M)
选取FORM源代码
可能会出现之前实施标准不一致,出现同一个form在form/ZHS出现forms/US出现以及form目录都出现,并且时间不一样的情况。为了避免以后由于版本不对造成的一系列问题。在取form源代码的时候可以进入APPL_TOP,使用下面的语句筛选最符合要求,时间离fmx最近的一个fmb源代码:
find . -name "ZZCSTDBT034F.fmb" -exec ls -l {} \;
R12视图更变
处理视图更变是R12升级最占时间的一项工作,一些客户化的程序包使用11i当中存在,R12当中不存在;R12表字段更变、表字段缺失;R12数据存储方式更变的各种情况。
以下列出一些常见的表视图更变实例及替换:(肯定还有其他的)
GL_TRANSLATION_RATES_V
基表筛选或新增视图
RA_ADDRESSES_ALL
基表筛选或新增视图
RA_SITE_USES_MORG
基表筛选或新增视图
RA_ADDRESSES
基表筛选或新增视图
AR_CUSTOMERS_V
基表筛选或新增视图
RA_CUSTOMERS
ar_customers
RA_HCUSTOMERS
ar_customers
RA_CONTACTS
基表筛选或新增视图(HZ_CUST_ACCOUNT_ROLES)
AP_AE_HEADERS_ALL
XLA_AE_HEADERS
AP_AE_LINES_ALL
XLA_AE_LINES
AP_ACCOUNTING_EVENTS_ALL
XLA_EVENTS
AP_BANK_ACCOUNTS_ALL
CE_BANK_ACCOUNTS
AP_BANK_ACCOUNT_USES_ALL
CE_BANK_ACCT_USES_ALL
AR_CUSTOMER_BANK_ACCOUNTS_V
特别对待
AP_BANK_BRANCHES
CE_BANK_BRANCHES_V
AP_CHECK_FORMATS
IBY_FORMATS_B
AP_CHECK_STOCKS_ALL
CE_PAYMENT_DOCUMENTS
RA_SITE_USES_ALL
HZ_CUST_SITE_USES_ALL
RA_SITE_USES
HZ_CUST_SITE_USES_ALL
AR_HCUSTOMER_PROFILE_AMOUNTS
HZ_CUST_PROFILE_AMTS
AR_VAT_TAX_ALL
AR_VAT_TAX_ALL_B
ZX_RATES_B
AR_CUSTOMER_PROFILE_AMOUNTS
HZ_CUST_PROFILE_AMTS
GL_TRANSLATION_RATES
期间汇率不用了
注意:这里只提到了_ALL的表,实际开发肯定要将不带_ALL的也考虑进更替项当中。考虑到form当中也可能用到这些表或者视图(R12不用,但是表存在),建议升级客户化修改当中首先将这些表的apps同义词删除!
补充:RA_ADDRESSES_ALL发现,基于11i的表视图筛选有问题!!!有部分数据筛选不出来,hz_loc_assignments更变比较大,建议RA_ADDRESSES_ALL直接用表hz_cust_acct_sites_all替换
其中,对于AP_AE_HEADERS_ALL与AP_AE_LINES_ALL表,部分字段R12存储在其他表当中了,比如AP_AE_LINES_ALL的SUBLEDGER_DOC_SEQUENCE_ID存在了GL_IMPORT_REFERENCES表(可能是考虑到了数据重复的情况,11里面查询subledger_doc_sequence_value,subledger_doc_sequence_id全部对应)。具体可以视情况而定,不清楚可以查看相应oaf界面。
可以用以下SQL确认subledger_doc_sequence_id字段:
SELECT a.subledger_doc_sequence_id,
a.subledger_doc_sequence_value,
b.subledger_doc_sequence_id,
b.subledger_doc_sequence_value
FROM gl_import_references a,
ap_ae_lines_all b
WHERE a.gl_sl_link_table = 'APECL'
AND b.gl_sl_link_id = a.gl_sl_link_id
AND a.subledger_doc_sequence_id IS NOT NULL
AND a.subledger_doc_sequence_value != b.subledger_doc_sequence_value
数据变换比较大的是这两个表:
AP_BANK_ACCOUNTS_ALL、AP_BANK_ACCOUNT_USES_ALL
在11当中,客户银行账户、供应商银行账户、内部银行账户全部存在上面2个表当中,而R12,内部银行账户存储在列出的变