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