Oracle之OAF开发参考(3)

2019-06-11 17:49

ORACLE ERP最佳实践 ORACLE核心应用技术 OAF开发

342555394.doc (v. 1.0 )

Doc Ref:

错误!未找到引用源。

双击CuxVisitCreate应用,左边是Available选择原VO,右边选择创建的VO

点击Add进行 VO替换

OAF个性化开发 9 of 69

Company Confidential – For internal use only

ORACLE ERP最佳实践 ORACLE核心应用技术 OAF开发

342555394.doc (v. 1.0 )

Doc Ref:

错误!未找到引用源。

点完确定之后验证下我们创建的jpx文件,

检查是否有Substitues节点如果没有右键点击Rebuild进行加载

然后将jpx文件,跟VO放到服务器上,对jpx进行导入.

java oracle.jrad.tools.xml.importer.JPXImporter $JAVA_TOP/CuxVisitCreate.jpx -username apps -password apps -dbconnection

\CONNECT_DATA=(SID=MRODEV1)))\

OAF个性化开发 10 of 69

Company Confidential – For internal use only

ORACLE ERP最佳实践 ORACLE核心应用技术 OAF开发

342555394.doc (v. 1.0 )

Doc Ref:

错误!未找到引用源。

2.5 个性化CO概述

1. 创建一个CO对象继承原CO对象 2. 编写个性化CO的处理逻辑

2.6 个性化CO具体操作 创建一个JAVA类,继承原CO

当然也要添加继承父类两个request请求方法processRequest()跟processFormRequest()

processRequest()处理get请求。比如一些页面加载的是时候会调用该方法 processFormRequest()处理post请求:

1、OAPageBean检测当前的page的web Bean层次结构是否存在内存中。如果不存在(由于资源的回收,用户单击浏览器的“后退”按钮,或者一个消息对话框回到主页的post请求),它会像上面的Get请求一样新建Web Bean 的层次结构。

2、所有在该层次结构上的OAPageBean调用processFormData(OAPageContext pageContext, OAWebBean webBean)将表单中的数据写入模式(尤其是,如果在pagelayout上调用

OAF个性化开发 11 of 69

Company Confidential – For internal use only

ORACLE ERP最佳实践 ORACLE核心应用技术 OAF开发

342555394.doc (v. 1.0 )

Doc Ref:

错误!未找到引用源。

processFormData(),则在该层次下的所有bean都会调用processFormData())。表单中的数据写入到底层模型自动调用属性和EO级上的验证(这些是数据库方面的比如唯一索引、字段类型)。如果抛出任意验证异常,则处理停止并将错误信息发给用户。

3、如果在 processFormData() 过程中没有异常抛出。在该层次下的所有OAPageBean调用

processFormRequest(OAPageContext pageContext,OAWebBean webBean)。这个过程将用户的操作传给控制器。

4、如果没有的JSP页面重定向转发或发出-或例外地被投进了processFormRequest() -然后刷新页。

简单的我们页面上的一些组件比如input、lov调用验证和显示lov的region时会调用该方法进行处理.

2.7 个性化CO常用的API 获取AM对象

OAApplicationModule am=pageContext.getApplicationModule(webBean); 获取VO对象

oracle.jbo.ViewObject cuxrow=am.findViewObject(\

(可能源代码里面写的VO一般是CreateUpdateVisitRowImpl,这里用基类的原因是因为我们在不同应用下进行操作。所以如果还是用子类的话虽然编译通过了,我们在调用的时候就会出错) 获取连接对象

OADBTransaction txn=(OADBTransaction)am.getTransaction(); 获取当前行对象

Row currentrow=cuxrow.getCurrentRow();

获取LOV返回值方法

String LovInputSourceId=pageContext.getLovInputSourceId(); if (\

Hashtable

UnitNamelovResults=pageContext.getLovResultsFromSession(LovInputSourceId); Instanceid =(String)UnitNamelovResults.get(\LovInputSourceId 为我们调用的lov的ID

获取预编译对象

PreparedStatement

stmt=(PreparedStatement)txn.createPreparedStatement(lineNumber_sql,0); 获取结果集对象

ResultSet Rs=stmt.executeQuery(); 页面重定向

pageContext.forwardImmediatelyToCurrentPage(map, // no parameters to pass true, // retain the AM

OAWebBeanConstants.ADD_BREAD_CRUMB_NO);

OAF个性化开发 12 of 69

Company Confidential – For internal use only

ORACLE ERP最佳实践 ORACLE核心应用技术 OAF开发

342555394.doc (v. 1.0 )

Doc Ref:

错误!未找到引用源。

我们在页面重定向的时候会重新调用processRuquest方法,所以我们一般通过传入map参数进行对页面的控制,使其不会对页面进行刷新。

2.8 个性化的查询和删除 1. 查出个性化生成的页面 BEGIN

jdr_utils.listcustomizations

(p_document => '/oracle/apps/eam/workorder/webui/CreateUpdateWOPG'); END;

2.查看个性化的内容 BEGIN

jdr_utils.printdocument

(p_document =>

'/oracle/apps/eam/workorder/webui/customizations/site/0/CreateUpdateWOPG'); END;

3.删除个性化内容 BEGIN

jdr_utils.deleteDocument

(p_document =>

'/oracle/apps/eam/workorder/webui/customizations/site/0/CreateUpdateWOPG'); END;

2.9 注意事项

1.个性化CO:清除个性化时,除了要把继承的路径删除之外还要在路径下添加继承两个字. 2.关于个性化路径的问题,如果是纯OAF界面我们直接放在$JAVA_TOP是没问题的,如果是JSP界面的OAF个性化,我们就要把其个性化内容放在$OA_HTML/WEB-INF/classes/ 3.关于从服务器download下来的dbc文件 1)

打开dbc文件,找到APPS_JDBC_URL,可看到含有很多“\\”,把所以的“\\”都去掉(注:该操作只针对APPS_JDBC_URL属性)

有时候还是连接不上可以检查下host 是不是把IP别名添加进去了.

OAF个性化开发 13 of 69

Company Confidential – For internal use only


Oracle之OAF开发参考(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏装配式混凝土结构施工监理实施细则

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: