EBS 的profile 主要记录在3 个表里面.
SELECT * FROM fnd_profile_options_tl WHERE USER_PROFILE_OPTION_NAME LIKE 'INV%Debug%';
SELECT * FROM fnd_profile_options WHERE PROFILE_OPTION_NAME LIKE 'INV_DEBUG_TRACE';
SELECT * FROM fnd_profile_option_values WHERE profile_option_id = 3696;
SELECT *
FROM fnd_profile_option_values
WHERE profile_option_id IN (
SELECT profile_option_id
FROM fnd_profile_options
WHERE PROFILE_OPTION_NAME = (
SELECT PROFILE_OPTION_NAME
FROM fnd_profile_options_tl
WHERE USER_PROFILE_OPTION_NAME LIKE 'Initialization SQL Statement - Custom'
)
);
比如我们想要查找 INV%Debug 相关的profile, 可以从 fnd_profile_options_tl 表里面搜索, 找到这个profile 对应的profile_option_name. 再通过这个name 从fnd_profile_option_values 表里面找出对应的 profile_option_value.
这样可以直接更新fnd_profile_option_values 里面的记录, 和form 界面上更新是一样的. 记得commit 就可以.
例如想要更新 INV log 的文件名
UPDATE fnd_profile_option_values set profile_option_value = '/usr/tmp/2014-04-29.log' where profile_option_id = 3697 and level_id = 10004 and level_value = 1068
level_value 是user_id, MFG 的user_id 是1068. level_id 是profile 的level, 10001 是site_level, 10004 是user_level.
或者在插入一条新记录(这是我自己的VirtualBox 的instance 上插入FRD log 的脚本)
INSERT INTO fnd_profile_option_values VALUES (
178,--application_id
3769,--profile_option__id
10004,--level_id
1068,--level_value
SYSDATE,
1068,
SYSDATE,
1068,
-1,
'http://erik-lnx.oracle.com:8001/forms/frmservlet?record=collect',
NULL,
NULL
);
常用的profile 对应的 id 如下:
INV: Debug Trace | 3696 |
INV: Debug file | 3697 |
INV:Debug Level | 3698 |
RCV: Debug Mode | 1001731 |
RCV: Processing Mode | 1434 |
ICX: Forms Launcher | 3769 |
Initialization SQL Statement - Custom | 3157 |
WSH: Defer Inventory Process Online | 1007159 |
TP:INV Transaction processing mode | 1192 |