如何定义只读的FORMS?' w0 P& ?" `; x- L
解答:对某些FORMS,有时需要限制用户的访问,比如说不允许修改FORMS。我们可以采用这种方法来解决,以系统管理员职责登录,应用->功能,如下图输入:/ ?2 z0 I3 o. t, V
点击“表单”,在参数中输入“QUERY_ONLY=YES”,其他输入如下图所示:
! {4 Q) ]$ ]* X 这样你就可以在菜单中添加这个“只读用户”的功能表单
5 A; v7 B& e* @% @3 y* u8 d 如何更改APPLSYS用户的密码?
- X; Z% g6 R: f& w: E7 M5 B8 m 解答:在以前版本中,更改APPLSYS的密码相当的麻烦,既要更改Applications层的密码,又要更改数据库的密码,而且顺序还不能乱,挺麻烦。11i版本引入新的工具FNDCPASS(位于$FND_TOP/bin),你可以轻松更改APPLSYS的密码:
7 M7 \9 U% N4 l $FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYS WELCOME- \4 n5 u* g! [: x" t M6 k
上述语句把APPLSYS的密码改为WELCOME,当然你可以利用它更改各个模块数据库的密码,例如:& I6 |( p3 @7 {. v2 d' v8 J* s
$FNDCPASS apps/apps 0 Y system/manager ORACLE GL GL1: E9 W4 t4 u' L$ Q
上述语句把GL的密码改为GL1,同时,你也可以更改Applications层用户的密码:
& J( ?/ V* a' ?: C5 r+ L1 u $FNDCPASS apps/apps 0 Y system/manager USER VISION WELCOME
( f3 P% v2 m* @/ R 上述语句把VISION用户的密码改为WELCOME
9 ]7 a5 k2 k0 ~$ j; K 如何卸载Oracle Applications的部分模块?9 y. i: O7 }9 y" a. U5 e
解答:mount光驱,把11i的光盘放入,运行adunload(位于$AD_TOP/bin下),例如:. ]1 E) R& D1 n3 C# L( E
$ adunload.sh product=ar 卸载AR模块
3 T: D$ `9 @: p: v: Y4 q3 T% ~ $ adunload.sh product=gl directory=forms/ZHS filename=GLSTUOM.fmx
1 l( d6 J5 I. } H% Y+ E; n6 q6 ]- T: b1 p3 |# A
怎样往已经安装好的系统添加新的模块?
) A% X, T& v( F, [ 解答:如果你有图形终端,你可以直接运行x windows,否则你可以用XWIN-32、Reflection之类终端仿真登录,设置display属性和访问权限,例如:
# k- y/ }/ ~3 C/ }; d $ export DISPLAY=192.168.42.88:0.0
- U( g, Q0 p( U& F8 R $ xhost + 允许所有的主机访问
, R+ L: N* {& f6 b! o 然后运行adlicmgr.sh,安装你要安装的新模块,然后更新APPLFULL和APPLSHAR的路径,接着重新应用最新的相关补丁,重新实施新安装模块6 o! g! T* y7 R% F& J) ~* @
+ a9 q6 u) i% r: e2 | 如何仿真Oracle Applications的用户?' O6 E' q5 d+ b" e8 @
解答:使用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,这样你可以使用上述方法达到你的目的)
- U7 H/ a4 y" \- S
9 y. h, I7 ~" f5 G5 e4 l 怎样kill在监控用户列表中处于inactive的用户?( V9 a3 v5 o$ l$ B, m1 m
解答:执行下列语句2 a( C8 A0 }1 x
SELECT SUBSTR(d.user_name,1,30) "User Name"
* G9 [8 J7 _# K* B% X, Q , a.pid
$ @) b* O3 k5 ?2 p% H! R1 d9 H , b.sid$ E1 } n* ]/ s. t: K) E( v
, b.serial#! ]3 U& Y8 z+ z' Z$ h, S9 |3 m1 C: Y+ g
FROM v$process a, v$session b, fnd_logins c, fnd_user d
3 q& A. X1 N0 Y% k# U C WHERE a.pid = c.pid$ l, S: c6 g6 T. P+ I6 h8 i
AND c.pid = &PID2 @9 }3 Y- |- {; V; p; j8 R
AND d.user_name = UPPER('&USER_NAME')
! e& ]+ { ]5 U. W' S! ?5 U" x# E AND d.user_id = c.user_id
: b2 ]' F5 Q* c. X AND a.addr = b.paddr8 ]2 ]- \' N5 \5 N4 ^ ?# E( Q
AND c.end_time IS NULL8 g8 e- ]' R9 c, @! W' r0 i" d+ h+ J% W
其中&PID输入“Oracle进程”列,&USER_NAME输入“用户名”栏,根据获得的SID和SERIAL#,是用以下语句来KILL SESSION:
: L- M# L# l. k# U# J' c0 N ALTER SYSTEM KILL SESSION ‘[SID],[SERIAL#]’$ n8 D5 A P" {, Y5 J, e, G
4 q7 H9 e9 c( `( S) t4 B- D+ F3 i
如何自定义并发请求?
8 j- F6 w* i3 x2 D 解答:如果你为一些模块写SQL类型的并发请求,你就必须知道如何为它定义并发请求。下面以test.sql为例,谈谈如何定义OM模块的并发请求。首先,把test.sql放到$ONT_TOP/sql目录下;然后以系统管理员职责登录,并发->程序->可执行,在窗体上输入可执行为“Test only”,简称为“tst”,应用选择“Oracle Order Management”,执行方法选择“SQL*Plus”,在可执行名输入“test”(这里的名称就是test.sql去掉.sql),保存关闭,如下图所示:
: g- D3 B* N$ H 并发->程序->定义,输入程序名称为“Test Report”,简称“tstr”,应用选择“Oracle Order Management”,可执行栏中,在名称选择“tst”,保存即OK,如下图所示:
& g3 @: v! Y1 z7 J* L 这样你就可以在OM模块相关职责中,提交“Test Report”这个报表了。& |2 A" I6 C& e: ?- F
如何将二次开发的FORMS融合进Applications系统呢?7 f- P" i5 U$ F' j; o, I' q
解答:首先为二次开发的系统建立数据库表空间,然后创建访问用户CUX,为CUX用户分配权限,在unix系统下指定CUX_TOP的目录,并在CUX_TOP目录创建跟其他模块相同的目录结构,同时在环境变量文件中设定CUX_TOP环境变量(记得必须在重启系统前运行环境变量文件),把TEST.fmb放在AU_TOP/forms/ZHS目录下,进入这个目录,使用f60gen进行编译:! {; J* h% C1 Y7 k c( F
$ f60gen module=TESt.fmb userid=apps/apps output_file=$CUX_TOP/forms/ZHS/TEST.fmx
1 o/ ~0 C; V s) { 然后以系统管理员的身份登录系统,安全性->ORACLE->注册,输入信息如下图所示:
" S# F* ^/ D6 ?. V% L) P4 \6 D 保存退出,然后以应用开发者的职责进入系统,应用->注册,输入如下图所示:
; u5 S4 }) G& q0 R: c
& c% ?" c$ u: w% O m 然后存盘退出,然后 应用->表单,其中表单输入的是TEST.fmx去掉.fmx,存盘退出,然后可以在应用->功能,为表单设置功能菜单(上面已经有介绍),最后你就可以往菜单中添加表单功能. |