Oracle ERP 11i 维护经验

1. 在oracle applications 11i 中如何快速获得上次查询的SQL 语句
方法:我们不必使用SQL Trace 来获得,有一个简单的办法,即:帮助->诊断->检查->在"
块"中输入"system",在"字段"输入" last_query ",然后把鼠标移动到"值",你就可以看到你
所要的SQL 语句,简单吧!

2. 如何更改Applications 中LOG 的存放位置
方法:(以AIX 为例)在11i 中默认LOG 的存放位置是各个模块下log 目录,例如FND
模块log 的存放目录就是$FND_TOP/log/,可能有些用户想统一管理log,可以采取下面这
种方法得到解决:
更改applprod 用户(用于启动FormSever,ReportServer 和并发管理器等)的.profile,
增加两行:
APPLCSF=/u10/oracle/prodcomn
export APPLCSF
然后重新以applprod 登录,重新启动FormSever,ReportServer 和并发管理器等(一般有
个shell 文件,例如start.sh),至于为什么能起作用?原因很简单,Applications 首先查看
APPLCSF 环境变量是否设置,一旦设置,所有的log 均存放在$APPLCSF/log;否则就存
放在各个模块的log 目录

3. 如何清除一些历史数据?
方法:Applications 11i 的许多模块都提供清除相关历史数据,例如fnd 模块提供"清除
过时的工作流运行时数据"的并发请求,你可以清除OM 模块的旧的工作流的历史数据(目
前我们系统中每隔3 个月自动清除);fnd 模块提供"汇总和清除并发请求统计",你可以清除提交并发请求产生的log(目前我们系统每隔7 天自动清除)。大家有兴趣可以去研究一下其他模块的提供的清除历史数据的并发请求,毕竟系统用了一阶段,数据量剧增,给备份,
硬件和整个系统性能都会有很大的影响,做一些必要的清除工作也许能解决燃眉之急,而且
能减少整个硬件的投资

4. 如何获得某个Forms 文件的版本号?
方法:当你跟踪iTAR 时,Oracle 工程师有时会叫你提供某个Forms 版本,你可以采
用如下方法获得(以AIX 为例):Strings filename|grep Header
#adident Header

5.如何获得Oracle Applications快捷键的定义?
解答:CTRL+K,通过它,你可以了解到Oracle Applications快捷键的定义,从而加快操作的速度

6.如何更改APPLSYS用户的密码?
解答:在以前版本中,更改APPLSYS的密码相当的麻烦,既要更改Applications层的密码,又要更改数据库的密码,而且顺序还不能乱,挺麻烦。11i版本引入新的工具FNDCPASS(位于$FND_TOP/bin),你可以轻松更改APPLSYS的密码:
$FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYS WELCOME
上述语句把APPLSYS的密码改为WELCOME,当然你可以利用它更改各个模块数据库的密码,例如:
$FNDCPASS apps/apps 0 Y system/manager ORACLE GL GL1
上述语句把GL的密码改为GL1,同时,你也可以更改Applications层用户的密码:
$FNDCPASS apps/apps 0 Y system/manager USER VISION WELCOME
上述语句把VISION用户的密码改为WELCOME



1、如何设置Oracle Form上的字体?

将c:Program FilesOracleJInitiator 1.3.1.25lib下

font.properties.zh
font.properties.zh.5.0 font.properties.zh.5.1 中的
dialog.0和dialog.1字体互换 如下
dialog.0=Arial,DEFAULT_CHARSET
dialog.1=u5b8bu4f53,DEFAULT_CHARSET
如果是win 2003系统,把font.properties.zh.5.1 改名字

font.properties.zh.5.2

2、如何设置Form的色彩?

在Profile里设置:Java Color Scheme


3、如何定义自助个人主页登录模式?

Profile里定义:Self Service Personal Home Page mode

同时打开多个职责的Form,如果选择仅限于结构,会以网页方式打开功能,然后如

果先后打开多个职责则后打开的职责会替换掉新的职责,保证仅有三个窗口存在。

如果选择:个人主页,则可以同时打开多个职责。没发现选择:具有结构的个人主

页 与“仅限于结构”有太大的区别,只是在一登录系统时感觉上像是“个人主页

”方式。

4、Form Export文件时,系统自动加扩展名为:.XLS?

Profile里定义:%MIME% change it to 'applicationExcel'

5、不重启AP或DB,直接重启并发管理器的方法?

telnet 服务器
切换到应用用户
adcmctl.sh stop apps/apps
adcmctl.sh start apps/apps

6、Oracle EBS有哪些默认的登录名及密码?

sysadmin/sysadmin
mfg/welcome
operations/welcome
services/welcome
mrc/welcome
hrms/welocme

7、如何将Sql&plus的输出信息转换为英文?

修改注册表:HKEY_LOCAL_MACHINESOFTWAREOracle----NLS_LANG

将SIMPLIFIED CHINESE_CHINA.ZHS16GBK替换为AMERICAN_CHINA.UTF8

8、如何强制关闭任务管理器(Windows)的进程?

ntsd -c q -p PID

9、10g_client下载地址?

http://download.oracle.com/otn/nt/oracle10g/10g_win32_db.zip

http://download.oracle.com/otn/nt/oracle10g/10g_win32_client.zip

10、如何查询视图里的数据?

首先在Toad中运行如下语句:

begin
dbms_application_info.set_client_info(106);
end;

P.S.106指的ORG_ID,也可以是SOB_ID,根据需要设置。


Oracle Applications 11i 技术支持经验杂谈
如何获得Oracle Applications快捷键的定义?
解答:CTRL+K,通过它,你可以了解到Oracle Applications快捷键的定义,从而加快操作的速度
Oracle Applications表和视图的一些命名规则?
解答:一般来说,在Applications中所有的表的命名都是相当规范,通过名字,一般你都可以知道这个表是做什么用,而且你还可以通过查看FND_TABLES和FND_COLUMNS来获得表的详细信息。除此之外,还有一些规则,例如以TL结尾表示带有语言信息的表,V结尾表示一般的视图,VL表示带有语言信息的视图,以V$开头代表动态性能试图,以FND开头是属于Application Object Library模块的,以AR,RA开头是属于Oracle Receivables模块的,以MTL开头是属于库存模块的,以AP开头是属于应收模块的,以GL开头是属于总帐模块的,以FA开头是属于资产模块的,以OE开头的是属于订单模块的,以WSH开头是属于发运模块的,以WIP开头是属于在制车间模块的,以IBE开头是属于网上商店的,etc
如何获得有关当前FORM的名、版本及其其他相关信息?
解答:帮助->关于Oracle Applications(这对于更改FORM和向metalink提交TAR时特别有用),当然你也可以通过unix命令来获得FORM的头信息,例如( 以AIX为例):
$strings FNDSCAUS | grep Header
如何获得当前FORM相应的表或者视图信息?
解答:帮助->历史纪录,当然有可能存在“无历史纪录”或者“历史纪录”菜单是灰的,你可以通过CTRL+F11进行查询,然后再进行查看;有时这种方法也不可行,你可以尝试使用这种方法,同样按CTRL+F11,然后帮助->诊断->检查,在“块”中输入SYSTEM,在字段输入LAST_QUERY,你就可以获得有关查询的信息;如果实在没办法的话,你可以使用TRACE来获得,帮助->诊断->跟踪,然后进行必要的操作,在UNIX操作系统下以数据库用户登录,例如oraprod,然后执行下列的语句:
$cd $ORACLE_HOME/admin/udump
$ll –lt|head 查看时间最接近的语句
$tkprof filename out_filename explain=apps/apps sys=no
如何获得客户端跟服务器端之间网络的状况?
解答:以系统管理员身份登录,应用->网络测试( 也许你会经常听到客户的怨言,说为什么速度太慢,这也许不是服务器端的问题,经常的情况是网络状况不好,你可以通过这种方法来验证)
如何修正监控用户的不准确的数据呢?
解答:以系统管理员身份登录,请求->运行,提交“清除登录审计数据”,参数可以设定为当天,然后在计划选项中设定“定期”,开始日期设定为晚上11点左右,同时使“设置每次运行的日期增量参数”有效,这样参数就会每天自动增加(也许系统管理员有时会向你抱怨,说监控用户时,很多用户都已经正常退出,但是仍然在系统中存在,而且已经存在很长一段时间。其实这部分数据是不准确,你必须定期的清除这些审计的数据,才能反映真实的情况)
如何定期清理并发请求产生的数据(包括log和out文件)呢?
方法:提交并发请求“清除并发请求和(或)管理器数据”,设定实体为“所有”,模式为“使用期限”,模式值为“7”,报表为“是”,清除其他为“是”,这样的意思是:清除7天以前并发请求和管理数据的报表和日志(由于并发请求所产生的报表文件占用的空间比较大,定期做这样的清理是很有必要的)

如何定义只读的FORMS?
解答:对某些FORMS,有时需要限制用户的访问,比如说不允许修改FORMS。我们可以采用这种方法来解决,以系统管理员职责登录,应用->功能,如下图输入:
点击“表单”,在参数中输入“QUERY_ONLY=YES”,其他输入如下图所示:
这样你就可以在菜单中添加这个“只读用户”的功能表单
如何更改APPLSYS用户的密码?
解答:在以前版本中,更改APPLSYS的密码相当的麻烦,既要更改Applications层的密码,又要更改数据库的密码,而且顺序还不能乱,挺麻烦。11i版本引入新的工具FNDCPASS(位于$FND_TOP/bin),你可以轻松更改APPLSYS的密码:
$FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYS WELCOME
上述语句把APPLSYS的密码改为WELCOME,当然你可以利用它更改各个模块数据库的密码,例如:
$FNDCPASS apps/apps 0 Y system/manager ORACLE GL GL1
上述语句把GL的密码改为GL1,同时,你也可以更改Applications层用户的密码:
$FNDCPASS apps/apps 0 Y system/manager USER VISION WELCOME
上述语句把VISION用户的密码改为WELCOME
如何卸载Oracle Applications的部分模块?
解答:mount光驱,把11i的光盘放入,运行adunload(位于$AD_TOP/bin下),例如:
$ adunload.sh product=ar 卸载AR模块
$ adunload.sh product=gl directory=forms/ZHS filename=GLSTUOM.fmx
怎样往已经安装好的系统添加新的模块?
解答:如果你有图形终端,你可以直接运行x windows,否则你可以用XWIN-32、Reflection之类终端仿真登录,设置display属性和访问权限,例如:
$ export DISPLAY=192.168.42.88:0.0
$ xhost + 允许所有的主机访问
然后运行adlicmgr.sh,安装你要安装的新模块,然后更新APPLFULL和APPLSHAR的路径,接着重新应用最新的相关补丁,重新实施新安装模块
如何仿真Oracle Applications的用户?
解答:使用fnd_global.apps_initialize(user_id,resp_id,resp_appl_id),其中user_id,resp_id,resp_appl_id可以通过这种方法获得:帮助->诊断->检查,在块中选择$PROFILES,在字段选择USER_ID可以获得USER_ID,同样方法可以获得RESP_ID,RESP_APPL_ID(可能有时你需要在Oracle Applications环境外运行一些PL/SQL语句,但是这些语句中需要访问系统相关的环境变量,例如view,这样你可以使用上述方法达到你的目的)
怎样kill在监控用户列表中处于inactive的用户?
解答:执行下列语句
SELECT SUBSTR(d.user_name,1,30) "User Name"
, a.pid
, b.sid
, b.serial#
FROM v$process a, v$session b, fnd_logins c, fnd_user d
WHERE a.pid = c.pid
AND c.pid = &PID
AND d.user_name = UPPER('&USER_NAME')
AND d.user_id = c.user_id
AND a.addr = b.paddr
AND c.end_time IS NULL
其中&PID输入“Oracle进程”列,&USER_NAME输入“用户名”栏,根据获得的SID和SERIAL#,是用以下语句来KILL SESSION:
ALTER SYSTEM KILL SESSION ‘[SID],[SERIAL#]’
如何自定义并发请求?
解答:如果你为一些模块写SQL类型的并发请求,你就必须知道如何为它定义并发请求。下面以test.sql为例,谈谈如何定义OM模块的并发请求。首先,把test.sql放到$ONT_TOP/sql目录下;然后以系统管理员职责登录,并发->程序->可执行,在窗体上输入可执行为“Test only”,简称为“tst”,应用选择“Oracle Order Management”,执行方法选择“SQL*Plus”,在可执行名输入“test”(这里的名称就是test.sql去掉.sql),保存关闭,如下图所示:
并发->程序->定义,输入程序名称为“Test Report”,简称“tstr”,应用选择“Oracle Order Management”,可执行栏中,在名称选择“tst”,保存即OK,如下图所示:

这样你就可以在OM模块相关职责中,提交“Test Report”这个报表了。
如何将二次开发的FORMS融合进Applications系统呢?
解答:首先为二次开发的系统建立数据库表空间,然后创建访问用户CUX,为CUX用户分配权限,在unix系统下指定CUX_TOP的目录,并在CUX_TOP目录创建跟其他模块相同的目录结构,同时在环境变量文件中设定CUX_TOP环境变量(记得必须在重启系统前运行环境变量文件),把TEST.fmb放在AU_TOP/forms/ZHS目录下,进入这个目录,使用f60gen进行编译:
$ f60gen module=TESt.fmb userid=apps/apps output_file=$CUX_TOP/forms/ZHS/TEST.fmx
然后以系统管理员的身份登录系统,安全性->ORACLE->注册,输入信息如下图所示:
保存退出,然后以应用开发者的职责进入系统,应用->注册,输入如下图所示:
然后存盘退出,然后 应用->表单,其中表单输入的是TEST.fmx去掉.fmx,输入如下图所示:
存盘退出,然后可以在应用->功能,为表单设置功能菜单(上面已经有介绍),最后你就可以往菜单中添加表单功能。