求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
Form开发中组件控制的几个常用方法
 

发布于2013-7-3

 

在Oracle EBS 的Form二次开发中,经常需要灵活的来控制某些组件是否可用、是否可见;有时希望某些字段的值自动生成或者手动输入;有时又希望能够根据不同的职责、不同的用户等来设置不同的行为控制。常见的需求:

1、只有某些角色的人才能看到销售订单中“登记订单”这个按钮

2、只有某些角色的人才可以切换到某个标签页

3、实现订单号码根据需要自动生成编号或者手工录入

4、快速编码的值即可以录入所有应用下的,也可以只能录入某个应用,更可以只能录入某个应用下某个类型下的值

5、在某些情况下Form需要只能够查询

6、……

在Oracle EBS环境中有很多方法来实现这些功能,但是使用预置文件(Profile)、子功能(Subfunction)和功能参数(Function Parameter)是最常用最方便有效的3种方式,

一,子功能(Subfunction)

子功能是实际上是一个特殊的功能,利用子功能的方式其实就是使用了Oracle EBS的功能权限控制来实现安全性的控制,其实质就是某个用户能够执行一个被授权的功能,一般情况下会使用子功能来控制某些按钮是否显示,进而实现了用户 是否可以操作Form中的某些功能,所以Oracle EBS的开发人员经常使用子功能来通过显示/隐藏或者有效/失效界面上的组件来实现功能的有效或无效,如上面常见需求中的1,2使用子功能最适合。

如下我希望只有授权的用户才能看到Book Order这个按钮,看不到的自然也无法进行这个操作了

实现步骤:

1,为Book Order按钮组件定义一个子功能

2,Form代码中根据功能来控制组件

在PRE-FORM触发器中,来判断用户是否有权限看到这个操作,如果有就显示否则不显示

3,将子功能授权给有权的用户

如果某个用户需要显示这个按钮,只要将子功能XHUORDER_BOOK_ORDER添加用户拥有的职责对应的菜单里面,把子功能XHUORDER_BOOK_ORDER添加为一个菜单项,但是Prompt留空就可以

定义的时候需要将Prompt栏位留空,这样在菜单显示的时候就看不到这个菜单项,实际关键的是最后的Grant列,默认都是勾上的,代表了授权给相关的职责用户

二、功能参数

功能参数的方法实际上和子功能是一致的控制方法,都是使用功能权限来进行控制, 它通过针对同一个Form定义多个Function,不同Function参数的值不同来实现控制,Oracle EBS中最典型的应用就是Form中的仅仅查询功能和快速编码(Lookup Code)定义界面。

在快速编码定义界面中,可以通过APPL_SHORT_NAME参数来控制只能查询特点应用的快速编码;LOOKUP_TYPE参数来控制特点类型的快速编码。实现了参数值不同界面的行为也不同。

实现步骤:

1,在Form设计器中定义参数

像快速编码定义的Form中,定义了如下图的参数

2,在Form程序代码中引用参数的值来控制

根据业务需求和功能设计的要求,通过参数的值来编写代码,如

parameter的参数值在Form运行的时候会从Function定义中传入

3,定义Function时设置具体的参数值

如上面显示的DEMAND_CLASS的快速编码,参数为:VIEW_APPLICATION=”AU” LOOKUP_TYPE=”DEMAND_CLASS”

为Function定义了参数,在运行的时候就会到form的parameter中去查找同名的参数,并将等号(=)后的值传给参数,多个参数间用空格隔开。因此可以采用功能参数值的不同定义不同的功能,并赋给对应用户的职责就实现了不同的控制

三、预置文件(Profile)

预置文件的控制是这些方法中最灵活最强大的一种方法,通过预置文件可以实现到站点层、应用层、职责层和用户层的控制,预置文件相当于Oracle EBS系统中根据的一个全局变量,这个全局变量在不同的上下文可以设置为不同的值,因此在Form的开发中可以使用它来实现业务逻辑的控制,上面列出的常 见需求都可以使用预置文件的方法来实现,只是预置文件太过灵活,所以有的需求则显得大材小用,因此只要需要较灵活层次控制并符合站点层、应用层、职责层和 用户层这样层次控制的时候才采用。

实现步骤:

1,定义预置文件

在Application Developer职责下定义预置文件,就像在Oracle EBS系统中定义一个变量的感觉,SQL Validation区域就是预置文件可以定义的值列表

2,Form中根据预置文件值进行控制

上面的代码代表了如果预置文件DEMO_ORDER_NUMBER_MODE的值是AUTOMATIC的话,进行ORDER_NUMBER的控制

3,设置预置文件的值

Form程序中根据预置文件值的不同进行了不同的控制,而预置文件的值则是根据需要进行设置

通过以上预置文件值设置的不同,Form控制的项就会根据设置的不同表现出不同的行为。

上面描述的3个方法是Oracle EBS Form二次开发中最常用的方法,根据功能需求的不同选择最适合的方法。

相关文章 相关文档 相关视频



我们该如何设计数据库
数据库设计经验谈
数据库设计过程
数据库编程总结
数据库性能调优技巧
数据库性能调整
数据库性能优化讲座
数据库系统性能调优系列
高性能数据库设计与优化
高级数据库架构师
数据仓库和数据挖掘技术
Hadoop原理、部署与性能调优
 
分享到
 
 


MySQL索引背后的数据结构
MySQL性能调优与架构设计
SQL Server数据库备份与恢复
让数据库飞起来 10大DB2优化
oracle的临时表空间写满磁盘
数据库的跨平台设计
更多...   


并发、大容量、高性能数据库
高级数据库架构设计师
Hadoop原理与实践
Oracle 数据仓库
数据仓库和数据挖掘
Oracle数据库开发与管理


GE 区块链技术与实现培训
航天科工某子公司 Nodejs高级应用开发
中盛益华 卓越管理者必须具备的五项能力
某信息技术公司 Python培训
某博彩IT系统厂商 易用性测试与评估
中国邮储银行 测试成熟度模型集成(TMMI)
中物院 产品经理与产品管理
更多...