您的位置:首页 > 移动开发

R12中注册应用为多组织应用

2013-12-15 21:01 274 查看

Oralce EBS R12中引入了MOAC的控制,所有多OU的表对象都添加了数据库VPD的控制策略,需要访问这些对象中的数据,首先需要进行多组织环境的初始化,但是如果客户化的应用中也需要具备多OU的能力,那也需要按照EBS的规范来创建数据库对象,同时访问客户化数据库对象数据时也需要对客户化应用进行多组织环境的初始化.

如下所示初始化客户化应用XHU:

BEGIN
MO_GLOBAL.init('XHU');
END;

ORA-20001: SQL_PLSQL_ERROR: N, ROUTINE, MO_GLOBAL.INIT, N, ERRNO, -20001, N, REASON,
ORA-20001: SQL_PLSQL_ERROR: N, ROUTINE, MO_GLOBAL.SET_ORG_ACCESS, N, ERRNO, -20001, N, REASON,
ORA-20001: APP-FND-02938: 多组织例程初始化产品: &PRODUCT 的会话失败。请通知您的支持代表。
ORA-06512: 在 "APPS.FND_MESSAGE", line 509
ORA-06512: 在 "APPS.MO_GLOBAL", line 36
ORA-06512: 在 "APPS.MO_GLOBAL", line 757
ORA-06512: 在 "APPS.MO_GLOBAL", line 700
ORA-06512: 在 line 3

运行下面的SQL来检查一下客户化应用的情况

SELECT COUNT(*)
FROM fnd_mo_product_init t
WHERE application_short_name = 'XHU'
AND status = 'Y';

COUNT(*)
----------
0

从上面的SQL结果可以看出由于客户化应用并没有注册为多组织的应用,因此初始化失败,通过下面的脚本来注册客户化应用使得多组织访问有效:

BEGIN
fnd_mo_product_init_pkg.register_application('XHU',
'SYSADMIN',
'Y');
COMMIT;
END;

上面语句执行后,客户化应用就具备了多组织访问的能力了,再次进行多组织的初始化就没有问题了。

当然如果你想去掉客户化应用的多组织能力,可以运行下面的代码来移除它:

BEGIN
fnd_mo_product_init_pkg.remove_application('XHU');
COMMIT;
END;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  application sql plsql MOAC VPD