设为首页 收藏本站
查看: 1291|回复: 0

[经验分享] Oracle EBS Form CUSTOM.PLL详解【转】

[复制链接]

尚未签到

发表于 2015-9-23 09:14:10 | 显示全部楼层 |阅读模式
  编写CUSTOM 库
  CUSTOM库是一个OracleForms Developer  PL/SQL 库,它允许你充分使用Oracle Forms Developer直接整合你的代码到Oracle 应用程序而不必改变Oracle Application 的代码。
  什么时候使用CUSTOM库
  在一些主要的情况下,可以使用CUSTOM库。
  Zoom  Zoom 通常会打开另一个form并且可以传递参数到达开的form中。
  通用事件的逻辑  在确定的通用form事件中,增强Oracle 应用程序的逻辑例如:
  WHEN-NEW-FORM-INSTANCE 或WHEN-VALIDATE-RECORD你可以使用通用事件来改变区域的提示和其他的属性,隐hide区域,添加验证和其它
  产品特殊事件的逻辑 在确定的产品特殊事件中增强或替换Oracle 应用程序逻辑实现业务逻辑。
  客户定义菜单  在Oracle 应用程序form中添加条目到special菜单中,例如一个打开客户化form的条目。
  设置视觉属性  使用CUSTOM库在运行时来改变视觉属性,使用Oracle Forms内建程序 SET_VA_PROPERTY 来设置CUSTOM1 – CUSTOM5的视觉属性,并使用APP_ITEM_PROPERTY2.SET_PROPERTY在运行时来应用视觉属性。
  编写Zoom
  Zoom允许用户调用在每一个块中调用逻辑,例如,你可能希望在输入采购订单form时打开供应商form,你可以在这一个块上使用Zoom并且当用户调用它,你可以打开供应商form
  11i版本Zoom的行为:
  Oracle 应用程序提供一个菜单项和工具栏中的一个按钮,用户可以调用Zoom,只有当这个块在CUSTOM库Zoom逻辑定义后,菜单项和按钮才可用。
  当光标在form中改变到不同的块中,form调用CUSTOM库中的ZOOM_AVALIABLE 方法。如果这个方法返回TRUE,ZOOM条目和按钮可用,如果返回FALSE不可用。
  如果Zoom条目是可用的,这是当用户调用Zoom时调用CUSTOM中的ZOOM方法。你基于当前form和块编写这个事件的方法。
  在CUSTOM库中编写Zooms
  1.      添加一个CUSTOM.ZOOM_AVALIABLE方法只是form 和块什么时候可以启用Zoom
  2.      添加在ZOOM事件中添加CUSTOM.EVENT过程。
  支持一个块中的多Zoom时间。
  11i版中Oracle应用程序为Zoom提供一个LOV和相应的参数:
  u     LOV:APPCORE_ZOOM
  u     参数:APPCORE_ZOOM_VALUE
  使用LOV和参数当这个块含有多余1个的ZOOM时提供给用户一个LOV。
  编写ZoomLOV到CUSTOM库中。
  在CUSTOM库中(包括Zoom事件代码)
  1.     创建一个记录组合,并填充可用的Zoom名字和值
  2.     添加记录组到APPCORE_ZOOM LOV中
  3.     调用show_lov来显示LOV给用户
  4.     如果用户选择一个Zoom,将返回值给APPCORE_ZOOM_VALUE参数
  5.     得到参数的值选择不同的Zoom
  编写通用Form事件
  你可以编写逻辑,在特别的form并在块的特别的事件中触发,你可以编写逻辑在一下的事件中:
  ? WHEN–FORM–NAVIGATE
  ? WHEN–NEW–FORM–INSTANCE
  ? WHEN–NEW–BLOCK–INSTANCE
  ? WHEN–NEW–RECORD–INSTANCE
  ? WHEN–NEW–ITEM–INSTANCE
  ? WHEN–VALIDATE–RECORD
  ? SPECIALn (n 是1 到 45之间的一个数)
  ? ZOOM
  ? EXPORT
  ? KEY–Fn (n 是1 到 8之间的一个数)
  一些Oracle 应用程序forms例如多数的Oracle人力资源模块的form可能提供附加的事件调用CUSTOM库,这些附加事件被列在拥有这个form的产品的文档中。你可以编写逻辑在CUSTOM库中以相同的方法在通用时间中编写逻辑。
  在CUSTOM库中为通用的form时间编写逻辑:
  1.      在CUSTOM.EVENT过程中为特别的事件添加一个分支。
  在分支内部,指定你希望你的逻辑触发的form 和 块并添加逻辑到你希望发生的事件到这些块中。
  编写产品指定的事件:
  为了编写产品指定的事件逻辑到CUSTOM库中:
  1.     为特殊的产品的指定的事件添加分支到CUSTOM.EVENT过程中
  在分支中添加逻辑。
  2.     如果要支持客户化的执行类型,添加分支到CUSTOM.STYLE方法来指定执行类型。
  添加客户化条目到special菜单中。
  为了在CUSTOM 库中添加逻辑到special菜单中的条目
  1.     在CUSTOM.EVENT过程中添加分支事件WHEN-NEW-FORM-INSTANCE  
  在这个分支中指定你希望添加逻辑的form和块,添加逻辑到Special菜单中
  2.     将特别的SPECIALn事件添加分支到CUSTOM.EVENT过程。
  在这个分支中,指定逻辑发生的form和块。添加逻辑到你的Special菜单中。如果是你开发的form你应该添加逻辑到用户命名的SPECIALn触发器中。
  Oracle应用对象库中产品特别的事件。
  Oracle 应用对象库提供可以使用CUSTOM库使用的产品特别事件。
  WHEN-LOGON-CHANGED 事件
  使用WHEN-LOGON-CHANGED事件在用户使用”File-> Log On as a Different User”立即触发来验证。这个方法是只是对基于Oracle Forms Developer开发的form有效。而对基于HTML或Java 的from是无用的。
  你可以使用FND_PROFILE.GET方法得到新的用户名和其他预置文件值
  如果因为一些原因在这个时间中的代码抛出form_trigger_failure的异常,用户将返登录界面。
  WHEN-RSPONSIBILITY-CHANGED 事件
  使用WHEN-RESPONSIBILITY-CHANGED事件当用户使用“Fiel->SwitchResponsibility”来切换职责时触发进行验证。这个方法只对基于Oracle  Forms Developer 开发的forms有效。
  你可以通过FND_PROFILE.GET 方法得到新的职责名称和其他预置文件的值。如果因为一些原因在这个事件中的代码抛出 form_trigger_failure的异常,用户将返回如同选择了一个错误的职责的值列表界面。
  CUSTOM 包
  CUSTOM包包含了下列的方法和过程
  CUSTOM.ZOOM_AVALIABLE
  CUSTOM.STYLE
  CUSTOM.EVENT
  CUSTOM.ZOOM_AVAILABLE
  function custom.zoom_available return BOOLEAN;
  如果对于这个块Zoom是可用的,则返回TRUE,否则返回FALSE,通常用于测试form和块。
  通常这个方法返回FALSE
  CUSTOM.STYLE
  function custom.style(event_name varchar2) return integer;
  这个方法允许你决定执行的类型。你可以选择代码的执行为,之前,之后,或替代。注意的是一些产品特定事件是不支持所有的执行类型的CUSTOM.STYLE不对通用form事件或Zoom起作用。
  下列的包变量以用作返回值:
  Custom.before
  Custom.after
  Custom.override
  Custom.standard
  作为默认值,这个方法返回custom.standard
  CUSTOM.EVENT
  procedurecustom.event(event_name varchar2);
  这个方法允许你在指定的事件中执行你的代码。通常测试事件名称然或测试form和块。   作为默认这个方法应该返回null;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-117488-1-1.html 上篇帖子: 招聘Oracle EBS PM(Japanese) 下篇帖子: EBS-使用 fnd_user_pkg API 创建用户,添加职责,修改用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表