oracle ebs 数据源,Oracle EBS环境下查找数据源(Form篇)

关于在Oracle EBS环境下如何查找数据源的文章几年前就已经开始整理,但是其中关于OAF方面的一直没有整理,导致这份文档一直残缺不全,

有很多次同事都向我索要相关文档都未能如愿以偿,新的一届培训工作再次启动,为了自己也能够“一劳永逸”,将相关内容整理发出。

在Oracle E-Business Suite 环境下进行二次开发,要求技术顾问对EBS系统的结构和实现有一定的了解,同时熟悉系统的关键流程,进而掌握后台的表结构设计,查找数据源需要达到的两个目的是:

到对应的数据库对象:视图或表

找到界面中字段对应后台的表列

本文先介绍如何查找Form界面对应的数据源,快速找出FOrm界面后台对应的表/视图以及对应的列,

Form本身特有的特点,致使查找Form界面所对应的后台数据源变得相对简单方便。

一、使用“查看—> 历史记录”功能

“历史纪录”可以找出数据块对应的后台数据库对象,并不能找出字段所对应的数据库列。

适用场合:适用于基于数据库块的数据源查找

前提:光标停留在需要查询数据源的数据块中,并按某个条件查询出数据

步骤:

选择菜单:Help –> Record History(帮助 –> 历史纪录)

查看弹出窗口中Table Name的值,这个值便是光标所在数据块对应的后台数据库视图或数据库表

实例(查找用户所对应的后台数据库对象):

光标定位于User Name字段

执行查询,查询出SYSADMIN用户信息

0818b9ca8b590ca3270a3433284dd417.png

选择菜单:Help –> Record History

0818b9ca8b590ca3270a3433284dd417.png

弹出如下窗口,其中Table Name的值:FND_USER,既是后台数据库对象

0818b9ca8b590ca3270a3433284dd417.png

限制:历史纪录”的方式只适用于基于数据库块的查询;而对于非数据库块的后台查询没有办法使用,不能使用的地方会弹出如下的消息:

0818b9ca8b590ca3270a3433284dd417.png

二、使用“查看 —> 诊断 –> 检查”

通过检查功能可以查找出字段对应后台数据库列信息,因此使用此方法的需要先找出对应的数据库视图或者表

步骤:

光标停留在Form界面中的一个字段

选择菜单:Help —> Diagnostics –> Examine

在弹出的窗口中输入数据库用户APPS的密码,确定

弹出窗口中Field对应的值既是Form所对应的字段,一般情况下,此值既是数据列的列名

实例(查找出User Name字段所对应的后台数据库列):

光标停留在User Name字段中

选择菜单:HelpàDiagnosticsàExamine

弹出如下窗口,输入数据库用户APPS的密码,确定

0818b9ca8b590ca3270a3433284dd417.png

弹出如下窗口,Filed的值:USER_NAME就是User Name字段所对应的后台数据库列,因此本字段为:fnd_user.user_name

0818b9ca8b590ca3270a3433284dd417.png

注意事项:使用此方法来查找数据列时,我们得到的只是Form字段的名称,很多使用Form字段的名称和所对应的数据源列一致,但是在少数情况下,Form字段名称和后台数据库列名存在差异,这个使用此方法就无法100%适用,而需要通过名称等进一步推测确认。

三、使用”Last Query”功能

使用最后查询可以找出在Form中最后执行查询的SQL语句,从而得知对应的数据源以及相关数据库列信息

适用场合:同时适用于基于数据库块和非数据库块的数据源查找

步骤:

在Form中进行数据查询

光标停留在Form界面中的一个字段上

选择菜单:Help –> Diagnostics –> Examine

在弹出的窗口中输入数据库用户APPS的密码,确定

弹出窗口中,选择Block为:SYSTEM,Field为:LAST_QUERY

Value中的SQL语句既是Form中最后查询的语句

实例(找出并发管理器对应的后台数据源):

进入并发管理器界面,并进行查询(自动查询),使用“历史纪录”方法无法得到表

0818b9ca8b590ca3270a3433284dd417.png

选择菜单:Help –> Diagnostics –> Examine,在弹出的窗口中输入APPS用户密码

弹出窗口中,选择Block为:SYSTEM,Field为:LAST_QUERY0818b9ca8b590ca3270a3433284dd417.png

取得Value为:

SELECT ROWID,

row_id,

concurrent_queue_name,

user_concurrent_queue_name,

target_node,

max_processes,

application_id,

concurrent_queue_id,

control_code,

manager_type

FROM fnd_concurrent_queues_vl

WHERE enabled_flag = 'Y'

ORDER BY decode(application_id, 0, decode(concurrent_queue_id, 1, 1, 4, 2)),

sign(max_processes) DESC,

concurrent_queue_name,

application_id

这样可以取得数据库视图:FND_CONCURRENT_QUEUES_VL

限制:由于Last Query中查询到的SQL语句是Form中最后一次查询的语句,因此如果需要查找像主从关系中主块数据源就没有办法适用

四、使用SQL Trace功能

使用SQL Trace功能,可以知道在Form操作过程中,对数据库系统进行了哪些查询、DML和DDL操作,可以全面的查看与数据库有关的操作和性能统计信息。

此方法是这些方法中功能最强大,同时也是最复杂的一个,而且它经常成为性能调试中的一个得力工具。

步骤:

启动Trace模式

在Form中进行操作,并保证操作有查询、插入、更新或删除动作

关闭Trace模式

登陆数据库服务器

使用Tkprof工具格式化Trace结果文件输出

查看被格式化过的Trace文件

推测验证数据源

实例(定义一个用户时,找到后台所进行的DML操作,进而找到后台数据源):

打开Form界面进入输入状态,还是以上面使用的User界面为例

选择菜单:Help –> Diagnostics –> Trace –> (Regular Trace, Trace with Binds, Trace with Waits, Trace with Binds and Waits)

0818b9ca8b590ca3270a3433284dd417.png

记下Trace文件路径及名称

0818b9ca8b590ca3270a3433284dd417.png

在界面上操作,输入信息,保存

选择菜单:Help –> Diagnostics –> Trace –> No Trace,失效Trace功能

使用数据库操作系统用户Telnet到数据库服务器,切换到$ORACLE_HOME/admin/_/udump(上面所显示的路径)

使用Tkprof命令格式化Trace输出:tkprof demo_ora_21088_SYSADMIN.trc demo_ora_21088.out

五、查看Form源代码

对于Form应用来说,如果上面的方法还不足以满足需求的话,可能就需要采用最彻底的办法了,直接查看Form的源代码,我想这个方法是最能够解决问题的方法了,但是由于需要查看源代码,对于查看的人员就需要熟悉Form的开发,因此一般情况下不先推荐使用它,但是对于如果希望完全搞清楚Form应用后台逻辑的情况下,也只能采用这种方式。

此方法在此就不做介绍了,此方法可以说只适合Form开发人员使用。

上面的方法是Oracle EBS二次开发中最常用最有效的方法,在Form相关的开发和应用中,掌握的以上的方法基本上能够解决绝大多数的问题。

后续将放出Oracle EBS环境下查找数据源的OAF篇。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

net-speeder

有的同学反映自己的***速度慢,丢包率高。这其实和你的网络服务提供商有关。据我所知一部分上海电信的同学就有这种问题。那么碰到了坑爹的网络服务商,我们应该怎么办呢? duangduang~~~~~~有请今天的主角:Net-Speeder登场&#xff…

linux 实用指令

通过init 来制定/切换不同的运行指令 查看linux 系统下,电脑的运行级别 vim /etc/inittab 如何找回丢失的root密码? 进入到单用户模式,然后修改root密码 进入到单用户模式,root不需要密码也可以登录 如果开机就是init 0 办法&…

Atitit.异步的实现模式attilax大总结

Atitit.异步的实现模式attilax大总结 1.1. 函数回调(包括的future模式)1 1.2. 事件机制( 包括定时器 listeners 1 1.3. 中断机制1 1.4. 订阅机制 发布/订阅 又称"观察者模式"(observer pattern)。1 1.5. Promises对象1 1.6. 轮询1 2. 实现级别…

区块链开发指南_区块链开发权威指南

区块链开发指南by Haseeb Qureshi由Haseeb Qureshi 区块链开发权威指南 (The authoritative guide to blockchain development) Cryptocurrencies, ICOs, magic internet money — it’s all so damn exciting, and you, the eager developer, want to get in on the madness.…

【BZOJ1831】[AHOI2008]逆序对(动态规划)

【BZOJ1831】[AHOI2008]逆序对(动态规划) 题面 BZOJ洛谷 题解 显然填入的数拎出来是不降的。 那么就可以直接大力\(dp\)。 设\(f[i][j]\)表示当前填到了\(i\),上一个填的数是\(j\)的最小逆序对数。 随便拿什么维护一下转移就好了。 #include&…

chrome控制台如何把vw显示成px_【CSS】rem,em,px的区别和使用场景

前端潮咖点击上面蓝字,关注我们!关注关注前端潮咖,每日精选好文作者:大前端小菜鸟来源:cnblogs.com/hyns/p/12380944.html作rem布局原理深度理解(以及em/vw/vh)一、前言我们h5项目终端适配采用的是淘宝那套《Flexible实…

php7对象转换成数组,php 如何把对象转换成数组对象

php把对象转换成数组对象的方法:首先打开相应的PHP代码文件;然后通过“function array_to_object($arr){...}”方法把对象转换成数组即可。本文操作环境:windows7系统、PHP7.1版,DELL G3电脑php-对象(object) 与 数组(array) 的转…

python中的线程之semaphore信号量

semaphore是一个内置的计数器 每当调用acquire()时,内置计数器-1 每当调用release()时,内置计数器1 计数器不能小于0,当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。 来看下面的代码: import time imp…

用什么代码可以改变键盘_为什么我改变了对代码质量的看法

用什么代码可以改变键盘by John Cobb约翰科布(John Cobb) 为什么我改变了对代码质量的看法 (Why I changed the way I think about Code Quality) What do you think about when you think about code quality?当您考虑代码质量时,您会怎么看? Is it …

建模:建模清单

ylbtech-建模:建模清单1.返回顶部 2.返回顶部3.返回顶部4.返回顶部5.返回顶部 6.返回顶部作者:ylbtech出处:http://ylbtech.cnblogs.com/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明&#xf…

获得picker选项的当前年月值_如果你用OPPO手机!千万记得开启开发者选项,手机性能大幅度提升...

如果你用OPPO手机!千万记得开启开发者选项,手机性能大幅度提升用过OPPO手机的用户都知道,手机使用1-2年都会出现卡顿的情况。这也是安卓手机的通病,但也有很多朋友手机使用3年也不会出现卡顿的现象,都是因为打开了手机…

imageset matlab,如何以imageSet或imageDataStore的形式向MATLAB中的BagOfFeatures()函數提供輸入?...

我想使用MATLAB的bagOfFeatures()函數。但它需要以imageSet或imageDataStore的形式輸入。我想運行的代碼如下:如何以imageSet或imageDataStore的形式向MATLAB中的BagOfFeatures()函數提供輸入?Dataset D:\dsktop\kinect_leap_dataset\acquisitions;thre…

Django运维后台的搭建之四:用bootstrap模板让运维前台变得更漂亮

我对于PHP和ajax是属于二把刀的水平,所以做网页前端肯定是比上天还难,但是我又想把网页做的漂亮可爱,怎么办呢?我就只好去download别人的模板,在这里我使用了bootstrap框架做的模板。各位可以去https://wrapbootstrap.…

codeigniter_如何在浏览器中查看CodeIgniter日志文件

codeigniterby Seun Matt通过Seun Matt 如何在浏览器中查看CodeIgniter日志文件 (How to View CodeIgniter Log Files in the Browser) Just like any other page, it is now possible to read CodeIgniter log files in the browser. My Sweet Goodness!与其他页面一样&#…

小程序强制自动更新

(3)强制更新官方版 微信团队2018-03-2315987浏览背景 此前有开发者反馈小程序发布新版本后,新版本覆盖率比较慢,因为小程序的更新机制是异步的,部分用户不会马上应用上新版本。 小程序启动会有两种情况,一种是「冷启动」&#xff…

联想m7400pro更换墨粉盒怎么清零_佳能打印机怎么换墨水 佳能打印机换墨水注意事项【详解】...

佳能打印机是我们办公室用品中比较常见的一个品牌,作为国际知名品牌,其质量也是非常有保障的。在使用的时候打印机没有墨是经常会遇见的。这时候我们就需要更换墨水盒了。但很多不知道具体步骤,或者没有注意相关细节,导致换墨水盒…

oracle数据库连接数超了,oracle数据库当前和最大连接数

1、查询oracle的连接数select count(*) from v$session;2、查询oracle的并发连接数select count(*) from v$session where statusACTIVE;3、查看不同用户的连接数select username,count(username) from v$session where username is not null group by username;4、查看所有用户…

MySQL Workbench导出数据库

步骤: 1. 打开mysql workbench,进入需要导出的数据库,点击左侧栏的【Management】tab键。 2. 点选要输出的数据库 点击【Data Export】选在要输出的数据库选择是否输出存储过程和函数,事件,触发器 点击Start Export3. …

django 传递中文_如何在Django中建立消息传递状态

django 传递中文by Ogundipe Samuel由Ogundipe Samuel 如何在Django中建立消息传递状态 (How to Build a Message Delivery Status in Django) Today, we will make a real-time message delivery status framework with Django and Pusher.今天,我们将使用Django和…

软链接与硬链接

文件引用模型 在linux中,一切皆文件,而文件包含元数据(metedata)和用户数据(user data)。元数据中的inode号是系统标识和获取用户数据的唯一凭证,而文件名仅是为了方便用户记忆和使用。为了管理…