怎样建立 OAF debug 环境

注意: 我的项目文件已经被某个同事搞坏了! 大家测试可以, 不要乱改我的文件!
http://www-apps.us.oracle.com/fwk/oactech/bug_guidelines.html#testcases ATG 要求根据这个步骤建test case.

遇到OAF 的bug, 如果不建立整个环境的话, 很难从散乱的文件中跟踪到代码. 下面的步骤可以在 SGD 里面建立一个 OAF 环境, 这样只需要下载我们关心的代码, 设置断点就可以跟踪了.
1. 在自己的jdevhome 目录下, 新建一个 Debug 目录: mkdir -p /home/yuzzhang/jdevhome/Debug
2. 用 JDeveloper 打开这个项目: cd /rh2.1AS/nfs/group/jdevbin
3. /jdevbin/pf_122 launch /jdevbin/NT/1225_x1_19245366 /home/yuzzhang/jdevhome/Debug
4. 打开 JDeveloper 之后, 新建一个 OA Workspace 项目, 名字就叫Debug
5. 连接debug 的环境的 dbc 文件, 例如: /home/yuzzhang/jdevhome/RcvWorkBench/jdev/dbc_files/secure/ml1yd221.dbc
5. 设置正确的 Application/Responsibility = MSC/SHOP FLOOR_ASCP
6. 项目建好之后, 双击 Debug 项目, libraries 选项卡, 增加新的 library
7. 点 New Library, 点 New, 取个名字叫 ml1yd221, 点 Add Entry, 把ml1yd221 环境里的class 文件当做library 放到这个项目里
8. 如果是12.2 以前的环境, 输入路径: /rh2.1AS/nfs/env/mz2yd102/appmgr/mz2yd102comn/java
9. 如果是12.2 的环境, 输入路径: /rh2.1AS/nfs/net/rws3260587/u01/R122_EBS/fs1/EBSapps/comn/java/classes
9. 如果出现无法访问的情况, 去到这个目录下, chmod 777 -R * 修改权限(chown applrt -R *).
9. 实际使用的可能是jar 包, 所以可以添加: /rh2.1AS/nfs/net/rws3260587/u01/R122_EBS/fs1/EBSapps/comn/java/classes/oracle/apps/fnd/jar/mscall.jar
10. 需要注意的是, 如果rws3260587 这个环境上的目录 /u01/R122_EBS/fs1/EBSapps/comn/java/classes 无法访问, 需要登陆这个环境修改访问权限
11. 到这里, 就配置好了library
12. 在myprojects 目录下, 新建目录: mkdir -p oracle/apps/wsm/mes/dispatchlist/webui
13. 在这个包中新建一个页面, 叫 testPG
14. 下载对应的测试页面 SearchJobOpPG.xml (120.6) 放到这个包下, 删除 testPG
15. 右键这个page, 点Debug, 页面就可以运行了
16. 直接运行页面的话不会传参数过去, 如果要带上参数, 可以用jsp 页面运行, 链接里面带上参数:
17. 示例文件: /home/yuzzhang/jdevhome/Debug/myhtml/OA_HTML/test_fwktutorial.jsp

2015年3月18日 更新—————————————–
OAF 的日志一般会写在下面这些地方:
1. 控制台: 如果是在 JDeveloper 里面的话, 可以直接输出到控制台
2. Page Diagnostics: 这个可以在OAF page 上选择 show log on screen
3. FND log: 这个比较腹黑, 要对照 JDeveloper 源代码看, 有时页面会有莫名其妙的错, 明显不是我们自己的业务代码, 这时就要想想是不是 OAF 框架的bug 了… JDeveloper 搜索源代码可以用快捷键 Crtl -
4. Trace: 可以通过页面上的 Diagnostics 调出来, 也可以 set events ‘10046 trace name context forever, level 12’

下面的步骤可以用来收集 FND log, 注意, 所有下面要设置的 profile 都要设置在 site level 上:
FND: Diagnostics = Yes
FND: Debug Log Enabled = Yes
FND: Debug Log Filename for Middle-Tier 留空
FND: Debug Log Level = Statement
FND: Debug Log Mode = Asynchronous with Cross-Tier Sequencing
FND: Debug Log Module = %

保存之后可能需要重启 weblogic 服务器. 重新登陆之后, 页面上应该有个 Global Diagnostics 按钮.
查看FND log 需要查询 FND_LOG_MESSAGES 表:

 select message_text from fnd_log_messages where log_sequence between &value1 and &value2 order by log_sequence ;

value1 和 value2 需要在bug 重现前后用 SELECT MAX(LOG_SEQUENCE) FROM FND_LOG_MESSAGES; 查询得到.

12.1 的环境, class 文件放在 JAVA_TOP 下面
12.2 的环境, class 文件要放在 OA_HTML/WEB-INF/classes/oracle/apps/po 或者其他产品目录下面, 才会优先读到.
JAR 包签名问题: 先登录console, Go to Environment->servers->ocore_server1->server start .
In the arguments append “-Dweblogic.classloader.noJarSigners=true”(without the quotes) .
重启oacore_server1, 如果有问题: restart weblogic: admanagedsrvctl.sh start oacore_server1

最新ATG 12.2.5 patch: latest 12.2.5 patch https://stbeehive.oracle.com/teamcollab/wiki/Release+%28OAF,JTT,+BNE+and+FRM%29:R12.2.5+Schedule+for+OA+Framework+and+JTT
添加debug, 参考Note: 1331703.1
https://stbeehive.oracle.com/teamcollab/wiki/ATG+framework+CDC:get+log+message+from+customer%28bc4j%2C+fnd+log%2C+fiddler%2C+bug+report%29

你可能感兴趣的:(怎样建立 OAF debug 环境)