EBS 开发中如何动态启用和禁止请求(Current Request)的参数
(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)
我们可以使用依赖值集来启用和禁用参数。比如,有一个值集’A’,有一个对应的参数;还有另一个值集’B’,对应于另一个参数.我们可以加入一个条件,除非在值集’A’输入一个值,’B’才可以启用,也就是说值集B依赖于值集A。需要在值集B的条件中使用:and :$FLEX$.A = ‘<some value>’,实现的原理就是值集B不会被初始化,除非值集A返回一个符合条件的值。
实现步骤
1.先定义一个用于提供驱动值的参数,它使用值集A。
2.定义一个隐藏的参数,它引用一个只返回Y或者null的值集.在符合的条件下,隐藏的参数的默认值会被设置Y,否则就会被设成NULL。
3.为依赖值集A的值集B建立第三个参数,在值集B加一个条件让值集依赖于隐藏参数。当条件符合时,隐藏参数返回Y,那么第三个参数就可以被启用;
值集创建
1.第一个参数的值集是PO_SRS_REQUISITION_TYPE,系统已存在的。
2.隐藏参数对应的值集
3.第三个参数对应的值集
4.创建相应的参数
4.1对一个参数设置相应的值集为PO_SRS_REQUISITION_TYPE
4.2对第二个参数设置值集为DummyValueSetTest,默认值类型为SQL Statement,默认值
select decode(:$FLEX$.PO_SRS_REQUISITION_TYPE,'PURCHASE','Y',NULL) from dual
并且不选择Display,这样就不在参数界面上看到这个参数。
4.3对三个参数设置值集为XX_AvaialbleVendors.
5.运行的效果如下
初始界面
选择Purchase的时候的效果
切换到Internal时的效果
参考文章:
http://apps2fusion.com/at/ar/241-enablingdisabling-concurrent-program-parameters