You are browsing the archive for 2009 九月.

Oracle EBS二次开发系列视频教程:开发基于视图的Form(8)

九月 28, 2009 in 开发系列视频教程

前面的教程已经对Form开发的基本步骤进行的逐步的讲解,如果你跟随着这些视频教程进行了学习,相信已经掌握了Form开发的核心步骤和最佳方法,但在Oracle EBS二次开发中,由于功能要求复杂的缘故和数据库设计的要求,基于表的Form开发并不多见,为了能够更好的利用Form的特性,需要开发基于视图的表单,开发基于视图的表单和基于表的表单实质并没有区别,只是基于视图的表单中需要开发人员来明确编写增、删、改、锁的程序逻辑,而基于表的表单自动帮助完成这些功能。

基于视图的Form需要引入4个块级别的触发器:

  1. ON-INSERT 编写插入数据的SQL语句或程序逻辑
  2. ON-UPDATE 编写更新数据的SQL语句或程序逻辑
  3. ON-DELETE 编写删除数据的SQL语句或程序逻辑
  4. ON-LOCK 编写锁定记录的程序逻辑

针对上面的增删改的常用功能,我们团队的Kent大侠编写了简化工作的实用工具包 HAND_PLSQL_AUTOCREATE ,感谢Kent大侠的辛勤工作,为我们带来了如此优秀的实用工具。

学习完成这个视频教程后,Form开发的主干课程已经完成,后面的几个课程是作为Form开发的附加补充课程。

 

点击下载视频文件和工具包:Download Oracle EBS二次开发系列视频教程之开发基于视图的Form(8) Version 1

Oracle EBS数据定义移植工具:FNDLOAD

九月 27, 2009 in Oracle EBS二次开发

在实际的EBS二次开发中,我们经常会碰到需要在各个环境之间移植二次开发的程序对象以及数据定义,如在EBS二次开发中并发请求的定义会涉及到:可执行、并发程序、值集、请求组等的定义,定义需要从开发环境、测试环境、UAT环境一直到正式环境,开发人员完成一个并发请求开发后,同样的定义需要在多个环境中手工完成,势必导致中间出现错误,导致浪费很多时间来进行检查,无形中增加了工作量;而更多的时候系统管理人员和开发人员是分离的,开发人员和系统管理人员之间还需要进行任务的交接,进一步增加了程序移植工作的难度和工作量。

FNDLOAD则是为了移植EBS数据定义而诞生的工具,它可以移植定义在AOL中的数据定义,如我们常见的并发程序、值集、预置文件等等,严格来说它可以实现任意两个Oracle数据库之间数据的移植,有了这个工具,我们就无需在多个环境中重复进行手工定义了。

在Oracle EBS环境下,和FNDLOAD工具类似的移植工具随处可见,并被广泛应用,如用来移植BI Publisher报表模板定义的XDOLoader工具;工作流定义移植工具WFLOAD;数据库对象移植工具ODFXDF.

04年在做一个项目的时候,我简单写过一个通过FNDLOAD工具在多个EBS环境间移植程序定义的文档,其中主要描述了如何使用FNDLOAD将AOL模块中的数据从一个环境移植到另一个环境,下面将从如何掌握并应用FNDLOAD这个工具的角度补充说明。

Read the rest of this entry →

如何得到Oracle EBS中BI Publisher的版本

九月 24, 2009 in Oracle EBS二次开发

今天刚好有一个BI Publisher的问题需要提Tar,Tar中要求提供BI Publisher的版本,特地查看了一下如何来查看EBS中BI Publisher的版本问题,Oracle提供了如下的几种方法:

  1. 从BI Publisher产生的报表文件查看
  2. 通过系统已打过的补丁(Patch)来决定,通过补丁号和BI Publisher的版本对应关系得出最终的版本
  3. 基于MetaInfo.class文件的版本号来决定,通过MetaInfo.class文件的版本号和BI Publisher的版本对应关系得出最终的版本

由于使用2,3方法必须知道补丁和版本的对应关系以及MetaInfo.class文件和版本的对应关系,因此使用起来比较麻烦,一般情况下不使用它,下面就记录如何使用最方便简单的一个方法:从BI Publisher产生的报表文件查看

通过模板的预览功能来生成报表输出文件

  1. 职责:XML Publisher Administrator
  2. 功能:Templates
  3. 随便选择一个有预览的模板
  4. 点击Preview按钮
  5. 保存PDF文件

PDF文件输出

  1. Adobe Reader打开PDF文件
  2. 打开File菜单中的Properites 项
  3. 选择Description标签页,PDF Producer 属性显示版本号,如Oracle XML Publisher 5.6.3就是我们要的东西

 

对其它方法感兴趣的可以到Metalink上面看看 362496.1

使用DBMS_LOCK控制程序并发

九月 24, 2009 in Oracle EBS二次开发

在调用并发的程序时,假设两个人同时提交了某一个并发请求,并且传入了同样的参数,假设在程序中使用了对状态的控制,例如在刚进入main函数的时候马上就将状态update了,那么其中某一个人就会查不到该条数据最后请求没有执行。

也可以使用另外一种方法,使用lock,将提交的并发锁住,其他提交的只能排队。

Read the rest of this entry →

OAF中CheckBox性能优化以及在12版开发下的修改

九月 23, 2009 in Oracle EBS二次开发

假设有这样的需求,在Table的第一列加入单选框,当用户对table中的某几行打勾后,点击页面按钮(假设提交按钮)。那么对应几行的状态都由New变成Confirm。

clip_image002

如上图,当点击Apply按钮后,打勾的行状态都变成confirm。

实现的方法有:

  1. 在点了apply后对所有的行循环一遍后选出打勾的行将状态set一下,但是这样子的方法是很没有效率的(假设有一万行,并且只选了一行)。
  2. 打开CHECKBOX上的FireAction,当点了这一行以后马上对该行状态进行处理(set好),当点了apply后就commit就可以了,这里需要注意的就是找到当前行以及点空后的处理。

所以优化的关键是如何根据打勾的行快速的在VO中找到对应的行并且对它进行操作。

Read the rest of this entry →