使用PL/SQL Developer模拟MOAC登录EBS的方法

用户登录进EBS系统以后,可以执行一系列的操作,比如查询某些表,但是会发现,当我们用PL/SQL Developer工具以apps用户登录进EBS数据库的时候,使用同样的SQL查询语句,但是在PL/SQL Developer中可能直接查询不到数据,或者只是显示了某一部分。这是由于EBS中的MOAC控制,MOAC实际上应用的是一种Oracle VPD方案。

想要在PL/SQL Developer中也一样可以像在EBS中一样,执行相同的SQL可以取得相同的查询结果,首先需要在PL/SQL Developer中执行初始化代码来模拟MOAC登录EBS,执行代码如下:

BEGIN
  fnd_global.apps_initialize(user_id      => 2393,
                             resp_id      => 50691,
                             resp_appl_id => 201);
  mo_global.init(p_appl_short_name => 'PO'); -- 在11i的版本中不用执行mo_global.init,R12新增
END;

上面的参数user_id、resp_id、resp_appl_id等都可以通过EBS的“帮助->检查”找到,如下:

检查$PROFILES$块下的USER_ID字段值

图1:检查$PROFILES$块下的USER_ID字段值

如上图1所示,注意查找的块是$PROFILES$,选择其中的字段,可以找到user_id、resp_id、resp_appl_id等需要的值。mo_global.init的参数是appl_short_name,记不清应用的short_name的时候,可以通过查找fnd_application表的application_short_name字段找到。注意上面的这段模拟登录的初始化代码是在每一个session中执行一次。

2015年01月26日补充:

如果是在OAF的网页界面中,想要查找到user_id、resp_id、resp_app_id,可以利用如下方法:

“关于本页”中的“页上下文”

图2:“关于本页”中的“页上下文”

每一个网页的最下面,都有一个about this page,中文翻译是“关于本页”,点进去以后,进入“页上下文”,如上图2所示,其中可以看用户名、责任、应用产品,虽然其中只是显示了用户名,没有直接显示出用户ID,但是可以通过查找fnd_user表,来找到用户ID。

查找用户ID

图3:查找用户ID

如上图3就是查找用户ID的演示,到这里,已经完全找到了需要的user_id(用户ID)、resp_id(责任ID)、resp_app_id(应用产品ID)。

本文标题:使用PL/SQL Developer模拟MOAC登录EBS的方法

本文链接:http://yedward.net/?id=194

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章